commit aa1a5d576364541c7d7b6e1fb6a3cabb941526c1 Author: wehub-resource-sync Date: Mon Jul 13 13:18:17 2026 +0800 chore: import upstream snapshot with attribution diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..f1c579d --- /dev/null +++ b/.env.example @@ -0,0 +1,22 @@ +# GOD - Govern, Observe, Direct +# Copy this file to .env, or run `./scripts/god.sh start` and follow the prompts. + +# ----- Required model settings --------------------------------------------- +# OpenAI-compatible API. Any provider that speaks /v1/chat/completions works. +GOD_LLM_API_KEY= +GOD_LLM_API_BASE=https://api.openai.com/v1 +# Required. Examples: qwen-plus, gpt-4o-mini, claude-3-5-sonnet-latest. +GOD_LLM_MODEL= + +# Embedding model. Leave the base/key blank to reuse GOD_LLM_API_BASE / GOD_LLM_API_KEY. +GOD_EMBEDDING_API_KEY= +GOD_EMBEDDING_API_BASE= +GOD_EMBEDDING_MODEL=text-embedding-3-large + +# Local bind ports. Override only on port conflicts. +GOD_BACKEND_HOST=127.0.0.1 +GOD_BACKEND_PORT=8001 +GOD_FRONTEND_PORT=5174 + +# Set to 1 to skip dependency checks/install when starting. +GOD_SKIP_SETUP=0 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..3465fae --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,68 @@ +name: Bug report +description: Report something that is not working in GOD. +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report this. Clear reproduction steps are the fastest way to help us fix it. + - type: input + id: version + attributes: + label: Commit or version + description: Paste the commit SHA, branch name, or release tag you are running. + placeholder: main @ abc1234 + validations: + required: true + - type: dropdown + id: surface + attributes: + label: Area + options: + - Startup / scripts + - Setup wizard + - Live control room + - PixelReplay + - Agent runtime / JiuwenClaw + - Map packages + - Experiment config + - Docs + - Other + validations: + required: true + - type: textarea + id: steps + attributes: + label: Reproduction steps + description: What did you do, and what happened? + placeholder: | + 1. Run ... + 2. Open ... + 3. Click ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What did you expect to happen? + validations: + required: true + - type: textarea + id: status + attributes: + label: Status output + description: Paste `./scripts/god.sh status` and any relevant log excerpt. Redact API keys or private data. + render: text + - type: textarea + id: environment + attributes: + label: Environment + description: OS, Python, Node.js, browser, and model provider/base URL if relevant. + placeholder: macOS 15, Python 3.11, Node 22, Chrome, OpenAI-compatible endpoint + - type: textarea + id: screenshots + attributes: + label: Screenshots or recordings + description: Drag in images or short clips if the issue is visual. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..f3f4c09 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Security report + url: https://github.com/XiaoLuoLYG/GOD/security/advisories/new + about: Please report suspected vulnerabilities privately instead of opening a public issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..f83abfc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,46 @@ +name: Feature request +description: Suggest an improvement or new capability for GOD. +title: "[Feature]: " +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: Problem or use case + description: What are you trying to do that GOD cannot do well today? + placeholder: I want to... + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed behavior + description: What should happen instead? + validations: + required: true + - type: dropdown + id: area + attributes: + label: Area + options: + - Setup wizard + - Live control room + - PixelReplay + - Agent runtime + - Map packages + - Experiment authoring + - Evaluation / metrics + - Docs + - Other + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Any workaround or different design you have considered? + - type: textarea + id: media + attributes: + label: References or sketches + description: Links, screenshots, sketches, or examples from other tools. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..4d0f527 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +## Summary + +- TBD + +## Scope + +- [ ] This PR is focused on one logical change. +- [ ] I did not commit runtime outputs, local credentials, `.god/`, `.live/`, `.DS_Store`, `promos/`, `docs/press-kit/`, or local-only large map assets. +- [ ] If this PR changes public docs, both English and Chinese docs were updated where applicable. +- [ ] If this PR changes maps or experiments, the added assets are intentionally part of the public repository. + +## Validation + +- [ ] `bash -n scripts/god.sh` +- [ ] `npm run build --prefix agentsociety/frontend` +- [ ] `cd agentsociety && uv run pytest -q packages/agentsociety2/tests/test_god_setup_router.py packages/agentsociety2/tests/test_map_packages.py packages/agentsociety2/tests/test_pixel_town_social_env.py` +- [ ] Map package validation, if applicable: `cd agentsociety && uv run python scripts/validate_map_package.py custom/maps/` + +## Screenshots / Clips + +Add screenshots or short clips for UI, replay, map, setup, or docs changes. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..89024d7 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,150 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + release-hygiene: + name: Release hygiene + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Check diff whitespace + shell: bash + env: + BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }} + HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} + run: | + set -euo pipefail + if git rev-parse --verify "${BASE_SHA}^{commit}" >/dev/null 2>&1; then + git diff --check "${BASE_SHA}...${HEAD_SHA}" + elif git rev-parse --verify HEAD~1 >/dev/null 2>&1; then + git diff --check HEAD~1..HEAD + else + git diff --check + fi + + - name: Guard release-only artifacts + shell: bash + run: | + set -euo pipefail + banned_paths="$( + git ls-files \ + | grep -Ev '^agentsociety/quick_experiments/(hypothesis_god_town|hypothesis_pku_trump_visit)/experiment_1/run/' \ + | grep -E '(^promos/|^docs/press-kit/|^agentsociety/quick_experiments/hypothesis_pku_trump_visit/experiment_2/|^\.god/|^\.live/|(^|/)\.DS_Store$|(^|/)run_launcher\.log$|^agentsociety/quick_experiments/.*/run(_[^/]*)?/)' || true + )" + if [[ -n "${banned_paths}" ]]; then + echo "These paths should not be committed to the public release branch:" + echo "${banned_paths}" + exit 1 + fi + + - name: Check local README images + shell: bash + run: | + set -euo pipefail + python3 - <<'PY' + import pathlib + import re + import sys + + public_docs = [ + pathlib.Path("README.md"), + pathlib.Path("README.zh-CN.md"), + pathlib.Path("QUICKSTART.md"), + pathlib.Path("QUICKSTART.zh-CN.md"), + pathlib.Path("CONTRIBUTING.md"), + pathlib.Path("CONTRIBUTING.zh-CN.md"), + pathlib.Path("docs/MAP_PACKAGES.md"), + pathlib.Path("docs/MAP_PACKAGES.zh-CN.md"), + ] + public_docs.extend(sorted(pathlib.Path("docs/developer").rglob("*.rst"))) + public_docs.extend(sorted(pathlib.Path("docs/developer").rglob("*.md"))) + public_docs.extend(sorted(pathlib.Path("docs/site").rglob("*.html"))) + + failures = [] + for md_path in public_docs: + if not md_path.exists(): + continue + text = md_path.read_text(encoding="utf-8") + targets = [] + targets.extend(re.findall(r"]+src=[\"']([^\"']+)[\"']", text, flags=re.I)) + targets.extend(re.findall(r"!\[[^\]]*\]\(([^)]+)\)", text)) + targets.extend(re.findall(r"\.\. image::\s+([^\s]+)", text)) + for raw_target in targets: + target = raw_target.strip().split("#", 1)[0].split("?", 1)[0] + if not target or re.match(r"^[a-z][a-z0-9+.-]*:", target, flags=re.I): + continue + resolved = (md_path.parent / target).resolve() + if not resolved.exists(): + failures.append(f"{md_path}: missing image asset {raw_target}") + + if failures: + print("\n".join(failures)) + sys.exit(1) + PY + + python-tests: + name: Python targeted tests + runs-on: ubuntu-latest + timeout-minutes: 40 + defaults: + run: + working-directory: agentsociety + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + cache-dependency-glob: agentsociety/uv.lock + + - name: Run targeted backend tests + run: | + uv run pytest -q \ + packages/agentsociety2/tests/test_god_setup_router.py \ + packages/agentsociety2/tests/test_map_packages.py \ + packages/agentsociety2/tests/test_pixel_town_social_env.py + + frontend-build: + name: Frontend build + runs-on: ubuntu-latest + timeout-minutes: 25 + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Node.js + uses: actions/setup-node@v6 + with: + node-version: "22" + cache: npm + cache-dependency-path: agentsociety/frontend/package-lock.json + + - name: Install frontend dependencies + run: npm ci --prefix agentsociety/frontend + + - name: Build frontend + run: npm run build --prefix agentsociety/frontend diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..20788f6 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,73 @@ +name: Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + name: Build and deploy public pages + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + + - name: Install developer docs dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -r docs/developer/requirements.txt + + - name: Build public pages + run: | + set -euo pipefail + mkdir -p _site + cp -R docs/site/. _site/ + sphinx-build -W -b html docs/developer _site/developer + + - name: Guard release asset boundary + run: | + set -euo pipefail + banned="$( + find _site/public-data \( \ + -path '*/downloads/*' -o \ + -path '*/map-packs/*/assets/*' -o \ + -path '*/map-packs/*/characters/*' -o \ + -path '*/map-packs/*/location-assets/*' -o \ + -name '*.zip' \ + \) -print 2>/dev/null | head -50 + )" + if [[ -n "${banned}" ]]; then + echo "Large public pack assets must be uploaded as GitHub Release assets, not deployed from Git:" + echo "${banned}" + exit 1 + fi + + - name: Configure Pages + uses: actions/configure-pages@v6 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: _site + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..122ef51 --- /dev/null +++ b/.gitignore @@ -0,0 +1,77 @@ +.DS_Store +.cursor/ +/.env +/.env.* +!/.env.example +.god/ +.live/ + +# Public site download assets are published to GitHub Releases, not Git. +docs/site/public-data/**/*.zip +docs/site/public-data/**/downloads/ +docs/site/public-data/map-packs/*/assets/ +docs/site/public-data/map-packs/*/characters/ +docs/site/public-data/map-packs/*/location-assets/ +docs/site/public-data/map-packs/*/tiled-map.json + +# Python +.venv/ +__pycache__/ +*.py[cod] +.pytest_cache/ +.ruff_cache/ +.mypy_cache/ +*.egg-info/ + +# Node +node_modules/ +dist/ +build/ +coverage/ +test-results/ +promos/ + +# Runtime data +*.log +*.db +*.sqlite +*.sqlite3 +.superpowers/ +logs/ +agentsociety_data/ +agentsociety/agentsociety_data/ +agentsociety/logs/ +jiuwenclaw/logs/ +agentsociety/quick_experiments/**/run/ +agentsociety/quick_experiments/**/run_*/ +agentsociety/quick_experiments/**/run_failed*/ +agentsociety/quick_experiments/**/run_stuck*/ +agentsociety/quick_experiments/**/run_launcher.log +agentsociety/quick_experiments/**/.runtime/ +agentsociety/quick_experiments/hypothesis_*/ +!agentsociety/quick_experiments/hypothesis_god_town/ +!agentsociety/quick_experiments/hypothesis_god_town/** +!agentsociety/quick_experiments/hypothesis_pku_trump_visit/ +!agentsociety/quick_experiments/hypothesis_pku_trump_visit/** +**/.DS_Store +agentsociety/quick_experiments/hypothesis_god_town/**/run/ +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/run/ +agentsociety/quick_experiments/hypothesis_god_town/**/run_*/ +agentsociety/quick_experiments/hypothesis_god_town/**/run_failed*/ +agentsociety/quick_experiments/hypothesis_god_town/**/run_stuck*/ +agentsociety/quick_experiments/hypothesis_god_town/**/run_launcher.log +agentsociety/quick_experiments/hypothesis_god_town/**/.runtime/ +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/run_*/ +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/run_failed*/ +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/run_stuck*/ +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/run_launcher.log +agentsociety/quick_experiments/hypothesis_pku_trump_visit/**/.runtime/ + +# Agent Studio generates these locally; configs should not depend on committed test sprites. +agentsociety/custom/maps/*/characters/Generated_Agent_*.png + +# Local Superpowers planning/spec artifacts are development process notes, not product docs. +docs/superpowers/ + +# Map Studio generated packages are local user output by default. +agentsociety/custom/generated_maps/ diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..8a94fd3 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,17 @@ +# Read the Docs configuration for the GOD developer documentation. +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.12" + +python: + install: + - requirements: docs/developer/requirements.txt + +sphinx: + configuration: docs/developer/conf.py + +formats: + - htmlzip diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..f858849 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,34 @@ +# Code of Conduct + +GOD is a project for building and discussing agent-society experiments. The community should be useful, curious, and safe for people with different backgrounds, research interests, and levels of experience. + +## Expected Behavior + +- Be respectful and constructive in issues, pull requests, discussions, reviews, and demos. +- Assume good intent, but be willing to clarify and correct mistakes. +- Keep criticism focused on the work, the evidence, and the user impact. +- Give credit for ideas, code, experiments, and assets. +- Be careful with screenshots, logs, generated profiles, and scenario data that may contain private or sensitive information. + +## Unacceptable Behavior + +- Harassment, threats, hate speech, personal attacks, or discriminatory comments. +- Sexualized language or imagery in project spaces. +- Publishing another person's private information without permission. +- Posting API keys, credentials, private logs, or other sensitive data. +- Repeated low-effort disruption after maintainers ask for a change in behavior. +- Encouraging abuse, deception, or unsafe use of the project. + +## Scope + +This code of conduct applies to this repository and related project spaces, including GitHub issues, pull requests, discussions, documentation, demos, and community support conversations. + +## Enforcement + +Maintainers may edit, hide, or remove comments; close issues or discussions; block users from participation; or take other reasonable moderation actions when behavior harms the project or its community. + +If you need to report a conduct concern, contact the maintainers through the least public safe channel available. For public, non-sensitive concerns, open an issue or discussion and keep personal details out of the report. For platform-level abuse or urgent safety issues, use GitHub's own abuse-reporting tools. + +## Maintainer Responsibilities + +Maintainers should apply this code of conduct consistently and proportionally. Reports should be handled with care, and private or sensitive information should not be exposed unnecessarily. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9758cbc --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,111 @@ +

🤝 Contributing to GOD

+ +

+ Issues and pull requests are very welcome.
+ Whether you're fixing a typo, shipping a new map, or rewiring the runtime — thank you. +

+ +

+ 🌏 中文 +

+ +--- + +## 🧭 Ways to contribute + +| | | +| --- | --- | +| 🐛 **Report a bug** | Open an [issue](https://github.com/XiaoLuoLYG/GOD/issues/new) with reproduction steps, screenshots, and the output of `./scripts/god.sh status`. | +| 💡 **Propose a feature** | Open an issue first. A short description + a one-paragraph use case is enough. | +| 🗺️ **Add a new map** | Drop a folder under `agentsociety/custom/maps//` and follow [`docs/MAP_PACKAGES.md`](docs/MAP_PACKAGES.md). PRs welcome. | +| 🧪 **Add a new experiment** | Drop a folder under `agentsociety/quick_experiments///`. See [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.md) as the reference shape. | +| ✏️ **Improve docs** | Fix translations, polish wording, add screenshots, add diagrams. | +| 🔌 **Wire in a runtime** | Adapter PRs for new LLM runtimes or persona templates are very welcome — see `agentsociety/custom/agents/`. | + +## 🚀 Dev environment + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +./scripts/god.sh start +``` + +That installs Python and Node dependencies, brings up the full stack, creates a +live session, and runs the first step so the control room opens on a populated +town. From there, edit and reload. + +Useful day-to-day commands: + +```bash +./scripts/god.sh restart # stop everything cleanly, then start again +./scripts/god.sh new-run # wipe replay data and start a fresh session +./scripts/god.sh status # check ports, URLs, model status +./scripts/god.sh tail # follow logs +./scripts/god.sh stop # stop everything +``` + +## 🌳 Branching & PR flow + +1. Fork the repo and create a topic branch off `main`. +2. Keep PRs **small and focused** — one logical change per PR. +3. Run the validators you've touched: + + ```bash + # If you changed a map package + cd agentsociety + uv run python scripts/validate_map_package.py custom/maps/ + + # If you changed Python services + cd agentsociety/packages/agentsociety2 + uv run pytest + ``` + +4. Open the PR against `main`. Describe **what** changed and **why** in the + body. Screenshots and short clips go a long way for UI changes. +5. Be patient — the reviewer might be in another time zone. + +## 📝 Style + +- **Python:** 4-space indent, type hints where they help, no unused imports. + We don't enforce a single formatter yet; match the surrounding code. +- **TypeScript / React:** match the surrounding component style. +- **Line width:** keep lines under **120 characters** where reasonable. +- **No forward declarations** (per project rule). +- **Comments** should explain non-obvious intent, not narrate the code. +- **Commits:** present tense, short subject (~60 chars), longer body if needed. +- **Docs:** when you change a Markdown doc with both `.md` and `.zh-CN.md`, + update both. Use idiomatic English and Chinese — not literal translations. + +## 🗺️ Adding a new map package — checklist + +- [ ] Folder named `agentsociety/custom/maps//` +- [ ] `map.yaml`, `README.md`, `ATTRIBUTION.md` present +- [ ] Tiled JSON has a `Collisions` layer +- [ ] All tileset images resolve inside the package folder +- [ ] `uv run python scripts/validate_map_package.py custom/maps/` passes +- [ ] At least one screenshot in the PR description + +## 🧪 Adding a new experiment — checklist + +- [ ] Folder under `agentsociety/quick_experiments///` +- [ ] `README.md` (English) + `README.zh-CN.md` (Chinese) +- [ ] `init/init_config.json` + `init/steps.yaml` +- [ ] A `run.sh` that boots the experiment via the AgentSociety CLI +- [ ] Manual run notes if there's an operator script (see PKU Trump experiment for the pattern) + +## 📜 License + +By contributing to GOD you agree that your contributions will be licensed under +the [Apache License 2.0](LICENSE). Upstream LICENSE and NOTICE files are kept +inside the integrated runtime checkouts (`agentsociety/`, `jiuwenclaw/`) and +apply to those subtrees. + +## 🛡️ Be kind + +GOD is a small open-source project. Be patient, be specific, and give the kind +of feedback you'd want to receive. We're here to build a town of agents — and +hopefully a small, warm community of humans around it. + +--- + +

Thank you for making GOD better. ⭐

diff --git a/CONTRIBUTING.zh-CN.md b/CONTRIBUTING.zh-CN.md new file mode 100644 index 0000000..2795f76 --- /dev/null +++ b/CONTRIBUTING.zh-CN.md @@ -0,0 +1,107 @@ +

🤝 为 GOD 做贡献

+ +

+ 欢迎提 issue 与 PR。
+ 无论是修一个错别字、加一张地图,还是重写一段 runtime —— 谢谢你。 +

+ +

+ 🌏 English +

+ +--- + +## 🧭 你可以怎么贡献 + +| | | +| --- | --- | +| 🐛 **报 bug** | 提一个 [issue](https://github.com/XiaoLuoLYG/GOD/issues/new),附上复现步骤、截图,以及 `./scripts/god.sh status` 的输出。 | +| 💡 **提需求** | 先提一个 issue,简短描述 + 一段使用场景就够。 | +| 🗺️ **加新地图** | 把文件夹丢到 `agentsociety/custom/maps//`,遵循 [`docs/MAP_PACKAGES.zh-CN.md`](docs/MAP_PACKAGES.zh-CN.md)。欢迎 PR。 | +| 🧪 **加新实验** | 把文件夹丢到 `agentsociety/quick_experiments///`。参考 [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.zh-CN.md) 的形态。 | +| ✏️ **改文档** | 修翻译、打磨措辞、加截图、加图示。 | +| 🔌 **接 Runtime** | 欢迎为新的 LLM runtime 或 persona 模板提 adapter PR —— 见 `agentsociety/custom/agents/`。 | + +## 🚀 开发环境 + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +./scripts/god.sh start +``` + +会自动装好 Python 和 Node 依赖,启动完整栈,创建 live session,先跑完第 1 步, +让控制台打开时就是已初始化的小镇。改完代码刷新即可。 + +常用命令: + +```bash +./scripts/god.sh restart # 先干净停止,再重新启动 +./scripts/god.sh new-run # 清掉 replay 数据,开一个新 session +./scripts/god.sh status # 查看端口、URL、模型状态 +./scripts/god.sh tail # 跟随日志 +./scripts/god.sh stop # 停止所有服务 +``` + +## 🌳 分支与 PR 流程 + +1. Fork 仓库,从 `main` 拉一个 topic 分支。 +2. PR 要 **小而聚焦** —— 每个 PR 只做一件事。 +3. 跑你改过部分的校验器: + + ```bash + # 改过地图包 + cd agentsociety + uv run python scripts/validate_map_package.py custom/maps/ + + # 改过 Python 服务 + cd agentsociety/packages/agentsociety2 + uv run pytest + ``` + +4. 把 PR 提到 `main`。正文里写清楚 **改了什么** 和 **为什么**。UI 改动配上截图或短视频效果更好。 +5. 耐心等等 —— reviewer 可能在另一个时区。 + +## 📝 代码风格 + +- **Python:** 4 空格缩进,必要的地方加类型注解,不要留无用 import。 + 目前没有强制统一 formatter,跟周围代码风格一致即可。 +- **TypeScript / React:** 跟周围组件风格保持一致。 +- **行宽:** 合理的地方控制在 **120 字符以内**。 +- **不使用前置声明**(项目规则)。 +- **注释** 只解释非显然的意图,不要复述代码做了什么。 +- **Commit:** 现在时、短主题(约 60 字符)、需要再加正文。 +- **文档:** 同时存在 `.md` 和 `.zh-CN.md` 的,改一个就两个都改。 + 请用地道的中英文,不要直译。 + +## 🗺️ 提交新地图包 · 检查表 + +- [ ] 目录名 `agentsociety/custom/maps//` +- [ ] 含 `map.yaml`、`README.md`、`ATTRIBUTION.md` +- [ ] Tiled JSON 包含 `Collisions` 层 +- [ ] 所有图块素材路径都落在地图包内 +- [ ] `uv run python scripts/validate_map_package.py custom/maps/` 通过 +- [ ] PR 正文至少附一张截图 + +## 🧪 提交新实验 · 检查表 + +- [ ] 目录在 `agentsociety/quick_experiments///` +- [ ] `README.md`(英文)+ `README.zh-CN.md`(中文) +- [ ] `init/init_config.json` + `init/steps.yaml` +- [ ] `run.sh` 能用 AgentSociety CLI 拉起实验 +- [ ] 如果有操作员脚本,补一份手动运行说明(参考 PKU Trump 实验的模式) + +## 📜 License + +向 GOD 贡献内容,即表示你同意按 [Apache License 2.0](LICENSE) 授权你的贡献。 +集成的上游代码(`agentsociety/`、`jiuwenclaw/`)各自保留了它们的 LICENSE / NOTICE, +对应子树仍受其约束。 + +## 🛡️ 友善些 + +GOD 是一个小型开源项目。请保持耐心、具体描述,给出你也愿意收到的那种反馈。 +我们要做的是一座由 Agent 组成的小镇 —— 也希望围绕它,慢慢长出一个温暖的小社区。 + +--- + +

谢谢你让 GOD 变得更好。⭐

diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..84c222d --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2026 GOD project authors + + 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/QUICKSTART.md b/QUICKSTART.md new file mode 100644 index 0000000..b988134 --- /dev/null +++ b/QUICKSTART.md @@ -0,0 +1,131 @@ +# GOD Quick Start + +The shortest path from a clean machine to the setup wizard and then a live GOD control room. + +> Chinese version: [QUICKSTART.zh-CN.md](QUICKSTART.zh-CN.md) + +--- + +## 1. Prerequisites + +You will need: + +- macOS/Linux: Python 3.11+, Node.js & `npm`, [`uv`](https://docs.astral.sh/uv/), and `screen` +- Windows: PowerShell 5.1+ and `winget`; the startup script installs missing Git, Node.js LTS/npm, and `uv` + +macOS: + +```bash +brew install python node uv screen +``` + +If `git clone` is not available on Windows yet, install Git first with `winget install --id Git.Git -e --accept-package-agreements --accept-source-agreements` or download the repository ZIP. + +## 2. Clone + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +``` + +## 3. Start + +macOS/Linux: + +```bash +./scripts/god.sh start +``` + +Windows PowerShell: + +```powershell +.\scripts\god.cmd start +``` + +`start` is the normal one-command path. It is idempotent, so running it again reuses services that are already up. + +On first run, GOD will: + +1. Create `.env` from `.env.example`. +2. Install Python + Node dependencies. +3. Start the setup backend/control room. +4. Open the browser setup wizard at `/setup`. +5. Wait for you to save model settings and choose an experiment. +6. Bring up the full stack for that current experiment, create a live session, run the first step, and open the control room. + +

+ GOD setup wizard +

+ + +In the wizard you can choose one of three paths: + +- **Open GOD Town** launches the built-in The Ville baseline. +- **Open PKU Trump Visit** launches the built-in PKU campus experiment. +- **Create Custom Experiment** lets you describe a scenario, generate an editable experiment draft, adjust agents/steps, and then click **Save and Launch**. + +Three settings are required: + +| Variable | Example | +| --- | --- | +| `GOD_LLM_API_KEY` | `sk-...` | +| `GOD_LLM_API_BASE` | `https://api.openai.com/v1` | +| `GOD_LLM_MODEL` | `gpt-5.4` | + +Any OpenAI-compatible endpoint works. The API key is saved only in local `.env`; the browser only receives redacted status. Experiment selection is saved separately in `.god/current_experiment.json`, so `.env` does not control which map or experiment starts. + +To switch between built-in experiments or create another experiment later, run: + +```bash +./scripts/god.sh configure +``` + +## 4. Open the control room + +When startup finishes, the script opens the control room for the current experiment and prints a URL like: + +```text +http://127.0.0.1:5174/pixel-replay/god_town/1 +``` + +If the browser did not open automatically, open that URL. You should see the pixel town, the resident roster, step controls, and the live console. + +## 5. Verify + +```bash +./scripts/god.sh status +``` + +You should see every service marked `up`. + +## 6. Restart or run fresh + +Use `restart` when you want a clean process restart without wiping the current run: + +```bash +./scripts/god.sh restart +``` + +Use `new-run` when the UI shows old replay data or you want a fresh live session: + +```bash +./scripts/god.sh new-run +``` + +`new-run` prints the current experiment run directory, stops services, wipes only that current run state, and starts a clean live session. + +## 7. Day-to-day commands + +```bash +./scripts/god.sh start # idempotent; reuses running services +./scripts/god.sh setup # install/check dependencies only +./scripts/god.sh configure # switch built-in experiments or create a custom one +./scripts/god.sh restart # stop everything cleanly, then start again +./scripts/god.sh new-run # wipe the current experiment run and start fresh +./scripts/god.sh status # print URLs, ports, and model status +./scripts/god.sh stop # stop everything +./scripts/god.sh tail # follow logs +./scripts/god.sh open # open the frontend pages in the browser +``` + +On Windows, replace `./scripts/god.sh` with `.\scripts\god.cmd`. diff --git a/QUICKSTART.zh-CN.md b/QUICKSTART.zh-CN.md new file mode 100644 index 0000000..f052515 --- /dev/null +++ b/QUICKSTART.zh-CN.md @@ -0,0 +1,131 @@ +# GOD 快速开始 + +从一台干净机器进入配置向导,再跑到 GOD 控制台所需的最短路径。 + +> English: [QUICKSTART.md](QUICKSTART.md) + +--- + +## 1. 前置依赖 + +需要安装: + +- macOS/Linux:Python 3.11+、Node.js 与 `npm`、[`uv`](https://docs.astral.sh/uv/) 和 `screen` +- Windows:PowerShell 5.1+ 和 `winget`;启动脚本会补齐缺失的 Git、Node.js LTS/npm 与 `uv` + +macOS: + +```bash +brew install python node uv screen +``` + +Windows 如果还不能执行 `git clone`,先运行 `winget install --id Git.Git -e --accept-package-agreements --accept-source-agreements` 安装 Git,或直接下载仓库 ZIP。 + +## 2. 克隆 + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +``` + +## 3. 启动 + +macOS/Linux: + +```bash +./scripts/god.sh start +``` + +Windows PowerShell: + +```powershell +.\scripts\god.cmd start +``` + +`start` 是日常使用的一键入口;它可以重复执行,已经运行的服务会被复用。 + +第一次运行会自动完成: + +1. 从 `.env.example` 创建 `.env`。 +2. 安装 Python 和 Node 依赖。 +3. 启动 setup 模式的后端/控制台。 +4. 在浏览器打开 `/setup` 配置向导。 +5. 等你保存模型配置,并选择要打开的实验。 +6. 为这个当前实验启动完整栈,创建 live session,先跑完第 1 步,并打开控制台。 + +

+ GOD 实验配置向导 +

+ + +向导里有三条路径: + +- **打开 GOD Town**:直接启动内置 The Ville 小镇实验。 +- **打开 PKU Trump Visit**:直接启动内置北大校园实验。 +- **新建自定义实验**:填写场景,生成可编辑实验草案,调整 agent/steps,最后点击 **保存并启动**。 + +必需的三个配置: + +| 变量 | 示例 | +| :-- | :-- | +| `GOD_LLM_API_KEY` | `sk-...` | +| `GOD_LLM_API_BASE` | `https://api.openai.com/v1` | +| `GOD_LLM_MODEL` | `gpt-5.4` | + +任意 OpenAI 兼容接口都可以。API key 只保存在本地 `.env`;浏览器只会拿到脱敏后的状态。实验选择单独保存在 `.god/current_experiment.json`,所以 `.env` 不再控制启动哪个实验或哪张地图。 + +之后如果想切换两个内置实验,或创建另一个实验,运行: + +```bash +./scripts/god.sh configure +``` + +## 4. 打开控制台 + +启动完成后,脚本会自动打开当前实验的控制台,并打印类似这样的 URL: + +```text +http://127.0.0.1:5174/pixel-replay/god_town/1 +``` + +如果浏览器没有自动打开,手动打开这个 URL。你应该能看到像素小镇、居民列表、step 控制条和实时控制台。 + +## 5. 验证 + +```bash +./scripts/god.sh status +``` + +所有服务都应显示 `up`。 + +## 6. 重启或重新开跑 + +如果只是想干净重启进程,但保留当前 run: + +```bash +./scripts/god.sh restart +``` + +如果 UI 里还显示旧的 replay 数据,或你想开一个全新的 live session: + +```bash +./scripts/god.sh new-run +``` + +`new-run` 会先打印当前实验的 run 目录,停止服务,只清掉当前实验的 replay/run 状态,并开一个干净的 live session。 + +## 7. 日常命令 + +```bash +./scripts/god.sh start # 可重复执行;已运行的服务会被复用 +./scripts/god.sh setup # 只安装/检查依赖 +./scripts/god.sh configure # 切换内置实验,或创建自定义实验 +./scripts/god.sh restart # 先干净停止,再重新启动 +./scripts/god.sh new-run # 清空当前实验 run,并开一个新 session +./scripts/god.sh status # 查看 URL、端口和模型状态 +./scripts/god.sh stop # 停止所有服务 +./scripts/god.sh tail # 跟随日志 +./scripts/god.sh open # 在浏览器里打开前端页面 +``` + +Windows 下把 `./scripts/god.sh` 替换成 `.\scripts\god.cmd` 即可。 diff --git a/README.md b/README.md new file mode 100644 index 0000000..f0bec28 --- /dev/null +++ b/README.md @@ -0,0 +1,393 @@ +

+ GOD logo +  GOD · Govern · Observe · Direct +

+ +

+ GOD — Govern · Observe · Direct +

+

+ 🌩️ Be like a god to a town of agents.
+ Pause time. Whisper to a soul. Bend the next step. Reset the world — all from a single click. +

+ +

+ ▶ Try browser replay +  ·  no install, no API key  ·  + Run locally +

+ +

+ 🌐 Live Demo · + 🚀 Quick Start · + Updates · + Roadmap · + Highlights · + Features · + Built-in Experiments · + Public Site · + Developer Docs · + Contributing · + 🌏 中文 +

+ +

+ + Release + + + Live replay + + Python + React + Vite + No-Code Setup + License + PRs welcome +

+ +--- + +> Most agent-society demos let you watch a simulation play out. GOD gives you the controls. +> +> Replay a run, question any resident, change what happens next, and export a pack others can rerun, all from one screen. +> It is built for inspecting language-agent societies, not for claiming they are socially realistic. + +## 🗓️ Updates + +- **2026-06-11 · [v0.2.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.2.0):** public site with browser replays; + Experiment / Map / Agent pack hubs and ZIP import-export; Windows launcher; hardened first-run startup. + ([#64](https://github.com/XiaoLuoLYG/GOD/pull/64) [#65](https://github.com/XiaoLuoLYG/GOD/pull/65)) +- **2026-06-06 · Site & packs:** rebuilt public site and frontend; site packs delivered through release assets; map pack preview pages. ([#61](https://github.com/XiaoLuoLYG/GOD/pull/61) [#62](https://github.com/XiaoLuoLYG/GOD/pull/62) [#63](https://github.com/XiaoLuoLYG/GOD/pull/63)) +- **2026-06-01 · Portable packs:** unified ExperimentPack downloads; GOD package import/export; curated experiment library. + ([#57](https://github.com/XiaoLuoLYG/GOD/pull/57) [#59](https://github.com/XiaoLuoLYG/GOD/pull/59) [#60](https://github.com/XiaoLuoLYG/GOD/pull/60)) +- **2026-05-30 · Windows launcher & hubs:** `god.cmd start` matches the macOS/Linux flow; AgentPack hubs and public replay exports; parallel JiuwenClaw requests. ([#45](https://github.com/XiaoLuoLYG/GOD/pull/45) [#49](https://github.com/XiaoLuoLYG/GOD/pull/49) [#50](https://github.com/XiaoLuoLYG/GOD/pull/50)) +- **2026-05 · Operator studios:** bilingual control room, map-first `/ask` + `/intervene` rail, + Agent Studio, Map Studio, unified skill runtime.([#26](https://github.com/XiaoLuoLYG/GOD/pull/26) to [#31](https://github.com/XiaoLuoLYG/GOD/pull/31)) +- **2026-05-21 · [v0.1.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.1.0):** first tagged release with two built-in experiments and the PKU campus map. ([#21](https://github.com/XiaoLuoLYG/GOD/pull/21) [#24](https://github.com/XiaoLuoLYG/GOD/pull/24)) + +## ✨ Highlights + + + + + + + + + +
⏯️
Pause time
Stop, scrub, fast-forward, auto-play any live step.
💬
Ask anyone
Ask one resident, a group, or the whole town, mid-run.
🎛️
Steer the next step
Inject instructions and inspect how agents respond.
🪄
No-code setup
Configure model, scenario and agents from a browser wizard.
🔄
Reset run state
One command wipes a stale run and re-seeds a clean world.
+ +## 🖼️ Screenshots + +

+ GOD control room +

+ +

Live control room: PKU map, step controls, targeted ask, and resident roster in one view.

+ +## 🌐 Live Demo + +Browse everything in your browser on the [**public site**](https://xiaoluolyg.github.io/GOD/): curated replays, map packs, agent packs, and downloadable experiments. No install or API key needed. + +

+ + GOD public site + +   + + GOD map packs + +   + + GOD agent packs + +

+ +

Left to right: the public site homepage, downloadable map packs, and downloadable agent packs.

+ +## 🚀 Quick Start + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +./scripts/god.sh start +``` + +Windows PowerShell: from the repo root, run `.\scripts\god.cmd start`. + +On the first run the script installs everything, opens a **browser-based setup wizard**, and waits for you to finish. You never have to edit `.env` or pass command-line flags by hand. + +

+ GOD setup wizard +

+ +

The Setup Wizard: model config, experiment choice, and custom society creation in one browser flow.

+ + + + + + + + + + +
🔌
1. Model
Paste an OpenAI-compatible API key, base URL, and model name.
🧭
2. Choose
Open GOD Town, open PKU Trump Visit, or create your own.
🧪
3. Scenario
Describe your world: date, weather, vibes, rules.
🤖
4. Generate
The GOD agent drafts agent profiles and a step plan.
✏️
5. Edit
Tweak personalities, relationships, locations, or steps.
▶️
6. Launch
Publish the experiment and step into the control room.
+ +Any OpenAI-compatible endpoint works. When the wizard hands off, the script prints a URL like: + +```text +http://127.0.0.1:5174/pixel-replay/god_town/1 +``` + +Full walkthrough: **[Quickstart →](QUICKSTART.md)** + +## 🧩 Features + +| | Feature | What you get | +| --- | --- | --- | +| 🎬 | **Replay control** | Scrub a live or recorded replay by step. Pause, jump, auto-play. | +| 💬 | **Targeted ask** | Send a natural-language question to one agent, a group, or the whole town. | +| 🎛️ | **Real-time intervention** | Inject instructions into the *next* step; agents read them on their next turn. | +| ⌨️ | **Command composer** | Type `/ask` or `/intervene`, use `@Name #id` completions, and send operator commands without leaving the map. | +| 🪄 | **No-code setup wizard** | Browser-based: configure model + scenario, let GOD generate agents and steps, edit, then launch. | +| 🧬 | **Agent Studio** | Add or edit residents through a map-aware wizard for seed, identity, appearance, personality, routine, and review. | +| 🧭 | **Map Studio** | Generate or upload a map draft, calibrate locations and collisions, validate it, then publish it as a local map package. | +| 🧼 | **One-command reset** | Wipe replay data and seed a clean society without leaving the terminal. | +| 🗺️ | **Pixel town world** | A live tiled map: locations, actions, messages, statuses, all replay-friendly per step. | +| 🧱 | **Single current experiment** | `.env` stores local model/port settings; `.god/current_experiment.json` stores the one active experiment. | +| 🌐 | **Browser replays** | Curated replays on GitHub Pages, no local setup or API key required. | +| 📦 | **Pack library** | Import and export Experiment, Map, and Agent packs; browse more on the public site. | +| 🪟 | **Windows launcher** | `god.cmd start` on PowerShell, the same one-command flow as macOS/Linux. | + +## 🛣️ Roadmap + +### ✅ Completed + +- [x] 🗺️ **Pluggable map packages**: drop a folder under `agentsociety/custom/maps//`, refresh the wizard, and a new world is selectable. Auto-discovered, validated, hot-swappable. See [`docs/MAP_PACKAGES.md`](docs/MAP_PACKAGES.md). +- [x] 🏫 **PKU campus map**: the PKU map package is bundled as a first-class map alongside The Ville. +- [x] 🪄 **No-code setup wizard**: browser flow for model setup, built-in experiment choice, custom experiment generation/editing, and launch. +- [x] 🧪 **Scripted experiments**: reproducible experiments ship as plain folders under `quick_experiments///`; choosing or publishing one makes it the current experiment. +- [x] 🎮 **Control Room command rail**: replay controls, resident roster, live console, targeted Ask, and Intervene now live in one map-first operator surface. +- [x] 🧬 **Agent Studio v1**: map-aware add/edit flow with structured profile metadata, ID validation, setup integration, and sprite generation support. +- [x] 🧭 **Map Studio v1**: prompt/reference-image map draft generation, anchor and collision calibration, package validation, publishing, and Setup handoff. +- [x] 🌏 **Bilingual runtime UI**: English/Chinese UI and runtime-owned labels for setup, replay, maps, statuses, actions, and system events. +- [x] 🔌 **Agent skill-runtime path**: the shipped JiuwenClaw agent adapter now uses the AgentSociety skill runtime as the canonical execution path. +- [x] 🌐 **Public site & browser replays**: GitHub Pages hosts curated replays, map packs, agent packs, and downloadable experiments, with no local setup or API key. +- [x] 📦 **Portable packs & import/export**: Experiment, Map, and Agent packs with ZIP import/export, delivered through release assets. +- [x] 🪟 **Windows one-key launcher**: `god.cmd start` mirrors the one-command macOS/Linux flow. + +### 🛣️ Not Yet Done + +- [ ] 🤖 **Pluggable agent runtimes**: swap LLM runtimes and persona templates as cleanly as we now swap maps. +- [ ] 🧪 **Multi-experiment orchestration**: run experiments, control groups, repeats, and ablations side by side. +- [ ] 🗺️ **Live map generation**: maps that evolve with events, repairs, blockages, and crowds. +- [ ] 🌦️ **Event-responsive worlds**: weather, accidents, festivals, rumors, and shortages that change agent behavior over time. +- [ ] 🌐 **Large-scale simulation**: AgentSociety batching, sharded runs, sampled replay, and performance-minded replay summaries. +- [ ] 📊 **Experiment evaluation**: cross-run metrics, behavior diffs, intervention effect analysis. +- [ ] 📝 **Operator workflow**: per-step notes, tags, bookmarks, key-event summaries. +- [ ] 🌍 **Hosted live control room**: a hosted demo where you can steer a run, not just watch replays, plus community scenario templates. + +Have an idea? [Open an issue or PR](#-contributing). + +## 🏗️ How It Works + +```mermaid +flowchart LR + O["Operator"]:::operator + UI["Control Room"]:::surface + API["Live API"]:::core + RT["Agent Runtime"]:::runtime + TOWN["Pixel Town"]:::world + CFG[["Experiment Files"]]:::data + DB[("Replay Store")]:::data + + O --> UI + UI <-->|"commands / updates"| API + API -->|"prompts"| RT + RT -->|"actions"| TOWN + TOWN -->|"frames"| DB + CFG -->|"scenario"| API + + classDef operator fill:#fff7ed,stroke:#f59e0b,color:#7c2d12,stroke-width:2px; + classDef surface fill:#eef2ff,stroke:#6366f1,color:#312e81,stroke-width:2px; + classDef core fill:#ecfeff,stroke:#0891b2,color:#164e63,stroke-width:2px; + classDef runtime fill:#f0fdf4,stroke:#22c55e,color:#14532d,stroke-width:2px; + classDef world fill:#fefce8,stroke:#ca8a04,color:#713f12,stroke-width:2px; + classDef data fill:#fdf2f8,stroke:#db2777,color:#831843,stroke-width:2px; +``` + +GOD is intentionally local-first: the control room, backend, runtime bridge, experiment files, and replay store all run on your machine. The model endpoint is the only external service you choose. + +GOD keeps three concepts separate: + +- **Experiment** is the playable setup: map, agents, scenario context, and step plan. +- **Replay** is the viewable result of an experiment after it has been played. +- **Runtime state** is local machine data such as SQLite replay stores, logs, and agent snapshots; it is not part of an ExperimentPack and should not be committed. + +| Layer | What it does | +| --- | --- | +| 🎮 **Control Room** | React/Vite browser UI: replay, ask, intervention, status. | +| ⚙️ **Backend** | Local FastAPI service exposing live and replay APIs. | +| 🗺️ **Pixel Town** | Replay-friendly social world: locations, actions, messages, agent status. | +| 🤖 **Agent Runtime** | Out-of-process LLM agents reached over a local WebSocket. | + +## ⚙️ Commands + +```bash +./scripts/god.sh start # start the full stack (idempotent) +./scripts/god.sh configure # open setup to switch defaults or create an experiment +./scripts/god.sh restart # stop everything cleanly, then start again +./scripts/god.sh new-run # wipe local runtime state for the current experiment and start fresh +./scripts/god.sh status # ports, URLs, model status +./scripts/god.sh stop # stop everything +./scripts/god.sh tail # follow logs +./scripts/god.sh open # open the frontend pages in the default browser +``` + +On Windows, replace `./scripts/god.sh` with `.\scripts\god.cmd`. + +## 🧪 Built-in Experiments + +GOD ships two built-in experiments and treats them exactly like experiments you publish yourself. The setup wizard writes the selected experiment to `.god/current_experiment.json`; `start`, `open`, and `new-run` then act only on that current experiment. + +More downloadable scenarios live on the [**public site**](https://xiaoluolyg.github.io/GOD/experiments/): Empty City Gate, Gaokao Blackout, Hogwarts Parent Meeting, and others. + +`.env` is intentionally local-only and only stores model, API, port, and similar machine settings. It no longer decides the default experiment or map, so an old `GOD_MAP_ID=pku` cannot make GOD Town load the PKU map. + + +### 🏘️ An ordinary weekday in The Ville + +A late-spring Tuesday morning at 8:20. Sunny, 18°C, light breeze. A 200-person town with **10 residents who know each other but don't live in each other's pockets**. It is a slice-of-life simulation, not a quest script. + +➡️ **Choose `god_town` in the Setup Wizard to make this the current experiment.** It is bound to `hypothesis_god_town/experiment_1` and the `the_ville` map. + +➡️ See [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.md) for the full breakdown of locations, profiles, and interactions. + +

+ The Ville map +

+ +

The Ville: all 10 residents going about a typical day across home, school, library, cafe, park, market, pharmacy, pub, and dorm.

+ + + + + + + + + + + + + + + + + +
🗺️ 10 Locations · 65 location-scoped interactions
🏠
Home
cook · sleep · tidy · read · WFH · video-call
🏫
School
attend / teach class · grade · office hours
📚
Library
read · study · research · borrow / return

Hobbs Cafe
light meal · coffee chat · cafe shift · meetup
🌳
Johnson Park
walk · meet · exercise · public announcement
🛠️
Supply Store
repair · restock · lend tools · customer service
🛒
Market
buy food · haggle · deliver · chat w/ regulars
💊
Pharmacy
buy medicine · refill · check BP · home visit prep
🍻
Pub
socialize · watch match · host small event
🛏️
Dorm
rest · self-study · common-room hangout · video call
+ + + + + + + + + + + + + + + + + +
👥 10 residents, each with a real life
🧭
Alice · 34
Neighborhood coordinator
🛠️
Bob · 45
Supply-store shopkeeper
📖
Charlie · 39
High-school history teacher
💊
Dana · 41
Pharmacy nurse

Elena · 36
Cafe owner
🎒
Farah · 16
High-school student
📮
George · 68
Retired postman
💻
Hana · 28
Remote software engineer
🦺
Ivan · 52
Public-safety volunteer
🍅
Mei · 47
Market vegetable vendor
+ +Every resident carries a full profile: age, family, housing, economic status, health, daily routine, skills, needs, worries, secrets, social network, language style, quirks, short- & long-term goals. + +### 🏫 PKU Trump Visit + +A campus public-situation experiment on a stylized PKU map. Daily routines begin around gates, classrooms, library, lake, dining hall, dormitory, and Centennial Hall, then a high-attention visit event tests how residents notice, ask, gather, and react. + +➡️ **Choose `pku_trump_visit` in the Setup Wizard to make this the current experiment.** It is bound to `hypothesis_pku_trump_visit/experiment_1` and the `pku` map. + +➡️ See [`hypothesis_pku_trump_visit/experiment_1/`](agentsociety/quick_experiments/hypothesis_pku_trump_visit/experiment_1/README.md) for the full scenario, cast, operator notes, and replay data. + +

+ PKU campus map +

+ +

PKU campus map: gates, classrooms, library, Weiming Lake, Boya Pagoda, dining hall, dorm, and Centennial Hall, with named residents and the Trump-visit cast.

+ +## 🗺️ Pluggable Map Packages + +GOD now discovers map packages automatically from `agentsociety/custom/maps//`. To add a map, copy [`agentsociety/custom/maps/_template/`](agentsociety/custom/maps/_template/), replace `map.yaml`, `visuals/map.json`, tileset PNGs, and optional `characters/` or `location_assets/`, then run: + +```bash +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/ +``` + +The setup wizard will list valid packages without code changes. v1 supports Tiled JSON maps with PNG tilesets and a `Collisions` layer where `0` means walkable. The PKU campus package now ships in the repository at `agentsociety/custom/maps/pku/`. See [docs/MAP_PACKAGES.md](docs/MAP_PACKAGES.md) for the full package contract. + +## 🤝 Contributing + +Issues and pull requests are very welcome. To set up a dev environment: + +```bash +./scripts/god.sh start +``` + +That installs Python and Node dependencies, brings up the full stack, creates a live session, and runs the first step so the control room opens on a populated town. From there, edit and reload. + +Full guide: **[CONTRIBUTING.md →](CONTRIBUTING.md)** covers branching, the PR checklist, style, and how to ship a new map or experiment. + +## 🙌 Acknowledgements + +GOD builds on open research and open-source work. It bundles two trimmed upstream checkouts: + +- [AgentSociety](https://github.com/tsinghua-fib-lab/AgentSociety): large-scale generative-agent simulation framework. +- [JiuwenClaw](https://github.com/openJiuwen-ai/jiuwenclaw): out-of-process agent runtime. + +And takes inspiration from [Generative Agents](https://arxiv.org/abs/2304.03442) and [OASIS](https://github.com/camel-ai/oasis). + +## 📚 Citation + +```bibtex +@article{piao2025agentsociety, + title = {AgentSociety: Large-Scale Simulation of LLM-Driven Generative Agents Advances Understanding of Human Behaviors and Society}, + author = {Piao et al.}, + journal = {arXiv preprint arXiv:2502.08691}, + year = {2025} +} + +@misc{park2023generativeagents, + title = {Generative Agents: Interactive Simulacra of Human Behavior}, + author = {Joon Sung Park and Joseph C. O'Brien and Carrie J. Cai and Meredith Ringel Morris and Percy Liang and Michael S. Bernstein}, + year = {2023}, + eprint = {2304.03442}, + archivePrefix = {arXiv}, + primaryClass = {cs.HC}, + url = {https://arxiv.org/abs/2304.03442} +} +``` + +## ⭐ Star History + + + + + + Star History Chart + + + +## 📄 License + +Released under the [Apache-2.0](LICENSE) license. Upstream LICENSE and NOTICE files are kept inside the integrated runtime checkouts and apply to those subtrees. + +

If GOD is useful to you, a ⭐ helps other people find it.

diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..6c0ceb8 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`XiaoLuoLYG/GOD` +- 原始仓库:https://github.com/XiaoLuoLYG/GOD +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..4417258 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,390 @@ +

+ GOD logo +  GOD · Govern · Observe · Direct +

+ +

+ GOD — Govern · Observe · Direct +

+

+ 🌩️ 像上帝一样,俯瞰一座由 Agent 组成的小镇。
+ 暂停时间。操控环境。对某个灵魂发问。一键重置 —— 全部在一个屏幕里完成。 +

+ +

+ ▶ 浏览器回放 +  ·  无需安装、无需 API key  ·  + 本地运行 +

+ +

+ 🌐 浏览器回放 · + 🚀 快速开始 · + 更新 · + Roadmap · + 亮点 · + 核心能力 · + 内置实验 · + 公开站 · + 开发者文档 · + 参与开发 · + 🌏 English +

+ +

+ + Release + + + Live replay + + Python + React + Vite + No-Code Setup + License + PRs welcome +

+ +--- + +> 大多数 agent-society demo 只能让你看着仿真自己跑完,GOD 把控制权交回到你手里。 +> +> 在同一个屏幕里回放一次运行、向任意居民提问、改变接下来发生的事,再导出一个别人能照着复现的包。 +> 它是用来检查 language-agent society 的,不负责声称它们有多接近真实社会。 + +## 🗓️ 更新 + +- **2026-06-11 · [v0.2.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.2.0):** 公开站与浏览器回放; + Experiment / Map / Agent 包 hub 与 ZIP 导入导出;Windows 一键启动;首次启动硬化。([#64](https://github.com/XiaoLuoLYG/GOD/pull/64) [#65](https://github.com/XiaoLuoLYG/GOD/pull/65)) +- **2026-06-06 · 公开站与资源包:** 重做公开站与前端;站点资源包改走 release assets;地图包预览页。 + ([#61](https://github.com/XiaoLuoLYG/GOD/pull/61) [#62](https://github.com/XiaoLuoLYG/GOD/pull/62) [#63](https://github.com/XiaoLuoLYG/GOD/pull/63)) +- **2026-06-01 · 可移植包:** 统一 ExperimentPack 下载;GOD 包导入导出;精选实验库。([#57](https://github.com/XiaoLuoLYG/GOD/pull/57) [#59](https://github.com/XiaoLuoLYG/GOD/pull/59) [#60](https://github.com/XiaoLuoLYG/GOD/pull/60)) +- **2026-05-30 · Windows 启动器与 hub:** `god.cmd start` 对齐 macOS/Linux 流程;AgentPack hub 与公开 replay 导出;JiuwenClaw 请求并行化。([#45](https://github.com/XiaoLuoLYG/GOD/pull/45) [#49](https://github.com/XiaoLuoLYG/GOD/pull/49) [#50](https://github.com/XiaoLuoLYG/GOD/pull/50)) +- **2026-05 · 操作台与 Studio:** 双语控制台、地图优先 `/ask` + `/intervene` rail、 + Agent Studio、Map Studio、统一 skill runtime。([#26](https://github.com/XiaoLuoLYG/GOD/pull/26) 到 [#31](https://github.com/XiaoLuoLYG/GOD/pull/31)) +- **2026-05-21 · [v0.1.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.1.0):** 首个打标发布,内置两个实验和 PKU 校园地图。([#21](https://github.com/XiaoLuoLYG/GOD/pull/21) [#24](https://github.com/XiaoLuoLYG/GOD/pull/24)) + +## ✨ 亮点 + + + + + + + + + +
⏯️
暂停时间
任意 step replay、暂停、加速、自动推进。
💬
定向提问
在 live session 里向某个居民、群组或全镇发问。
🎛️
引导下一步
注入指令,并检查 Agent 后续响应。
🪄
零代码上手
浏览器配置向导:模型、剧本、Agent 一站搞定。
🔄
重置运行状态
一条命令清掉旧数据,重新生成干净的小镇状态。
+ +## 🖼️ 截图 + +

+ GOD 控制台 +

+ +

实时控制台:PKU 地图、step 控制、定向提问、居民列表全在一个界面里。

+ +## 🌐 浏览器回放 + +打开 [**公开站**](https://xiaoluolyg.github.io/GOD/zh/) 在浏览器里逛一圈:精选回放、地图包、Agent 包和可下载实验。无需安装,也不用 API key。 + +

+ + GOD 公开站 + +   + + GOD 地图包 + +   + + GOD Agent 包 + +

+ +

从左到右:公开站首页、可下载地图包、可下载 Agent 包。

+ +## 🚀 快速开始 + +```bash +git clone https://github.com/XiaoLuoLYG/GOD.git +cd GOD +./scripts/god.sh start +``` + +Windows PowerShell:进入仓库根目录后运行 `.\scripts\god.cmd start`。 + +首次启动会自动装好依赖,打开 **浏览器中的实验配置向导**,然后等你填完。你不用手改 `.env`,也不用记命令行参数。 + +

+ GOD 实验配置向导 +

+ +

实验配置向导:模型配置、默认实验选择、自建实验发布都在同一个浏览器流程里。

+ + + + + + + + + + +
🔌
1. 模型
填入 OpenAI 兼容的 API key、base URL 和模型名。
🧭
2. 选择
打开 GOD Town、打开 PKU Trump Visit,或新建实验。
🧪
3. 剧本
用自然语言描述世界:日期、天气、氛围、规则。
🤖
4. 生成
GOD agent 自动起草 agent profile 和 step 计划。
✏️
5. 编辑
调整人物性格、关系、地点、步骤。
▶️
6. 启动
发布为当前实验,直接进入控制台。
+ +任意 OpenAI 兼容接口都可以。向导收尾后,脚本会打印类似这样的地址: + +```text +http://127.0.0.1:5174/pixel-replay/god_town/1 +``` + +完整步骤见 **[快速开始 →](QUICKSTART.zh-CN.md)** + +## 🧩 核心能力 + +| | 能力 | 你得到什么 | +| --- | --- | --- | +| 🎬 | **Replay 控制** | 按 step 拖动、暂停、跳转、自动推进,live 或已记录 replay 都行。 | +| 💬 | **定向提问** | 用自然语言向某个 Agent、某组人或全镇提问。 | +| 🎛️ | **实时干预** | 给即将执行的 step 注入指令,Agent 下一回合就读得到。 | +| ⌨️ | **命令输入器** | 在地图上直接输入 `/ask` 或 `/intervene`,用 `@Name #id` 自动补全目标。 | +| 🪄 | **零代码配置向导** | 浏览器里配置模型 + 剧本,让 GOD 生成 Agent 和 step,编辑后启动。 | +| 🧬 | **Agent Studio** | 用地图感知的向导新增 / 编辑居民:seed、身份、外貌、性格、日程、review 一步步完成。 | +| 🧭 | **地图工作台** | 生成或上传地图草稿,校准地点与碰撞层,校验后发布为本地地图包。 | +| 🧼 | **一键重开** | 一条命令清掉 replay 数据,孵化一座干净的小镇。 | +| 🗺️ | **像素小镇世界** | 地点、动作、消息、状态都是结构化、replay 友好的。 | +| 🧱 | **唯一当前实验** | `.env` 只保存模型、API、端口等本机配置;`.god/current_experiment.json` 保存唯一 active 实验。 | +| 🌐 | **浏览器回放** | GitHub Pages 上的精选回放,无需本地安装或 API key。 | +| 📦 | **资源包库** | Experiment / Map / Agent 包导入导出;公开站还有更多可下载场景。 | +| 🪟 | **Windows 启动器** | PowerShell 下 `god.cmd start`,与 macOS/Linux 同样一条命令。 | + +## 🛣️ Roadmap + +### ✅ 已完成 + +- [x] 🗺️ **可拔插地图包**:把一个文件夹丢到 `agentsociety/custom/maps//`,刷新向导即出现新世界。自动发现、自动校验、热插拔。详见 [`docs/MAP_PACKAGES.zh-CN.md`](docs/MAP_PACKAGES.zh-CN.md)。 +- [x] 🏫 **PKU 校园地图**:PKU 地图包已经作为一等地图随仓库发布,和 The Ville 一起可选。 +- [x] 🪄 **零代码配置向导**:浏览器流程,模型配置、内置实验选择、自建实验生成 / 编辑 / 发布,一台空机器到真实的小镇。 +- [x] 🧪 **可复现实验**:实验以普通文件夹形式发布,位于 `quick_experiments///`。选择或发布一个实验后,它就会成为 current。 +- [x] 🎮 **控制台命令 rail**:replay 控制、居民列表、Live Console、定向 Ask 和 Intervene 都合并在一个地图优先的操作界面里。 +- [x] 🧬 **Agent Studio v1**:地图感知的新增 / 编辑 Agent 流程,包含结构化 profile metadata、ID 校验、Setup 集成和 sprite 生成支持。 +- [x] 🧭 **Map Studio v1**:prompt / 参考图生成地图草稿,锚点与碰撞层校准,地图包校验、发布,以及返回 Setup 的 handoff。 +- [x] 🌏 **双语运行时 UI**:setup、replay、地图、状态、动作和系统事件中的产品侧文本支持 English / 中文。 +- [x] 🔌 **Agent skill-runtime 路径**:随仓库发布的 JiuwenClaw adapter 现在以 AgentSociety skill runtime 作为标准执行路径。 +- [x] 🌐 **公开站与浏览器回放**:GitHub Pages 托管精选回放、地图包、Agent 包和可下载实验,无需本地安装或 API key。 +- [x] 📦 **可移植包与导入导出**:Experiment / Map / Agent 包支持 ZIP 导入导出,通过 release assets 分发。 +- [x] 🪟 **Windows 一键启动**:`god.cmd start`,与 macOS/Linux 一样一条命令。 + +### 🛣️ 未完成 / 进行中 + +- [ ] 🤖 **可拔插 Agent 运行时**:让 LLM runtime 和 persona 模板能像地图一样干净地替换。 +- [ ] 🧪 **多实验编排**:在同一个控制台里跑实验、对照组、重复试验和 ablation。 +- [ ] 🗺️ **实时地图生成**:地图随事件、修缮、阻塞、人群动态演化。 +- [ ] 🌦️ **事件响应世界**:天气、事故、节日、谣言、供应短缺影响 Agent 行为。 +- [ ] 🌐 **大规模仿真**:接入 AgentSociety 的批量 Agent、分片运行、采样 replay 和性能友好的 replay 摘要。 +- [ ] 📊 **实验评估**:跨实验指标、行为差异、干预效果分析和可分享报告。 +- [ ] 📝 **操作员工作流**:每个 step 的笔记、标签、书签、保存命令宏和关键事件摘要。 +- [ ] 🌍 **托管 live 控制台**:一个可以真正操控运行(而不只是看回放)的托管 demo,外加社区场景模板。 + +有想法?欢迎来 [issue 和 PR](#-参与开发) 聊。 + +## 🏗️ 架构 + +```mermaid +flowchart LR + O["Operator"]:::operator + UI["Control Room"]:::surface + API["Live API"]:::core + RT["Agent Runtime"]:::runtime + TOWN["Pixel Town"]:::world + CFG[["Experiment Files"]]:::data + DB[("Replay Store")]:::data + + O --> UI + UI <-->|"commands / updates"| API + API -->|"prompts"| RT + RT -->|"actions"| TOWN + TOWN -->|"frames"| DB + CFG -->|"scenario"| API + + classDef operator fill:#fff7ed,stroke:#f59e0b,color:#7c2d12,stroke-width:2px; + classDef surface fill:#eef2ff,stroke:#6366f1,color:#312e81,stroke-width:2px; + classDef core fill:#ecfeff,stroke:#0891b2,color:#164e63,stroke-width:2px; + classDef runtime fill:#f0fdf4,stroke:#22c55e,color:#14532d,stroke-width:2px; + classDef world fill:#fefce8,stroke:#ca8a04,color:#713f12,stroke-width:2px; + classDef data fill:#fdf2f8,stroke:#db2777,color:#831843,stroke-width:2px; +``` + +GOD 是 local-first:控制台、后端、runtime bridge、实验文件和 replay store 都运行在本机。唯一外部服务是你选择的模型接口。 + +GOD 把三个概念分开: + +- **Experiment** 是可玩的实验设定:地图、智能体、场景上下文和 step 计划。 +- **Replay** 是实验被运行之后可以观看的结果。 +- **本地运行状态** 是 SQLite replay store、日志、agent snapshot 等机器数据;它不属于 ExperimentPack,也不应该提交到仓库。 + +| 层 | 职责 | +| --- | --- | +| 🎮 **Control Room** | React/Vite 控制台,replay、ask、intervention、status 都在这里。 | +| ⚙️ **Backend** | 本地 FastAPI,提供 live 和 replay API。 | +| 🗺️ **Pixel Town** | 像素小镇社会状态:地点、动作、消息、Agent 状态。 | +| 🤖 **Agent Runtime** | 独立进程的 LLM Agent,通过本地 WebSocket 连接。 | + +## ⚙️ 常用命令 + +```bash +./scripts/god.sh start # 启动完整栈(可重复执行) +./scripts/god.sh configure # 打开配置向导,切换默认实验或新建实验 +./scripts/god.sh restart # 先干净停止,再重新启动 +./scripts/god.sh new-run # 清空当前实验的本地运行状态,并开一个新的 session +./scripts/god.sh status # 查看端口、URL、模型状态 +./scripts/god.sh stop # 停止所有服务 +./scripts/god.sh tail # 跟随日志 +./scripts/god.sh open # 在浏览器里打开前端页面 +``` + +Windows 下把 `./scripts/god.sh` 替换成 `.\scripts\god.cmd` 即可。 + +## 🧪 内置实验 + +GOD 现在内置两个默认实验,并且和你自己发布的实验使用同一套 current model。配置向导会把你选择的实验写到 `.god/current_experiment.json`;之后 `start`、`open`、`new-run` 都只作用于这个当前实验。 + +[**公开站**](https://xiaoluolyg.github.io/GOD/zh/experiments/) 上还有更多可下载场景,比如空城计、高考停电、霍格沃茨家长会。 + +`.env` 只保存本机模型、API、端口等配置,不再决定默认实验或地图。因此即使旧 `.env` 里残留 `GOD_MAP_ID=pku`,选择 GOD Town 时仍然会使用 `the_ville` 地图,不会串台。 + + +### 🏘️ The Ville 的一个普通工作日 + +晚春的工作日清晨 8:20,晴朗微风,气温 18°C。一座 200 多人的小镇,**10 位常住居民彼此熟识但各过各的生活**。它是一段日常生活切片,不是任务驱动的剧本。 + +➡️ **在配置向导选择 `god_town` 即可把它设为当前实验。** 它固定绑定 `hypothesis_god_town/experiment_1` 和 `the_ville` 地图。 + +➡️ 完整的地点 / 居民 / 交互拆解见 [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.md)。 + +

+ The Ville 地图 +

+ +

The Ville 地图:10 位居民在家、学校、图书馆、咖啡馆、公园、市场、药房、酒馆、宿舍之间度过普通一天。

+ + + + + + + + + + + + + + + + + +
🗺️ 10 个地点 · 65 个 location-scoped 交互
🏠

做饭 · 睡觉 · 整理 · 阅读 · 居家办公 · 视频家人
🏫
学校
上课 / 教书 · 批改 · 课后答疑
📚
图书馆
阅读 · 学习 · 查资料 · 借还书

Hobbs Cafe
简餐 · 咖啡聊天 · 值班 · 随性碰头
🌳
Johnson Park
散步 · 见友 · 晨练 · 公共播报
🛠️
供给店
修理 · 上货 · 借工具 · 顾客接待
🛒
市场
买食物 · 议价 · 送单 · 和老客闲聊
💊
药房
买药 · 续方 · 量血压 · 上门准备
🍻
酒馆
社交 · 看比赛 · 主持小活动
🛏️
宿舍
休息 · 自习 · 公共区休闲 · 视频家里
+ + + + + + + + + + + + + + + + + +
👥 10 位居民,每个人都有真实生活
🧭
Alice · 34
社区协调员
🛠️
Bob · 45
市场五金店主
📖
Charlie · 39
中学历史老师
💊
Dana · 41
社区药房护理员

Elena · 36
咖啡馆老板
🎒
Farah · 16
高中学生
📮
George · 68
退休邮递员
💻
Hana · 28
远程软件工程师
🦺
Ivan · 52
社区安全志愿者
🍅
Mei · 47
市场蔬果摊主
+ +每位居民都有完整 profile:年龄、家庭、住房、经济状况、健康、日常作息、技能、需求、担忧、秘密、社交圈、语言风格、小怪癖、短期/长期目标。 + +### 🏫 PKU Trump Visit + +这是一个发生在风格化北大校园地图上的公共事件实验。Agent 会先在校门、教学楼、图书馆、未名湖、食堂、宿舍、百周年纪念讲堂等地点开始日常行动,然后在一次高关注访问事件中表现出注意、询问、聚集和讨论。 + +➡️ **在配置向导选择 `pku_trump_visit` 即可把它设为当前实验。** 它固定绑定 `hypothesis_pku_trump_visit/experiment_1` 和 `pku` 地图。 + +➡️ 完整场景、角色、操作脚本和 replay 数据见 [`hypothesis_pku_trump_visit/experiment_1/`](agentsociety/quick_experiments/hypothesis_pku_trump_visit/experiment_1/README.md)。 + +

+ PKU 校园地图 +

+ +

PKU 校园地图:校门、教学楼、图书馆、未名湖、博雅塔、食堂、宿舍、百周年纪念讲堂,以及 PKU Trump Visit 的角色阵容。

+ +## 🗺️ 可拔插地图包 + +GOD 会自动从 `agentsociety/custom/maps//` 发现地图包。想加一张新地图?复制 [`agentsociety/custom/maps/_template/`](agentsociety/custom/maps/_template/README.zh-CN.md),替换 `map.yaml`、`visuals/map.json`、tileset PNG,以及可选的 `characters/` 和 `location_assets/`,然后跑: + +```bash +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/ +``` + +配置向导会自动列出所有合法的地图包,完全不用改代码。v1 支持带 PNG tileset 的 Tiled JSON 地图,并要求一个 `Collisions` 层(`0` 表示可走)。PKU 校园地图包现在已经随仓库发布,路径是 `agentsociety/custom/maps/pku/`。完整契约见 [docs/MAP_PACKAGES.zh-CN.md](docs/MAP_PACKAGES.zh-CN.md)。 + +## 🤝 参与开发 + +```bash +./scripts/god.sh start +``` + +会自动装好 Python、Node 依赖,启动完整栈,创建 live session,并先跑完第 1 步,让控制台打开时就是已初始化的小镇。改完代码刷新即可。 + +完整指南见 **[CONTRIBUTING.zh-CN.md →](CONTRIBUTING.zh-CN.md)**:分支策略、PR 检查表、代码风格,以及怎么提交一张新地图或新实验。 + +## 🙌 致谢 + +GOD 构建在开源研究和开源代码之上。仓库内集成了两份精简过的上游代码: + +- [AgentSociety](https://github.com/tsinghua-fib-lab/AgentSociety):大规模 generative-agent 模拟框架。 +- [JiuwenClaw](https://github.com/openJiuwen-ai/jiuwenclaw):进程外 Agent runtime。 + +同时受 [Generative Agents](https://arxiv.org/abs/2304.03442) 与 [OASIS](https://github.com/camel-ai/oasis) 启发。 + +## 📚 引用 + +```bibtex +@article{piao2025agentsociety, + title = {AgentSociety: Large-Scale Simulation of LLM-Driven Generative Agents Advances Understanding of Human Behaviors and Society}, + author = {Piao et al.}, + journal = {arXiv preprint arXiv:2502.08691}, + year = {2025} +} + +@misc{park2023generativeagents, + title = {Generative Agents: Interactive Simulacra of Human Behavior}, + author = {Joon Sung Park and Joseph C. O'Brien and Carrie J. Cai and Meredith Ringel Morris and Percy Liang and Michael S. Bernstein}, + year = {2023}, + eprint = {2304.03442}, + archivePrefix = {arXiv}, + primaryClass = {cs.HC}, + url = {https://arxiv.org/abs/2304.03442} +} +``` + +## ⭐ Star History + + + + + + Star History Chart + + + +## 📄 License + +[Apache-2.0](LICENSE)。集成的上游代码各自保留了它们的 LICENSE / NOTICE,对应子树仍受其约束。 + +

如果 GOD 对你有用,点个 ⭐ 能帮更多人找到它。

diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..b395210 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,31 @@ +# Security Policy + +GOD is an open-source research and product prototype for running, observing, and steering agent societies. Because local experiments can involve model API keys, generated profiles, logs, replay databases, and user-authored scenario data, please report security concerns privately. + +## Supported Versions + +Security fixes are handled on the default branch, `main`. Older local clones, experiment snapshots, and unpublished branches are not separately supported. + +## Reporting a Vulnerability + +Please do not open a public issue for suspected vulnerabilities. Use GitHub's private vulnerability reporting flow instead: + +https://github.com/XiaoLuoLYG/GOD/security/advisories/new + +Include as much of the following as you can: + +- The affected commit, branch, or release. +- A clear description of the vulnerability and the impacted component. +- Minimal reproduction steps or a proof of concept. +- Whether any secrets, private data, logs, replay databases, or model-provider credentials may be exposed. +- Any suggested mitigation, if you already have one. + +## Handling Expectations + +The maintainers will review incoming reports, ask for clarification when needed, and coordinate a fix or mitigation before public disclosure when the issue is confirmed. Please avoid destructive testing, accessing data that is not yours, or sharing exploit details publicly before the maintainers have had a chance to respond. + +## Secrets and Local Data + +If you accidentally commit or publish an API key, token, credential, private dataset, or local runtime artifact, revoke or rotate the credential first. Then open a private report if the exposure affects this repository or its users. + +Runtime outputs such as `.god/`, `.live/`, generated experiment folders, replay databases, logs, and local `.env` files should stay out of normal pull requests unless they are intentionally sanitized sample assets. diff --git a/agentsociety/.env.example b/agentsociety/.env.example new file mode 100644 index 0000000..1324c8f --- /dev/null +++ b/agentsociety/.env.example @@ -0,0 +1,67 @@ +# ============================================================ +# LLM 配置(必需) +# ============================================================ +# 默认大语言模型配置,作为所有其他 LLM 配置的回退选项 +AGENTSOCIETY_LLM_API_KEY=your_api_key +AGENTSOCIETY_LLM_API_BASE=https://api.openai.com/v1 +AGENTSOCIETY_LLM_MODEL=gpt-5.4 + +# ============================================================ +# Coder LLM 配置(可选) +# ============================================================ +# 用于代码生成的专用模型,如未设置则回退到默认 LLM 配置 +AGENTSOCIETY_CODER_LLM_API_KEY=your_coder_api_key +AGENTSOCIETY_CODER_LLM_API_BASE=https://api.openai.com/v1 +AGENTSOCIETY_CODER_LLM_MODEL=gpt-5.4 + +# ============================================================ +# Nano LLM 配置(可选) +# ============================================================ +# 用于高频操作的轻量级模型,如未设置则回退到默认 LLM 配置 +AGENTSOCIETY_NANO_LLM_API_KEY=your_nano_api_key +AGENTSOCIETY_NANO_LLM_API_BASE=https://api.openai.com/v1 +AGENTSOCIETY_NANO_LLM_MODEL=gpt-5.4-nano + +# ============================================================ +# Analysis LLM 配置(可选) +# ============================================================ +# 用于数据分析、洞察生成和报告撰写,建议使用推理能力强的模型 +AGENTSOCIETY_ANALYSIS_LLM_API_KEY=your_analysis_api_key +AGENTSOCIETY_ANALYSIS_LLM_API_BASE=https://api.openai.com/v1 +AGENTSOCIETY_ANALYSIS_LLM_MODEL=gpt-5.4 + +# ============================================================ +# Embedding 模型配置(可选) +# ============================================================ +# 文本嵌入模型,用于向量化文本,如未设置则回退到默认 LLM 配置 +AGENTSOCIETY_EMBEDDING_API_KEY=your_embedding_api_key +AGENTSOCIETY_EMBEDDING_API_BASE=https://api.openai.com/v1 +AGENTSOCIETY_EMBEDDING_MODEL=text-embedding-3-large +AGENTSOCIETY_EMBEDDING_DIMS=1024 + +# ============================================================ +# 后端服务配置 +# ============================================================ +BACKEND_HOST=0.0.0.0 +BACKEND_PORT=8001 + +# ============================================================ +# 工作区路径 +# ============================================================ +# 自定义模块的工作区根目录(custom/ 文件夹所在位置) +WORKSPACE_PATH=/path/to/workspace + +# ============================================================ +# 外部 API 配置 +# ============================================================ + +# 学术文献检索服务 +LITERATURE_SEARCH_API_URL=http://localhost:8008/api/search +LITERATURE_SEARCH_API_KEY=lit-your-api-key-here + +# 网络搜索服务(用于 miro_web_research 工具) +WEB_SEARCH_API_URL=http://localhost:8003/mcp +WEB_SEARCH_API_TOKEN=your_web_search_api_bearer_token + +# 论文生成服务(部署自 https://github.com/tsinghua-fib-lab/EasyPaper) +EASYPAPER_API_URL=http://localhost:8004 diff --git a/agentsociety/LICENSE b/agentsociety/LICENSE new file mode 100644 index 0000000..9232063 --- /dev/null +++ b/agentsociety/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2025] [FIB LAB, Tsinghua University] + + 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/agentsociety/custom/agents/jiuwenclaw_agent.py b/agentsociety/custom/agents/jiuwenclaw_agent.py new file mode 100644 index 0000000..413ee1d --- /dev/null +++ b/agentsociety/custom/agents/jiuwenclaw_agent.py @@ -0,0 +1,1885 @@ +"""AgentSociety2 custom agent backed by a JiuwenClaw AgentServer. + +JiuwenClaw runs as a separate process. This adapter only speaks the +AgentServer WebSocket protocol shape that JiuwenClaw already accepts, so the +AgentSociety runtime does not need to import JiuwenClaw or openjiuwen. +""" + +from __future__ import annotations + +import asyncio +import json +import logging +import os +import re +import time +import uuid +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, ClassVar +from urllib.parse import urlsplit + +from agentsociety2.agent.base import AgentBase +from agentsociety2.agent.skills import SkillRegistry +from agentsociety2.agent.skills.runtime import AgentSkillRuntime + + +DEFAULT_JIUWENCLAW_WS_URL = "ws://127.0.0.1:18092" +DEFAULT_CHANNEL_ID = "agentsociety" +DEFAULT_MODE = "agent.plan" +DEFAULT_JIUWENCLAW_REQUEST_CONCURRENCY = 24 +JIUWENCLAW_REQUEST_CONCURRENCY_ENV = "AGENTSOCIETY_JIUWENCLAW_REQUEST_CONCURRENCY" +logger = logging.getLogger(__name__) +DEFAULT_COMMON_SKILLS = [ + "routine.daily", + "social.reply", + "memory.record", + "map.navigate", + "safety.respond", +] +SKILL_CHINESE_LABELS = { + "care.basic": "基础关怀", + "chronic.followup": "健康随访", + "class.learn": "课堂学习", + "class.organize": "课堂组织", + "community.coordinate": "社区协调", + "community.observe": "社区观察", + "computer.basic": "基础电脑处理", + "computer.repair": "电脑维修", + "conflict.mediate": "矛盾调解", + "cooking.lightmeal": "简餐准备", + "crowd.guide": "人群引导", + "emotion.calm": "情绪安抚", + "first_aid.basic": "基础急救", + "garden.basic": "庭院照料", + "gossip.filter": "消息甄别", + "health.educate": "健康说明", + "history.localtelling": "本地故事讲述", + "info.research": "信息查证", + "ingredient.advise": "食材建议", + "inventory.count": "库存清点", + "ledger.basic": "账目记录", + "library.curate": "图书整理", + "listen.relay": "倾听转达", + "map.navigate": "地图导航", + "memory.record": "记忆记录", + "messaging.group": "群组通知", + "neighbor.greet": "邻里问候", + "neighbor.support": "邻里支持", + "notice.write": "公告撰写", + "patrol.plan": "巡查规划", + "peer.communicate": "同伴沟通", + "phone.photolog": "手机记录", + "price.negotiate": "价格协商", + "privacy.protect": "隐私保护", + "radio.comms": "无线电沟通", + "record.shortnote": "短笔记记录", + "remote.communicate": "远程沟通", + "repair.basic": "基础维修", + "roster.verify": "名单核对", + "route.localmap": "本地路线判断", + "route.recall": "路线回忆", + "routine.daily": "日常安排", + "safety.respond": "安全响应", + "script.automate": "脚本自动化", + "shop.run": "店铺经营", + "sketch.draw": "速写记录", + "social.matchmake": "牵线介绍", + "social.reply": "社交回复", + "stall.run": "摊位经营", + "story.localpast": "本地旧事讲述", + "tools.repair": "工具维修", + "vegetable.source": "蔬菜采购", + "writing.feedback": "写作反馈", + "writing.hand": "手写记录", + "youth.communicate": "青少年沟通", +} +STATUS_LABELS = { + "active": "活跃", + "available": "可交流", + "calm": "平静", + "caring": "照护中", + "content": "满足", + "coordinating": "协调中", + "eating": "用餐中", + "focused": "专注", + "moving": "移动中", + "peaceful": "安稳", + "ready": "就绪", + "resting": "休息中", + "socializing": "社交中", + "starting_day": "开始一天", + "studying": "学习中", + "teaching": "授课中", + "tired": "疲惫", + "warm": "温和", + "winding_down": "放松中", + "working": "工作中", +} +CHINESE_OUTPUT_POLICY = ( + "语言硬性规则:除 JSON 键名、action_type 枚举、location_id、interaction_id、" + "skill_id、session_id、URL 等机器标识符外,所有会被人看到的自然语言都必须使用" + "简体中文。public_summary、environment_instruction、action_proposal.content、" + "action、status、emotion、reason、事件、通知、记忆内容和对话内容都不能出现英文句子或英文词组;" + "智能体姓名可以保留英文。" +) +SKILL_RESULT_SCHEMA_VERSION = "agent_skill_result.v1" +URGENT_INTERVENTION_KEYWORDS = ( + "火山", + "爆发", + "地震", + "火灾", + "洪水", + "海啸", + "爆炸", + "撤离", + "疏散", + "紧急", + "危险", + "灾", + "evacuate", + "emergency", + "volcano", + "earthquake", + "fire", + "flood", +) +PUBLIC_GROUP_SKILL_IDS = { + "safety.respond", + "notice.write", + "radio.comms", + "messaging.group", +} + + +def _workspace_root_from_file() -> str: + """Infer the AgentSociety workspace root from custom/agents/this_file.py.""" + + try: + return str(Path(__file__).resolve().parents[2]) + except IndexError: + return str(Path.cwd()) + + +def _json_safe(value: Any) -> Any: + """Return a JSON-serializable representation for profile/dump fields.""" + + try: + json.dumps(value, ensure_ascii=False) + return value + except TypeError: + if hasattr(value, "model_dump"): + return value.model_dump() + return str(value) + + +def _contains_latin_text(value: Any) -> bool: + return any("a" <= ch.lower() <= "z" for ch in str(value or "")) + + +def _contains_latin_text_outside_terms(value: Any, allowed_terms: list[str]) -> bool: + text = str(value or "") + terms: set[str] = set() + for item in allowed_terms: + term = str(item).strip() + if not term: + continue + terms.add(term) + terms.update( + piece + for piece in term.replace("-", " ").replace("_", " ").split() + if _contains_latin_text(piece) + ) + for term in sorted(terms, key=len, reverse=True): + text = text.replace(term, "") + return _contains_latin_text(text) + + +class JiuwenClawAgent(AgentBase): + """AgentSociety2 AgentBase adapter for a running JiuwenClaw AgentServer.""" + + _request_semaphore: ClassVar[asyncio.Semaphore | None] = None + _request_semaphore_limit: ClassVar[int | None] = None + _request_semaphore_loop: ClassVar[asyncio.AbstractEventLoop | None] = None + + @classmethod + def _request_concurrency_limit(cls) -> int: + raw_value = os.getenv(JIUWENCLAW_REQUEST_CONCURRENCY_ENV, "").strip() + if not raw_value: + return DEFAULT_JIUWENCLAW_REQUEST_CONCURRENCY + try: + value = int(raw_value) + except ValueError: + return DEFAULT_JIUWENCLAW_REQUEST_CONCURRENCY + return max(1, value) + + @classmethod + def _request_semaphore_for_current_loop(cls) -> tuple[asyncio.Semaphore, int]: + limit = cls._request_concurrency_limit() + loop = asyncio.get_running_loop() + if ( + cls._request_semaphore is None + or cls._request_semaphore_limit != limit + or cls._request_semaphore_loop is not loop + ): + cls._request_semaphore = asyncio.Semaphore(limit) + cls._request_semaphore_limit = limit + cls._request_semaphore_loop = loop + return cls._request_semaphore, limit + + def __init__( + self, + id: int, + profile: Any, + name: str | None = None, + jiuwenclaw_ws_url: str = DEFAULT_JIUWENCLAW_WS_URL, + session_id: str | None = None, + mode: str = DEFAULT_MODE, + trusted_dirs: list[str] | None = None, + request_timeout: float = 600.0, + enable_memory: bool = True, + channel_id: str = DEFAULT_CHANNEL_ID, + enable_daily_life: bool = True, + daily_life_skill_path: str | None = None, + enable_skill_runtime: bool = True, + common_skill_ids: list[str] | None = None, + skill_ids: list[str] | None = None, + mounted_skill_ids: list[str] | None = None, + skill_runtime_skill_names: list[str] | None = None, + experiment_context: Any | None = None, + ) -> None: + super().__init__(id=id, profile=profile, name=name) + self._jiuwenclaw_ws_url = jiuwenclaw_ws_url + self._session_id = session_id or f"agentsociety_agent_{id}" + self._mode = mode + self._trusted_dirs = trusted_dirs or [_workspace_root_from_file()] + self._request_timeout = float(request_timeout) + self._enable_memory = bool(enable_memory) + self._channel_id = channel_id or DEFAULT_CHANNEL_ID + # Legacy constructor fields are accepted for old configs. Runtime + # behavior is always driven by executable AgentSociety skills. + _ = ( + enable_daily_life, + daily_life_skill_path, + enable_skill_runtime, + skill_runtime_skill_names, + ) + self._enable_skill_runtime = True + self._experiment_context = experiment_context + self._common_skill_ids = self._normalize_skill_ids( + common_skill_ids or DEFAULT_COMMON_SKILLS + ) + personal_skill_ids = self._normalize_skill_ids(skill_ids or []) + if not personal_skill_ids and mounted_skill_ids: + common_set = set(self._common_skill_ids) + personal_skill_ids = [ + item + for item in self._normalize_skill_ids(mounted_skill_ids) + if item not in common_set + ] + self._skill_ids = personal_skill_ids + self._skill_registry = SkillRegistry() + self._skill_registry.scan_custom(_workspace_root_from_file()) + self._skill_runtime = AgentSkillRuntime( + agent_id=id, + registry=self._skill_registry, + ) + self._ws: Any = None + self._ws_lock = asyncio.Lock() + self._last_response: str = "" + self._last_environment_result: str = "" + self._agent_work_dir: Path | None = None + self._pending_interventions: list[str] = [] + self._recent_live_questions: list[dict[str, str]] = [] + self._last_selected_skills: set[str] = set() + self._last_activated_skills: set[str] = set() + self._last_skill_results: list[dict[str, Any]] = [] + self._last_action_proposal: dict[str, Any] = {} + self._last_social_action_proposal: dict[str, Any] = {} + self._last_skill_decision: dict[str, Any] = {} + self._last_skill_result: dict[str, Any] = {} + self._last_environment_effects: list[dict[str, Any]] = [] + + @classmethod + def mcp_description(cls) -> str: + return """JiuwenClawAgent: AgentSociety2 custom agent backed by JiuwenClaw + +Runs JiuwenClaw as an external AgentServer and communicates over WebSocket. + +Profile fields are free-form. Useful fields: +- name: display name +- role: simulation role +- persona: behavior/personality notes + +Initialization example: +```json +{ + "id": 0, + "profile": { + "name": "Jiuwen assistant", + "role": "JiuwenClaw-driven simulation agent" + }, + "jiuwenclaw_ws_url": "ws://127.0.0.1:18092", + "session_id": "agentsociety_agent_0", + "mode": "agent.plan", + "trusted_dirs": ["/agentsociety"], + "enable_memory": true, + "enable_skill_runtime": true, + "common_skill_ids": ["routine.daily", "social.reply", "memory.record", "map.navigate", "safety.respond"], + "skill_ids": ["community.coordinate", "tools.repair"] +} +``` +""" + + @staticmethod + def _normalize_skill_ids(values: list[str] | None) -> list[str]: + result: list[str] = [] + seen: set[str] = set() + for value in values or []: + skill_id = str(value or "").strip() + if skill_id and skill_id not in seen: + seen.add(skill_id) + result.append(skill_id) + return result + + def _mounted_skill_ids(self) -> list[str]: + mounted = self._normalize_skill_ids(self._common_skill_ids + self._skill_ids) + return mounted or list(DEFAULT_COMMON_SKILLS) + + async def init(self, env: Any) -> None: + await super().init(env) + if getattr(env, "run_dir", None) is None: + self._agent_work_dir = None + return + self._skill_registry.scan_custom(_workspace_root_from_file()) + self._agent_work_dir = self._skill_runtime.ensure_agent_work_dir(env) + self._skill_runtime.ensure_standard_workspace_dirs() + self._write_json( + "agent_config.json", + { + "agent_type": self.__class__.__name__, + "id": self.id, + "name": self.name, + "profile": _json_safe(self.get_profile()), + "jiuwenclaw_ws_url": self._jiuwenclaw_ws_url, + "session_id": self._session_id, + "mode": self._mode, + "trusted_dirs": list(self._trusted_dirs), + "request_timeout": self._request_timeout, + "enable_memory": self._enable_memory, + "enable_skill_runtime": self._enable_skill_runtime, + "common_skill_ids": list(self._common_skill_ids), + "skill_ids": list(self._skill_ids), + "mounted_skill_ids": self._mounted_skill_ids(), + "experiment_context": _json_safe(self._experiment_context), + }, + ) + + def _experiment_context_text(self) -> str: + if not self._experiment_context: + return "" + return ( + "\n实验上下文:\n" + f"{json.dumps(_json_safe(self._experiment_context), ensure_ascii=False)}\n" + f"{CHINESE_OUTPUT_POLICY}\n" + ) + + async def ask(self, message: str, readonly: bool = True) -> str: + prompt = self._build_ask_prompt(message=message, readonly=readonly) + answer = await self._send_jiuwenclaw_request(prompt) + self._last_response = answer + self._recent_live_questions.append( + { + "question": message, + "answer": answer, + "readonly": str(readonly), + } + ) + self._recent_live_questions = self._recent_live_questions[-10:] + return answer + + async def answer_external_question( + self, + prompt: str, + *, + t: datetime, + response_type: str = "text", + choices: list[str] | None = None, + ) -> str: + """Answer live targeted Ask through the JiuwenClaw agent session.""" + + requirement = self._external_question_output_requirement( + response_type, + choices, + ) + message = ( + "这是给 AgentSociety 模拟智能体的外部提问。\n" + f"当前模拟时间:{t.isoformat()}\n" + f"输出要求:{requirement}\n" + f"{CHINESE_OUTPUT_POLICY}\n" + "请以该智能体第一人称回答。以当前模拟状态、近期实时提问、角色档案和九问会话上下文为准。" + "只读提问不得改变 AgentSociety 环境。\n\n" + f"问题:\n{prompt}" + ) + return await self.ask(message, readonly=True) + + async def step(self, tick: int, t: datetime) -> str: + observation = await self._observe_environment() + pending_interventions = list(self._pending_interventions) + self._pending_interventions = [] + broadcast_result = await self._broadcast_urgent_interventions( + pending_interventions + ) + + result = await self._run_skill_runtime( + tick=tick, + t=t, + observation=observation, + pending_interventions=pending_interventions, + broadcast_result=broadcast_result, + ) + status = "completed" if result.get("ok", True) else "error" + self._last_environment_result = json.dumps( + result.get("environment_effects") or [], + ensure_ascii=False, + ) + self._persist_runtime_state(tick=tick, t=t, status=status) + public_summary = str(result.get("public_summary") or "技能步骤已完成。") + environment_summary = result.get("environment_effects") or [] + if environment_summary: + return ( + f"{public_summary}\n\n" + f"环境结果:{json.dumps(environment_summary, ensure_ascii=False)}" + ) + return public_summary + + def queue_intervention(self, instruction: str) -> str: + self._pending_interventions.append(str(instruction)) + return ( + "已实时投递到该 agent 的 pending interventions;" + "下一次 step prompt 会包含这条干预并要求优先执行。" + "若识别为紧急公共事件,会先自动广播到小镇群组。" + ) + + async def _observe_environment(self) -> Any: + social_env = self._find_social_environment() + if social_env is not None and callable(getattr(social_env, "observe_agent", None)): + try: + return await social_env.observe_agent(self.id) + except Exception: + pass + try: + _, observation = await self.ask_env( + {"variables": {}}, + "请观察该智能体当前的环境状态。", + readonly=True, + ) + return observation + except Exception as exc: + return f"无法观察环境:{exc}" + + async def _run_skill_runtime( + self, + *, + tick: int, + t: datetime, + observation: Any, + pending_interventions: list[str] | None = None, + broadcast_result: str = "", + ) -> dict[str, Any]: + if self._agent_work_dir is None: + self._last_selected_skills = set() + self._last_activated_skills = set() + self._last_skill_results = [] + self._last_action_proposal = {} + self._last_social_action_proposal = {} + self._last_skill_decision = {} + self._last_skill_result = {} + self._last_environment_effects = [] + return {} + + pending_interventions = pending_interventions or [] + runtime_args = { + "agent_id": self.id, + "agent_name": self.name, + "profile": _json_safe(self.get_profile()), + "tick": tick, + "time": t.isoformat(), + "observation": _json_safe(observation), + "agent_work_dir": str(self._agent_work_dir), + "pending_interventions": list(pending_interventions), + "broadcast_result": broadcast_result, + } + self._skill_runtime.workspace_write( + "state/observation.json", + json.dumps(_json_safe(observation), ensure_ascii=False, indent=2), + ) + self._skill_runtime.workspace_write( + "state/profile.json", + json.dumps(_json_safe(self.get_profile()), ensure_ascii=False, indent=2), + ) + self._skill_runtime.workspace_write( + "state/current_time.json", + json.dumps( + {"tick": tick, "time": t.isoformat()}, + ensure_ascii=False, + indent=2, + ), + ) + self._skill_runtime.workspace_write( + "state/mounted_skills.json", + json.dumps(self._mounted_skill_ids(), ensure_ascii=False, indent=2), + ) + + requested_skill_ids = self._mounted_skill_ids() + metadata = self._skill_runtime.skill_list(requested_skill_ids) + discovered = {str(item["name"]) for item in metadata if item.get("name")} + mounted = [skill_id for skill_id in requested_skill_ids if skill_id in discovered] + self._last_selected_skills = set(mounted) + self._last_activated_skills = set() + self._last_skill_results = [] + self._last_action_proposal = {} + self._last_social_action_proposal = {} + self._last_skill_decision = {} + self._last_skill_result = {} + self._last_environment_effects = [] + + decision = await self._select_next_skill( + tick=tick, + t=t, + observation=observation, + catalog=[item for item in metadata if str(item.get("name") or "") in mounted], + mounted_skill_ids=mounted, + pending_interventions=pending_interventions, + broadcast_result=broadcast_result, + ) + selected_skill_id = str(decision.get("selected_skill_id") or "").strip() + if selected_skill_id not in mounted: + decision = self._fallback_skill_decision( + mounted_skill_ids=mounted, + observation=observation, + pending_interventions=pending_interventions, + reason=f"选择的技能无效或不可用:{selected_skill_id}", + ) + selected_skill_id = str(decision.get("selected_skill_id") or "").strip() + + self._last_skill_decision = dict(decision) + if not selected_skill_id: + return { + "ok": False, + "public_summary": "该智能体没有挂载可执行技能。", + "mounted_skill_ids": mounted, + "last_skill_decision": dict(decision), + } + + self._last_activated_skills = {selected_skill_id} + self._skill_runtime.skill_activate(selected_skill_id) + runtime_args["selected_skill_id"] = selected_skill_id + runtime_args["skill_args"] = ( + decision.get("args") if isinstance(decision.get("args"), dict) else {} + ) + runtime_args["skill_decision"] = dict(decision) + try: + raw_result = await self._skill_runtime.execute( + selected_skill_id, + runtime_args, + ) + except Exception as exc: + raw_result = { + "ok": False, + "exit_code": -1, + "stdout": "", + "stderr": str(exc), + "error_type": type(exc).__name__, + "artifacts": [], + } + + skill_result = self._parse_skill_result(raw_result, selected_skill_id) + skill_result = self._localize_skill_result(skill_result, selected_skill_id) + validation = self._validate_skill_result( + selected_skill_id=selected_skill_id, + skill_result=skill_result, + observation=observation, + ) + skill_result["validation"] = validation + environment_effects = await self._apply_skill_result(skill_result, validation) + self._last_skill_result = dict(skill_result) + self._last_environment_effects = list(environment_effects) + self._last_action_proposal = self._legacy_action_from_skill_result(skill_result) + entry = { + "tick": tick, + "time": t.isoformat(), + "tool": "execute_skill", + "skill_name": selected_skill_id, + "decision": dict(decision), + "result": raw_result, + "skill_result": skill_result, + "environment_effects": environment_effects, + } + self._last_skill_results = [entry] + self._skill_runtime.append_tool_log(entry) + + public_summary = str( + decision.get("public_summary") + or skill_result.get("summary") + or f"{self.name} 执行了{self._skill_label(selected_skill_id)}。" + ) + return { + "ok": bool(raw_result.get("ok")) and not validation.get("errors"), + "public_summary": public_summary, + "mounted_skill_ids": mounted, + "selected_skills": mounted, + "activated_skills": sorted(self._last_activated_skills), + "last_skill_decision": dict(decision), + "last_skill_result": skill_result, + "environment_effects": environment_effects, + "skill_results": [entry], + } + + async def _select_next_skill( + self, + *, + tick: int, + t: datetime, + observation: Any, + catalog: list[dict[str, Any]], + mounted_skill_ids: list[str], + pending_interventions: list[str], + broadcast_result: str, + ) -> dict[str, Any]: + if not mounted_skill_ids: + return self._fallback_skill_decision( + mounted_skill_ids=[], + observation=observation, + pending_interventions=pending_interventions, + reason="没有可用的已挂载技能。", + ) + prompt = self._build_skill_selection_prompt( + tick=tick, + t=t, + observation=observation, + catalog=catalog, + pending_interventions=pending_interventions, + broadcast_result=broadcast_result, + ) + try: + raw = await self._send_jiuwenclaw_request(prompt) + self._last_response = raw + self._append_thread_message("user", prompt, tick=tick, t=t) + self._append_thread_message("assistant", raw, tick=tick, t=t) + decision = self._parse_step_decision(raw) + if isinstance(decision, dict) and decision.get("_parsed"): + decision.pop("_parsed", None) + return decision + return self._fallback_skill_decision( + mounted_skill_ids=mounted_skill_ids, + observation=observation, + pending_interventions=pending_interventions, + reason="九问返回的技能决策不是 JSON。", + ) + except Exception as exc: + self._last_response = f"九问技能选择失败:{exc}" + return self._fallback_skill_decision( + mounted_skill_ids=mounted_skill_ids, + observation=observation, + pending_interventions=pending_interventions, + reason=str(exc), + ) + + def _build_skill_selection_prompt( + self, + *, + tick: int, + t: datetime, + observation: Any, + catalog: list[dict[str, Any]], + pending_interventions: list[str], + broadcast_result: str, + ) -> str: + compact_catalog = [ + { + "name": item.get("name"), + "description": item.get("description"), + "effects": item.get("effects", []), + "args_schema": item.get("args_schema", {}), + "trigger_examples": item.get("trigger_examples", []), + "shared": item.get("shared", False), + } + for item in catalog + ] + return ( + "你正在为一个 AgentSociety 模拟智能体选择本步骤唯一要执行的技能。\n" + f"智能体编号:{self.id}\n" + f"智能体姓名:{self.name}\n" + f"角色档案:{json.dumps(_json_safe(self.get_profile()), ensure_ascii=False)}\n" + f"{self._experiment_context_text()}" + f"模拟时间:{t.isoformat()}\n" + f"单步秒数:{tick}\n" + f"环境观察:\n{json.dumps(_json_safe(observation), ensure_ascii=False, indent=2)}\n" + f"待处理实时干预:{json.dumps(pending_interventions, ensure_ascii=False)}\n" + f"自动紧急处理结果:{broadcast_result}\n" + f"已挂载可执行技能目录:\n{json.dumps(compact_catalog, ensure_ascii=False, indent=2)}\n\n" + f"{CHINESE_OUTPUT_POLICY}\n" + "请从已挂载目录中选择一个技能。只返回一个 JSON 对象:\n" + "{\n" + ' "selected_skill_id": "一个已挂载技能编号",\n' + ' "args": {"optional": "符合 args_schema 的技能参数"},\n' + ' "reason": "为什么这个技能适合当前状态",\n' + ' "public_summary": "用中文简短描述智能体想做什么"\n' + "}\n" + "不要返回 environment_instruction 或 action_proposal,选中的技能脚本会产生效果。" + ) + + def _fallback_skill_decision( + self, + *, + mounted_skill_ids: list[str], + observation: Any, + pending_interventions: list[str], + reason: str, + ) -> dict[str, Any]: + observation_dict = observation if isinstance(observation, dict) else {} + text = " ".join( + [ + str(observation_dict.get("latest_event") or ""), + str(observation_dict.get("last_message") or ""), + " ".join(pending_interventions), + json.dumps(observation_dict.get("recent_messages") or [], ensure_ascii=False), + ] + ).lower() + def available(skill_id: str) -> bool: + return skill_id in mounted_skill_ids + + if any(keyword.lower() in text for keyword in URGENT_INTERVENTION_KEYWORDS) and available("safety.respond"): + selected = "safety.respond" + elif observation_dict.get("recent_messages") and available("social.reply"): + selected = "social.reply" + elif available("routine.daily"): + selected = "routine.daily" + elif mounted_skill_ids: + selected = mounted_skill_ids[0] + else: + selected = "" + return { + "selected_skill_id": selected, + "args": {}, + "reason": f"后备技能选择:{reason}", + "public_summary": f"{self.name} 本步执行{selected or '空技能'}。", + "fallback": True, + } + + def _parse_skill_result( + self, + raw_result: dict[str, Any], + selected_skill_id: str, + ) -> dict[str, Any]: + stdout = str(raw_result.get("stdout") or "").strip() + parsed = self._extract_json_object(stdout) if stdout else None + if isinstance(parsed, dict): + result = parsed + else: + result = { + "schema_version": SKILL_RESULT_SCHEMA_VERSION, + "skill_id": selected_skill_id, + "summary": f"{selected_skill_id} 没有返回有效的 JSON。", + "reason": str(raw_result.get("stderr") or raw_result.get("error_type") or "技能输出无效"), + "confidence": 0.0, + "world_effect": None, + "speech_effect": None, + "memory_effects": [], + } + result.setdefault("schema_version", SKILL_RESULT_SCHEMA_VERSION) + result.setdefault("skill_id", selected_skill_id) + result.setdefault("memory_effects", []) + return result + + @staticmethod + def _skill_label(skill_id: str) -> str: + return SKILL_CHINESE_LABELS.get(str(skill_id), "技能") + + def _allowed_visible_latin_terms(self) -> list[str]: + terms = [self.name] + profile = _json_safe(self.get_profile()) + if isinstance(profile, dict): + if profile.get("name"): + terms.append(str(profile["name"])) + social_network = profile.get("social_network") + if isinstance(social_network, dict): + terms.extend(str(name) for name in social_network.keys()) + return terms + + def _contains_visible_english(self, value: Any) -> bool: + return _contains_latin_text_outside_terms( + value, + self._allowed_visible_latin_terms(), + ) + + def _localize_skill_result( + self, + skill_result: dict[str, Any], + selected_skill_id: str, + ) -> dict[str, Any]: + """Keep executable skill outputs from leaking English into visible replay text.""" + + label = self._skill_label(selected_skill_id) + result = dict(skill_result) + if self._contains_visible_english(result.get("summary")): + result["summary"] = f"执行{label}。" + if self._contains_visible_english(result.get("reason")): + result["reason"] = f"根据当前观察选择{label}。" + + world = result.get("world_effect") + if isinstance(world, dict): + world = dict(world) + if self._contains_visible_english(world.get("action")): + world["action"] = f"执行{label}" + if self._contains_visible_english(world.get("status")): + world["status"] = STATUS_LABELS.get(str(world.get("status")), "活跃") + if self._contains_visible_english(world.get("emotion")): + world["emotion"] = STATUS_LABELS.get(str(world.get("emotion")), "平静") + if self._contains_visible_english(world.get("reason")): + world["reason"] = f"执行{label}" + params = world.get("params") + if isinstance(params, dict) and self._contains_visible_english(params.get("message")): + params = dict(params) + params["message"] = f"执行{label}" + world["params"] = params + result["world_effect"] = world + + speech = result.get("speech_effect") + if isinstance(speech, dict): + speech = dict(speech) + if self._contains_visible_english(speech.get("content")): + speech["content"] = "我会用中文同步当前处理。" + result["speech_effect"] = speech + + memories = result.get("memory_effects") + if isinstance(memories, list): + localized_memories = [] + for memory in memories: + if not isinstance(memory, dict): + localized_memories.append(memory) + continue + localized = dict(memory) + if self._contains_visible_english(localized.get("content")): + localized["content"] = f"记录了技能事件:{label}。" + localized_memories.append(localized) + result["memory_effects"] = localized_memories + return result + + def _validate_skill_result( + self, + *, + selected_skill_id: str, + skill_result: dict[str, Any], + observation: Any, + ) -> dict[str, Any]: + errors: list[str] = [] + valid_effects = {"world_effect": False, "speech_effect": False, "memory_effects": True} + info = self._skill_registry.get_skill_info(selected_skill_id, load_content=False) + allowed = set(info.effects if info is not None else []) + + if skill_result.get("schema_version") != SKILL_RESULT_SCHEMA_VERSION: + errors.append("invalid schema_version") + if str(skill_result.get("skill_id") or "") != selected_skill_id: + errors.append("skill_id does not match selected_skill_id") + + observation_dict = observation if isinstance(observation, dict) else {} + known_locations = { + str(item.get("id") or "") + for item in observation_dict.get("known_locations", []) or [] + if isinstance(item, dict) + } + known_interactions = { + str(item.get("id") or ""): item + for item in observation_dict.get("known_interactions", []) or [] + if isinstance(item, dict) + } + current_location = str(observation_dict.get("location_id") or "") + + world = skill_result.get("world_effect") + if isinstance(world, dict): + effect_type = str(world.get("type") or "") + if effect_type not in allowed: + errors.append(f"world_effect type '{effect_type}' is not allowed for {selected_skill_id}") + elif effect_type == "move": + location_id = str(world.get("location_id") or world.get("location") or "") + if not location_id or (known_locations and location_id not in known_locations): + errors.append(f"unknown move location_id: {location_id}") + else: + valid_effects["world_effect"] = True + elif effect_type == "interact": + interaction_id = str(world.get("interaction_id") or "") + interaction = known_interactions.get(interaction_id) + allowed_locations = ( + interaction.get("allowed_location_ids") + if isinstance(interaction, dict) + else None + ) + if not interaction: + errors.append(f"unknown interaction_id: {interaction_id}") + elif allowed_locations and current_location not in allowed_locations: + errors.append(f"interaction '{interaction_id}' is not available at {current_location}") + else: + valid_effects["world_effect"] = True + elif effect_type == "set_state": + valid_effects["world_effect"] = True + else: + errors.append(f"unsupported world_effect type: {effect_type}") + + speech = skill_result.get("speech_effect") + if isinstance(speech, dict): + effect_type = str(speech.get("type") or "") + if effect_type not in allowed: + errors.append(f"speech_effect type '{effect_type}' is not allowed for {selected_skill_id}") + elif effect_type == "direct_message" and self._safe_int(speech.get("receiver_id")) <= 0: + errors.append("direct_message requires receiver_id") + elif effect_type == "group_message" and self._safe_int(speech.get("group_id")) <= 0: + errors.append("group_message requires group_id") + elif effect_type in {"direct_message", "group_message"}: + valid_effects["speech_effect"] = True + else: + errors.append(f"unsupported speech_effect type: {effect_type}") + + memories = skill_result.get("memory_effects") + if memories is not None and not isinstance(memories, list): + errors.append("memory_effects must be a list") + valid_effects["memory_effects"] = False + if memories and "remember" not in allowed: + errors.append(f"memory_effects are not allowed for {selected_skill_id}") + valid_effects["memory_effects"] = False + + return {"errors": errors, "valid_effects": valid_effects, "allowed_effects": sorted(allowed)} + + @staticmethod + def _safe_int(value: Any, default: int = 0) -> int: + try: + return int(value) + except (TypeError, ValueError): + return default + + @staticmethod + def _truthy_public_value(value: Any) -> bool: + if isinstance(value, bool): + return value + return str(value or "").strip().casefold() in { + "1", + "true", + "yes", + "public", + "broadcast", + "announcement", + "all", + } + + def _proposal_allows_public_group(self, proposal: dict[str, Any]) -> bool: + for key in ("broadcast", "public", "is_public"): + if self._truthy_public_value(proposal.get(key)): + return True + for key in ("scope", "message_scope"): + if self._truthy_public_value(proposal.get(key)): + return True + return False + + def _is_public_speech_effect( + self, + effect: dict[str, Any], + skill_result: dict[str, Any], + ) -> bool: + if str(skill_result.get("skill_id") or "") in PUBLIC_GROUP_SKILL_IDS: + return True + for key in ("broadcast", "public", "is_public"): + if self._truthy_public_value(effect.get(key)): + return True + for key in ("scope", "message_scope"): + if self._truthy_public_value(effect.get(key)): + return True + return False + + async def _nearby_receiver_id( + self, + agent_id: int, + social_env: Any | None = None, + ) -> int | None: + social_env = social_env or self._find_social_environment() + observe_agent = getattr(social_env, "observe_agent", None) + if not callable(observe_agent): + return None + observed = observe_agent(agent_id) + if asyncio.iscoroutine(observed): + observed = await observed + if not isinstance(observed, dict): + return None + for item in observed.get("nearby_agents", []) or []: + if isinstance(item, dict): + receiver_id = self._safe_int(item.get("agent_id")) + else: + receiver_id = self._safe_int(item) + if receiver_id > 0 and receiver_id != int(agent_id): + return receiver_id + return None + + async def _apply_skill_result( + self, + skill_result: dict[str, Any], + validation: dict[str, Any], + ) -> list[dict[str, Any]]: + applied: list[dict[str, Any]] = [] + valid_effects = validation.get("valid_effects") if isinstance(validation, dict) else {} + world = skill_result.get("world_effect") + if isinstance(world, dict) and valid_effects.get("world_effect"): + result = await self._apply_world_effect(world) + applied.append({"effect": "world_effect", "request": world, "result": result}) + speech = skill_result.get("speech_effect") + if isinstance(speech, dict) and valid_effects.get("speech_effect"): + result = await self._apply_speech_effect(speech, skill_result) + applied.append({"effect": "speech_effect", "request": speech, "result": result}) + memories = skill_result.get("memory_effects") + if isinstance(memories, list) and valid_effects.get("memory_effects"): + result = self._append_memory_effects(memories, skill_result) + applied.append({"effect": "memory_effects", "request": memories, "result": result}) + if validation.get("errors"): + applied.append({"effect": "validation", "errors": validation.get("errors")}) + return applied + + async def _apply_world_effect(self, effect: dict[str, Any]) -> Any: + effect_type = str(effect.get("type") or "") + proposal: dict[str, Any] + if effect_type == "move": + proposal = { + "action_type": "move", + "agent_id": self.id, + "location_id": effect.get("location_id") or effect.get("location"), + "reason": effect.get("reason"), + } + elif effect_type == "interact": + proposal = { + "action_type": "interact", + "agent_id": self.id, + "interaction_id": effect.get("interaction_id"), + "params": effect.get("params") if isinstance(effect.get("params"), dict) else {}, + "reason": effect.get("reason"), + } + elif effect_type == "set_state": + proposal = { + "action_type": "set_action", + "agent_id": self.id, + "action": effect.get("action") or effect.get("reason") or "继续日常安排", + "status": effect.get("status") or "活跃", + "emotion": effect.get("emotion") or "平静", + "reason": effect.get("reason"), + } + else: + return {"ok": False, "error": f"不支持的世界效果:{effect_type}"} + raw = await self._apply_action_proposal(proposal) + try: + return json.loads(raw) + except Exception: + return raw + + async def _apply_speech_effect( + self, + effect: dict[str, Any], + skill_result: dict[str, Any] | None = None, + ) -> Any: + effect_type = str(effect.get("type") or "") + if effect_type == "direct_message": + proposal = { + "action_type": "direct_message", + "agent_id": self.id, + "receiver_id": effect.get("receiver_id"), + "content": effect.get("content"), + } + elif effect_type == "group_message": + if self._is_public_speech_effect(effect, skill_result or {}): + proposal = { + "action_type": "group_message", + "agent_id": self.id, + "group_id": effect.get("group_id") or 1, + "content": effect.get("content"), + "public": True, + } + else: + receiver_id = await self._nearby_receiver_id(self.id) + if receiver_id is None: + return { + "ok": False, + "error": "no_nearby_agent", + "skipped_group_broadcast": True, + } + proposal = { + "action_type": "direct_message", + "agent_id": self.id, + "receiver_id": receiver_id, + "content": effect.get("content"), + "converted_from_group_message": True, + } + else: + return {"ok": False, "error": f"不支持的发言效果:{effect_type}"} + raw = await self._apply_action_proposal(proposal) + try: + return json.loads(raw) + except Exception: + return raw + + def _append_memory_effects( + self, + memories: list[dict[str, Any]], + skill_result: dict[str, Any], + ) -> dict[str, Any]: + target = self._runtime_path("memory/skill_memory.jsonl") + if target is None: + return {"ok": False, "error": "agent workspace is not initialized"} + written = 0 + with target.open("a", encoding="utf-8") as f: + for memory in memories: + if not isinstance(memory, dict): + continue + entry = { + "time": datetime.now(timezone.utc).isoformat(), + "agent_id": self.id, + "skill_id": skill_result.get("skill_id"), + **memory, + } + f.write(json.dumps(_json_safe(entry), ensure_ascii=False) + "\n") + written += 1 + return {"ok": True, "written": written, "path": str(target)} + + def _legacy_action_from_skill_result(self, skill_result: dict[str, Any]) -> dict[str, Any]: + world = skill_result.get("world_effect") + if not isinstance(world, dict): + return {} + effect_type = str(world.get("type") or "") + if effect_type == "move": + return { + "source": skill_result.get("skill_id"), + "action_type": "move", + "agent_id": self.id, + "location_id": world.get("location_id") or world.get("location"), + "reason": world.get("reason"), + } + if effect_type == "interact": + return { + "source": skill_result.get("skill_id"), + "action_type": "interact", + "agent_id": self.id, + "interaction_id": world.get("interaction_id"), + "params": world.get("params") if isinstance(world.get("params"), dict) else {}, + "reason": world.get("reason"), + } + if effect_type == "set_state": + return { + "source": skill_result.get("skill_id"), + "action_type": "set_action", + "agent_id": self.id, + "action": world.get("action"), + "status": world.get("status"), + "emotion": world.get("emotion"), + "reason": world.get("reason"), + } + return {} + + def _action_proposal_from_decision(self, decision: dict[str, Any]) -> dict[str, Any]: + raw = decision.get("action_proposal") + if isinstance(raw, dict): + return raw + action_type = str(decision.get("action_type") or "").strip() + if not action_type: + return {} + proposal = { + "source": "jiuwen_decision", + "action_type": action_type, + "agent_id": self.id, + } + for key in ( + "location_id", + "location", + "interaction_id", + "receiver_id", + "group_id", + "content", + "params", + "action", + "status", + "emotion", + "reason", + "broadcast", + "public", + "is_public", + "scope", + "message_scope", + ): + if key in decision: + proposal[key] = decision[key] + return proposal + + async def _apply_action_proposal(self, proposal: dict[str, Any]) -> str: + if not proposal: + return "" + action_type = str(proposal.get("action_type") or "").strip() + if not action_type or action_type == "none": + return "" + + social_env = self._find_social_environment() + agent_id = int(proposal.get("agent_id") or self.id) + try: + if social_env is not None: + if action_type == "move" and callable(getattr(social_env, "move_agent", None)): + result = await social_env.move_agent( + agent_id=agent_id, + location=str(proposal.get("location_id") or proposal.get("location") or ""), + ) + return json.dumps(result, ensure_ascii=False) + if action_type == "interact" and callable(getattr(social_env, "interact", None)): + result = await social_env.interact( + agent_id=agent_id, + interaction_id=str(proposal.get("interaction_id") or ""), + params=proposal.get("params") if isinstance(proposal.get("params"), dict) else {}, + ) + return json.dumps(result, ensure_ascii=False) + if action_type == "direct_message" and callable(getattr(social_env, "send_message", None)): + result = await social_env.send_message( + sender_id=agent_id, + receiver_id=int(proposal.get("receiver_id") or 0), + content=str(proposal.get("content") or ""), + ) + return json.dumps(result, ensure_ascii=False) + if action_type == "group_message" and callable(getattr(social_env, "send_group_message", None)): + if not self._proposal_allows_public_group(proposal): + receiver_id = await self._nearby_receiver_id(agent_id, social_env) + if receiver_id is None: + return json.dumps( + { + "ok": False, + "error": "no_nearby_agent", + "skipped_group_broadcast": True, + }, + ensure_ascii=False, + ) + if callable(getattr(social_env, "send_message", None)): + result = await social_env.send_message( + sender_id=agent_id, + receiver_id=receiver_id, + content=str(proposal.get("content") or ""), + ) + return json.dumps(result, ensure_ascii=False) + return json.dumps( + { + "ok": False, + "error": "direct_message_unavailable", + "skipped_group_broadcast": True, + }, + ensure_ascii=False, + ) + result = await social_env.send_group_message( + sender_id=agent_id, + group_id=int(proposal.get("group_id") or 1), + content=str(proposal.get("content") or ""), + ) + return json.dumps(result, ensure_ascii=False) + if action_type == "set_action" and callable(getattr(social_env, "set_agent_action", None)): + result = await social_env.set_agent_action( + agent_id=agent_id, + action=str(proposal.get("action") or proposal.get("reason") or "继续日常安排"), + status=str(proposal.get("status") or "活跃"), + emotion=str(proposal.get("emotion") or "平静"), + ) + return json.dumps(result, ensure_ascii=False) + except Exception as exc: + return f"动作执行失败:{exc}" + + instruction = str(proposal.get("environment_instruction") or "").strip() + if not instruction: + instruction = f"请执行这个 AgentSociety 动作提案:{json.dumps(proposal, ensure_ascii=False)}" + try: + _, env_result = await self.ask_env( + {"variables": {}}, + instruction, + readonly=False, + ) + return str(env_result) + except Exception as exc: + return f"动作执行失败:{exc}" + + async def _broadcast_urgent_interventions(self, instructions: list[str]) -> str: + urgent_instructions = [ + instruction.strip() + for instruction in instructions + if instruction.strip() and self._is_urgent_intervention(instruction) + ] + if not urgent_instructions: + return "" + + content = ( + "紧急通知:" + + ";".join(urgent_instructions) + + "。请所有人立即暂停当前安排,确认自身安全,并同步撤离、联络和物资需求。" + ) + env = self._find_social_environment() + if env is not None and callable(getattr(env, "send_group_message", None)): + try: + result = await env.send_group_message( + sender_id=self.id, + group_id=1, + content=content, + ) + return f"已向 1 号群发送紧急干预通知:{result}" + except Exception as exc: + return f"步骤提示前发送紧急通知失败:{exc}" + + try: + _, env_result = await self.ask_env( + {"variables": {}}, + ( + f"请让 {self.id} 号智能体向 1 号群发送这条紧急内容:{content}" + ), + readonly=False, + ) + return f"已通过环境路由发送紧急干预通知:{env_result}" + except Exception as exc: + return f"步骤提示前发送紧急通知失败:{exc}" + + def _is_urgent_intervention(self, instruction: str) -> bool: + lowered = instruction.lower() + return any(keyword in lowered for keyword in URGENT_INTERVENTION_KEYWORDS) + + def _find_social_environment(self) -> Any | None: + env = getattr(self, "_env", None) + env_modules = getattr(env, "env_modules", None) + if isinstance(env_modules, list): + for module in env_modules: + if callable(getattr(module, "send_group_message", None)): + return module + if isinstance(env_modules, dict): + for module in env_modules.values(): + if callable(getattr(module, "send_group_message", None)): + return module + if callable(getattr(env, "send_group_message", None)): + return env + return None + + def _runtime_path(self, relative_path: str) -> Path | None: + if self._agent_work_dir is None: + return None + work_root = self._agent_work_dir.resolve() + target = (work_root / relative_path).resolve() + try: + target.relative_to(work_root) + except ValueError: + raise ValueError(f"Path escapes agent workspace: {relative_path}") + target.parent.mkdir(parents=True, exist_ok=True) + return target + + def _write_json(self, relative_path: str, data: Any) -> None: + target = self._runtime_path(relative_path) + if target is None: + return + target.write_text( + json.dumps(_json_safe(data), ensure_ascii=False, indent=2), + encoding="utf-8", + ) + + def _append_thread_message( + self, + role: str, + content: str, + *, + tick: int, + t: datetime, + ) -> None: + target = self._runtime_path(".runtime/logs/thread_messages.jsonl") + if target is None: + return + entry = { + "tick": tick, + "time": t.isoformat(), + "role": role, + "content": content, + } + with target.open("a", encoding="utf-8") as f: + f.write(json.dumps(entry, ensure_ascii=False) + "\n") + + def _workspace_files(self) -> list[str]: + if self._agent_work_dir is None: + return [] + return sorted( + str(path.relative_to(self._agent_work_dir)) + for path in self._agent_work_dir.rglob("*") + if path.is_file() + ) + + def _persist_runtime_state(self, *, tick: int, t: datetime, status: str) -> None: + state = { + "agent_id": self.id, + "tick": tick, + "time": t.isoformat(), + "status": status, + "token_usage": {}, + "selected_skills": sorted(self._last_selected_skills), + "activated_skills": sorted(self._last_activated_skills), + "mounted_skill_ids": self._mounted_skill_ids(), + "last_skill_decision": dict(self._last_skill_decision), + } + snapshot = { + **state, + "id": self.id, + "name": self.name, + "profile": _json_safe(self.get_profile()), + "agent_type": self.__class__.__name__, + "jiuwenclaw_ws_url": self._jiuwenclaw_ws_url, + "session_id": self._session_id, + "mode": self._mode, + "last_response": self._last_response, + "last_environment_result": self._last_environment_result, + "pending_interventions": list(self._pending_interventions), + "recent_live_questions": list(self._recent_live_questions), + "last_skill_results": list(self._last_skill_results), + "last_action_proposal": dict(self._last_action_proposal), + "last_social_action_proposal": dict(self._last_social_action_proposal), + "mounted_skill_ids": self._mounted_skill_ids(), + "last_skill_decision": dict(self._last_skill_decision), + "last_skill_result": dict(self._last_skill_result), + "last_environment_effects": list(self._last_environment_effects), + "skill_states": { + "mounted_skill_ids": self._mounted_skill_ids(), + "last_skill_decision": dict(self._last_skill_decision), + "last_skill_result": dict(self._last_skill_result), + "last_environment_effects": list(self._last_environment_effects), + }, + "workspace_files": self._workspace_files(), + } + if self._enable_skill_runtime and self._agent_work_dir is not None: + self._skill_runtime.persist_session_state( + tick=tick, + t=t, + selected_skills=self._last_selected_skills, + activated_skills=self._last_activated_skills, + token_usage={}, + runtime_snapshot=snapshot, + ) + self._skill_runtime.append_step_replay( + tick=tick, + t=t, + selected_skills=self._last_selected_skills, + tool_history=list(self._last_skill_results), + ) + self._skill_runtime.refresh_workspace_documents() + return + self._write_json(".runtime/logs/session_state.json", state) + self._write_json(".runtime/logs/agent_state_snapshot.json", snapshot) + + async def dump(self) -> dict: + return { + "id": self._id, + "profile": _json_safe(self.get_profile()), + "name": self._name, + "jiuwenclaw_ws_url": self._jiuwenclaw_ws_url, + "session_id": self._session_id, + "mode": self._mode, + "trusted_dirs": list(self._trusted_dirs), + "request_timeout": self._request_timeout, + "enable_memory": self._enable_memory, + "channel_id": self._channel_id, + "enable_skill_runtime": self._enable_skill_runtime, + "common_skill_ids": list(self._common_skill_ids), + "skill_ids": list(self._skill_ids), + "mounted_skill_ids": self._mounted_skill_ids(), + "experiment_context": _json_safe(self._experiment_context), + "last_response": self._last_response, + "last_environment_result": self._last_environment_result, + "pending_interventions": list(self._pending_interventions), + "recent_live_questions": list(self._recent_live_questions), + "last_action_proposal": dict(self._last_action_proposal), + "last_social_action_proposal": dict(self._last_social_action_proposal), + "last_skill_decision": dict(self._last_skill_decision), + "last_skill_result": dict(self._last_skill_result), + "last_environment_effects": list(self._last_environment_effects), + } + + async def load(self, dump_data: dict) -> None: + self._id = int(dump_data.get("id", self._id)) + if "profile" in dump_data: + self._profile = dump_data["profile"] + self._name = str(dump_data.get("name", self._name)) + self._jiuwenclaw_ws_url = str( + dump_data.get("jiuwenclaw_ws_url", self._jiuwenclaw_ws_url) + ) + self._session_id = str(dump_data.get("session_id", self._session_id)) + self._mode = str(dump_data.get("mode", self._mode)) + trusted_dirs = dump_data.get("trusted_dirs") + if isinstance(trusted_dirs, list): + self._trusted_dirs = [str(item) for item in trusted_dirs if str(item)] + self._request_timeout = float( + dump_data.get("request_timeout", self._request_timeout) + ) + self._enable_memory = bool(dump_data.get("enable_memory", self._enable_memory)) + self._channel_id = str(dump_data.get("channel_id", self._channel_id)) + self._enable_skill_runtime = True + if "experiment_context" in dump_data: + self._experiment_context = dump_data["experiment_context"] + common_skill_ids = dump_data.get("common_skill_ids") + if isinstance(common_skill_ids, list): + self._common_skill_ids = self._normalize_skill_ids(common_skill_ids) + skill_ids = dump_data.get("skill_ids") + if isinstance(skill_ids, list): + self._skill_ids = self._normalize_skill_ids(skill_ids) + elif isinstance(dump_data.get("mounted_skill_ids"), list): + common_set = set(self._common_skill_ids) + self._skill_ids = [ + item + for item in self._normalize_skill_ids(dump_data["mounted_skill_ids"]) + if item not in common_set + ] + self._last_response = str(dump_data.get("last_response", "")) + self._last_environment_result = str( + dump_data.get("last_environment_result", "") + ) + if isinstance(dump_data.get("last_action_proposal"), dict): + self._last_action_proposal = dict(dump_data["last_action_proposal"]) + if isinstance(dump_data.get("last_social_action_proposal"), dict): + self._last_social_action_proposal = dict( + dump_data["last_social_action_proposal"] + ) + if isinstance(dump_data.get("last_skill_decision"), dict): + self._last_skill_decision = dict(dump_data["last_skill_decision"]) + if isinstance(dump_data.get("last_skill_result"), dict): + self._last_skill_result = dict(dump_data["last_skill_result"]) + if isinstance(dump_data.get("last_environment_effects"), list): + self._last_environment_effects = [ + item for item in dump_data["last_environment_effects"] if isinstance(item, dict) + ] + pending_interventions = dump_data.get("pending_interventions") + if isinstance(pending_interventions, list): + self._pending_interventions = [ + str(item) for item in pending_interventions if str(item).strip() + ] + recent_live_questions = dump_data.get("recent_live_questions") + if isinstance(recent_live_questions, list): + self._recent_live_questions = [ + item for item in recent_live_questions if isinstance(item, dict) + ][-10:] + + async def close(self) -> None: + if self._ws is not None: + close = getattr(self._ws, "close", None) + if callable(close): + await close() + self._ws = None + + def _build_ask_prompt(self, message: str, readonly: bool) -> str: + readonly_text = ( + "这是只读提问,不要产生任何副作用。" + if readonly + else "你可以推理行动,但只有 AgentSociety 可以改变模拟环境。" + ) + return ( + "你正在扮演一个 AgentSociety 模拟智能体。\n" + f"智能体编号:{self.id}\n" + f"智能体姓名:{self.name}\n" + f"角色档案:{json.dumps(_json_safe(self.get_profile()), ensure_ascii=False)}\n" + f"{self._experiment_context_text()}" + f"{CHINESE_OUTPUT_POLICY}\n" + f"约束:{readonly_text}\n\n" + f"用户或环境问题:\n{message}" + ) + + def _build_step_prompt( + self, + tick: int, + t: datetime, + observation: str, + pending_interventions: list[str] | None = None, + broadcast_result: str = "", + skill_runtime_result: dict[str, Any] | None = None, + ) -> str: + intervention_text = "" + if pending_interventions: + lines = "\n".join( + f"{index}. {instruction}" + for index, instruction in enumerate(pending_interventions, start=1) + ) + intervention_text = ( + "\n\n本步骤前收到的实时用户干预:\n" + f"{lines}\n" + "除非客观上无法执行,否则本步骤必须吸收这些干预。" + "如果干预要求移动、更新状态、发送消息或改变行为,请把具体效果写入 environment_instruction。" + "如果是公共安全紧急情况,优先处理撤离、协作和沟通。\n" + ) + broadcast_text = ( + f"\n\n自动紧急干预处理结果:\n{broadcast_result}\n" + if broadcast_result + else "" + ) + skill_runtime_text = "" + if skill_runtime_result: + skill_runtime_text = ( + "\n\nAgentSociety 可执行技能运行结果:\n" + f"{json.dumps(_json_safe(skill_runtime_result), ensure_ascii=False, indent=2)}\n" + "请把它视为已落地的可执行上下文。如果明显错误可以覆盖;如果认可,请保持 " + "environment_instruction 为空,AgentSociety 会直接执行提案。\n" + ) + return ( + "你正在控制一个 AgentSociety 模拟智能体,只执行一个步骤。\n" + f"智能体编号:{self.id}\n" + f"智能体姓名:{self.name}\n" + f"角色档案:{json.dumps(_json_safe(self.get_profile()), ensure_ascii=False)}\n" + f"{self._experiment_context_text()}" + f"{CHINESE_OUTPUT_POLICY}\n" + f"模拟时间:{t.isoformat()}\n" + f"单步秒数:{tick}\n" + f"环境观察:\n{observation}" + f"{intervention_text}\n\n" + f"{broadcast_text}" + f"{skill_runtime_text}" + "如果观察中包含关于紧急情况的 recent_messages 或 latest_event,请把它当作实时信息并立即调整行动。\n\n" + "只返回一个 JSON 对象,结构如下:\n" + "{\n" + ' "public_summary": "用中文简短描述本步骤",\n' + ' "environment_instruction": "给 AgentSociety 环境的中文自然语言动作,或空字符串",\n' + ' "action_proposal": {"action_type": "move|interact|direct_message|group_message|set_action", "location_id": "optional", "interaction_id": "optional", "receiver_id": "direct_message 必填", "content": "必须是中文", "public": "只有公共公告/安全广播/系统通知才可为 true"}\n' + "}\n" + "如果要使用上面的可执行技能提案,可以省略 action_proposal。\n" + "普通对话必须使用 direct_message,并且只能发给环境观察中的 nearby_agents。" + "group_message 只用于明确的公共公告、安全广播或系统通知;使用时必须设置 public=true。\n" + "不要用 Markdown 包裹 JSON。" + ) + + async def _send_jiuwenclaw_request(self, prompt: str) -> str: + request_id = f"agentsociety_{self.id}_{uuid.uuid4().hex[:12]}" + payload = { + "request_id": request_id, + "channel_id": self._channel_id, + "session_id": self._session_id, + "req_method": "chat.send", + "params": { + "query": prompt, + "mode": self._mode, + "trusted_dirs": list(self._trusted_dirs), + }, + "is_stream": True, + "timestamp": time.time(), + "metadata": { + "source": "agentsociety", + "agent_id": self.id, + "agent_name": self.name, + "enable_memory": self._enable_memory, + }, + } + + request_started_at = time.perf_counter() + queue_ms = 0.0 + status = "error" + semaphore, concurrency_limit = self._request_semaphore_for_current_loop() + try: + async with semaphore: + queue_ms = (time.perf_counter() - request_started_at) * 1000 + async with self._ws_lock: + await self._ensure_connected() + await self._ws.send(json.dumps(payload, ensure_ascii=False)) + try: + response = await asyncio.wait_for( + self._receive_matching_response(request_id), + timeout=self._request_timeout, + ) + except Exception: + await self._reset_websocket() + raise + content = self._extract_response_content(response) + status = "success" + return content + finally: + total_ms = (time.perf_counter() - request_started_at) * 1000 + logger.info( + "[JiuwenClawAgent] request timing: agent_id=%s request_id=%s " + "status=%s queue_ms=%.1f total_ms=%.1f prompt_chars=%s " + "concurrency_limit=%s", + self.id, + request_id, + status, + queue_ms, + total_ms, + len(prompt), + concurrency_limit, + ) + + async def _ensure_connected(self) -> None: + if self._ws is not None: + return + self._ws = await self._open_websocket(self._jiuwenclaw_ws_url) + await self._consume_connection_ack_if_present() + + async def _open_websocket(self, uri: str) -> Any: + origin = self._build_ws_origin(uri) + try: + from websockets.asyncio.client import connect + except Exception: + from websockets import connect + + return await connect(uri, origin=origin) + + def _build_ws_origin(self, uri: str) -> str | None: + """Match JiuwenClaw AgentServer's localhost Origin check.""" + + try: + parsed = urlsplit(uri) + except ValueError: + return None + if not parsed.netloc: + return None + scheme = "https" if parsed.scheme == "wss" else "http" + return f"{scheme}://{parsed.netloc}" + + async def _consume_connection_ack_if_present(self) -> None: + try: + raw = await asyncio.wait_for(self._ws.recv(), timeout=2.0) + except asyncio.TimeoutError: + return + data = self._decode_wire_message(raw) + if data.get("type") == "event" and data.get("event") == "connection.ack": + return + self._pending_response = data + + async def _receive_matching_response(self, request_id: str) -> dict: + content_parts: list[str] = [] + final_content: str = "" + pending = getattr(self, "_pending_response", None) + if isinstance(pending, dict): + self._pending_response = None + if str(pending.get("request_id") or "") == request_id: + piece = self._extract_stream_piece(pending) + if piece["final"]: + final_content = piece["text"] + elif piece["text"]: + content_parts.append(piece["text"]) + if pending.get("is_final"): + return self._with_stream_content( + pending, + final_content or "".join(content_parts), + ) + + while True: + raw = await self._ws.recv() + data = self._decode_wire_message(raw) + if data.get("type") == "event": + continue + if str(data.get("request_id") or "") == request_id: + piece = self._extract_stream_piece(data) + if piece["final"]: + final_content = piece["text"] + elif piece["text"]: + content_parts.append(piece["text"]) + if data.get("is_final"): + return self._with_stream_content( + data, + final_content or "".join(content_parts), + ) + + def _decode_wire_message(self, raw: str | bytes) -> dict: + if isinstance(raw, bytes): + raw = raw.decode("utf-8") + data = json.loads(raw) + if not isinstance(data, dict): + raise ValueError("JiuwenClaw WebSocket response must be a JSON object") + return data + + def _extract_response_content(self, response: dict) -> str: + if "ok" in response: + if not response.get("ok", True): + payload = response.get("payload") or {} + raise RuntimeError(str(payload.get("error") or payload)) + payload = response.get("payload") or {} + return str(payload.get("content") or payload.get("result") or payload) + + body = response.get("body") or {} + status = str(response.get("status") or "") + response_kind = str(response.get("response_kind") or "") + if status == "failed" or response_kind.endswith(".error"): + raise RuntimeError(str(body.get("message") or body.get("error") or body)) + + result = body.get("result") + if isinstance(result, dict): + if "content" in result: + content = result["content"] + if isinstance(content, dict): + if "output" in content: + return str(content["output"]) + if "content" in content: + return str(content["content"]) + return str(content) + return json.dumps(result, ensure_ascii=False) + if result is not None: + return str(result) + if "content" in body: + return str(body["content"]) + return json.dumps(body, ensure_ascii=False) + + async def _reset_websocket(self) -> None: + if self._ws is None: + return + close = getattr(self._ws, "close", None) + try: + if callable(close): + await close() + finally: + self._ws = None + self._pending_response = None + + def _with_stream_content(self, response: dict, content: str) -> dict: + if not content: + return response + next_response = dict(response) + body = dict(next_response.get("body") or {}) + body["result"] = {"content": content} + next_response["body"] = body + return next_response + + def _extract_stream_piece(self, response: dict) -> dict[str, Any]: + body = response.get("body") or {} + delta = body.get("delta") + if isinstance(delta, dict): + event_type = str(delta.get("event_type") or body.get("event_type") or "") + content = delta.get("content") + if content is None: + content = delta.get("delta") + if event_type == "chat.final" and content is not None: + return {"text": str(content), "final": True} + if event_type in {"chat.delta", "text.delta"} and content is not None: + return {"text": str(content), "final": False} + if body.get("delta_kind") == "text" and isinstance(delta, str): + return {"text": delta, "final": False} + payload = response.get("payload") + if isinstance(payload, dict): + event_type = str(payload.get("event_type") or "") + content = payload.get("content") + if event_type == "chat.final" and content is not None: + return {"text": str(content), "final": True} + if event_type == "chat.delta" and content is not None: + return {"text": str(content), "final": False} + return {"text": "", "final": False} + + def _parse_step_decision(self, text: str) -> dict[str, Any]: + data = self._extract_json_object(text) + if not isinstance(data, dict): + return {"_parsed": False, "public_summary": text} + data["_parsed"] = True + return data + + def _extract_json_object(self, text: str) -> Any: + stripped = text.strip() + fence = re.search(r"```(?:json)?\s*(\{.*?\})\s*```", stripped, re.DOTALL) + if fence: + stripped = fence.group(1).strip() + if stripped.startswith("{"): + try: + return json.loads(stripped) + except json.JSONDecodeError: + pass + + start = stripped.find("{") + while start != -1: + try: + obj, _ = json.JSONDecoder().raw_decode(stripped[start:]) + return obj + except json.JSONDecodeError: + start = stripped.find("{", start + 1) + return None diff --git a/agentsociety/custom/agents/scripted_pixel_town_agent.py b/agentsociety/custom/agents/scripted_pixel_town_agent.py new file mode 100644 index 0000000..a8a5778 --- /dev/null +++ b/agentsociety/custom/agents/scripted_pixel_town_agent.py @@ -0,0 +1,154 @@ +"""Deterministic pixel-town agent for replayable multi-step demos.""" + +from __future__ import annotations + +from datetime import datetime +import re +from typing import Any + +from agentsociety2.agent.base import AgentBase + + +class ScriptedPixelTownAgent(AgentBase): + """Agent that executes a configured step script against PixelTownSocialEnv.""" + + def __init__( + self, + id: int, + profile: Any, + name: str | None = None, + script: list[dict[str, Any]] | None = None, + ) -> None: + super().__init__(id=id, profile=profile, name=name) + self._script = script or [] + self._step_index = 0 + self._last_result: dict[str, Any] = {} + self._queued_interventions: list[dict[str, Any]] = [] + + @classmethod + def mcp_description(cls) -> str: + return """ScriptedPixelTownAgent: deterministic replay demo agent. + +Provide a `script` list. Each entry can set location/action/status/emotion, +phase, direct_messages, and group_messages. It is useful for fast multi-step +frontend replay validation without spending LLM calls. +""" + + async def ask(self, message: str, readonly: bool = True) -> str: + if any(keyword in message for keyword in ("今天", "干了什么", "做了什么", "what did")): + completed = self._script[: min(self._step_index, len(self._script))] + if completed: + summaries = [] + for index, action in enumerate(completed, start=1): + phase = action.get("phase") or "阶段" + location = action.get("location") or "未知地点" + activity = action.get("action") or action.get("status") or "等待" + summaries.append(f"{index}. {phase}:在{location}{activity}") + return ( + f"{self.name} 今天已经执行到第 {self._step_index} 步。" + "主要做了:\n" + "\n".join(summaries) + ) + return f"{self.name} 今天还没有执行新的行动。" + if any(keyword in message for keyword in ("听到", "收到", "实时提问", "身份回答")): + role = self.get_profile().get("role", "居民") + return ( + f"我是 {self.name},身份是{role}。我收到了你的实时提问。" + f"当前我执行到第 {self._step_index} 步,最近状态是:{self._last_result or '暂无'}。" + ) + return ( + f"{self.name} is a scripted pixel-town agent. " + f"Current script step: {self._step_index}. Last result: {self._last_result}" + ) + + async def step(self, tick: int, t: datetime) -> str: + if self._queued_interventions: + action = self._queued_interventions.pop(0) + else: + action = ( + self._script[self._step_index] + if self._step_index < len(self._script) + else {} + ) + env = self._find_pixel_env() + if env is None: + result = {"error": "PixelTownSocialEnv not found"} + else: + result = await env.apply_scripted_action(self.id, action) + self._last_result = result + self._step_index += 1 + return str(result) + + def queue_intervention(self, instruction: str) -> str: + action = self._build_intervention_action(instruction) + self._queued_interventions.append(action) + return "已排队到下一次 step" + + def _build_intervention_action(self, instruction: str) -> dict[str, Any]: + clean_instruction = " ".join(str(instruction).split()) + location = self._match_first( + clean_instruction, + [ + r"(?:前往|移动到|去到|去|到)([^,。,;;、]+)", + r"(?:location|地点|位置)[::= ]+([^,。,;;]+)", + ], + ) + status = self._match_first( + clean_instruction, + [ + r"(?:状态设为|状态设置为|将状态设为|status[::= ]+)([^,。,;;]+)", + r"(?:设为|设置为)([^,。,;;]+)", + ], + ) + return { + "phase": "实时干预", + "location": location, + "action": f"执行实时干预:{clean_instruction}", + "status": status or "intervened", + "emotion": "focused", + "event": f"{self.name} 接收到实时干预:{clean_instruction}", + } + + @staticmethod + def _match_first(text: str, patterns: list[str]) -> str | None: + for pattern in patterns: + match = re.search(pattern, text, flags=re.IGNORECASE) + if match: + value = match.group(1).strip() + return value or None + return None + + async def dump(self) -> dict[str, Any]: + return { + "id": self.id, + "name": self.name, + "profile": self.get_profile(), + "script": self._script, + "step_index": self._step_index, + "last_result": self._last_result, + "queued_interventions": self._queued_interventions, + } + + async def load(self, dump_data: dict[str, Any]) -> None: + self._id = int(dump_data.get("id", self._id)) + self._name = str(dump_data.get("name", self._name)) + self._profile = dump_data.get("profile", self._profile) + script = dump_data.get("script") + if isinstance(script, list): + self._script = script + self._step_index = int(dump_data.get("step_index", self._step_index)) + last_result = dump_data.get("last_result") + if isinstance(last_result, dict): + self._last_result = last_result + queued_interventions = dump_data.get("queued_interventions") + if isinstance(queued_interventions, list): + self._queued_interventions = [ + item for item in queued_interventions if isinstance(item, dict) + ] + + def _find_pixel_env(self) -> Any: + if self._env is None: + return None + for module in getattr(self._env, "env_modules", []): + if hasattr(module, "apply_scripted_action"): + return module + return None diff --git a/agentsociety/custom/envs/pixel_town_social_env.py b/agentsociety/custom/envs/pixel_town_social_env.py new file mode 100644 index 0000000..12ae69e --- /dev/null +++ b/agentsociety/custom/envs/pixel_town_social_env.py @@ -0,0 +1,1450 @@ +"""Replay-friendly pixel town social environment.""" + +from __future__ import annotations + +import asyncio +from collections import defaultdict +from datetime import datetime +import heapq +import json +from pathlib import Path +import sqlite3 +from typing import Any, ClassVar + +from agentsociety2.env import EnvBase, tool +from agentsociety2.storage import ColumnDef +import yaml + + +Tile = tuple[int, int] + + +def _repo_root() -> Path: + return Path(__file__).resolve().parents[2] + + +def _normalize_key(value: Any) -> str: + return str(value or "").strip().casefold() + + +def _contains_latin(value: Any) -> bool: + return any("a" <= ch.lower() <= "z" for ch in str(value or "")) + + +def _contains_latin_outside_terms(value: Any, allowed_terms: list[str]) -> bool: + text = str(value or "") + terms: set[str] = set() + for item in allowed_terms: + term = str(item).strip() + if not term: + continue + terms.add(term) + terms.update( + piece + for piece in term.replace("-", " ").replace("_", " ").split() + if _contains_latin(piece) + ) + for term in sorted(terms, key=len, reverse=True): + text = text.replace(term, "") + return _contains_latin(text) + + +def _force_chinese_text(value: Any, fallback: str) -> str: + text = str(value or "").strip() + return fallback if _contains_latin(text) else text + + +def _load_structured_file(path: Path) -> dict[str, Any]: + if not path.exists(): + raise FileNotFoundError(f"Pixel town map manifest not found: {path}") + text = path.read_text(encoding="utf-8") + if path.suffix.lower() in {".yaml", ".yml"}: + data = yaml.safe_load(text) + else: + data = json.loads(text) + if not isinstance(data, dict): + raise ValueError(f"Pixel town map manifest must be an object: {path}") + return data + + +class PixelTownSocialEnv(EnvBase): + """Small social environment that exports per-agent replay snapshots.""" + + _agent_state_columns: ClassVar[list[ColumnDef]] = [ + ColumnDef("name", "TEXT"), + ColumnDef("location", "TEXT"), + ColumnDef("action", "TEXT"), + ColumnDef("status", "TEXT"), + ColumnDef("emotion", "TEXT"), + ColumnDef("message_count", "INTEGER"), + ColumnDef("last_message", "TEXT"), + ColumnDef("recent_messages", "JSON"), + ColumnDef("nearby_agents", "JSON"), + ColumnDef("current_phase", "TEXT"), + ColumnDef("latest_event", "TEXT"), + ColumnDef("groups", "JSON"), + ColumnDef("map_id", "TEXT"), + ColumnDef("tile_x", "INTEGER"), + ColumnDef("tile_y", "INTEGER"), + ColumnDef("location_id", "TEXT"), + ColumnDef("movement_status", "TEXT"), + ColumnDef("target_location_id", "TEXT"), + ColumnDef("path_json", "JSON"), + ColumnDef("movement_segment_json", "JSON"), + ColumnDef("movement_path_index", "INTEGER"), + ColumnDef("movement_path_length", "INTEGER"), + ColumnDef("available_interactions_json", "JSON"), + ] + _env_state_columns: ClassVar[list[ColumnDef]] = [ + ColumnDef("total_messages_sent", "INTEGER"), + ColumnDef("active_groups", "INTEGER"), + ColumnDef("total_agents", "INTEGER"), + ColumnDef("active_location_count", "INTEGER"), + ColumnDef("current_phase", "TEXT"), + ColumnDef("latest_event", "TEXT"), + ColumnDef("latest_communications", "TEXT"), + ] + + def __init__( + self, + agent_id_name_pairs: list[list[int | str]] | None = None, + initial_locations: dict[str, str] | None = None, + default_group_name: str = "像素小镇日常群", + map_manifest_path: str | None = None, + map_id: str | None = None, + movement_tiles_per_second: float = 8.0, + movement_min_steps_per_trip: int = 3, + ) -> None: + super().__init__() + self._movement_tiles_per_second = float(movement_tiles_per_second) + self._movement_min_steps_per_trip = max(1, int(movement_min_steps_per_trip)) + self._map_manifest_path = self._resolve_manifest_path(map_manifest_path, map_id) + self._map_manifest = _load_structured_file(self._map_manifest_path) + self._map_root = self._map_manifest_path.parent + self._map_id = str(self._map_manifest.get("map_id") or self._map_manifest_path.parent.name) + self._tile_size = int(self._map_manifest.get("tile_size") or 32) + self._locations_by_id: dict[str, dict[str, Any]] = {} + self._location_aliases: dict[str, str] = {} + self._interactions_by_id: dict[str, dict[str, Any]] = {} + self._load_manifest_semantics() + self._walkable_tiles, self._map_width, self._map_height = self._load_walkable_tiles() + + agent_id_name_pairs = agent_id_name_pairs or [ + [1, "Jiuwen Alice"], + [2, "Jiuwen Bob"], + [3, "Jiuwen Charlie"], + ] + self._agent_names = { + int(agent_id): str(name) for agent_id, name in agent_id_name_pairs + } + self._locations: dict[int, str] = {} + self._location_ids: dict[int, str] = {} + self._tiles: dict[int, Tile] = {} + self._movement_statuses: dict[int, str] = {} + self._movement_targets: dict[int, str | None] = {} + self._movement_paths: dict[int, list[Tile]] = {} + self._movement_progress: dict[int, float] = {} + self._movement_step_segments: dict[int, list[Tile]] = {} + self._movement_path_indices: dict[int, int] = {} + self._movement_path_lengths: dict[int, int] = {} + for agent_id in self._agent_names: + initial_location = (initial_locations or {}).get(str(agent_id)) + self._place_agent_at_location(agent_id, initial_location, fallback_index=agent_id) + self._actions = {agent_id: "刚到达" for agent_id in self._agent_names} + self._statuses = {agent_id: "就绪" for agent_id in self._agent_names} + self._emotions = {agent_id: "好奇" for agent_id in self._agent_names} + self._mailboxes: dict[int, list[dict[str, Any]]] = defaultdict(list) + self._groups: dict[int, dict[str, Any]] = { + 1: { + "name": default_group_name, + "members": sorted(self._agent_names), + } + } + self._total_messages_sent = 0 + self._step_communications: list[dict[str, Any]] = [] + self._step_counter = 0 + self._current_phase = "setup" + self._latest_event = f"智能体抵达{self._map_display_name()}。" + self._lock = asyncio.Lock() + + @staticmethod + def _resolve_manifest_path(map_manifest_path: str | None, map_id: str | None = None) -> Path: + if map_manifest_path: + path = Path(map_manifest_path).expanduser() + resolved = path if path.is_absolute() else (_repo_root() / path).resolve() + if resolved.exists(): + return resolved + requested_map_id = str(map_id or "the_ville").strip() or "the_ville" + map_yaml = (_repo_root() / "custom" / "maps" / requested_map_id / "map.yaml").resolve() + if map_yaml.exists(): + return map_yaml + town_yaml = (_repo_root() / "custom" / "maps" / requested_map_id / "town.yaml").resolve() + if town_yaml.exists(): + return town_yaml + return (_repo_root() / "custom" / "maps" / "the_ville" / "map.yaml").resolve() + + def _load_manifest_semantics(self) -> None: + locations = self._map_manifest.get("locations") or [] + if not isinstance(locations, list) or not locations: + raise ValueError("Pixel town manifest requires a non-empty locations list") + + for item in locations: + if not isinstance(item, dict): + raise ValueError("Each pixel town location must be an object") + location_id = str(item.get("id") or "").strip() + name = str(item.get("name") or location_id).strip() + anchor = item.get("anchor_tile") or {} + if not location_id or "x" not in anchor or "y" not in anchor: + raise ValueError(f"Location requires id and anchor_tile: {item}") + normalized = { + **item, + "id": location_id, + "name": name, + "anchor_tile": { + "x": int(anchor["x"]), + "y": int(anchor["y"]), + }, + "scene_type": str(item.get("scene_type") or "").strip(), + "bounds": self._normalize_bounds(item.get("bounds")), + "aliases": [str(alias) for alias in item.get("aliases", []) or []], + "interaction_ids": [ + str(interaction_id) + for interaction_id in item.get("interaction_ids", []) or [] + ], + } + self._locations_by_id[location_id] = normalized + for alias in [location_id, name, *normalized["aliases"]]: + key = _normalize_key(alias) + if key: + self._location_aliases[key] = location_id + + interactions = self._map_manifest.get("interactions") or [] + if not isinstance(interactions, list): + raise ValueError("Pixel town manifest interactions must be a list") + for item in interactions: + if not isinstance(item, dict): + raise ValueError("Each pixel town interaction must be an object") + interaction_id = str(item.get("id") or "").strip() + if not interaction_id: + raise ValueError(f"Interaction requires id: {item}") + allowed = item.get("allowed_location_ids") or [] + self._interactions_by_id[interaction_id] = { + **item, + "id": interaction_id, + "name": str(item.get("name") or interaction_id), + "description": str(item.get("description") or ""), + "allowed_location_ids": [str(location_id) for location_id in allowed], + "effects": item.get("effects") if isinstance(item.get("effects"), dict) else {}, + } + + @staticmethod + def _normalize_bounds(raw: Any) -> dict[str, int] | None: + if not isinstance(raw, dict): + return None + try: + return { + "x": int(raw["x"]), + "y": int(raw["y"]), + "w": int(raw["w"]), + "h": int(raw["h"]), + } + except Exception: + return None + + def _resolve_tiled_map_path(self) -> Path: + raw = str(self._map_manifest.get("tiled_map_path") or "map.json") + path = Path(raw).expanduser() + if path.is_absolute(): + return path + return (self._map_root / path).resolve() + + def _load_walkable_tiles(self) -> tuple[set[Tile], int, int]: + tiled_map_path = self._resolve_tiled_map_path() + data = json.loads(tiled_map_path.read_text(encoding="utf-8")) + width = int(data.get("width") or 0) + height = int(data.get("height") or 0) + collision_layer = next( + ( + layer + for layer in data.get("layers", []) or [] + if layer.get("name") == "Collisions" and layer.get("type") == "tilelayer" + ), + None, + ) + if not collision_layer or not isinstance(collision_layer.get("data"), list): + return { + (x, y) + for y in range(height) + for x in range(width) + }, width, height + + walkable: set[Tile] = set() + for index, gid in enumerate(collision_layer["data"]): + if int(gid or 0) == 0: + walkable.add((index % width, index // width)) + return walkable, width, height + + def _resolve_location_id(self, value: Any) -> str | None: + if value is None: + return None + return self._location_aliases.get(_normalize_key(value)) + + def _location_tile(self, location_id: str) -> Tile: + location = self._locations_by_id[location_id] + anchor = location["anchor_tile"] + return self._nearest_walkable_tile((int(anchor["x"]), int(anchor["y"]))) + + def _nearest_walkable_tile(self, tile: Tile) -> Tile: + if tile in self._walkable_tiles: + return tile + if not self._walkable_tiles: + return tile + best_tile = min( + self._walkable_tiles, + key=lambda item: abs(item[0] - tile[0]) + abs(item[1] - tile[1]), + ) + return best_tile + + def _default_location_id(self, fallback_index: int = 0) -> str: + spawn_points = self._map_manifest.get("spawn_points") or [] + if isinstance(spawn_points, list) and spawn_points: + spawn = spawn_points[fallback_index % len(spawn_points)] + if isinstance(spawn, dict): + location_id = self._resolve_location_id(spawn.get("location_id")) + if location_id is not None: + return location_id + return next(iter(self._locations_by_id)) + + def _place_agent_at_location( + self, + agent_id: int, + location: Any, + fallback_index: int = 0, + ) -> str: + location_id = self._resolve_location_id(location) or self._default_location_id(fallback_index) + resolved = self._locations_by_id[location_id] + self._location_ids[agent_id] = location_id + self._locations[agent_id] = str(resolved["name"]) + self._tiles[agent_id] = self._location_tile(location_id) + self._movement_statuses[agent_id] = "idle" + self._movement_targets[agent_id] = None + self._movement_paths[agent_id] = [self._tiles[agent_id]] + self._movement_progress[agent_id] = 0.0 + self._movement_step_segments[agent_id] = [self._tiles[agent_id]] + self._movement_path_indices[agent_id] = 0 + self._movement_path_lengths[agent_id] = 1 + return location_id + + def _neighbors(self, tile: Tile) -> list[Tile]: + x, y = tile + candidates = [(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)] + return [ + item + for item in candidates + if 0 <= item[0] < self._map_width + and 0 <= item[1] < self._map_height + and item in self._walkable_tiles + ] + + def _find_path(self, start: Tile, goal: Tile) -> list[Tile] | None: + start = self._nearest_walkable_tile(start) + goal = self._nearest_walkable_tile(goal) + if start == goal: + return [start] + + frontier: list[tuple[int, Tile]] = [(0, start)] + came_from: dict[Tile, Tile | None] = {start: None} + cost_so_far: dict[Tile, int] = {start: 0} + + while frontier: + _, current = heapq.heappop(frontier) + if current == goal: + break + for neighbor in self._neighbors(current): + new_cost = cost_so_far[current] + 1 + if neighbor not in cost_so_far or new_cost < cost_so_far[neighbor]: + cost_so_far[neighbor] = new_cost + priority = new_cost + abs(goal[0] - neighbor[0]) + abs(goal[1] - neighbor[1]) + heapq.heappush(frontier, (priority, neighbor)) + came_from[neighbor] = current + + if goal not in came_from: + return None + + path = [goal] + current = goal + while came_from[current] is not None: + current = came_from[current] # type: ignore[assignment] + path.append(current) + path.reverse() + return path + + @classmethod + def mcp_description(cls) -> str: + return """PixelTownSocialEnv: replay-friendly social environment. + +Stores per-agent location/action/status/emotion rows for pixel-town replay and +supports direct/group messages between agents. +""" + + @property + def description(self) -> str: + return ( + "A small pixel-town social environment with locations, agent actions, " + "personal messages, group messages, and replay snapshots." + ) + + @tool(readonly=True, kind="observe") + async def observe_agent(self, agent_id: int) -> dict[str, Any]: + """Observe one agent's current state and unread messages.""" + async with self._lock: + snapshot = self._snapshot_agent(agent_id) + snapshot["known_locations"] = [ + self._public_location(location) + for location in self._locations_by_id.values() + ] + snapshot["known_interactions"] = [ + self._public_interaction(interaction) + for interaction in self._interactions_by_id.values() + ] + return snapshot + + @tool(readonly=True) + async def list_locations(self) -> dict[str, Any]: + """List all named map locations agents can move to.""" + async with self._lock: + return { + "map_id": self._map_id, + "locations": [self._public_location(location) for location in self._locations_by_id.values()], + } + + @tool(readonly=True) + async def list_interactions(self, location_id: str | None = None) -> dict[str, Any]: + """List interactions available globally or at a specific location.""" + async with self._lock: + resolved_location_id = self._resolve_location_id(location_id) if location_id else None + interactions = [ + self._public_interaction(interaction) + for interaction in self._interactions_by_id.values() + if resolved_location_id is None + or not interaction["allowed_location_ids"] + or resolved_location_id in interaction["allowed_location_ids"] + ] + return { + "map_id": self._map_id, + "location_id": resolved_location_id, + "interactions": interactions, + } + + @tool(readonly=True) + async def receive_messages(self, agent_id: int) -> dict[str, Any]: + """Read and clear one agent's mailbox.""" + async with self._lock: + messages = list(self._mailboxes.get(agent_id, [])) + self._mailboxes[agent_id] = [] + return {"agent_id": agent_id, "messages": messages} + + async def add_agent( + self, + agent_id: int, + name: str, + location: str = "park", + ) -> dict[str, Any]: + """Register a new live agent so it appears in the next replay step.""" + async with self._lock: + agent_id = int(agent_id) + self._agent_names[agent_id] = str(name) + self._place_agent_at_location(agent_id, location, fallback_index=agent_id) + self._actions.setdefault(agent_id, "加入小镇") + self._statuses.setdefault(agent_id, "就绪") + self._emotions.setdefault(agent_id, "好奇") + self._mailboxes.setdefault(agent_id, []) + group = self._groups.setdefault( + 1, + {"name": "小镇协作群", "members": []}, + ) + members = {int(member_id) for member_id in group.get("members", [])} + members.add(agent_id) + group["members"] = sorted(members) + self._latest_event = f"{self._display_name(agent_id)} 加入了小镇。" + return self._snapshot_agent(agent_id) + + @tool(readonly=False) + async def publish_event( + self, + event: str, + severity: str = "info", + broadcast: bool = True, + group_id: int = 1, + ) -> dict[str, Any]: + """Publish a system-level world event that agents can observe and react to.""" + async with self._lock: + event = self._force_visible_text(event, "收到一条公共环境事件。") + severity = str(severity or "info").strip().lower() + if not event: + return {"event": "", "severity": severity, "broadcast": False} + + self._latest_event = event + if severity in {"emergency", "warning", "crisis", "disaster"}: + self._current_phase = "emergency" + + recipient_count = 0 + if broadcast: + group = self._groups.get(int(group_id)) + if group: + content = f"公共环境事件({self._severity_label(severity)}):{event}" + message = self._build_message( + "system_event", + 0, + content, + group_id=int(group_id), + ) + for member_id in group["members"]: + self._mailboxes[int(member_id)].append(message) + recipient_count = len(group["members"]) + self._total_messages_sent += 1 + self._record_communication( + message_type="system_event", + sender_id=0, + content=content, + group_id=int(group_id), + recipient_count=recipient_count, + ) + + return { + "event": event, + "severity": severity, + "phase": self._current_phase, + "broadcast": bool(broadcast), + "recipient_count": recipient_count, + } + + @tool(readonly=False) + async def move_agent(self, agent_id: int, location: str) -> dict[str, Any]: + """Move an agent to a named manifest location using tile pathfinding.""" + async with self._lock: + agent_id = int(agent_id) + if agent_id not in self._agent_names: + return {"ok": False, "error": "unknown_agent", "agent_id": agent_id} + target_location_id = self._resolve_location_id(location) + if target_location_id is None: + return { + "ok": False, + "error": "unknown_location", + "agent_id": agent_id, + "location": location, + "known_locations": list(self._locations_by_id), + } + + start = self._tiles.get(agent_id) or self._location_tile(self._location_ids[agent_id]) + goal = self._location_tile(target_location_id) + path = self._find_path(start, goal) + if path is None: + return { + "ok": False, + "error": "unreachable", + "agent_id": agent_id, + "from_tile": {"x": start[0], "y": start[1]}, + "to_location_id": target_location_id, + "to_tile": {"x": goal[0], "y": goal[1]}, + } + + self._movement_paths[agent_id] = path + self._movement_progress[agent_id] = 0.0 + self._movement_targets[agent_id] = target_location_id + self._movement_step_segments[agent_id] = [path[0]] + self._movement_path_indices[agent_id] = 0 + self._movement_path_lengths[agent_id] = len(path) + target_name = self._location_display_name(target_location_id) + if len(path) <= 1: + self._finish_movement(agent_id, target_location_id) + else: + self._movement_statuses[agent_id] = "moving" + self._actions[agent_id] = f"前往{target_name}" + self._statuses[agent_id] = "移动中" + self._tiles[agent_id] = path[0] + self._latest_event = f"{self._display_name(agent_id)} 正在前往{target_name}。" + return { + "ok": True, + "agent_id": agent_id, + "location_id": target_location_id, + "location": target_name, + "path_length": len(path), + "path": [{"x": x, "y": y} for x, y in path], + } + + @tool(readonly=False) + async def interact( + self, + agent_id: int, + interaction_id: str, + params: dict[str, Any] | None = None, + ) -> dict[str, Any]: + """Perform a location-scoped interaction from the map manifest.""" + async with self._lock: + agent_id = int(agent_id) + params = params or {} + interaction = self._interactions_by_id.get(str(interaction_id)) + if interaction is None: + return { + "ok": False, + "error": "unknown_interaction", + "interaction_id": interaction_id, + "known_interactions": list(self._interactions_by_id), + } + current_location_id = self._location_ids.get(agent_id) + allowed = interaction.get("allowed_location_ids") or [] + if allowed and current_location_id not in allowed: + return { + "ok": False, + "error": "interaction_not_available_here", + "agent_id": agent_id, + "interaction_id": interaction_id, + "current_location_id": current_location_id, + "allowed_location_ids": allowed, + } + + effects = interaction.get("effects") or {} + if action := effects.get("action"): + self._actions[agent_id] = self._force_visible_text( + self._render_template(str(action), agent_id, params), + f"{self._display_name(agent_id)} 执行{interaction['name']}", + ) + if status := effects.get("status"): + self._statuses[agent_id] = self._force_visible_text( + self._render_template(str(status), agent_id, params), + "活跃", + ) + if emotion := effects.get("emotion"): + self._emotions[agent_id] = self._force_visible_text( + self._render_template(str(emotion), agent_id, params), + "平静", + ) + if event := effects.get("latest_event"): + self._latest_event = self._force_visible_text( + self._render_template(str(event), agent_id, params), + f"{self._display_name(agent_id)} 执行了{interaction['name']}。", + ) + else: + self._latest_event = ( + f"{self._display_name(agent_id)} 执行了{interaction['name']}。" + ) + if group_message := effects.get("group_message"): + content = self._render_template(str(group_message), agent_id, params) + if self._is_public_interaction(interaction, effects): + group_id = int(effects.get("group_id") or 1) + if group_id in self._groups: + self._deliver_group_message_locked(agent_id, group_id, content) + else: + receiver_id = self._select_nearby_message_target(agent_id, params) + if receiver_id is not None: + self._deliver_direct_message_locked(agent_id, receiver_id, content) + return { + "ok": True, + "agent_id": agent_id, + "interaction_id": interaction["id"], + "interaction": interaction["name"], + "location_id": current_location_id, + "effects": effects, + } + + @tool(readonly=False) + async def set_agent_action( + self, + agent_id: int, + action: str, + status: str = "active", + emotion: str = "focused", + ) -> dict[str, Any]: + """Set replay-visible action/status/emotion for an agent.""" + async with self._lock: + visible_action = self._force_visible_text(action, "继续日常安排") + visible_status = self._force_visible_text(status, "活跃") + visible_emotion = self._force_visible_text(emotion, "平静") + self._actions[agent_id] = visible_action + self._statuses[agent_id] = visible_status + self._emotions[agent_id] = visible_emotion + self._latest_event = f"{self._display_name(agent_id)}:{visible_action}" + return { + "agent_id": agent_id, + "action": visible_action, + "status": visible_status, + "emotion": visible_emotion, + } + + @tool(readonly=False) + async def send_message( + self, + sender_id: int, + receiver_id: int, + content: str, + ) -> dict[str, Any]: + """Send a direct message to another agent.""" + async with self._lock: + sender_id = int(sender_id) + receiver_id = int(receiver_id) + if sender_id not in self._agent_names: + return {"ok": False, "error": "unknown_sender", "sender_id": sender_id} + if receiver_id not in self._agent_names: + return {"ok": False, "error": "unknown_receiver", "receiver_id": receiver_id} + sender_location_id = self._location_ids.get(sender_id) + receiver_location_id = self._location_ids.get(receiver_id) + if sender_location_id != receiver_location_id: + return { + "ok": False, + "error": "receiver_not_nearby", + "sender_id": sender_id, + "receiver_id": receiver_id, + "sender_location_id": sender_location_id, + "receiver_location_id": receiver_location_id, + "nearby_agents": self._nearby_agents(sender_id), + } + return self._deliver_direct_message_locked(sender_id, receiver_id, str(content)) + + @tool(readonly=False) + async def send_group_message( + self, + sender_id: int, + group_id: int, + content: str, + ) -> dict[str, Any]: + """Send a message to all members of a group.""" + async with self._lock: + sender_id = int(sender_id) + group_id = int(group_id) + group = self._groups.get(group_id) + if not group: + return {"ok": False, "sender_id": sender_id, "group_id": group_id, "recipient_count": 0} + return self._deliver_group_message_locked(sender_id, group_id, str(content)) + + async def apply_scripted_action( + self, + agent_id: int, + action: dict[str, Any], + ) -> dict[str, Any]: + """Apply a full scripted action without routing through an LLM.""" + async with self._lock: + if location := action.get("location"): + self._place_agent_at_location(agent_id, location, fallback_index=agent_id) + self._actions[agent_id] = self._force_visible_text( + action.get("action") or "等待", + "等待下一步安排", + ) + self._statuses[agent_id] = self._force_visible_text( + action.get("status") or "活跃", + "活跃", + ) + self._emotions[agent_id] = self._force_visible_text( + action.get("emotion") or "专注", + "专注", + ) + if phase := action.get("phase"): + self._current_phase = str(phase) + + for direct in action.get("direct_messages", []) or []: + receiver_id = int(direct["to"]) + content = self._force_visible_text(direct["content"], "我会用中文继续处理。") + self._mailboxes[receiver_id].append( + self._build_message("direct", agent_id, content) + ) + self._total_messages_sent += 1 + self._record_communication( + message_type="direct", + sender_id=agent_id, + content=content, + receiver_id=receiver_id, + ) + + for group_msg in action.get("group_messages", []) or []: + group_id = int(group_msg.get("group_id", 1)) + content = self._force_visible_text(group_msg["content"], "我会用中文同步当前处理。") + group = self._groups.get(group_id) + if group: + message = self._build_message( + "group", agent_id, content, group_id=group_id + ) + for member_id in group["members"]: + self._mailboxes[int(member_id)].append(message) + self._total_messages_sent += 1 + self._record_communication( + message_type="group", + sender_id=agent_id, + content=content, + group_id=group_id, + recipient_count=len(group["members"]), + ) + + self._latest_event = str( + action.get("event") + or f"{self._display_name(agent_id)}:{self._actions[agent_id]}" + ) + self._latest_event = self._force_visible_text( + self._latest_event, + f"{self._display_name(agent_id)} 更新了状态。", + ) + return self._snapshot_agent(agent_id) + + async def load_replay_tail( + self, + db_path: str | Path, + latest_step: int, + ) -> dict[str, Any]: + """Restore environment state from the latest replay rows without rerunning agents.""" + async with self._lock: + conn = sqlite3.connect(str(db_path)) + conn.row_factory = sqlite3.Row + try: + columns = { + row["name"] + for row in conn.execute( + "PRAGMA table_info(pixel_town_social_agent_state)" + ).fetchall() + } + optional_columns = [ + column + for column in ( + "map_id", + "tile_x", + "tile_y", + "location_id", + "movement_status", + "target_location_id", + "path_json", + "movement_segment_json", + "movement_path_index", + "movement_path_length", + ) + if column in columns + ] + selected_columns = [ + "agent_id", + "name", + "location", + "action", + "status", + "emotion", + "last_message", + *optional_columns, + ] + agent_rows = conn.execute( + f""" + SELECT {", ".join(selected_columns)} + FROM pixel_town_social_agent_state + WHERE step = ? + """, + (latest_step,), + ).fetchall() + env_row = conn.execute( + """ + SELECT total_messages_sent, current_phase, latest_event, latest_communications + FROM pixel_town_social_env_state + WHERE step = ? + """, + (latest_step,), + ).fetchone() + finally: + conn.close() + + for row in agent_rows: + agent_id = int(row["agent_id"]) + self._agent_names[agent_id] = str( + row["name"] or self._agent_names.get(agent_id, f"Agent {agent_id}") + ) + self._locations[agent_id] = str(row["location"] or "Town square") + location_id = ( + str(row["location_id"]) + if "location_id" in row.keys() and row["location_id"] + else self._resolve_location_id(row["location"]) + ) + if location_id is None: + location_id = self._default_location_id(agent_id) + self._location_ids[agent_id] = location_id + if "tile_x" in row.keys() and "tile_y" in row.keys() and row["tile_x"] is not None and row["tile_y"] is not None: + self._tiles[agent_id] = (int(row["tile_x"]), int(row["tile_y"])) + else: + self._tiles[agent_id] = self._location_tile(location_id) + self._movement_statuses[agent_id] = ( + str(row["movement_status"]) + if "movement_status" in row.keys() and row["movement_status"] + else "idle" + ) + self._movement_targets[agent_id] = ( + str(row["target_location_id"]) + if "target_location_id" in row.keys() and row["target_location_id"] + else None + ) + path = self._tile_list_from_json(row["path_json"]) if "path_json" in row.keys() else [] + if not path: + path = [self._tiles[agent_id]] + segment = ( + self._tile_list_from_json(row["movement_segment_json"]) + if "movement_segment_json" in row.keys() + else [] + ) + self._movement_paths[agent_id] = path + raw_path_index = ( + row["movement_path_index"] + if "movement_path_index" in row.keys() and row["movement_path_index"] is not None + else None + ) + if raw_path_index is None: + try: + path_index = path.index(self._tiles[agent_id]) + except ValueError: + path_index = 0 + else: + path_index = int(raw_path_index) + path_length = ( + int(row["movement_path_length"]) + if "movement_path_length" in row.keys() and row["movement_path_length"] is not None + else len(path) + ) + self._movement_path_indices[agent_id] = max(0, path_index) + self._movement_path_lengths[agent_id] = max(1, path_length) + self._movement_step_segments[agent_id] = segment or [self._tiles[agent_id]] + self._movement_progress[agent_id] = float(self._movement_path_indices[agent_id]) + self._actions[agent_id] = str(row["action"] or "waiting") + self._statuses[agent_id] = str(row["status"] or "ready") + self._emotions[agent_id] = str(row["emotion"] or "neutral") + last_message = str(row["last_message"] or "") + self._mailboxes[agent_id] = ( + [ + self._build_message( + "restored", + 0, + last_message, + group_id=1, + ) + ] + if last_message + else [] + ) + + if env_row is not None: + self._total_messages_sent = int(env_row["total_messages_sent"] or 0) + self._current_phase = str(env_row["current_phase"] or "setup") + self._latest_event = str(env_row["latest_event"] or "") + try: + communications = json.loads( + env_row["latest_communications"] or "[]" + ) + except json.JSONDecodeError: + communications = [] + self._step_communications = ( + communications if isinstance(communications, list) else [] + ) + + self._step_counter = int(latest_step) + 1 + return { + "restored": True, + "latest_step": latest_step, + "agent_count": len(agent_rows), + "current_phase": self._current_phase, + } + + async def step(self, tick: int, t: datetime) -> None: + async with self._lock: + self.t = t + self._advance_movements(tick) + records = [self._snapshot_agent(agent_id) for agent_id in sorted(self._agent_names)] + active_locations = {record["location"] for record in records} + env_record = { + "total_messages_sent": self._total_messages_sent, + "active_groups": len(self._groups), + "total_agents": len(self._agent_names), + "active_location_count": len(active_locations), + "current_phase": self._current_phase, + "latest_event": self._latest_event, + "latest_communications": json.dumps(self._step_communications), + } + self._step_communications = [] + + await self._write_agent_state_batch(step=self._step_counter, t=t, records=records) + await self._write_env_state(step=self._step_counter, t=t, **env_record) + self._step_counter += 1 + + def _advance_movements(self, tick: int) -> None: + del tick + for agent_id in self._agent_names: + tile = self._tiles.get(agent_id, (0, 0)) + self._movement_step_segments[agent_id] = [tile] + if self._movement_statuses.get(agent_id) != "moving": + self._movement_path_indices[agent_id] = 0 + self._movement_path_lengths[agent_id] = 1 + for agent_id, status in list(self._movement_statuses.items()): + if status != "moving": + continue + path = self._movement_paths.get(agent_id) or [] + target_location_id = self._movement_targets.get(agent_id) + if not path or target_location_id is None: + self._movement_statuses[agent_id] = "idle" + self._movement_path_indices[agent_id] = 0 + self._movement_path_lengths[agent_id] = 1 + continue + previous_index = min( + int(self._movement_progress.get(agent_id, 0.0)), + len(path) - 1, + ) + distance = max(1, len(path) - 1) + tiles_this_step = max(1.0, self._movement_tiles_per_second) + if distance > 1 and self._movement_min_steps_per_trip > 1: + tiles_this_step = min( + tiles_this_step, + max(1.0, distance / float(self._movement_min_steps_per_trip)), + ) + self._movement_progress[agent_id] = ( + self._movement_progress.get(agent_id, 0.0) + tiles_this_step + ) + next_index = min(int(self._movement_progress[agent_id]), len(path) - 1) + self._tiles[agent_id] = path[next_index] + self._movement_path_indices[agent_id] = next_index + self._movement_path_lengths[agent_id] = len(path) + segment_start = min(previous_index, next_index) + segment_end = max(previous_index, next_index) + self._movement_step_segments[agent_id] = path[segment_start : segment_end + 1] + if next_index >= len(path) - 1: + self._finish_movement(agent_id, target_location_id, preserve_path_metadata=True) + + def _finish_movement( + self, + agent_id: int, + location_id: str, + *, + preserve_path_metadata: bool = False, + ) -> None: + path_index = self._movement_path_indices.get(agent_id, 0) + path_length = self._movement_path_lengths.get(agent_id, 1) + segment = self._movement_step_segments.get(agent_id) + self._location_ids[agent_id] = location_id + self._locations[agent_id] = self._location_display_name(location_id) + self._tiles[agent_id] = self._location_tile(location_id) + self._movement_statuses[agent_id] = "idle" + self._movement_targets[agent_id] = None + self._movement_paths[agent_id] = [self._tiles[agent_id]] + self._movement_progress[agent_id] = 0.0 + if preserve_path_metadata: + self._movement_path_indices[agent_id] = path_index + self._movement_path_lengths[agent_id] = path_length + if segment: + self._movement_step_segments[agent_id] = segment + else: + self._movement_path_indices[agent_id] = 0 + self._movement_path_lengths[agent_id] = 1 + self._movement_step_segments[agent_id] = [self._tiles[agent_id]] + self._statuses[agent_id] = "活跃" + self._actions[agent_id] = f"已到达{self._location_display_name(location_id)}" + + def _build_message( + self, + message_type: str, + sender_id: int, + content: str, + group_id: int | None = None, + ) -> dict[str, Any]: + message = { + "type": message_type, + "sender_id": sender_id, + "sender_name": self._display_name(sender_id), + "content": self._force_visible_text(content, "我会用中文继续处理。"), + "timestamp": self.t.isoformat() if hasattr(self, "t") else "", + } + if group_id is not None: + message["group_id"] = group_id + message["group_name"] = _force_chinese_text( + self._groups.get(group_id, {}).get("name", f"{group_id}号群"), + f"{group_id}号群", + ) + return message + + def _deliver_direct_message_locked( + self, + sender_id: int, + receiver_id: int, + content: str, + ) -> dict[str, Any]: + content = self._force_visible_text(content, "我会用中文继续处理。") + message = self._build_message("direct", sender_id, content) + self._mailboxes[receiver_id].append(message) + self._total_messages_sent += 1 + self._record_communication( + message_type="direct", + sender_id=sender_id, + content=content, + receiver_id=receiver_id, + ) + self._latest_event = ( + f"{self._display_name(sender_id)} 给" + f"{self._display_name(receiver_id)} 发了私信。" + ) + return { + "ok": True, + "sender_id": sender_id, + "receiver_id": receiver_id, + "content": content, + } + + def _deliver_group_message_locked( + self, + sender_id: int, + group_id: int, + content: str, + ) -> dict[str, Any]: + content = self._force_visible_text(content, "我会用中文同步当前处理。") + group = self._groups[group_id] + message = self._build_message("group", sender_id, content, group_id=group_id) + for member_id in group["members"]: + self._mailboxes[int(member_id)].append(message) + self._total_messages_sent += 1 + self._record_communication( + message_type="group", + sender_id=sender_id, + content=content, + group_id=group_id, + recipient_count=len(group["members"]), + ) + self._latest_event = ( + f"{self._display_name(sender_id)} 在{_force_chinese_text(group['name'], f'{group_id}号群')}发了消息。" + ) + return { + "ok": True, + "sender_id": sender_id, + "group_id": group_id, + "content": content, + "recipient_count": len(group["members"]), + } + + def _nearby_agent_ids(self, agent_id: int) -> list[int]: + location_id = self._location_ids.get(int(agent_id)) + if not location_id: + return [] + return [ + other_id + for other_id in sorted(self._agent_names) + if other_id != int(agent_id) + and self._location_ids.get(other_id) == location_id + ] + + def _nearby_agents(self, agent_id: int) -> list[dict[str, Any]]: + return [ + { + "agent_id": other_id, + "name": self._display_name(other_id), + "location_id": self._location_ids.get(other_id), + "location": self._locations.get(other_id, ""), + } + for other_id in self._nearby_agent_ids(agent_id) + ] + + def _select_nearby_message_target( + self, + agent_id: int, + params: dict[str, Any], + ) -> int | None: + nearby_ids = self._nearby_agent_ids(agent_id) + for key in ("receiver_id", "to", "target_agent_id"): + try: + candidate = int(params.get(key)) + except (TypeError, ValueError): + continue + if candidate in nearby_ids: + return candidate + return nearby_ids[0] if nearby_ids else None + + @staticmethod + def _truthy_public_value(value: Any) -> bool: + if isinstance(value, bool): + return value + return str(value or "").strip().casefold() in { + "1", + "true", + "yes", + "public", + "broadcast", + "announcement", + "all", + } + + def _is_public_interaction( + self, + interaction: dict[str, Any], + effects: dict[str, Any], + ) -> bool: + if str(interaction.get("id") or "") == "public_announcement": + return True + for key in ("broadcast", "public", "is_public"): + if self._truthy_public_value(effects.get(key)): + return True + for key in ("scope", "message_scope"): + if self._truthy_public_value(effects.get(key)): + return True + return False + + def _record_communication( + self, + message_type: str, + sender_id: int, + content: str, + receiver_id: int | None = None, + group_id: int | None = None, + recipient_count: int | None = None, + ) -> None: + communication = { + "type": message_type, + "sender_id": sender_id, + "sender_name": self._display_name(sender_id), + "content": self._force_visible_text(content, "我会用中文继续处理。"), + } + if receiver_id is not None: + communication["receiver_id"] = receiver_id + communication["receiver_name"] = self._display_name(receiver_id) + if group_id is not None: + communication["group_id"] = group_id + communication["group_name"] = self._groups.get(group_id, {}).get( + "name", f"{group_id}号群" + ) + if recipient_count is not None: + communication["recipient_count"] = recipient_count + self._step_communications.append(communication) + + def _force_visible_text(self, value: Any, fallback: str) -> str: + text = str(value or "").strip() + if _contains_latin_outside_terms(text, list(self._agent_names.values())): + return fallback + return text + + def _display_name(self, agent_id: int) -> str: + if int(agent_id) == 0: + return "小镇系统" + name = str(self._agent_names.get(agent_id, f"{agent_id}号智能体")).strip() + return name or f"{agent_id}号智能体" + + def _map_display_name(self) -> str: + display_name = self._map_manifest.get("display_name") + if display_name and not _contains_latin(display_name): + return str(display_name) + return "当前地图" + + def _location_display_name(self, location_id: str) -> str: + location = self._locations_by_id.get(location_id) or {} + return _force_chinese_text(location.get("name") or location_id, "目标地点") + + @staticmethod + def _severity_label(severity: str) -> str: + return { + "info": "信息", + "warning": "警告", + "emergency": "紧急", + "crisis": "危机", + "disaster": "灾害", + }.get(str(severity or "").lower(), "信息") + + def _public_location(self, location: dict[str, Any]) -> dict[str, Any]: + location_id = str(location["id"]) + tile = self._location_tile(location_id) + public = { + "id": location_id, + "name": _force_chinese_text(location["name"], location_id), + "aliases": [ + alias + for alias in location.get("aliases", []) + if not _contains_latin(alias) + ], + "anchor_tile": {"x": tile[0], "y": tile[1]}, + "interaction_ids": location.get("interaction_ids", []), + } + if location.get("scene_type"): + public["scene_type"] = location["scene_type"] + if location.get("bounds"): + public["bounds"] = location["bounds"] + return public + + def _public_interaction(self, interaction: dict[str, Any]) -> dict[str, Any]: + return { + "id": interaction["id"], + "name": _force_chinese_text(interaction["name"], interaction["id"]), + "description": ( + "" + if _contains_latin(interaction.get("description", "")) + else interaction.get("description", "") + ), + "allowed_location_ids": interaction.get("allowed_location_ids", []), + } + + def _available_interactions(self, location_id: str | None) -> list[dict[str, Any]]: + location_interaction_ids = ( + self._locations_by_id.get(location_id or "", {}).get("interaction_ids", []) + ) + interactions = [] + for interaction in self._interactions_by_id.values(): + allowed = interaction.get("allowed_location_ids") or [] + if interaction["id"] in location_interaction_ids or not allowed or location_id in allowed: + interactions.append(self._public_interaction(interaction)) + return interactions + + def _render_template( + self, + template: str, + agent_id: int, + params: dict[str, Any], + ) -> str: + values = { + "agent_id": agent_id, + "agent_name": self._agent_names.get(agent_id, f"Agent {agent_id}"), + "location": self._locations.get(agent_id, ""), + **{str(key): value for key, value in params.items()}, + } + try: + return template.format(**values) + except Exception: + return template + + @staticmethod + def _tile_list_from_json(value: Any) -> list[Tile]: + if value in (None, ""): + return [] + if isinstance(value, str): + try: + value = json.loads(value) + except json.JSONDecodeError: + return [] + if not isinstance(value, list): + return [] + tiles: list[Tile] = [] + for item in value: + try: + if isinstance(item, dict): + tiles.append((int(item["x"]), int(item["y"]))) + elif isinstance(item, (list, tuple)) and len(item) >= 2: + tiles.append((int(item[0]), int(item[1]))) + except Exception: + continue + return tiles + + @staticmethod + def _tiles_to_json(tiles: list[Tile]) -> str: + return json.dumps([{"x": x, "y": y} for x, y in tiles]) + + def _snapshot_agent(self, agent_id: int) -> dict[str, Any]: + messages = self._mailboxes.get(agent_id, []) + last_message = messages[-1]["content"] if messages else "" + tile = self._tiles.get(agent_id, (0, 0)) + location_id = self._location_ids.get(agent_id) + path = self._movement_paths.get(agent_id) or [tile] + movement_segment = self._movement_step_segments.get(agent_id) or [tile] + available_interactions = self._available_interactions(location_id) + return { + "agent_id": agent_id, + "name": self._agent_names.get(agent_id, f"Agent {agent_id}"), + "location": self._locations.get(agent_id, "小镇广场"), + "action": self._actions.get(agent_id, "等待"), + "status": self._statuses.get(agent_id, "就绪"), + "emotion": self._emotions.get(agent_id, "平静"), + "message_count": len(messages), + "last_message": last_message, + "recent_messages": list(messages[-5:]), + "nearby_agents": self._nearby_agents(agent_id), + "current_phase": self._current_phase, + "latest_event": self._latest_event, + "groups": self._groups, + "map_id": self._map_id, + "tile_x": tile[0], + "tile_y": tile[1], + "location_id": location_id, + "movement_status": self._movement_statuses.get(agent_id, "idle"), + "target_location_id": self._movement_targets.get(agent_id), + "path_json": self._tiles_to_json(path), + "movement_segment_json": self._tiles_to_json(movement_segment), + "movement_path_index": self._movement_path_indices.get(agent_id, 0), + "movement_path_length": self._movement_path_lengths.get(agent_id, len(path)), + "available_interactions_json": json.dumps(available_interactions, ensure_ascii=False), + } + + def _dump_state(self) -> dict[str, Any]: + return { + "map_manifest_path": str(self._map_manifest_path), + "agent_names": self._agent_names, + "locations": self._locations, + "location_ids": self._location_ids, + "tiles": self._tiles, + "movement_statuses": self._movement_statuses, + "movement_targets": self._movement_targets, + "movement_paths": self._movement_paths, + "movement_progress": self._movement_progress, + "movement_step_segments": self._movement_step_segments, + "movement_path_indices": self._movement_path_indices, + "movement_path_lengths": self._movement_path_lengths, + "actions": self._actions, + "statuses": self._statuses, + "emotions": self._emotions, + "mailboxes": self._mailboxes, + "groups": self._groups, + "total_messages_sent": self._total_messages_sent, + "step_communications": self._step_communications, + "step_counter": self._step_counter, + "current_phase": self._current_phase, + "latest_event": self._latest_event, + } + + def _load_state(self, state: dict[str, Any]) -> None: + self._agent_names = {int(k): v for k, v in state.get("agent_names", {}).items()} + self._locations = {int(k): v for k, v in state.get("locations", {}).items()} + self._location_ids = {int(k): v for k, v in state.get("location_ids", {}).items()} + self._tiles = { + int(k): tuple(v) # type: ignore[misc] + for k, v in state.get("tiles", {}).items() + } + self._movement_statuses = { + int(k): v for k, v in state.get("movement_statuses", {}).items() + } + self._movement_targets = { + int(k): v for k, v in state.get("movement_targets", {}).items() + } + self._movement_paths = { + int(k): [tuple(tile) for tile in path] # type: ignore[misc] + for k, path in state.get("movement_paths", {}).items() + } + self._movement_progress = { + int(k): float(v) for k, v in state.get("movement_progress", {}).items() + } + self._movement_step_segments = { + int(k): [tuple(tile) for tile in path] # type: ignore[misc] + for k, path in state.get("movement_step_segments", {}).items() + } + self._movement_path_indices = { + int(k): int(v) for k, v in state.get("movement_path_indices", {}).items() + } + self._movement_path_lengths = { + int(k): int(v) for k, v in state.get("movement_path_lengths", {}).items() + } + self._actions = {int(k): v for k, v in state.get("actions", {}).items()} + self._statuses = {int(k): v for k, v in state.get("statuses", {}).items()} + self._emotions = {int(k): v for k, v in state.get("emotions", {}).items()} + self._mailboxes = defaultdict( + list, {int(k): v for k, v in state.get("mailboxes", {}).items()} + ) + self._groups = {int(k): v for k, v in state.get("groups", {}).items()} + self._total_messages_sent = int(state.get("total_messages_sent", 0)) + step_communications = state.get("step_communications") + self._step_communications = ( + step_communications if isinstance(step_communications, list) else [] + ) + self._step_counter = int(state.get("step_counter", 0)) + self._current_phase = str(state.get("current_phase", "setup")) + self._latest_event = str(state.get("latest_event", "")) + for agent_id in self._agent_names: + location_id = self._location_ids.get(agent_id) or self._resolve_location_id( + self._locations.get(agent_id) + ) + if location_id is None: + location_id = self._default_location_id(agent_id) + location = self._locations_by_id[location_id] + self._location_ids[agent_id] = location_id + self._locations[agent_id] = str(location["name"]) + self._tiles.setdefault(agent_id, self._location_tile(location_id)) + self._movement_statuses.setdefault(agent_id, "idle") + self._movement_targets.setdefault(agent_id, None) + self._movement_paths.setdefault(agent_id, [self._tiles[agent_id]]) + self._movement_progress.setdefault(agent_id, 0.0) + self._movement_step_segments.setdefault(agent_id, [self._tiles[agent_id]]) + self._movement_path_indices.setdefault(agent_id, 0) + self._movement_path_lengths.setdefault(agent_id, len(self._movement_paths[agent_id])) diff --git a/agentsociety/custom/maps/_template/ATTRIBUTION.md b/agentsociety/custom/maps/_template/ATTRIBUTION.md new file mode 100644 index 0000000..bda20c9 --- /dev/null +++ b/agentsociety/custom/maps/_template/ATTRIBUTION.md @@ -0,0 +1,4 @@ +# Attribution + +List all map, tileset, character sprite, and icon sources here. Include license +names and source URLs before publishing a map package. diff --git a/agentsociety/custom/maps/_template/README.md b/agentsociety/custom/maps/_template/README.md new file mode 100644 index 0000000..1cd2c43 --- /dev/null +++ b/agentsociety/custom/maps/_template/README.md @@ -0,0 +1,37 @@ +

📐 GOD Map Package Template

+ +

+ Minimal starter — copy, rename, drop in your assets. +

+ +

+ 🌏 中文 · + 📘 Map Packages Guide +

+ +--- + +Copy this directory to `agentsociety/custom/maps//`, rename it, and +replace `map.yaml`, `visuals/map.json`, and the assets. + +The v1 contract expects a Tiled JSON map with a tile layer named **`Collisions`**. +In that layer, `0` means walkable and any non-zero tile means blocked. + +## 🚀 Three-step Start + +```bash +# 1. Copy this template +cp -r agentsociety/custom/maps/_template agentsociety/custom/maps/my_town + +# 2. Edit map.yaml, drop in your Tiled JSON and tilesets + +# 3. Validate +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/my_town +``` + +When validation passes, restart GOD and the new map appears in the setup wizard. + +See [`docs/MAP_PACKAGES.md`](../../../../docs/MAP_PACKAGES.md) for the full +package contract and [`the_ville/`](../the_ville/README.md) for a complete +working example. diff --git a/agentsociety/custom/maps/_template/README.zh-CN.md b/agentsociety/custom/maps/_template/README.zh-CN.md new file mode 100644 index 0000000..60a2dcf --- /dev/null +++ b/agentsociety/custom/maps/_template/README.zh-CN.md @@ -0,0 +1,36 @@ +

📐 GOD 地图包模板

+ +

+ 最小起步模板 —— 复制、改名、放入你的素材即可。 +

+ +

+ 🌏 English · + 📘 地图包指南 +

+ +--- + +把这个目录复制到 `agentsociety/custom/maps//`、改名,然后替换 +`map.yaml`、`visuals/map.json` 与素材。 + +v1 约定要求一份 Tiled JSON 地图,并带一个名为 **`Collisions`** 的瓦片层。 +在该层中,`0` 表示可走,任何非零图块表示阻挡。 + +## 🚀 三步上手 + +```bash +# 1. 复制模板 +cp -r agentsociety/custom/maps/_template agentsociety/custom/maps/my_town + +# 2. 编辑 map.yaml,放入你的 Tiled JSON 和图块 + +# 3. 校验 +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/my_town +``` + +校验通过后,重启 GOD,新地图就会出现在配置向导里。 + +完整包契约见 [`docs/MAP_PACKAGES.zh-CN.md`](../../../../docs/MAP_PACKAGES.zh-CN.md), +完整可运行的范例见 [`the_ville/`](../the_ville/README.zh-CN.md)。 diff --git a/agentsociety/custom/maps/_template/characters/.gitkeep b/agentsociety/custom/maps/_template/characters/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/agentsociety/custom/maps/_template/characters/.gitkeep @@ -0,0 +1 @@ + diff --git a/agentsociety/custom/maps/_template/location_assets/.gitkeep b/agentsociety/custom/maps/_template/location_assets/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/agentsociety/custom/maps/_template/location_assets/.gitkeep @@ -0,0 +1 @@ + diff --git a/agentsociety/custom/maps/_template/map.yaml b/agentsociety/custom/maps/_template/map.yaml new file mode 100644 index 0000000..1685952 --- /dev/null +++ b/agentsociety/custom/maps/_template/map.yaml @@ -0,0 +1,38 @@ +schema_version: 1 +map_id: your_map_id +display_name: Your Map Name +tiled_map_path: visuals/map.json +tile_size: 32 +character_root: characters +default_location_order: +- plaza +spawn_points: +- id: resident_start + location_id: plaza +locations: +- id: plaza + name: Plaza + aliases: + - plaza + anchor_tile: + x: 1 + y: 1 + scene_type: public + bounds: + x: 0 + y: 0 + w: 4 + h: 4 + interaction_ids: + - wait +interactions: +- id: wait + name: 等待 + description: 在广场短暂停留。 + allowed_location_ids: + - plaza + effects: + action: "{agent_name} 在广场等待" + status: 休息中 + emotion: 平静 + latest_event: "{agent_name} 在广场短暂停留。" diff --git a/agentsociety/custom/maps/_template/visuals/map.json b/agentsociety/custom/maps/_template/visuals/map.json new file mode 100644 index 0000000..389a295 --- /dev/null +++ b/agentsociety/custom/maps/_template/visuals/map.json @@ -0,0 +1,39 @@ +{ + "type": "map", + "version": "1.10", + "tiledversion": "1.10.2", + "orientation": "orthogonal", + "renderorder": "right-down", + "width": 4, + "height": 4, + "tilewidth": 32, + "tileheight": 32, + "infinite": false, + "tilesets": [], + "layers": [ + { + "id": 1, + "name": "Ground", + "type": "tilelayer", + "visible": true, + "opacity": 1, + "x": 0, + "y": 0, + "width": 4, + "height": 4, + "data": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + { + "id": 2, + "name": "Collisions", + "type": "tilelayer", + "visible": true, + "opacity": 1, + "x": 0, + "y": 0, + "width": 4, + "height": 4, + "data": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + ] +} diff --git a/agentsociety/custom/maps/pku/ATTRIBUTION.md b/agentsociety/custom/maps/pku/ATTRIBUTION.md new file mode 100644 index 0000000..526ab04 --- /dev/null +++ b/agentsociety/custom/maps/pku/ATTRIBUTION.md @@ -0,0 +1,10 @@ +# Attribution + +This PKU map package uses generated package-local campus artwork. The replay-ready PKU tileset family lives in `visuals/map_assets/` and mirrors The Ville's exterior, interior, room-builder, and block sheet structure. The character sprites in `characters/` are generated 32px spritesheets compatible with PixelReplay. + +The semantic layout references public Peking University campus knowledge and official visitor-facing pages for landmark names and relative campus semantics, including the Peking University visitor map and public descriptions of Yanyuan landmarks such as Weiming Lake and Boya Pagoda. The package does not embed official map imagery, photos, logos, or scanned campus-map artwork. + +Useful public references: + +- Peking University visitor map: https://english.pku.edu.cn/map.html +- Peking University official site: https://english.pku.edu.cn/ diff --git a/agentsociety/custom/maps/pku/README.md b/agentsociety/custom/maps/pku/README.md new file mode 100644 index 0000000..1d22cfe --- /dev/null +++ b/agentsociety/custom/maps/pku/README.md @@ -0,0 +1,25 @@ +# Peking University Yanyuan Map Package + +This package is a self-contained GOD v1 map package for a stylized Peking University Yanyuan campus. The visual layer is built from package-local imagegen assets and keeps the same Tiled/tileset shape as `custom/maps/the_ville`: exterior tilesets, room builder, five interior sheets, block sheets, and 32px character spritesheets. + +It is not a surveyed GIS map. The layout preserves simulation-friendly PKU semantics: West Gate, East Gate, South Gate, Weiming Lake, Boya Pagoda, PKU Library, Centennial Hall, teaching buildings, dormitory, canteen, gym, lab, offices, and a campus green. + +## Files + +- `map.yaml` - semantic manifest with spawn points, locations, aliases, interactions, and asset paths. +- `visuals/map.json` - orthogonal Tiled JSON, 140x100 tiles, 32px tile size. +- `visuals/map_assets/cute_rpg_word_VXAce/tilesets/*.png` - generated PKU exterior tilesets matching The Ville's tileset names and dimensions. +- `visuals/map_assets/v1/Room_Builder_32x32.png` and `visuals/map_assets/v1/interiors_pt*.png` - generated PKU interior/room tilesets. +- `visuals/map_assets/blocks/*.png` - generated interaction/collision block tilesets. +- `visuals/map_assets/pku_generated/pku_full_map_tileset.png` - high-detail PKU campus render sliced into a 32px Tiled tileset for the assembled replay map. +- `characters/*.png` - generated 32px PKU character spritesheets. + +## Validation + +```bash +uv run python scripts/validate_map_package.py custom/maps/pku +``` + +## Notes + +Location anchors are placed on walkable paths adjacent to landmark footprints so agents can route to them. Replay marker overlays are intentionally not used, matching The Ville's visual presentation. diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_01.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_01.png new file mode 100644 index 0000000..c70ace8 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_01.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_02.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_02.png new file mode 100644 index 0000000..58c9ac1 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_02.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_03.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_03.png new file mode 100644 index 0000000..b42af03 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_03.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_04.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_04.png new file mode 100644 index 0000000..8a4bd5a Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_04.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_05.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_05.png new file mode 100644 index 0000000..fefdf10 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_05.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_06.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_06.png new file mode 100644 index 0000000..473dc29 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_06.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_07.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_07.png new file mode 100644 index 0000000..a097efe Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_07.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_08.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_08.png new file mode 100644 index 0000000..c66c76f Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_08.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_09.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_09.png new file mode 100644 index 0000000..e5a645d Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_09.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_10.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_10.png new file mode 100644 index 0000000..00c06bd Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_10.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_11.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_11.png new file mode 100644 index 0000000..59ac3e6 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_11.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_12.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_12.png new file mode 100644 index 0000000..baa9d9a Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_12.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_13.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_13.png new file mode 100644 index 0000000..2ee313e Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_13.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_14.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_14.png new file mode 100644 index 0000000..bbe7668 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_14.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_15.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_15.png new file mode 100644 index 0000000..92c4e10 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_15.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_16.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_16.png new file mode 100644 index 0000000..8b140b7 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_16.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_17.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_17.png new file mode 100644 index 0000000..660e60d Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_17.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_18.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_18.png new file mode 100644 index 0000000..a09083c Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_18.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_19_Donald_Trump.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_19_Donald_Trump.png new file mode 100644 index 0000000..f9c5b5c Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_19_Donald_Trump.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_20_Elon_Musk.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_20_Elon_Musk.png new file mode 100644 index 0000000..d366f95 Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_20_Elon_Musk.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_21_Jensen_Huang.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_21_Jensen_Huang.png new file mode 100644 index 0000000..235387f Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_21_Jensen_Huang.png differ diff --git a/agentsociety/custom/maps/pku/characters/PKU_Agent_22_Coordinator.png b/agentsociety/custom/maps/pku/characters/PKU_Agent_22_Coordinator.png new file mode 100644 index 0000000..7c89beb Binary files /dev/null and b/agentsociety/custom/maps/pku/characters/PKU_Agent_22_Coordinator.png differ diff --git a/agentsociety/custom/maps/pku/characters/atlas.json b/agentsociety/custom/maps/pku/characters/atlas.json new file mode 100644 index 0000000..70df592 --- /dev/null +++ b/agentsociety/custom/maps/pku/characters/atlas.json @@ -0,0 +1,278 @@ + { + "frames": [ + { + "filename": "down-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + { + "filename": "left-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + + + { + "filename": "right-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + + + { + "filename": "up-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + } + ], + "meta": { + "description": "Atlas generado con Atlas Packer Gamma V2", + "web": "https://gammafp.github.io/atlas-packer-phaser/" + } +} \ No newline at end of file diff --git a/agentsociety/custom/maps/pku/location_assets/admin_building.png b/agentsociety/custom/maps/pku/location_assets/admin_building.png new file mode 100644 index 0000000..e57178a Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/admin_building.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/boya_pagoda.png b/agentsociety/custom/maps/pku/location_assets/boya_pagoda.png new file mode 100644 index 0000000..2c746c7 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/boya_pagoda.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/campus_green.png b/agentsociety/custom/maps/pku/location_assets/campus_green.png new file mode 100644 index 0000000..7a98d08 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/campus_green.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/canteen.png b/agentsociety/custom/maps/pku/location_assets/canteen.png new file mode 100644 index 0000000..cb35971 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/canteen.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/centennial_hall.png b/agentsociety/custom/maps/pku/location_assets/centennial_hall.png new file mode 100644 index 0000000..8f3db2e Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/centennial_hall.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/dormitory.png b/agentsociety/custom/maps/pku/location_assets/dormitory.png new file mode 100644 index 0000000..045ca6b Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/dormitory.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/east_gate.png b/agentsociety/custom/maps/pku/location_assets/east_gate.png new file mode 100644 index 0000000..1f6ad69 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/east_gate.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/gymnasium.png b/agentsociety/custom/maps/pku/location_assets/gymnasium.png new file mode 100644 index 0000000..96bebe8 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/gymnasium.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/lab_building.png b/agentsociety/custom/maps/pku/location_assets/lab_building.png new file mode 100644 index 0000000..2fcd52b Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/lab_building.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/library.png b/agentsociety/custom/maps/pku/location_assets/library.png new file mode 100644 index 0000000..8b9edc1 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/library.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/south_gate.png b/agentsociety/custom/maps/pku/location_assets/south_gate.png new file mode 100644 index 0000000..2f6ec43 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/south_gate.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/teaching_building.png b/agentsociety/custom/maps/pku/location_assets/teaching_building.png new file mode 100644 index 0000000..529b134 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/teaching_building.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/weiming_lake.png b/agentsociety/custom/maps/pku/location_assets/weiming_lake.png new file mode 100644 index 0000000..06226ef Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/weiming_lake.png differ diff --git a/agentsociety/custom/maps/pku/location_assets/west_gate.png b/agentsociety/custom/maps/pku/location_assets/west_gate.png new file mode 100644 index 0000000..ded7191 Binary files /dev/null and b/agentsociety/custom/maps/pku/location_assets/west_gate.png differ diff --git a/agentsociety/custom/maps/pku/map.yaml b/agentsociety/custom/maps/pku/map.yaml new file mode 100644 index 0000000..31d2509 --- /dev/null +++ b/agentsociety/custom/maps/pku/map.yaml @@ -0,0 +1,823 @@ +schema_version: 1 +map_id: pku +display_name: 北京大学燕园 +localized: + en: + display_name: "Peking University Yanyuan" + zh: + display_name: "北京大学燕园" +tiled_map_path: visuals/map.json +tile_size: 32 +character_root: characters +character_frame_width: 32 +character_frame_height: 32 +default_location_order: +- dormitory +- canteen +- teaching_building +- library +- weiming_lake +- boya_pagoda +- centennial_hall +- lab_building +- gymnasium +- campus_green +- west_gate +- east_gate +recommended_roles: +- role: undergraduate student + default_location_id: dormitory +- role: graduate researcher + default_location_id: lab_building +- role: librarian + default_location_id: library +- role: professor + default_location_id: teaching_building +- role: visitor + default_location_id: west_gate +- role: student organizer + default_location_id: campus_green +spawn_points: +- id: student_start + location_id: dormitory +- id: researcher_start + location_id: lab_building +- id: library_start + location_id: library +- id: visitor_start + location_id: west_gate +- id: lake_start + location_id: weiming_lake +- id: canteen_start + location_id: canteen +locations: +- id: west_gate + name: 北京大学西门 + localized: + en: + name: "Peking University West Gate" + zh: + name: "北京大学西门" + aliases: + - west gate + - pku west gate + - 西门 + - 北大西门 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 7 + y: 52 + interaction_ids: + - enter_campus + - campus_tour + scene_type: gate + bounds: + x: 1 + y: 48 + w: 12 + h: 10 +- id: east_gate + name: 北京大学东门 + localized: + en: + name: "Peking University East Gate" + zh: + name: "北京大学东门" + aliases: + - east gate + - pku east gate + - 东门 + - 北大东门 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 134 + y: 52 + interaction_ids: + - enter_campus + - meet_at_gate + scene_type: gate + bounds: + x: 132 + y: 47 + w: 7 + h: 10 +- id: south_gate + name: 北京大学南门 + localized: + en: + name: "Peking University South Gate" + zh: + name: "北京大学南门" + aliases: + - south gate + - 南门 + - campus entrance + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 70 + y: 91 + interaction_ids: + - enter_campus + - campus_tour + scene_type: gate + bounds: + x: 65 + y: 89 + w: 12 + h: 9 +- id: weiming_lake + name: 未名湖 + localized: + en: + name: "Weiming Lake" + zh: + name: "未名湖" + aliases: + - Weiming Lake + - lake + - 未名湖 + - 湖边 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 49 + y: 51 + interaction_ids: + - walk_lake + - outdoor_reflection + - campus_tour + scene_type: park + bounds: + x: 22 + y: 14 + w: 43 + h: 40 +- id: boya_pagoda + name: 博雅塔 + localized: + en: + name: "Boya Pagoda" + zh: + name: "博雅塔" + aliases: + - Boya Pagoda + - pagoda + - 博雅塔 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 66 + y: 51 + interaction_ids: + - campus_tour + - take_photo + - outdoor_reflection + scene_type: landmark + bounds: + x: 60 + y: 39 + w: 7 + h: 13 +- id: library + name: 北京大学图书馆 + localized: + en: + name: "Peking University Library" + zh: + name: "北京大学图书馆" + aliases: + - library + - PKU Library + - 图书馆 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 79 + y: 34 + interaction_ids: + - study_library + - borrow_book + - research_discussion + scene_type: library + bounds: + x: 70 + y: 21 + w: 23 + h: 14 +- id: centennial_hall + name: 百周年纪念讲堂 + localized: + en: + name: "Centennial Hall" + zh: + name: "百周年纪念讲堂" + aliases: + - Centennial Hall + - 百年讲堂 + - 讲堂 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 80 + y: 57 + interaction_ids: + - attend_lecture + - club_event + - public_talk + scene_type: auditorium + bounds: + x: 72 + y: 47 + w: 16 + h: 13 +- id: teaching_building + name: 教学楼 + localized: + en: + name: "Teaching Building" + zh: + name: "教学楼" + aliases: + - teaching building + - classroom + - 教学楼 + - 教室 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 114 + y: 27 + interaction_ids: + - attend_class + - office_hours + - group_project + scene_type: school + bounds: + x: 100 + y: 12 + w: 27 + h: 16 +- id: dormitory + name: 学生宿舍 + localized: + en: + name: "Student Dormitory" + zh: + name: "学生宿舍" + aliases: + - dorm + - dormitory + - 宿舍 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 30 + y: 76 + interaction_ids: + - rest_dorm + - chat_roommates + - prepare_day + scene_type: home + bounds: + x: 18 + y: 66 + w: 24 + h: 17 +- id: canteen + name: 学生食堂 + localized: + en: + name: "Student Canteen" + zh: + name: "学生食堂" + aliases: + - canteen + - dining hall + - 食堂 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 50 + y: 69 + interaction_ids: + - eat_canteen + - casual_meetup + - share_news + scene_type: cafe + bounds: + x: 42 + y: 60 + w: 16 + h: 15 +- id: gymnasium + name: 体育馆 + localized: + en: + name: "Gymnasium" + zh: + name: "体育馆" + aliases: + - gym + - gymnasium + - 体育馆 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 118 + y: 80 + interaction_ids: + - exercise + - team_practice + - wellness_check + scene_type: sports + bounds: + x: 106 + y: 70 + w: 27 + h: 17 +- id: lab_building + name: 理科实验楼 + localized: + en: + name: "Science Laboratory Building" + zh: + name: "理科实验楼" + aliases: + - lab + - laboratory + - 实验楼 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 120 + y: 42 + interaction_ids: + - run_experiment + - research_discussion + - lab_safety_check + scene_type: lab + bounds: + x: 104 + y: 30 + w: 29 + h: 17 +- id: admin_building + name: 办公楼 + localized: + en: + name: "Administration Building" + zh: + name: "办公楼" + aliases: + - admin + - office + - 办公楼 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 76 + y: 41 + interaction_ids: + - office_hours + - department_meeting + - paperwork + scene_type: office + bounds: + x: 66 + y: 30 + w: 22 + h: 12 +- id: campus_green + name: 校园草坪 + localized: + en: + name: "Campus Green" + zh: + name: "校园草坪" + aliases: + - green + - quad + - 草坪 + source_note: High-detail PKU Yanyuan pixel map generated from package-local imagegen + exterior, interior, character, and campus-reference assets; not surveyed GIS coordinates. + anchor_tile: + x: 60 + y: 60 + interaction_ids: + - club_event + - outdoor_reflection + - campus_tour + scene_type: park + bounds: + x: 51 + y: 54 + w: 21 + h: 13 +interactions: +- id: enter_campus + name: 进入校园 + description: Enter or leave campus through a gate while checking plans. + localized: + en: + name: "Enter Campus" + description: "Enter or leave campus through a gate while checking plans." + zh: + name: "进入校园" + description: "通过校门进出校园并确认行程。" + allowed_location_ids: + - west_gate + - east_gate + - south_gate + effects: + social_context: campus_daily_life +- id: meet_at_gate + name: 校门碰头 + description: Meet someone at a campus gate before moving inward. + localized: + en: + name: "Gate Meetup" + description: "Meet someone at a campus gate before moving inward." + zh: + name: "校门碰头" + description: "在校门与他人会合后再进入校园。" + allowed_location_ids: + - east_gate + - west_gate + effects: + social_context: campus_daily_life +- id: campus_tour + name: 校园导览 + description: Guide visitors through landmark routes and share campus context. + localized: + en: + name: "Campus Tour" + description: "Guide visitors through landmark routes and share campus context." + zh: + name: "校园导览" + description: "带领访客走过校园地标路线并介绍背景。" + allowed_location_ids: + - west_gate + - south_gate + - weiming_lake + - boya_pagoda + - campus_green + effects: + social_context: campus_daily_life +- id: walk_lake + name: 湖边散步 + description: Walk around Weiming Lake and hold a quiet conversation. + localized: + en: + name: "Lake Walk" + description: "Walk around Weiming Lake and hold a quiet conversation." + zh: + name: "湖边散步" + description: "沿未名湖散步并安静交谈。" + allowed_location_ids: + - weiming_lake + effects: + social_context: campus_daily_life +- id: outdoor_reflection + name: 户外思考 + description: Pause outdoors to reflect, plan, or decompress. + localized: + en: + name: "Outdoor Reflection" + description: "Pause outdoors to reflect, plan, or decompress." + zh: + name: "户外思考" + description: "在户外停下来思考、规划或放松。" + allowed_location_ids: + - weiming_lake + - boya_pagoda + - campus_green + effects: + social_context: campus_daily_life +- id: take_photo + name: 地标拍照 + description: Take a landmark photo or describe what can be seen from the spot. + localized: + en: + name: "Landmark Photo" + description: "Take a landmark photo or describe what can be seen from the spot." + zh: + name: "地标拍照" + description: "拍摄地标照片或描述当前位置所见。" + allowed_location_ids: + - boya_pagoda + effects: + social_context: campus_daily_life +- id: study_library + name: 图书馆自习 + description: Study quietly, read notes, or prepare for class. + localized: + en: + name: "Library Study" + description: "Study quietly, read notes, or prepare for class." + zh: + name: "图书馆自习" + description: "安静自习、阅读笔记或准备课程。" + allowed_location_ids: + - library + effects: + social_context: campus_daily_life +- id: borrow_book + name: 借还图书 + description: Borrow, return, or search for a book. + localized: + en: + name: "Borrow or Return Books" + description: "Borrow, return, or search for a book." + zh: + name: "借还图书" + description: "借书、还书或检索图书。" + allowed_location_ids: + - library + effects: + social_context: campus_daily_life +- id: research_discussion + name: 科研讨论 + description: Discuss papers, experiments, or a research question. + localized: + en: + name: "Research Discussion" + description: "Discuss papers, experiments, or a research question." + zh: + name: "科研讨论" + description: "讨论论文、实验或科研问题。" + allowed_location_ids: + - library + - lab_building + effects: + social_context: campus_daily_life +- id: attend_lecture + name: 参加讲座 + description: Attend a lecture, forum, or talk. + localized: + en: + name: "Attend Lecture" + description: "Attend a lecture, forum, or talk." + zh: + name: "参加讲座" + description: "参加讲座、论坛或报告。" + allowed_location_ids: + - centennial_hall + effects: + social_context: campus_daily_life +- id: public_talk + name: 公共报告 + description: Give or listen to a public campus talk. + localized: + en: + name: "Public Talk" + description: "Give or listen to a public campus talk." + zh: + name: "公共报告" + description: "发表或聆听校园公共报告。" + allowed_location_ids: + - centennial_hall + effects: + social_context: campus_daily_life +- id: club_event + name: 社团活动 + description: Coordinate a student club event. + localized: + en: + name: "Club Event" + description: "Coordinate a student club event." + zh: + name: "社团活动" + description: "协调学生社团活动。" + allowed_location_ids: + - centennial_hall + - campus_green + effects: + social_context: campus_daily_life +- id: attend_class + name: 上课 + description: Attend or teach a scheduled class. + localized: + en: + name: "Attend Class" + description: "Attend or teach a scheduled class." + zh: + name: "上课" + description: "参加或讲授计划中的课程。" + allowed_location_ids: + - teaching_building + effects: + social_context: campus_daily_life +- id: office_hours + name: 答疑办公 + description: Ask questions, tutor, or hold office hours. + localized: + en: + name: "Office Hours" + description: "Ask questions, tutor, or hold office hours." + zh: + name: "答疑办公" + description: "答疑、辅导或开展办公时间。" + allowed_location_ids: + - teaching_building + - admin_building + effects: + social_context: campus_daily_life +- id: group_project + name: 小组作业 + description: Work with classmates on a group task. + localized: + en: + name: "Group Project" + description: "Work with classmates on a group task." + zh: + name: "小组作业" + description: "与同学合作完成小组任务。" + allowed_location_ids: + - teaching_building + effects: + social_context: campus_daily_life +- id: rest_dorm + name: 宿舍休息 + description: Rest, reset, or return to the dorm. + localized: + en: + name: "Dorm Rest" + description: "Rest, reset, or return to the dorm." + zh: + name: "宿舍休息" + description: "在宿舍休息、调整或返回宿舍。" + allowed_location_ids: + - dormitory + effects: + social_context: campus_daily_life +- id: chat_roommates + name: 宿舍聊天 + description: Talk with roommates about daily campus life. + localized: + en: + name: "Roommate Chat" + description: "Talk with roommates about daily campus life." + zh: + name: "宿舍聊天" + description: "和室友聊校园日常。" + allowed_location_ids: + - dormitory + effects: + social_context: campus_daily_life +- id: prepare_day + name: 准备出门 + description: Pack books, check schedule, and prepare for the next activity. + localized: + en: + name: "Prepare to Leave" + description: "Pack books, check schedule, and prepare for the next activity." + zh: + name: "准备出门" + description: "整理书本、查看日程并准备下一项活动。" + allowed_location_ids: + - dormitory + effects: + social_context: campus_daily_life +- id: eat_canteen + name: 食堂用餐 + description: Eat a meal in the student canteen. + localized: + en: + name: "Canteen Meal" + description: "Eat a meal in the student canteen." + zh: + name: "食堂用餐" + description: "在学生食堂用餐。" + allowed_location_ids: + - canteen + effects: + social_context: campus_daily_life +- id: casual_meetup + name: 随意见面 + description: Meet informally over food or a break. + localized: + en: + name: "Casual Meetup" + description: "Meet informally over food or a break." + zh: + name: "随意见面" + description: "在用餐或休息时随意见面。" + allowed_location_ids: + - canteen + effects: + social_context: campus_daily_life +- id: share_news + name: 交换消息 + description: Share recent campus news or plans. + localized: + en: + name: "Share News" + description: "Share recent campus news or plans." + zh: + name: "交换消息" + description: "交流近期校园消息或计划。" + allowed_location_ids: + - canteen + effects: + social_context: campus_daily_life +- id: exercise + name: 运动锻炼 + description: Exercise indoors or on nearby sports grounds. + localized: + en: + name: "Exercise" + description: "Exercise indoors or on nearby sports grounds." + zh: + name: "运动锻炼" + description: "在室内或附近运动场锻炼。" + allowed_location_ids: + - gymnasium + effects: + social_context: campus_daily_life +- id: team_practice + name: 团队训练 + description: Coordinate sports practice or a team routine. + localized: + en: + name: "Team Practice" + description: "Coordinate sports practice or a team routine." + zh: + name: "团队训练" + description: "协调体育训练或团队练习。" + allowed_location_ids: + - gymnasium + effects: + social_context: campus_daily_life +- id: wellness_check + name: 健康打卡 + description: Check personal health and energy after exercise. + localized: + en: + name: "Wellness Check" + description: "Check personal health and energy after exercise." + zh: + name: "健康打卡" + description: "运动后确认个人健康和精力状态。" + allowed_location_ids: + - gymnasium + effects: + social_context: campus_daily_life +- id: run_experiment + name: 实验操作 + description: Run a lab task or inspect experimental results. + localized: + en: + name: "Run Experiment" + description: "Run a lab task or inspect experimental results." + zh: + name: "实验操作" + description: "执行实验任务或检查实验结果。" + allowed_location_ids: + - lab_building + effects: + social_context: campus_daily_life +- id: lab_safety_check + name: 实验安全检查 + description: Check equipment, lab safety, or experiment setup. + localized: + en: + name: "Lab Safety Check" + description: "Check equipment, lab safety, or experiment setup." + zh: + name: "实验安全检查" + description: "检查设备、实验安全或实验准备情况。" + allowed_location_ids: + - lab_building + effects: + social_context: campus_daily_life +- id: department_meeting + name: 院系会议 + description: Attend an administrative or academic meeting. + localized: + en: + name: "Department Meeting" + description: "Attend an administrative or academic meeting." + zh: + name: "院系会议" + description: "参加行政或学术会议。" + allowed_location_ids: + - admin_building + effects: + social_context: campus_daily_life +- id: paperwork + name: 事务办理 + description: Handle paperwork, permissions, or coordination tasks. + localized: + en: + name: "Paperwork" + description: "Handle paperwork, permissions, or coordination tasks." + zh: + name: "事务办理" + description: "处理材料、权限或协调事务。" + allowed_location_ids: + - admin_building + effects: + social_context: campus_daily_life diff --git a/agentsociety/custom/maps/pku/visuals/map.json b/agentsociety/custom/maps/pku/visuals/map.json new file mode 100644 index 0000000..ea5c788 --- /dev/null +++ b/agentsociety/custom/maps/pku/visuals/map.json @@ -0,0 +1,238487 @@ +{ + "compressionlevel": -1, + "height": 100, + "infinite": false, + "layers": [ + { + "data": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223, + 1224, + 1225, + 1226, + 1227, + 1228, + 1229, + 1230, + 1231, + 1232, + 1233, + 1234, + 1235, + 1236, + 1237, + 1238, + 1239, + 1240, + 1241, + 1242, + 1243, + 1244, + 1245, + 1246, + 1247, + 1248, + 1249, + 1250, + 1251, + 1252, + 1253, + 1254, + 1255, + 1256, + 1257, + 1258, + 1259, + 1260, + 1261, + 1262, + 1263, + 1264, + 1265, + 1266, + 1267, + 1268, + 1269, + 1270, + 1271, + 1272, + 1273, + 1274, + 1275, + 1276, + 1277, + 1278, + 1279, + 1280, + 1281, + 1282, + 1283, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295, + 1296, + 1297, + 1298, + 1299, + 1300, + 1301, + 1302, + 1303, + 1304, + 1305, + 1306, + 1307, + 1308, + 1309, + 1310, + 1311, + 1312, + 1313, + 1314, + 1315, + 1316, + 1317, + 1318, + 1319, + 1320, + 1321, + 1322, + 1323, + 1324, + 1325, + 1326, + 1327, + 1328, + 1329, + 1330, + 1331, + 1332, + 1333, + 1334, + 1335, + 1336, + 1337, + 1338, + 1339, + 1340, + 1341, + 1342, + 1343, + 1344, + 1345, + 1346, + 1347, + 1348, + 1349, + 1350, + 1351, + 1352, + 1353, + 1354, + 1355, + 1356, + 1357, + 1358, + 1359, + 1360, + 1361, + 1362, + 1363, + 1364, + 1365, + 1366, + 1367, + 1368, + 1369, + 1370, + 1371, + 1372, + 1373, + 1374, + 1375, + 1376, + 1377, + 1378, + 1379, + 1380, + 1381, + 1382, + 1383, + 1384, + 1385, + 1386, + 1387, + 1388, + 1389, + 1390, + 1391, + 1392, + 1393, + 1394, + 1395, + 1396, + 1397, + 1398, + 1399, + 1400, + 1401, + 1402, + 1403, + 1404, + 1405, + 1406, + 1407, + 1408, + 1409, + 1410, + 1411, + 1412, + 1413, + 1414, + 1415, + 1416, + 1417, + 1418, + 1419, + 1420, + 1421, + 1422, + 1423, + 1424, + 1425, + 1426, + 1427, + 1428, + 1429, + 1430, + 1431, + 1432, + 1433, + 1434, + 1435, + 1436, + 1437, + 1438, + 1439, + 1440, + 1441, + 1442, + 1443, + 1444, + 1445, + 1446, + 1447, + 1448, + 1449, + 1450, + 1451, + 1452, + 1453, + 1454, + 1455, + 1456, + 1457, + 1458, + 1459, + 1460, + 1461, + 1462, + 1463, + 1464, + 1465, + 1466, + 1467, + 1468, + 1469, + 1470, + 1471, + 1472, + 1473, + 1474, + 1475, + 1476, + 1477, + 1478, + 1479, + 1480, + 1481, + 1482, + 1483, + 1484, + 1485, + 1486, + 1487, + 1488, + 1489, + 1490, + 1491, + 1492, + 1493, + 1494, + 1495, + 1496, + 1497, + 1498, + 1499, + 1500, + 1501, + 1502, + 1503, + 1504, + 1505, + 1506, + 1507, + 1508, + 1509, + 1510, + 1511, + 1512, + 1513, + 1514, + 1515, + 1516, + 1517, + 1518, + 1519, + 1520, + 1521, + 1522, + 1523, + 1524, + 1525, + 1526, + 1527, + 1528, + 1529, + 1530, + 1531, + 1532, + 1533, + 1534, + 1535, + 1536, + 1537, + 1538, + 1539, + 1540, + 1541, + 1542, + 1543, + 1544, + 1545, + 1546, + 1547, + 1548, + 1549, + 1550, + 1551, + 1552, + 1553, + 1554, + 1555, + 1556, + 1557, + 1558, + 1559, + 1560, + 1561, + 1562, + 1563, + 1564, + 1565, + 1566, + 1567, + 1568, + 1569, + 1570, + 1571, + 1572, + 1573, + 1574, + 1575, + 1576, + 1577, + 1578, + 1579, + 1580, + 1581, + 1582, + 1583, + 1584, + 1585, + 1586, + 1587, + 1588, + 1589, + 1590, + 1591, + 1592, + 1593, + 1594, + 1595, + 1596, + 1597, + 1598, + 1599, + 1600, + 1601, + 1602, + 1603, + 1604, + 1605, + 1606, + 1607, + 1608, + 1609, + 1610, + 1611, + 1612, + 1613, + 1614, + 1615, + 1616, + 1617, + 1618, + 1619, + 1620, + 1621, + 1622, + 1623, + 1624, + 1625, + 1626, + 1627, + 1628, + 1629, + 1630, + 1631, + 1632, + 1633, + 1634, + 1635, + 1636, + 1637, + 1638, + 1639, + 1640, + 1641, + 1642, + 1643, + 1644, + 1645, + 1646, + 1647, + 1648, + 1649, + 1650, + 1651, + 1652, + 1653, + 1654, + 1655, + 1656, + 1657, + 1658, + 1659, + 1660, + 1661, + 1662, + 1663, + 1664, + 1665, + 1666, + 1667, + 1668, + 1669, + 1670, + 1671, + 1672, + 1673, + 1674, + 1675, + 1676, + 1677, + 1678, + 1679, + 1680, + 1681, + 1682, + 1683, + 1684, + 1685, + 1686, + 1687, + 1688, + 1689, + 1690, + 1691, + 1692, + 1693, + 1694, + 1695, + 1696, + 1697, + 1698, + 1699, + 1700, + 1701, + 1702, + 1703, + 1704, + 1705, + 1706, + 1707, + 1708, + 1709, + 1710, + 1711, + 1712, + 1713, + 1714, + 1715, + 1716, + 1717, + 1718, + 1719, + 1720, + 1721, + 1722, + 1723, + 1724, + 1725, + 1726, + 1727, + 1728, + 1729, + 1730, + 1731, + 1732, + 1733, + 1734, + 1735, + 1736, + 1737, + 1738, + 1739, + 1740, + 1741, + 1742, + 1743, + 1744, + 1745, + 1746, + 1747, + 1748, + 1749, + 1750, + 1751, + 1752, + 1753, + 1754, + 1755, + 1756, + 1757, + 1758, + 1759, + 1760, + 1761, + 1762, + 1763, + 1764, + 1765, + 1766, + 1767, + 1768, + 1769, + 1770, + 1771, + 1772, + 1773, + 1774, + 1775, + 1776, + 1777, + 1778, + 1779, + 1780, + 1781, + 1782, + 1783, + 1784, + 1785, + 1786, + 1787, + 1788, + 1789, + 1790, + 1791, + 1792, + 1793, + 1794, + 1795, + 1796, + 1797, + 1798, + 1799, + 1800, + 1801, + 1802, + 1803, + 1804, + 1805, + 1806, + 1807, + 1808, + 1809, + 1810, + 1811, + 1812, + 1813, + 1814, + 1815, + 1816, + 1817, + 1818, + 1819, + 1820, + 1821, + 1822, + 1823, + 1824, + 1825, + 1826, + 1827, + 1828, + 1829, + 1830, + 1831, + 1832, + 1833, + 1834, + 1835, + 1836, + 1837, + 1838, + 1839, + 1840, + 1841, + 1842, + 1843, + 1844, + 1845, + 1846, + 1847, + 1848, + 1849, + 1850, + 1851, + 1852, + 1853, + 1854, + 1855, + 1856, + 1857, + 1858, + 1859, + 1860, + 1861, + 1862, + 1863, + 1864, + 1865, + 1866, + 1867, + 1868, + 1869, + 1870, + 1871, + 1872, + 1873, + 1874, + 1875, + 1876, + 1877, + 1878, + 1879, + 1880, + 1881, + 1882, + 1883, + 1884, + 1885, + 1886, + 1887, + 1888, + 1889, + 1890, + 1891, + 1892, + 1893, + 1894, + 1895, + 1896, + 1897, + 1898, + 1899, + 1900, + 1901, + 1902, + 1903, + 1904, + 1905, + 1906, + 1907, + 1908, + 1909, + 1910, + 1911, + 1912, + 1913, + 1914, + 1915, + 1916, + 1917, + 1918, + 1919, + 1920, + 1921, + 1922, + 1923, + 1924, + 1925, + 1926, + 1927, + 1928, + 1929, + 1930, + 1931, + 1932, + 1933, + 1934, + 1935, + 1936, + 1937, + 1938, + 1939, + 1940, + 1941, + 1942, + 1943, + 1944, + 1945, + 1946, + 1947, + 1948, + 1949, + 1950, + 1951, + 1952, + 1953, + 1954, + 1955, + 1956, + 1957, + 1958, + 1959, + 1960, + 1961, + 1962, + 1963, + 1964, + 1965, + 1966, + 1967, + 1968, + 1969, + 1970, + 1971, + 1972, + 1973, + 1974, + 1975, + 1976, + 1977, + 1978, + 1979, + 1980, + 1981, + 1982, + 1983, + 1984, + 1985, + 1986, + 1987, + 1988, + 1989, + 1990, + 1991, + 1992, + 1993, + 1994, + 1995, + 1996, + 1997, + 1998, + 1999, + 2000, + 2001, + 2002, + 2003, + 2004, + 2005, + 2006, + 2007, + 2008, + 2009, + 2010, + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022, + 2023, + 2024, + 2025, + 2026, + 2027, + 2028, + 2029, + 2030, + 2031, + 2032, + 2033, + 2034, + 2035, + 2036, + 2037, + 2038, + 2039, + 2040, + 2041, + 2042, + 2043, + 2044, + 2045, + 2046, + 2047, + 2048, + 2049, + 2050, + 2051, + 2052, + 2053, + 2054, + 2055, + 2056, + 2057, + 2058, + 2059, + 2060, + 2061, + 2062, + 2063, + 2064, + 2065, + 2066, + 2067, + 2068, + 2069, + 2070, + 2071, + 2072, + 2073, + 2074, + 2075, + 2076, + 2077, + 2078, + 2079, + 2080, + 2081, + 2082, + 2083, + 2084, + 2085, + 2086, + 2087, + 2088, + 2089, + 2090, + 2091, + 2092, + 2093, + 2094, + 2095, + 2096, + 2097, + 2098, + 2099, + 2100, + 2101, + 2102, + 2103, + 2104, + 2105, + 2106, + 2107, + 2108, + 2109, + 2110, + 2111, + 2112, + 2113, + 2114, + 2115, + 2116, + 2117, + 2118, + 2119, + 2120, + 2121, + 2122, + 2123, + 2124, + 2125, + 2126, + 2127, + 2128, + 2129, + 2130, + 2131, + 2132, + 2133, + 2134, + 2135, + 2136, + 2137, + 2138, + 2139, + 2140, + 2141, + 2142, + 2143, + 2144, + 2145, + 2146, + 2147, + 2148, + 2149, + 2150, + 2151, + 2152, + 2153, + 2154, + 2155, + 2156, + 2157, + 2158, + 2159, + 2160, + 2161, + 2162, + 2163, + 2164, + 2165, + 2166, + 2167, + 2168, + 2169, + 2170, + 2171, + 2172, + 2173, + 2174, + 2175, + 2176, + 2177, + 2178, + 2179, + 2180, + 2181, + 2182, + 2183, + 2184, + 2185, + 2186, + 2187, + 2188, + 2189, + 2190, + 2191, + 2192, + 2193, + 2194, + 2195, + 2196, + 2197, + 2198, + 2199, + 2200, + 2201, + 2202, + 2203, + 2204, + 2205, + 2206, + 2207, + 2208, + 2209, + 2210, + 2211, + 2212, + 2213, + 2214, + 2215, + 2216, + 2217, + 2218, + 2219, + 2220, + 2221, + 2222, + 2223, + 2224, + 2225, + 2226, + 2227, + 2228, + 2229, + 2230, + 2231, + 2232, + 2233, + 2234, + 2235, + 2236, + 2237, + 2238, + 2239, + 2240, + 2241, + 2242, + 2243, + 2244, + 2245, + 2246, + 2247, + 2248, + 2249, + 2250, + 2251, + 2252, + 2253, + 2254, + 2255, + 2256, + 2257, + 2258, + 2259, + 2260, + 2261, + 2262, + 2263, + 2264, + 2265, + 2266, + 2267, + 2268, + 2269, + 2270, + 2271, + 2272, + 2273, + 2274, + 2275, + 2276, + 2277, + 2278, + 2279, + 2280, + 2281, + 2282, + 2283, + 2284, + 2285, + 2286, + 2287, + 2288, + 2289, + 2290, + 2291, + 2292, + 2293, + 2294, + 2295, + 2296, + 2297, + 2298, + 2299, + 2300, + 2301, + 2302, + 2303, + 2304, + 2305, + 2306, + 2307, + 2308, + 2309, + 2310, + 2311, + 2312, + 2313, + 2314, + 2315, + 2316, + 2317, + 2318, + 2319, + 2320, + 2321, + 2322, + 2323, + 2324, + 2325, + 2326, + 2327, + 2328, + 2329, + 2330, + 2331, + 2332, + 2333, + 2334, + 2335, + 2336, + 2337, + 2338, + 2339, + 2340, + 2341, + 2342, + 2343, + 2344, + 2345, + 2346, + 2347, + 2348, + 2349, + 2350, + 2351, + 2352, + 2353, + 2354, + 2355, + 2356, + 2357, + 2358, + 2359, + 2360, + 2361, + 2362, + 2363, + 2364, + 2365, + 2366, + 2367, + 2368, + 2369, + 2370, + 2371, + 2372, + 2373, + 2374, + 2375, + 2376, + 2377, + 2378, + 2379, + 2380, + 2381, + 2382, + 2383, + 2384, + 2385, + 2386, + 2387, + 2388, + 2389, + 2390, + 2391, + 2392, + 2393, + 2394, + 2395, + 2396, + 2397, + 2398, + 2399, + 2400, + 2401, + 2402, + 2403, + 2404, + 2405, + 2406, + 2407, + 2408, + 2409, + 2410, + 2411, + 2412, + 2413, + 2414, + 2415, + 2416, + 2417, + 2418, + 2419, + 2420, + 2421, + 2422, + 2423, + 2424, + 2425, + 2426, + 2427, + 2428, + 2429, + 2430, + 2431, + 2432, + 2433, + 2434, + 2435, + 2436, + 2437, + 2438, + 2439, + 2440, + 2441, + 2442, + 2443, + 2444, + 2445, + 2446, + 2447, + 2448, + 2449, + 2450, + 2451, + 2452, + 2453, + 2454, + 2455, + 2456, + 2457, + 2458, + 2459, + 2460, + 2461, + 2462, + 2463, + 2464, + 2465, + 2466, + 2467, + 2468, + 2469, + 2470, + 2471, + 2472, + 2473, + 2474, + 2475, + 2476, + 2477, + 2478, + 2479, + 2480, + 2481, + 2482, + 2483, + 2484, + 2485, + 2486, + 2487, + 2488, + 2489, + 2490, + 2491, + 2492, + 2493, + 2494, + 2495, + 2496, + 2497, + 2498, + 2499, + 2500, + 2501, + 2502, + 2503, + 2504, + 2505, + 2506, + 2507, + 2508, + 2509, + 2510, + 2511, + 2512, + 2513, + 2514, + 2515, + 2516, + 2517, + 2518, + 2519, + 2520, + 2521, + 2522, + 2523, + 2524, + 2525, + 2526, + 2527, + 2528, + 2529, + 2530, + 2531, + 2532, + 2533, + 2534, + 2535, + 2536, + 2537, + 2538, + 2539, + 2540, + 2541, + 2542, + 2543, + 2544, + 2545, + 2546, + 2547, + 2548, + 2549, + 2550, + 2551, + 2552, + 2553, + 2554, + 2555, + 2556, + 2557, + 2558, + 2559, + 2560, + 2561, + 2562, + 2563, + 2564, + 2565, + 2566, + 2567, + 2568, + 2569, + 2570, + 2571, + 2572, + 2573, + 2574, + 2575, + 2576, + 2577, + 2578, + 2579, + 2580, + 2581, + 2582, + 2583, + 2584, + 2585, + 2586, + 2587, + 2588, + 2589, + 2590, + 2591, + 2592, + 2593, + 2594, + 2595, + 2596, + 2597, + 2598, + 2599, + 2600, + 2601, + 2602, + 2603, + 2604, + 2605, + 2606, + 2607, + 2608, + 2609, + 2610, + 2611, + 2612, + 2613, + 2614, + 2615, + 2616, + 2617, + 2618, + 2619, + 2620, + 2621, + 2622, + 2623, + 2624, + 2625, + 2626, + 2627, + 2628, + 2629, + 2630, + 2631, + 2632, + 2633, + 2634, + 2635, + 2636, + 2637, + 2638, + 2639, + 2640, + 2641, + 2642, + 2643, + 2644, + 2645, + 2646, + 2647, + 2648, + 2649, + 2650, + 2651, + 2652, + 2653, + 2654, + 2655, + 2656, + 2657, + 2658, + 2659, + 2660, + 2661, + 2662, + 2663, + 2664, + 2665, + 2666, + 2667, + 2668, + 2669, + 2670, + 2671, + 2672, + 2673, + 2674, + 2675, + 2676, + 2677, + 2678, + 2679, + 2680, + 2681, + 2682, + 2683, + 2684, + 2685, + 2686, + 2687, + 2688, + 2689, + 2690, + 2691, + 2692, + 2693, + 2694, + 2695, + 2696, + 2697, + 2698, + 2699, + 2700, + 2701, + 2702, + 2703, + 2704, + 2705, + 2706, + 2707, + 2708, + 2709, + 2710, + 2711, + 2712, + 2713, + 2714, + 2715, + 2716, + 2717, + 2718, + 2719, + 2720, + 2721, + 2722, + 2723, + 2724, + 2725, + 2726, + 2727, + 2728, + 2729, + 2730, + 2731, + 2732, + 2733, + 2734, + 2735, + 2736, + 2737, + 2738, + 2739, + 2740, + 2741, + 2742, + 2743, + 2744, + 2745, + 2746, + 2747, + 2748, + 2749, + 2750, + 2751, + 2752, + 2753, + 2754, + 2755, + 2756, + 2757, + 2758, + 2759, + 2760, + 2761, + 2762, + 2763, + 2764, + 2765, + 2766, + 2767, + 2768, + 2769, + 2770, + 2771, + 2772, + 2773, + 2774, + 2775, + 2776, + 2777, + 2778, + 2779, + 2780, + 2781, + 2782, + 2783, + 2784, + 2785, + 2786, + 2787, + 2788, + 2789, + 2790, + 2791, + 2792, + 2793, + 2794, + 2795, + 2796, + 2797, + 2798, + 2799, + 2800, + 2801, + 2802, + 2803, + 2804, + 2805, + 2806, + 2807, + 2808, + 2809, + 2810, + 2811, + 2812, + 2813, + 2814, + 2815, + 2816, + 2817, + 2818, + 2819, + 2820, + 2821, + 2822, + 2823, + 2824, + 2825, + 2826, + 2827, + 2828, + 2829, + 2830, + 2831, + 2832, + 2833, + 2834, + 2835, + 2836, + 2837, + 2838, + 2839, + 2840, + 2841, + 2842, + 2843, + 2844, + 2845, + 2846, + 2847, + 2848, + 2849, + 2850, + 2851, + 2852, + 2853, + 2854, + 2855, + 2856, + 2857, + 2858, + 2859, + 2860, + 2861, + 2862, + 2863, + 2864, + 2865, + 2866, + 2867, + 2868, + 2869, + 2870, + 2871, + 2872, + 2873, + 2874, + 2875, + 2876, + 2877, + 2878, + 2879, + 2880, + 2881, + 2882, + 2883, + 2884, + 2885, + 2886, + 2887, + 2888, + 2889, + 2890, + 2891, + 2892, + 2893, + 2894, + 2895, + 2896, + 2897, + 2898, + 2899, + 2900, + 2901, + 2902, + 2903, + 2904, + 2905, + 2906, + 2907, + 2908, + 2909, + 2910, + 2911, + 2912, + 2913, + 2914, + 2915, + 2916, + 2917, + 2918, + 2919, + 2920, + 2921, + 2922, + 2923, + 2924, + 2925, + 2926, + 2927, + 2928, + 2929, + 2930, + 2931, + 2932, + 2933, + 2934, + 2935, + 2936, + 2937, + 2938, + 2939, + 2940, + 2941, + 2942, + 2943, + 2944, + 2945, + 2946, + 2947, + 2948, + 2949, + 2950, + 2951, + 2952, + 2953, + 2954, + 2955, + 2956, + 2957, + 2958, + 2959, + 2960, + 2961, + 2962, + 2963, + 2964, + 2965, + 2966, + 2967, + 2968, + 2969, + 2970, + 2971, + 2972, + 2973, + 2974, + 2975, + 2976, + 2977, + 2978, + 2979, + 2980, + 2981, + 2982, + 2983, + 2984, + 2985, + 2986, + 2987, + 2988, + 2989, + 2990, + 2991, + 2992, + 2993, + 2994, + 2995, + 2996, + 2997, + 2998, + 2999, + 3000, + 3001, + 3002, + 3003, + 3004, + 3005, + 3006, + 3007, + 3008, + 3009, + 3010, + 3011, + 3012, + 3013, + 3014, + 3015, + 3016, + 3017, + 3018, + 3019, + 3020, + 3021, + 3022, + 3023, + 3024, + 3025, + 3026, + 3027, + 3028, + 3029, + 3030, + 3031, + 3032, + 3033, + 3034, + 3035, + 3036, + 3037, + 3038, + 3039, + 3040, + 3041, + 3042, + 3043, + 3044, + 3045, + 3046, + 3047, + 3048, + 3049, + 3050, + 3051, + 3052, + 3053, + 3054, + 3055, + 3056, + 3057, + 3058, + 3059, + 3060, + 3061, + 3062, + 3063, + 3064, + 3065, + 3066, + 3067, + 3068, + 3069, + 3070, + 3071, + 3072, + 3073, + 3074, + 3075, + 3076, + 3077, + 3078, + 3079, + 3080, + 3081, + 3082, + 3083, + 3084, + 3085, + 3086, + 3087, + 3088, + 3089, + 3090, + 3091, + 3092, + 3093, + 3094, + 3095, + 3096, + 3097, + 3098, + 3099, + 3100, + 3101, + 3102, + 3103, + 3104, + 3105, + 3106, + 3107, + 3108, + 3109, + 3110, + 3111, + 3112, + 3113, + 3114, + 3115, + 3116, + 3117, + 3118, + 3119, + 3120, + 3121, + 3122, + 3123, + 3124, + 3125, + 3126, + 3127, + 3128, + 3129, + 3130, + 3131, + 3132, + 3133, + 3134, + 3135, + 3136, + 3137, + 3138, + 3139, + 3140, + 3141, + 3142, + 3143, + 3144, + 3145, + 3146, + 3147, + 3148, + 3149, + 3150, + 3151, + 3152, + 3153, + 3154, + 3155, + 3156, + 3157, + 3158, + 3159, + 3160, + 3161, + 3162, + 3163, + 3164, + 3165, + 3166, + 3167, + 3168, + 3169, + 3170, + 3171, + 3172, + 3173, + 3174, + 3175, + 3176, + 3177, + 3178, + 3179, + 3180, + 3181, + 3182, + 3183, + 3184, + 3185, + 3186, + 3187, + 3188, + 3189, + 3190, + 3191, + 3192, + 3193, + 3194, + 3195, + 3196, + 3197, + 3198, + 3199, + 3200, + 3201, + 3202, + 3203, + 3204, + 3205, + 3206, + 3207, + 3208, + 3209, + 3210, + 3211, + 3212, + 3213, + 3214, + 3215, + 3216, + 3217, + 3218, + 3219, + 3220, + 3221, + 3222, + 3223, + 3224, + 3225, + 3226, + 3227, + 3228, + 3229, + 3230, + 3231, + 3232, + 3233, + 3234, + 3235, + 3236, + 3237, + 3238, + 3239, + 3240, + 3241, + 3242, + 3243, + 3244, + 3245, + 3246, + 3247, + 3248, + 3249, + 3250, + 3251, + 3252, + 3253, + 3254, + 3255, + 3256, + 3257, + 3258, + 3259, + 3260, + 3261, + 3262, + 3263, + 3264, + 3265, + 3266, + 3267, + 3268, + 3269, + 3270, + 3271, + 3272, + 3273, + 3274, + 3275, + 3276, + 3277, + 3278, + 3279, + 3280, + 3281, + 3282, + 3283, + 3284, + 3285, + 3286, + 3287, + 3288, + 3289, + 3290, + 3291, + 3292, + 3293, + 3294, + 3295, + 3296, + 3297, + 3298, + 3299, + 3300, + 3301, + 3302, + 3303, + 3304, + 3305, + 3306, + 3307, + 3308, + 3309, + 3310, + 3311, + 3312, + 3313, + 3314, + 3315, + 3316, + 3317, + 3318, + 3319, + 3320, + 3321, + 3322, + 3323, + 3324, + 3325, + 3326, + 3327, + 3328, + 3329, + 3330, + 3331, + 3332, + 3333, + 3334, + 3335, + 3336, + 3337, + 3338, + 3339, + 3340, + 3341, + 3342, + 3343, + 3344, + 3345, + 3346, + 3347, + 3348, + 3349, + 3350, + 3351, + 3352, + 3353, + 3354, + 3355, + 3356, + 3357, + 3358, + 3359, + 3360, + 3361, + 3362, + 3363, + 3364, + 3365, + 3366, + 3367, + 3368, + 3369, + 3370, + 3371, + 3372, + 3373, + 3374, + 3375, + 3376, + 3377, + 3378, + 3379, + 3380, + 3381, + 3382, + 3383, + 3384, + 3385, + 3386, + 3387, + 3388, + 3389, + 3390, + 3391, + 3392, + 3393, + 3394, + 3395, + 3396, + 3397, + 3398, + 3399, + 3400, + 3401, + 3402, + 3403, + 3404, + 3405, + 3406, + 3407, + 3408, + 3409, + 3410, + 3411, + 3412, + 3413, + 3414, + 3415, + 3416, + 3417, + 3418, + 3419, + 3420, + 3421, + 3422, + 3423, + 3424, + 3425, + 3426, + 3427, + 3428, + 3429, + 3430, + 3431, + 3432, + 3433, + 3434, + 3435, + 3436, + 3437, + 3438, + 3439, + 3440, + 3441, + 3442, + 3443, + 3444, + 3445, + 3446, + 3447, + 3448, + 3449, + 3450, + 3451, + 3452, + 3453, + 3454, + 3455, + 3456, + 3457, + 3458, + 3459, + 3460, + 3461, + 3462, + 3463, + 3464, + 3465, + 3466, + 3467, + 3468, + 3469, + 3470, + 3471, + 3472, + 3473, + 3474, + 3475, + 3476, + 3477, + 3478, + 3479, + 3480, + 3481, + 3482, + 3483, + 3484, + 3485, + 3486, + 3487, + 3488, + 3489, + 3490, + 3491, + 3492, + 3493, + 3494, + 3495, + 3496, + 3497, + 3498, + 3499, + 3500, + 3501, + 3502, + 3503, + 3504, + 3505, + 3506, + 3507, + 3508, + 3509, + 3510, + 3511, + 3512, + 3513, + 3514, + 3515, + 3516, + 3517, + 3518, + 3519, + 3520, + 3521, + 3522, + 3523, + 3524, + 3525, + 3526, + 3527, + 3528, + 3529, + 3530, + 3531, + 3532, + 3533, + 3534, + 3535, + 3536, + 3537, + 3538, + 3539, + 3540, + 3541, + 3542, + 3543, + 3544, + 3545, + 3546, + 3547, + 3548, + 3549, + 3550, + 3551, + 3552, + 3553, + 3554, + 3555, + 3556, + 3557, + 3558, + 3559, + 3560, + 3561, + 3562, + 3563, + 3564, + 3565, + 3566, + 3567, + 3568, + 3569, + 3570, + 3571, + 3572, + 3573, + 3574, + 3575, + 3576, + 3577, + 3578, + 3579, + 3580, + 3581, + 3582, + 3583, + 3584, + 3585, + 3586, + 3587, + 3588, + 3589, + 3590, + 3591, + 3592, + 3593, + 3594, + 3595, + 3596, + 3597, + 3598, + 3599, + 3600, + 3601, + 3602, + 3603, + 3604, + 3605, + 3606, + 3607, + 3608, + 3609, + 3610, + 3611, + 3612, + 3613, + 3614, + 3615, + 3616, + 3617, + 3618, + 3619, + 3620, + 3621, + 3622, + 3623, + 3624, + 3625, + 3626, + 3627, + 3628, + 3629, + 3630, + 3631, + 3632, + 3633, + 3634, + 3635, + 3636, + 3637, + 3638, + 3639, + 3640, + 3641, + 3642, + 3643, + 3644, + 3645, + 3646, + 3647, + 3648, + 3649, + 3650, + 3651, + 3652, + 3653, + 3654, + 3655, + 3656, + 3657, + 3658, + 3659, + 3660, + 3661, + 3662, + 3663, + 3664, + 3665, + 3666, + 3667, + 3668, + 3669, + 3670, + 3671, + 3672, + 3673, + 3674, + 3675, + 3676, + 3677, + 3678, + 3679, + 3680, + 3681, + 3682, + 3683, + 3684, + 3685, + 3686, + 3687, + 3688, + 3689, + 3690, + 3691, + 3692, + 3693, + 3694, + 3695, + 3696, + 3697, + 3698, + 3699, + 3700, + 3701, + 3702, + 3703, + 3704, + 3705, + 3706, + 3707, + 3708, + 3709, + 3710, + 3711, + 3712, + 3713, + 3714, + 3715, + 3716, + 3717, + 3718, + 3719, + 3720, + 3721, + 3722, + 3723, + 3724, + 3725, + 3726, + 3727, + 3728, + 3729, + 3730, + 3731, + 3732, + 3733, + 3734, + 3735, + 3736, + 3737, + 3738, + 3739, + 3740, + 3741, + 3742, + 3743, + 3744, + 3745, + 3746, + 3747, + 3748, + 3749, + 3750, + 3751, + 3752, + 3753, + 3754, + 3755, + 3756, + 3757, + 3758, + 3759, + 3760, + 3761, + 3762, + 3763, + 3764, + 3765, + 3766, + 3767, + 3768, + 3769, + 3770, + 3771, + 3772, + 3773, + 3774, + 3775, + 3776, + 3777, + 3778, + 3779, + 3780, + 3781, + 3782, + 3783, + 3784, + 3785, + 3786, + 3787, + 3788, + 3789, + 3790, + 3791, + 3792, + 3793, + 3794, + 3795, + 3796, + 3797, + 3798, + 3799, + 3800, + 3801, + 3802, + 3803, + 3804, + 3805, + 3806, + 3807, + 3808, + 3809, + 3810, + 3811, + 3812, + 3813, + 3814, + 3815, + 3816, + 3817, + 3818, + 3819, + 3820, + 3821, + 3822, + 3823, + 3824, + 3825, + 3826, + 3827, + 3828, + 3829, + 3830, + 3831, + 3832, + 3833, + 3834, + 3835, + 3836, + 3837, + 3838, + 3839, + 3840, + 3841, + 3842, + 3843, + 3844, + 3845, + 3846, + 3847, + 3848, + 3849, + 3850, + 3851, + 3852, + 3853, + 3854, + 3855, + 3856, + 3857, + 3858, + 3859, + 3860, + 3861, + 3862, + 3863, + 3864, + 3865, + 3866, + 3867, + 3868, + 3869, + 3870, + 3871, + 3872, + 3873, + 3874, + 3875, + 3876, + 3877, + 3878, + 3879, + 3880, + 3881, + 3882, + 3883, + 3884, + 3885, + 3886, + 3887, + 3888, + 3889, + 3890, + 3891, + 3892, + 3893, + 3894, + 3895, + 3896, + 3897, + 3898, + 3899, + 3900, + 3901, + 3902, + 3903, + 3904, + 3905, + 3906, + 3907, + 3908, + 3909, + 3910, + 3911, + 3912, + 3913, + 3914, + 3915, + 3916, + 3917, + 3918, + 3919, + 3920, + 3921, + 3922, + 3923, + 3924, + 3925, + 3926, + 3927, + 3928, + 3929, + 3930, + 3931, + 3932, + 3933, + 3934, + 3935, + 3936, + 3937, + 3938, + 3939, + 3940, + 3941, + 3942, + 3943, + 3944, + 3945, + 3946, + 3947, + 3948, + 3949, + 3950, + 3951, + 3952, + 3953, + 3954, + 3955, + 3956, + 3957, + 3958, + 3959, + 3960, + 3961, + 3962, + 3963, + 3964, + 3965, + 3966, + 3967, + 3968, + 3969, + 3970, + 3971, + 3972, + 3973, + 3974, + 3975, + 3976, + 3977, + 3978, + 3979, + 3980, + 3981, + 3982, + 3983, + 3984, + 3985, + 3986, + 3987, + 3988, + 3989, + 3990, + 3991, + 3992, + 3993, + 3994, + 3995, + 3996, + 3997, + 3998, + 3999, + 4000, + 4001, + 4002, + 4003, + 4004, + 4005, + 4006, + 4007, + 4008, + 4009, + 4010, + 4011, + 4012, + 4013, + 4014, + 4015, + 4016, + 4017, + 4018, + 4019, + 4020, + 4021, + 4022, + 4023, + 4024, + 4025, + 4026, + 4027, + 4028, + 4029, + 4030, + 4031, + 4032, + 4033, + 4034, + 4035, + 4036, + 4037, + 4038, + 4039, + 4040, + 4041, + 4042, + 4043, + 4044, + 4045, + 4046, + 4047, + 4048, + 4049, + 4050, + 4051, + 4052, + 4053, + 4054, + 4055, + 4056, + 4057, + 4058, + 4059, + 4060, + 4061, + 4062, + 4063, + 4064, + 4065, + 4066, + 4067, + 4068, + 4069, + 4070, + 4071, + 4072, + 4073, + 4074, + 4075, + 4076, + 4077, + 4078, + 4079, + 4080, + 4081, + 4082, + 4083, + 4084, + 4085, + 4086, + 4087, + 4088, + 4089, + 4090, + 4091, + 4092, + 4093, + 4094, + 4095, + 4096, + 4097, + 4098, + 4099, + 4100, + 4101, + 4102, + 4103, + 4104, + 4105, + 4106, + 4107, + 4108, + 4109, + 4110, + 4111, + 4112, + 4113, + 4114, + 4115, + 4116, + 4117, + 4118, + 4119, + 4120, + 4121, + 4122, + 4123, + 4124, + 4125, + 4126, + 4127, + 4128, + 4129, + 4130, + 4131, + 4132, + 4133, + 4134, + 4135, + 4136, + 4137, + 4138, + 4139, + 4140, + 4141, + 4142, + 4143, + 4144, + 4145, + 4146, + 4147, + 4148, + 4149, + 4150, + 4151, + 4152, + 4153, + 4154, + 4155, + 4156, + 4157, + 4158, + 4159, + 4160, + 4161, + 4162, + 4163, + 4164, + 4165, + 4166, + 4167, + 4168, + 4169, + 4170, + 4171, + 4172, + 4173, + 4174, + 4175, + 4176, + 4177, + 4178, + 4179, + 4180, + 4181, + 4182, + 4183, + 4184, + 4185, + 4186, + 4187, + 4188, + 4189, + 4190, + 4191, + 4192, + 4193, + 4194, + 4195, + 4196, + 4197, + 4198, + 4199, + 4200, + 4201, + 4202, + 4203, + 4204, + 4205, + 4206, + 4207, + 4208, + 4209, + 4210, + 4211, + 4212, + 4213, + 4214, + 4215, + 4216, + 4217, + 4218, + 4219, + 4220, + 4221, + 4222, + 4223, + 4224, + 4225, + 4226, + 4227, + 4228, + 4229, + 4230, + 4231, + 4232, + 4233, + 4234, + 4235, + 4236, + 4237, + 4238, + 4239, + 4240, + 4241, + 4242, + 4243, + 4244, + 4245, + 4246, + 4247, + 4248, + 4249, + 4250, + 4251, + 4252, + 4253, + 4254, + 4255, + 4256, + 4257, + 4258, + 4259, + 4260, + 4261, + 4262, + 4263, + 4264, + 4265, + 4266, + 4267, + 4268, + 4269, + 4270, + 4271, + 4272, + 4273, + 4274, + 4275, + 4276, + 4277, + 4278, + 4279, + 4280, + 4281, + 4282, + 4283, + 4284, + 4285, + 4286, + 4287, + 4288, + 4289, + 4290, + 4291, + 4292, + 4293, + 4294, + 4295, + 4296, + 4297, + 4298, + 4299, + 4300, + 4301, + 4302, + 4303, + 4304, + 4305, + 4306, + 4307, + 4308, + 4309, + 4310, + 4311, + 4312, + 4313, + 4314, + 4315, + 4316, + 4317, + 4318, + 4319, + 4320, + 4321, + 4322, + 4323, + 4324, + 4325, + 4326, + 4327, + 4328, + 4329, + 4330, + 4331, + 4332, + 4333, + 4334, + 4335, + 4336, + 4337, + 4338, + 4339, + 4340, + 4341, + 4342, + 4343, + 4344, + 4345, + 4346, + 4347, + 4348, + 4349, + 4350, + 4351, + 4352, + 4353, + 4354, + 4355, + 4356, + 4357, + 4358, + 4359, + 4360, + 4361, + 4362, + 4363, + 4364, + 4365, + 4366, + 4367, + 4368, + 4369, + 4370, + 4371, + 4372, + 4373, + 4374, + 4375, + 4376, + 4377, + 4378, + 4379, + 4380, + 4381, + 4382, + 4383, + 4384, + 4385, + 4386, + 4387, + 4388, + 4389, + 4390, + 4391, + 4392, + 4393, + 4394, + 4395, + 4396, + 4397, + 4398, + 4399, + 4400, + 4401, + 4402, + 4403, + 4404, + 4405, + 4406, + 4407, + 4408, + 4409, + 4410, + 4411, + 4412, + 4413, + 4414, + 4415, + 4416, + 4417, + 4418, + 4419, + 4420, + 4421, + 4422, + 4423, + 4424, + 4425, + 4426, + 4427, + 4428, + 4429, + 4430, + 4431, + 4432, + 4433, + 4434, + 4435, + 4436, + 4437, + 4438, + 4439, + 4440, + 4441, + 4442, + 4443, + 4444, + 4445, + 4446, + 4447, + 4448, + 4449, + 4450, + 4451, + 4452, + 4453, + 4454, + 4455, + 4456, + 4457, + 4458, + 4459, + 4460, + 4461, + 4462, + 4463, + 4464, + 4465, + 4466, + 4467, + 4468, + 4469, + 4470, + 4471, + 4472, + 4473, + 4474, + 4475, + 4476, + 4477, + 4478, + 4479, + 4480, + 4481, + 4482, + 4483, + 4484, + 4485, + 4486, + 4487, + 4488, + 4489, + 4490, + 4491, + 4492, + 4493, + 4494, + 4495, + 4496, + 4497, + 4498, + 4499, + 4500, + 4501, + 4502, + 4503, + 4504, + 4505, + 4506, + 4507, + 4508, + 4509, + 4510, + 4511, + 4512, + 4513, + 4514, + 4515, + 4516, + 4517, + 4518, + 4519, + 4520, + 4521, + 4522, + 4523, + 4524, + 4525, + 4526, + 4527, + 4528, + 4529, + 4530, + 4531, + 4532, + 4533, + 4534, + 4535, + 4536, + 4537, + 4538, + 4539, + 4540, + 4541, + 4542, + 4543, + 4544, + 4545, + 4546, + 4547, + 4548, + 4549, + 4550, + 4551, + 4552, + 4553, + 4554, + 4555, + 4556, + 4557, + 4558, + 4559, + 4560, + 4561, + 4562, + 4563, + 4564, + 4565, + 4566, + 4567, + 4568, + 4569, + 4570, + 4571, + 4572, + 4573, + 4574, + 4575, + 4576, + 4577, + 4578, + 4579, + 4580, + 4581, + 4582, + 4583, + 4584, + 4585, + 4586, + 4587, + 4588, + 4589, + 4590, + 4591, + 4592, + 4593, + 4594, + 4595, + 4596, + 4597, + 4598, + 4599, + 4600, + 4601, + 4602, + 4603, + 4604, + 4605, + 4606, + 4607, + 4608, + 4609, + 4610, + 4611, + 4612, + 4613, + 4614, + 4615, + 4616, + 4617, + 4618, + 4619, + 4620, + 4621, + 4622, + 4623, + 4624, + 4625, + 4626, + 4627, + 4628, + 4629, + 4630, + 4631, + 4632, + 4633, + 4634, + 4635, + 4636, + 4637, + 4638, + 4639, + 4640, + 4641, + 4642, + 4643, + 4644, + 4645, + 4646, + 4647, + 4648, + 4649, + 4650, + 4651, + 4652, + 4653, + 4654, + 4655, + 4656, + 4657, + 4658, + 4659, + 4660, + 4661, + 4662, + 4663, + 4664, + 4665, + 4666, + 4667, + 4668, + 4669, + 4670, + 4671, + 4672, + 4673, + 4674, + 4675, + 4676, + 4677, + 4678, + 4679, + 4680, + 4681, + 4682, + 4683, + 4684, + 4685, + 4686, + 4687, + 4688, + 4689, + 4690, + 4691, + 4692, + 4693, + 4694, + 4695, + 4696, + 4697, + 4698, + 4699, + 4700, + 4701, + 4702, + 4703, + 4704, + 4705, + 4706, + 4707, + 4708, + 4709, + 4710, + 4711, + 4712, + 4713, + 4714, + 4715, + 4716, + 4717, + 4718, + 4719, + 4720, + 4721, + 4722, + 4723, + 4724, + 4725, + 4726, + 4727, + 4728, + 4729, + 4730, + 4731, + 4732, + 4733, + 4734, + 4735, + 4736, + 4737, + 4738, + 4739, + 4740, + 4741, + 4742, + 4743, + 4744, + 4745, + 4746, + 4747, + 4748, + 4749, + 4750, + 4751, + 4752, + 4753, + 4754, + 4755, + 4756, + 4757, + 4758, + 4759, + 4760, + 4761, + 4762, + 4763, + 4764, + 4765, + 4766, + 4767, + 4768, + 4769, + 4770, + 4771, + 4772, + 4773, + 4774, + 4775, + 4776, + 4777, + 4778, + 4779, + 4780, + 4781, + 4782, + 4783, + 4784, + 4785, + 4786, + 4787, + 4788, + 4789, + 4790, + 4791, + 4792, + 4793, + 4794, + 4795, + 4796, + 4797, + 4798, + 4799, + 4800, + 4801, + 4802, + 4803, + 4804, + 4805, + 4806, + 4807, + 4808, + 4809, + 4810, + 4811, + 4812, + 4813, + 4814, + 4815, + 4816, + 4817, + 4818, + 4819, + 4820, + 4821, + 4822, + 4823, + 4824, + 4825, + 4826, + 4827, + 4828, + 4829, + 4830, + 4831, + 4832, + 4833, + 4834, + 4835, + 4836, + 4837, + 4838, + 4839, + 4840, + 4841, + 4842, + 4843, + 4844, + 4845, + 4846, + 4847, + 4848, + 4849, + 4850, + 4851, + 4852, + 4853, + 4854, + 4855, + 4856, + 4857, + 4858, + 4859, + 4860, + 4861, + 4862, + 4863, + 4864, + 4865, + 4866, + 4867, + 4868, + 4869, + 4870, + 4871, + 4872, + 4873, + 4874, + 4875, + 4876, + 4877, + 4878, + 4879, + 4880, + 4881, + 4882, + 4883, + 4884, + 4885, + 4886, + 4887, + 4888, + 4889, + 4890, + 4891, + 4892, + 4893, + 4894, + 4895, + 4896, + 4897, + 4898, + 4899, + 4900, + 4901, + 4902, + 4903, + 4904, + 4905, + 4906, + 4907, + 4908, + 4909, + 4910, + 4911, + 4912, + 4913, + 4914, + 4915, + 4916, + 4917, + 4918, + 4919, + 4920, + 4921, + 4922, + 4923, + 4924, + 4925, + 4926, + 4927, + 4928, + 4929, + 4930, + 4931, + 4932, + 4933, + 4934, + 4935, + 4936, + 4937, + 4938, + 4939, + 4940, + 4941, + 4942, + 4943, + 4944, + 4945, + 4946, + 4947, + 4948, + 4949, + 4950, + 4951, + 4952, + 4953, + 4954, + 4955, + 4956, + 4957, + 4958, + 4959, + 4960, + 4961, + 4962, + 4963, + 4964, + 4965, + 4966, + 4967, + 4968, + 4969, + 4970, + 4971, + 4972, + 4973, + 4974, + 4975, + 4976, + 4977, + 4978, + 4979, + 4980, + 4981, + 4982, + 4983, + 4984, + 4985, + 4986, + 4987, + 4988, + 4989, + 4990, + 4991, + 4992, + 4993, + 4994, + 4995, + 4996, + 4997, + 4998, + 4999, + 5000, + 5001, + 5002, + 5003, + 5004, + 5005, + 5006, + 5007, + 5008, + 5009, + 5010, + 5011, + 5012, + 5013, + 5014, + 5015, + 5016, + 5017, + 5018, + 5019, + 5020, + 5021, + 5022, + 5023, + 5024, + 5025, + 5026, + 5027, + 5028, + 5029, + 5030, + 5031, + 5032, + 5033, + 5034, + 5035, + 5036, + 5037, + 5038, + 5039, + 5040, + 5041, + 5042, + 5043, + 5044, + 5045, + 5046, + 5047, + 5048, + 5049, + 5050, + 5051, + 5052, + 5053, + 5054, + 5055, + 5056, + 5057, + 5058, + 5059, + 5060, + 5061, + 5062, + 5063, + 5064, + 5065, + 5066, + 5067, + 5068, + 5069, + 5070, + 5071, + 5072, + 5073, + 5074, + 5075, + 5076, + 5077, + 5078, + 5079, + 5080, + 5081, + 5082, + 5083, + 5084, + 5085, + 5086, + 5087, + 5088, + 5089, + 5090, + 5091, + 5092, + 5093, + 5094, + 5095, + 5096, + 5097, + 5098, + 5099, + 5100, + 5101, + 5102, + 5103, + 5104, + 5105, + 5106, + 5107, + 5108, + 5109, + 5110, + 5111, + 5112, + 5113, + 5114, + 5115, + 5116, + 5117, + 5118, + 5119, + 5120, + 5121, + 5122, + 5123, + 5124, + 5125, + 5126, + 5127, + 5128, + 5129, + 5130, + 5131, + 5132, + 5133, + 5134, + 5135, + 5136, + 5137, + 5138, + 5139, + 5140, + 5141, + 5142, + 5143, + 5144, + 5145, + 5146, + 5147, + 5148, + 5149, + 5150, + 5151, + 5152, + 5153, + 5154, + 5155, + 5156, + 5157, + 5158, + 5159, + 5160, + 5161, + 5162, + 5163, + 5164, + 5165, + 5166, + 5167, + 5168, + 5169, + 5170, + 5171, + 5172, + 5173, + 5174, + 5175, + 5176, + 5177, + 5178, + 5179, + 5180, + 5181, + 5182, + 5183, + 5184, + 5185, + 5186, + 5187, + 5188, + 5189, + 5190, + 5191, + 5192, + 5193, + 5194, + 5195, + 5196, + 5197, + 5198, + 5199, + 5200, + 5201, + 5202, + 5203, + 5204, + 5205, + 5206, + 5207, + 5208, + 5209, + 5210, + 5211, + 5212, + 5213, + 5214, + 5215, + 5216, + 5217, + 5218, + 5219, + 5220, + 5221, + 5222, + 5223, + 5224, + 5225, + 5226, + 5227, + 5228, + 5229, + 5230, + 5231, + 5232, + 5233, + 5234, + 5235, + 5236, + 5237, + 5238, + 5239, + 5240, + 5241, + 5242, + 5243, + 5244, + 5245, + 5246, + 5247, + 5248, + 5249, + 5250, + 5251, + 5252, + 5253, + 5254, + 5255, + 5256, + 5257, + 5258, + 5259, + 5260, + 5261, + 5262, + 5263, + 5264, + 5265, + 5266, + 5267, + 5268, + 5269, + 5270, + 5271, + 5272, + 5273, + 5274, + 5275, + 5276, + 5277, + 5278, + 5279, + 5280, + 5281, + 5282, + 5283, + 5284, + 5285, + 5286, + 5287, + 5288, + 5289, + 5290, + 5291, + 5292, + 5293, + 5294, + 5295, + 5296, + 5297, + 5298, + 5299, + 5300, + 5301, + 5302, + 5303, + 5304, + 5305, + 5306, + 5307, + 5308, + 5309, + 5310, + 5311, + 5312, + 5313, + 5314, + 5315, + 5316, + 5317, + 5318, + 5319, + 5320, + 5321, + 5322, + 5323, + 5324, + 5325, + 5326, + 5327, + 5328, + 5329, + 5330, + 5331, + 5332, + 5333, + 5334, + 5335, + 5336, + 5337, + 5338, + 5339, + 5340, + 5341, + 5342, + 5343, + 5344, + 5345, + 5346, + 5347, + 5348, + 5349, + 5350, + 5351, + 5352, + 5353, + 5354, + 5355, + 5356, + 5357, + 5358, + 5359, + 5360, + 5361, + 5362, + 5363, + 5364, + 5365, + 5366, + 5367, + 5368, + 5369, + 5370, + 5371, + 5372, + 5373, + 5374, + 5375, + 5376, + 5377, + 5378, + 5379, + 5380, + 5381, + 5382, + 5383, + 5384, + 5385, + 5386, + 5387, + 5388, + 5389, + 5390, + 5391, + 5392, + 5393, + 5394, + 5395, + 5396, + 5397, + 5398, + 5399, + 5400, + 5401, + 5402, + 5403, + 5404, + 5405, + 5406, + 5407, + 5408, + 5409, + 5410, + 5411, + 5412, + 5413, + 5414, + 5415, + 5416, + 5417, + 5418, + 5419, + 5420, + 5421, + 5422, + 5423, + 5424, + 5425, + 5426, + 5427, + 5428, + 5429, + 5430, + 5431, + 5432, + 5433, + 5434, + 5435, + 5436, + 5437, + 5438, + 5439, + 5440, + 5441, + 5442, + 5443, + 5444, + 5445, + 5446, + 5447, + 5448, + 5449, + 5450, + 5451, + 5452, + 5453, + 5454, + 5455, + 5456, + 5457, + 5458, + 5459, + 5460, + 5461, + 5462, + 5463, + 5464, + 5465, + 5466, + 5467, + 5468, + 5469, + 5470, + 5471, + 5472, + 5473, + 5474, + 5475, + 5476, + 5477, + 5478, + 5479, + 5480, + 5481, + 5482, + 5483, + 5484, + 5485, + 5486, + 5487, + 5488, + 5489, + 5490, + 5491, + 5492, + 5493, + 5494, + 5495, + 5496, + 5497, + 5498, + 5499, + 5500, + 5501, + 5502, + 5503, + 5504, + 5505, + 5506, + 5507, + 5508, + 5509, + 5510, + 5511, + 5512, + 5513, + 5514, + 5515, + 5516, + 5517, + 5518, + 5519, + 5520, + 5521, + 5522, + 5523, + 5524, + 5525, + 5526, + 5527, + 5528, + 5529, + 5530, + 5531, + 5532, + 5533, + 5534, + 5535, + 5536, + 5537, + 5538, + 5539, + 5540, + 5541, + 5542, + 5543, + 5544, + 5545, + 5546, + 5547, + 5548, + 5549, + 5550, + 5551, + 5552, + 5553, + 5554, + 5555, + 5556, + 5557, + 5558, + 5559, + 5560, + 5561, + 5562, + 5563, + 5564, + 5565, + 5566, + 5567, + 5568, + 5569, + 5570, + 5571, + 5572, + 5573, + 5574, + 5575, + 5576, + 5577, + 5578, + 5579, + 5580, + 5581, + 5582, + 5583, + 5584, + 5585, + 5586, + 5587, + 5588, + 5589, + 5590, + 5591, + 5592, + 5593, + 5594, + 5595, + 5596, + 5597, + 5598, + 5599, + 5600, + 5601, + 5602, + 5603, + 5604, + 5605, + 5606, + 5607, + 5608, + 5609, + 5610, + 5611, + 5612, + 5613, + 5614, + 5615, + 5616, + 5617, + 5618, + 5619, + 5620, + 5621, + 5622, + 5623, + 5624, + 5625, + 5626, + 5627, + 5628, + 5629, + 5630, + 5631, + 5632, + 5633, + 5634, + 5635, + 5636, + 5637, + 5638, + 5639, + 5640, + 5641, + 5642, + 5643, + 5644, + 5645, + 5646, + 5647, + 5648, + 5649, + 5650, + 5651, + 5652, + 5653, + 5654, + 5655, + 5656, + 5657, + 5658, + 5659, + 5660, + 5661, + 5662, + 5663, + 5664, + 5665, + 5666, + 5667, + 5668, + 5669, + 5670, + 5671, + 5672, + 5673, + 5674, + 5675, + 5676, + 5677, + 5678, + 5679, + 5680, + 5681, + 5682, + 5683, + 5684, + 5685, + 5686, + 5687, + 5688, + 5689, + 5690, + 5691, + 5692, + 5693, + 5694, + 5695, + 5696, + 5697, + 5698, + 5699, + 5700, + 5701, + 5702, + 5703, + 5704, + 5705, + 5706, + 5707, + 5708, + 5709, + 5710, + 5711, + 5712, + 5713, + 5714, + 5715, + 5716, + 5717, + 5718, + 5719, + 5720, + 5721, + 5722, + 5723, + 5724, + 5725, + 5726, + 5727, + 5728, + 5729, + 5730, + 5731, + 5732, + 5733, + 5734, + 5735, + 5736, + 5737, + 5738, + 5739, + 5740, + 5741, + 5742, + 5743, + 5744, + 5745, + 5746, + 5747, + 5748, + 5749, + 5750, + 5751, + 5752, + 5753, + 5754, + 5755, + 5756, + 5757, + 5758, + 5759, + 5760, + 5761, + 5762, + 5763, + 5764, + 5765, + 5766, + 5767, + 5768, + 5769, + 5770, + 5771, + 5772, + 5773, + 5774, + 5775, + 5776, + 5777, + 5778, + 5779, + 5780, + 5781, + 5782, + 5783, + 5784, + 5785, + 5786, + 5787, + 5788, + 5789, + 5790, + 5791, + 5792, + 5793, + 5794, + 5795, + 5796, + 5797, + 5798, + 5799, + 5800, + 5801, + 5802, + 5803, + 5804, + 5805, + 5806, + 5807, + 5808, + 5809, + 5810, + 5811, + 5812, + 5813, + 5814, + 5815, + 5816, + 5817, + 5818, + 5819, + 5820, + 5821, + 5822, + 5823, + 5824, + 5825, + 5826, + 5827, + 5828, + 5829, + 5830, + 5831, + 5832, + 5833, + 5834, + 5835, + 5836, + 5837, + 5838, + 5839, + 5840, + 5841, + 5842, + 5843, + 5844, + 5845, + 5846, + 5847, + 5848, + 5849, + 5850, + 5851, + 5852, + 5853, + 5854, + 5855, + 5856, + 5857, + 5858, + 5859, + 5860, + 5861, + 5862, + 5863, + 5864, + 5865, + 5866, + 5867, + 5868, + 5869, + 5870, + 5871, + 5872, + 5873, + 5874, + 5875, + 5876, + 5877, + 5878, + 5879, + 5880, + 5881, + 5882, + 5883, + 5884, + 5885, + 5886, + 5887, + 5888, + 5889, + 5890, + 5891, + 5892, + 5893, + 5894, + 5895, + 5896, + 5897, + 5898, + 5899, + 5900, + 5901, + 5902, + 5903, + 5904, + 5905, + 5906, + 5907, + 5908, + 5909, + 5910, + 5911, + 5912, + 5913, + 5914, + 5915, + 5916, + 5917, + 5918, + 5919, + 5920, + 5921, + 5922, + 5923, + 5924, + 5925, + 5926, + 5927, + 5928, + 5929, + 5930, + 5931, + 5932, + 5933, + 5934, + 5935, + 5936, + 5937, + 5938, + 5939, + 5940, + 5941, + 5942, + 5943, + 5944, + 5945, + 5946, + 5947, + 5948, + 5949, + 5950, + 5951, + 5952, + 5953, + 5954, + 5955, + 5956, + 5957, + 5958, + 5959, + 5960, + 5961, + 5962, + 5963, + 5964, + 5965, + 5966, + 5967, + 5968, + 5969, + 5970, + 5971, + 5972, + 5973, + 5974, + 5975, + 5976, + 5977, + 5978, + 5979, + 5980, + 5981, + 5982, + 5983, + 5984, + 5985, + 5986, + 5987, + 5988, + 5989, + 5990, + 5991, + 5992, + 5993, + 5994, + 5995, + 5996, + 5997, + 5998, + 5999, + 6000, + 6001, + 6002, + 6003, + 6004, + 6005, + 6006, + 6007, + 6008, + 6009, + 6010, + 6011, + 6012, + 6013, + 6014, + 6015, + 6016, + 6017, + 6018, + 6019, + 6020, + 6021, + 6022, + 6023, + 6024, + 6025, + 6026, + 6027, + 6028, + 6029, + 6030, + 6031, + 6032, + 6033, + 6034, + 6035, + 6036, + 6037, + 6038, + 6039, + 6040, + 6041, + 6042, + 6043, + 6044, + 6045, + 6046, + 6047, + 6048, + 6049, + 6050, + 6051, + 6052, + 6053, + 6054, + 6055, + 6056, + 6057, + 6058, + 6059, + 6060, + 6061, + 6062, + 6063, + 6064, + 6065, + 6066, + 6067, + 6068, + 6069, + 6070, + 6071, + 6072, + 6073, + 6074, + 6075, + 6076, + 6077, + 6078, + 6079, + 6080, + 6081, + 6082, + 6083, + 6084, + 6085, + 6086, + 6087, + 6088, + 6089, + 6090, + 6091, + 6092, + 6093, + 6094, + 6095, + 6096, + 6097, + 6098, + 6099, + 6100, + 6101, + 6102, + 6103, + 6104, + 6105, + 6106, + 6107, + 6108, + 6109, + 6110, + 6111, + 6112, + 6113, + 6114, + 6115, + 6116, + 6117, + 6118, + 6119, + 6120, + 6121, + 6122, + 6123, + 6124, + 6125, + 6126, + 6127, + 6128, + 6129, + 6130, + 6131, + 6132, + 6133, + 6134, + 6135, + 6136, + 6137, + 6138, + 6139, + 6140, + 6141, + 6142, + 6143, + 6144, + 6145, + 6146, + 6147, + 6148, + 6149, + 6150, + 6151, + 6152, + 6153, + 6154, + 6155, + 6156, + 6157, + 6158, + 6159, + 6160, + 6161, + 6162, + 6163, + 6164, + 6165, + 6166, + 6167, + 6168, + 6169, + 6170, + 6171, + 6172, + 6173, + 6174, + 6175, + 6176, + 6177, + 6178, + 6179, + 6180, + 6181, + 6182, + 6183, + 6184, + 6185, + 6186, + 6187, + 6188, + 6189, + 6190, + 6191, + 6192, + 6193, + 6194, + 6195, + 6196, + 6197, + 6198, + 6199, + 6200, + 6201, + 6202, + 6203, + 6204, + 6205, + 6206, + 6207, + 6208, + 6209, + 6210, + 6211, + 6212, + 6213, + 6214, + 6215, + 6216, + 6217, + 6218, + 6219, + 6220, + 6221, + 6222, + 6223, + 6224, + 6225, + 6226, + 6227, + 6228, + 6229, + 6230, + 6231, + 6232, + 6233, + 6234, + 6235, + 6236, + 6237, + 6238, + 6239, + 6240, + 6241, + 6242, + 6243, + 6244, + 6245, + 6246, + 6247, + 6248, + 6249, + 6250, + 6251, + 6252, + 6253, + 6254, + 6255, + 6256, + 6257, + 6258, + 6259, + 6260, + 6261, + 6262, + 6263, + 6264, + 6265, + 6266, + 6267, + 6268, + 6269, + 6270, + 6271, + 6272, + 6273, + 6274, + 6275, + 6276, + 6277, + 6278, + 6279, + 6280, + 6281, + 6282, + 6283, + 6284, + 6285, + 6286, + 6287, + 6288, + 6289, + 6290, + 6291, + 6292, + 6293, + 6294, + 6295, + 6296, + 6297, + 6298, + 6299, + 6300, + 6301, + 6302, + 6303, + 6304, + 6305, + 6306, + 6307, + 6308, + 6309, + 6310, + 6311, + 6312, + 6313, + 6314, + 6315, + 6316, + 6317, + 6318, + 6319, + 6320, + 6321, + 6322, + 6323, + 6324, + 6325, + 6326, + 6327, + 6328, + 6329, + 6330, + 6331, + 6332, + 6333, + 6334, + 6335, + 6336, + 6337, + 6338, + 6339, + 6340, + 6341, + 6342, + 6343, + 6344, + 6345, + 6346, + 6347, + 6348, + 6349, + 6350, + 6351, + 6352, + 6353, + 6354, + 6355, + 6356, + 6357, + 6358, + 6359, + 6360, + 6361, + 6362, + 6363, + 6364, + 6365, + 6366, + 6367, + 6368, + 6369, + 6370, + 6371, + 6372, + 6373, + 6374, + 6375, + 6376, + 6377, + 6378, + 6379, + 6380, + 6381, + 6382, + 6383, + 6384, + 6385, + 6386, + 6387, + 6388, + 6389, + 6390, + 6391, + 6392, + 6393, + 6394, + 6395, + 6396, + 6397, + 6398, + 6399, + 6400, + 6401, + 6402, + 6403, + 6404, + 6405, + 6406, + 6407, + 6408, + 6409, + 6410, + 6411, + 6412, + 6413, + 6414, + 6415, + 6416, + 6417, + 6418, + 6419, + 6420, + 6421, + 6422, + 6423, + 6424, + 6425, + 6426, + 6427, + 6428, + 6429, + 6430, + 6431, + 6432, + 6433, + 6434, + 6435, + 6436, + 6437, + 6438, + 6439, + 6440, + 6441, + 6442, + 6443, + 6444, + 6445, + 6446, + 6447, + 6448, + 6449, + 6450, + 6451, + 6452, + 6453, + 6454, + 6455, + 6456, + 6457, + 6458, + 6459, + 6460, + 6461, + 6462, + 6463, + 6464, + 6465, + 6466, + 6467, + 6468, + 6469, + 6470, + 6471, + 6472, + 6473, + 6474, + 6475, + 6476, + 6477, + 6478, + 6479, + 6480, + 6481, + 6482, + 6483, + 6484, + 6485, + 6486, + 6487, + 6488, + 6489, + 6490, + 6491, + 6492, + 6493, + 6494, + 6495, + 6496, + 6497, + 6498, + 6499, + 6500, + 6501, + 6502, + 6503, + 6504, + 6505, + 6506, + 6507, + 6508, + 6509, + 6510, + 6511, + 6512, + 6513, + 6514, + 6515, + 6516, + 6517, + 6518, + 6519, + 6520, + 6521, + 6522, + 6523, + 6524, + 6525, + 6526, + 6527, + 6528, + 6529, + 6530, + 6531, + 6532, + 6533, + 6534, + 6535, + 6536, + 6537, + 6538, + 6539, + 6540, + 6541, + 6542, + 6543, + 6544, + 6545, + 6546, + 6547, + 6548, + 6549, + 6550, + 6551, + 6552, + 6553, + 6554, + 6555, + 6556, + 6557, + 6558, + 6559, + 6560, + 6561, + 6562, + 6563, + 6564, + 6565, + 6566, + 6567, + 6568, + 6569, + 6570, + 6571, + 6572, + 6573, + 6574, + 6575, + 6576, + 6577, + 6578, + 6579, + 6580, + 6581, + 6582, + 6583, + 6584, + 6585, + 6586, + 6587, + 6588, + 6589, + 6590, + 6591, + 6592, + 6593, + 6594, + 6595, + 6596, + 6597, + 6598, + 6599, + 6600, + 6601, + 6602, + 6603, + 6604, + 6605, + 6606, + 6607, + 6608, + 6609, + 6610, + 6611, + 6612, + 6613, + 6614, + 6615, + 6616, + 6617, + 6618, + 6619, + 6620, + 6621, + 6622, + 6623, + 6624, + 6625, + 6626, + 6627, + 6628, + 6629, + 6630, + 6631, + 6632, + 6633, + 6634, + 6635, + 6636, + 6637, + 6638, + 6639, + 6640, + 6641, + 6642, + 6643, + 6644, + 6645, + 6646, + 6647, + 6648, + 6649, + 6650, + 6651, + 6652, + 6653, + 6654, + 6655, + 6656, + 6657, + 6658, + 6659, + 6660, + 6661, + 6662, + 6663, + 6664, + 6665, + 6666, + 6667, + 6668, + 6669, + 6670, + 6671, + 6672, + 6673, + 6674, + 6675, + 6676, + 6677, + 6678, + 6679, + 6680, + 6681, + 6682, + 6683, + 6684, + 6685, + 6686, + 6687, + 6688, + 6689, + 6690, + 6691, + 6692, + 6693, + 6694, + 6695, + 6696, + 6697, + 6698, + 6699, + 6700, + 6701, + 6702, + 6703, + 6704, + 6705, + 6706, + 6707, + 6708, + 6709, + 6710, + 6711, + 6712, + 6713, + 6714, + 6715, + 6716, + 6717, + 6718, + 6719, + 6720, + 6721, + 6722, + 6723, + 6724, + 6725, + 6726, + 6727, + 6728, + 6729, + 6730, + 6731, + 6732, + 6733, + 6734, + 6735, + 6736, + 6737, + 6738, + 6739, + 6740, + 6741, + 6742, + 6743, + 6744, + 6745, + 6746, + 6747, + 6748, + 6749, + 6750, + 6751, + 6752, + 6753, + 6754, + 6755, + 6756, + 6757, + 6758, + 6759, + 6760, + 6761, + 6762, + 6763, + 6764, + 6765, + 6766, + 6767, + 6768, + 6769, + 6770, + 6771, + 6772, + 6773, + 6774, + 6775, + 6776, + 6777, + 6778, + 6779, + 6780, + 6781, + 6782, + 6783, + 6784, + 6785, + 6786, + 6787, + 6788, + 6789, + 6790, + 6791, + 6792, + 6793, + 6794, + 6795, + 6796, + 6797, + 6798, + 6799, + 6800, + 6801, + 6802, + 6803, + 6804, + 6805, + 6806, + 6807, + 6808, + 6809, + 6810, + 6811, + 6812, + 6813, + 6814, + 6815, + 6816, + 6817, + 6818, + 6819, + 6820, + 6821, + 6822, + 6823, + 6824, + 6825, + 6826, + 6827, + 6828, + 6829, + 6830, + 6831, + 6832, + 6833, + 6834, + 6835, + 6836, + 6837, + 6838, + 6839, + 6840, + 6841, + 6842, + 6843, + 6844, + 6845, + 6846, + 6847, + 6848, + 6849, + 6850, + 6851, + 6852, + 6853, + 6854, + 6855, + 6856, + 6857, + 6858, + 6859, + 6860, + 6861, + 6862, + 6863, + 6864, + 6865, + 6866, + 6867, + 6868, + 6869, + 6870, + 6871, + 6872, + 6873, + 6874, + 6875, + 6876, + 6877, + 6878, + 6879, + 6880, + 6881, + 6882, + 6883, + 6884, + 6885, + 6886, + 6887, + 6888, + 6889, + 6890, + 6891, + 6892, + 6893, + 6894, + 6895, + 6896, + 6897, + 6898, + 6899, + 6900, + 6901, + 6902, + 6903, + 6904, + 6905, + 6906, + 6907, + 6908, + 6909, + 6910, + 6911, + 6912, + 6913, + 6914, + 6915, + 6916, + 6917, + 6918, + 6919, + 6920, + 6921, + 6922, + 6923, + 6924, + 6925, + 6926, + 6927, + 6928, + 6929, + 6930, + 6931, + 6932, + 6933, + 6934, + 6935, + 6936, + 6937, + 6938, + 6939, + 6940, + 6941, + 6942, + 6943, + 6944, + 6945, + 6946, + 6947, + 6948, + 6949, + 6950, + 6951, + 6952, + 6953, + 6954, + 6955, + 6956, + 6957, + 6958, + 6959, + 6960, + 6961, + 6962, + 6963, + 6964, + 6965, + 6966, + 6967, + 6968, + 6969, + 6970, + 6971, + 6972, + 6973, + 6974, + 6975, + 6976, + 6977, + 6978, + 6979, + 6980, + 6981, + 6982, + 6983, + 6984, + 6985, + 6986, + 6987, + 6988, + 6989, + 6990, + 6991, + 6992, + 6993, + 6994, + 6995, + 6996, + 6997, + 6998, + 6999, + 7000, + 7001, + 7002, + 7003, + 7004, + 7005, + 7006, + 7007, + 7008, + 7009, + 7010, + 7011, + 7012, + 7013, + 7014, + 7015, + 7016, + 7017, + 7018, + 7019, + 7020, + 7021, + 7022, + 7023, + 7024, + 7025, + 7026, + 7027, + 7028, + 7029, + 7030, + 7031, + 7032, + 7033, + 7034, + 7035, + 7036, + 7037, + 7038, + 7039, + 7040, + 7041, + 7042, + 7043, + 7044, + 7045, + 7046, + 7047, + 7048, + 7049, + 7050, + 7051, + 7052, + 7053, + 7054, + 7055, + 7056, + 7057, + 7058, + 7059, + 7060, + 7061, + 7062, + 7063, + 7064, + 7065, + 7066, + 7067, + 7068, + 7069, + 7070, + 7071, + 7072, + 7073, + 7074, + 7075, + 7076, + 7077, + 7078, + 7079, + 7080, + 7081, + 7082, + 7083, + 7084, + 7085, + 7086, + 7087, + 7088, + 7089, + 7090, + 7091, + 7092, + 7093, + 7094, + 7095, + 7096, + 7097, + 7098, + 7099, + 7100, + 7101, + 7102, + 7103, + 7104, + 7105, + 7106, + 7107, + 7108, + 7109, + 7110, + 7111, + 7112, + 7113, + 7114, + 7115, + 7116, + 7117, + 7118, + 7119, + 7120, + 7121, + 7122, + 7123, + 7124, + 7125, + 7126, + 7127, + 7128, + 7129, + 7130, + 7131, + 7132, + 7133, + 7134, + 7135, + 7136, + 7137, + 7138, + 7139, + 7140, + 7141, + 7142, + 7143, + 7144, + 7145, + 7146, + 7147, + 7148, + 7149, + 7150, + 7151, + 7152, + 7153, + 7154, + 7155, + 7156, + 7157, + 7158, + 7159, + 7160, + 7161, + 7162, + 7163, + 7164, + 7165, + 7166, + 7167, + 7168, + 7169, + 7170, + 7171, + 7172, + 7173, + 7174, + 7175, + 7176, + 7177, + 7178, + 7179, + 7180, + 7181, + 7182, + 7183, + 7184, + 7185, + 7186, + 7187, + 7188, + 7189, + 7190, + 7191, + 7192, + 7193, + 7194, + 7195, + 7196, + 7197, + 7198, + 7199, + 7200, + 7201, + 7202, + 7203, + 7204, + 7205, + 7206, + 7207, + 7208, + 7209, + 7210, + 7211, + 7212, + 7213, + 7214, + 7215, + 7216, + 7217, + 7218, + 7219, + 7220, + 7221, + 7222, + 7223, + 7224, + 7225, + 7226, + 7227, + 7228, + 7229, + 7230, + 7231, + 7232, + 7233, + 7234, + 7235, + 7236, + 7237, + 7238, + 7239, + 7240, + 7241, + 7242, + 7243, + 7244, + 7245, + 7246, + 7247, + 7248, + 7249, + 7250, + 7251, + 7252, + 7253, + 7254, + 7255, + 7256, + 7257, + 7258, + 7259, + 7260, + 7261, + 7262, + 7263, + 7264, + 7265, + 7266, + 7267, + 7268, + 7269, + 7270, + 7271, + 7272, + 7273, + 7274, + 7275, + 7276, + 7277, + 7278, + 7279, + 7280, + 7281, + 7282, + 7283, + 7284, + 7285, + 7286, + 7287, + 7288, + 7289, + 7290, + 7291, + 7292, + 7293, + 7294, + 7295, + 7296, + 7297, + 7298, + 7299, + 7300, + 7301, + 7302, + 7303, + 7304, + 7305, + 7306, + 7307, + 7308, + 7309, + 7310, + 7311, + 7312, + 7313, + 7314, + 7315, + 7316, + 7317, + 7318, + 7319, + 7320, + 7321, + 7322, + 7323, + 7324, + 7325, + 7326, + 7327, + 7328, + 7329, + 7330, + 7331, + 7332, + 7333, + 7334, + 7335, + 7336, + 7337, + 7338, + 7339, + 7340, + 7341, + 7342, + 7343, + 7344, + 7345, + 7346, + 7347, + 7348, + 7349, + 7350, + 7351, + 7352, + 7353, + 7354, + 7355, + 7356, + 7357, + 7358, + 7359, + 7360, + 7361, + 7362, + 7363, + 7364, + 7365, + 7366, + 7367, + 7368, + 7369, + 7370, + 7371, + 7372, + 7373, + 7374, + 7375, + 7376, + 7377, + 7378, + 7379, + 7380, + 7381, + 7382, + 7383, + 7384, + 7385, + 7386, + 7387, + 7388, + 7389, + 7390, + 7391, + 7392, + 7393, + 7394, + 7395, + 7396, + 7397, + 7398, + 7399, + 7400, + 7401, + 7402, + 7403, + 7404, + 7405, + 7406, + 7407, + 7408, + 7409, + 7410, + 7411, + 7412, + 7413, + 7414, + 7415, + 7416, + 7417, + 7418, + 7419, + 7420, + 7421, + 7422, + 7423, + 7424, + 7425, + 7426, + 7427, + 7428, + 7429, + 7430, + 7431, + 7432, + 7433, + 7434, + 7435, + 7436, + 7437, + 7438, + 7439, + 7440, + 7441, + 7442, + 7443, + 7444, + 7445, + 7446, + 7447, + 7448, + 7449, + 7450, + 7451, + 7452, + 7453, + 7454, + 7455, + 7456, + 7457, + 7458, + 7459, + 7460, + 7461, + 7462, + 7463, + 7464, + 7465, + 7466, + 7467, + 7468, + 7469, + 7470, + 7471, + 7472, + 7473, + 7474, + 7475, + 7476, + 7477, + 7478, + 7479, + 7480, + 7481, + 7482, + 7483, + 7484, + 7485, + 7486, + 7487, + 7488, + 7489, + 7490, + 7491, + 7492, + 7493, + 7494, + 7495, + 7496, + 7497, + 7498, + 7499, + 7500, + 7501, + 7502, + 7503, + 7504, + 7505, + 7506, + 7507, + 7508, + 7509, + 7510, + 7511, + 7512, + 7513, + 7514, + 7515, + 7516, + 7517, + 7518, + 7519, + 7520, + 7521, + 7522, + 7523, + 7524, + 7525, + 7526, + 7527, + 7528, + 7529, + 7530, + 7531, + 7532, + 7533, + 7534, + 7535, + 7536, + 7537, + 7538, + 7539, + 7540, + 7541, + 7542, + 7543, + 7544, + 7545, + 7546, + 7547, + 7548, + 7549, + 7550, + 7551, + 7552, + 7553, + 7554, + 7555, + 7556, + 7557, + 7558, + 7559, + 7560, + 7561, + 7562, + 7563, + 7564, + 7565, + 7566, + 7567, + 7568, + 7569, + 7570, + 7571, + 7572, + 7573, + 7574, + 7575, + 7576, + 7577, + 7578, + 7579, + 7580, + 7581, + 7582, + 7583, + 7584, + 7585, + 7586, + 7587, + 7588, + 7589, + 7590, + 7591, + 7592, + 7593, + 7594, + 7595, + 7596, + 7597, + 7598, + 7599, + 7600, + 7601, + 7602, + 7603, + 7604, + 7605, + 7606, + 7607, + 7608, + 7609, + 7610, + 7611, + 7612, + 7613, + 7614, + 7615, + 7616, + 7617, + 7618, + 7619, + 7620, + 7621, + 7622, + 7623, + 7624, + 7625, + 7626, + 7627, + 7628, + 7629, + 7630, + 7631, + 7632, + 7633, + 7634, + 7635, + 7636, + 7637, + 7638, + 7639, + 7640, + 7641, + 7642, + 7643, + 7644, + 7645, + 7646, + 7647, + 7648, + 7649, + 7650, + 7651, + 7652, + 7653, + 7654, + 7655, + 7656, + 7657, + 7658, + 7659, + 7660, + 7661, + 7662, + 7663, + 7664, + 7665, + 7666, + 7667, + 7668, + 7669, + 7670, + 7671, + 7672, + 7673, + 7674, + 7675, + 7676, + 7677, + 7678, + 7679, + 7680, + 7681, + 7682, + 7683, + 7684, + 7685, + 7686, + 7687, + 7688, + 7689, + 7690, + 7691, + 7692, + 7693, + 7694, + 7695, + 7696, + 7697, + 7698, + 7699, + 7700, + 7701, + 7702, + 7703, + 7704, + 7705, + 7706, + 7707, + 7708, + 7709, + 7710, + 7711, + 7712, + 7713, + 7714, + 7715, + 7716, + 7717, + 7718, + 7719, + 7720, + 7721, + 7722, + 7723, + 7724, + 7725, + 7726, + 7727, + 7728, + 7729, + 7730, + 7731, + 7732, + 7733, + 7734, + 7735, + 7736, + 7737, + 7738, + 7739, + 7740, + 7741, + 7742, + 7743, + 7744, + 7745, + 7746, + 7747, + 7748, + 7749, + 7750, + 7751, + 7752, + 7753, + 7754, + 7755, + 7756, + 7757, + 7758, + 7759, + 7760, + 7761, + 7762, + 7763, + 7764, + 7765, + 7766, + 7767, + 7768, + 7769, + 7770, + 7771, + 7772, + 7773, + 7774, + 7775, + 7776, + 7777, + 7778, + 7779, + 7780, + 7781, + 7782, + 7783, + 7784, + 7785, + 7786, + 7787, + 7788, + 7789, + 7790, + 7791, + 7792, + 7793, + 7794, + 7795, + 7796, + 7797, + 7798, + 7799, + 7800, + 7801, + 7802, + 7803, + 7804, + 7805, + 7806, + 7807, + 7808, + 7809, + 7810, + 7811, + 7812, + 7813, + 7814, + 7815, + 7816, + 7817, + 7818, + 7819, + 7820, + 7821, + 7822, + 7823, + 7824, + 7825, + 7826, + 7827, + 7828, + 7829, + 7830, + 7831, + 7832, + 7833, + 7834, + 7835, + 7836, + 7837, + 7838, + 7839, + 7840, + 7841, + 7842, + 7843, + 7844, + 7845, + 7846, + 7847, + 7848, + 7849, + 7850, + 7851, + 7852, + 7853, + 7854, + 7855, + 7856, + 7857, + 7858, + 7859, + 7860, + 7861, + 7862, + 7863, + 7864, + 7865, + 7866, + 7867, + 7868, + 7869, + 7870, + 7871, + 7872, + 7873, + 7874, + 7875, + 7876, + 7877, + 7878, + 7879, + 7880, + 7881, + 7882, + 7883, + 7884, + 7885, + 7886, + 7887, + 7888, + 7889, + 7890, + 7891, + 7892, + 7893, + 7894, + 7895, + 7896, + 7897, + 7898, + 7899, + 7900, + 7901, + 7902, + 7903, + 7904, + 7905, + 7906, + 7907, + 7908, + 7909, + 7910, + 7911, + 7912, + 7913, + 7914, + 7915, + 7916, + 7917, + 7918, + 7919, + 7920, + 7921, + 7922, + 7923, + 7924, + 7925, + 7926, + 7927, + 7928, + 7929, + 7930, + 7931, + 7932, + 7933, + 7934, + 7935, + 7936, + 7937, + 7938, + 7939, + 7940, + 7941, + 7942, + 7943, + 7944, + 7945, + 7946, + 7947, + 7948, + 7949, + 7950, + 7951, + 7952, + 7953, + 7954, + 7955, + 7956, + 7957, + 7958, + 7959, + 7960, + 7961, + 7962, + 7963, + 7964, + 7965, + 7966, + 7967, + 7968, + 7969, + 7970, + 7971, + 7972, + 7973, + 7974, + 7975, + 7976, + 7977, + 7978, + 7979, + 7980, + 7981, + 7982, + 7983, + 7984, + 7985, + 7986, + 7987, + 7988, + 7989, + 7990, + 7991, + 7992, + 7993, + 7994, + 7995, + 7996, + 7997, + 7998, + 7999, + 8000, + 8001, + 8002, + 8003, + 8004, + 8005, + 8006, + 8007, + 8008, + 8009, + 8010, + 8011, + 8012, + 8013, + 8014, + 8015, + 8016, + 8017, + 8018, + 8019, + 8020, + 8021, + 8022, + 8023, + 8024, + 8025, + 8026, + 8027, + 8028, + 8029, + 8030, + 8031, + 8032, + 8033, + 8034, + 8035, + 8036, + 8037, + 8038, + 8039, + 8040, + 8041, + 8042, + 8043, + 8044, + 8045, + 8046, + 8047, + 8048, + 8049, + 8050, + 8051, + 8052, + 8053, + 8054, + 8055, + 8056, + 8057, + 8058, + 8059, + 8060, + 8061, + 8062, + 8063, + 8064, + 8065, + 8066, + 8067, + 8068, + 8069, + 8070, + 8071, + 8072, + 8073, + 8074, + 8075, + 8076, + 8077, + 8078, + 8079, + 8080, + 8081, + 8082, + 8083, + 8084, + 8085, + 8086, + 8087, + 8088, + 8089, + 8090, + 8091, + 8092, + 8093, + 8094, + 8095, + 8096, + 8097, + 8098, + 8099, + 8100, + 8101, + 8102, + 8103, + 8104, + 8105, + 8106, + 8107, + 8108, + 8109, + 8110, + 8111, + 8112, + 8113, + 8114, + 8115, + 8116, + 8117, + 8118, + 8119, + 8120, + 8121, + 8122, + 8123, + 8124, + 8125, + 8126, + 8127, + 8128, + 8129, + 8130, + 8131, + 8132, + 8133, + 8134, + 8135, + 8136, + 8137, + 8138, + 8139, + 8140, + 8141, + 8142, + 8143, + 8144, + 8145, + 8146, + 8147, + 8148, + 8149, + 8150, + 8151, + 8152, + 8153, + 8154, + 8155, + 8156, + 8157, + 8158, + 8159, + 8160, + 8161, + 8162, + 8163, + 8164, + 8165, + 8166, + 8167, + 8168, + 8169, + 8170, + 8171, + 8172, + 8173, + 8174, + 8175, + 8176, + 8177, + 8178, + 8179, + 8180, + 8181, + 8182, + 8183, + 8184, + 8185, + 8186, + 8187, + 8188, + 8189, + 8190, + 8191, + 8192, + 8193, + 8194, + 8195, + 8196, + 8197, + 8198, + 8199, + 8200, + 8201, + 8202, + 8203, + 8204, + 8205, + 8206, + 8207, + 8208, + 8209, + 8210, + 8211, + 8212, + 8213, + 8214, + 8215, + 8216, + 8217, + 8218, + 8219, + 8220, + 8221, + 8222, + 8223, + 8224, + 8225, + 8226, + 8227, + 8228, + 8229, + 8230, + 8231, + 8232, + 8233, + 8234, + 8235, + 8236, + 8237, + 8238, + 8239, + 8240, + 8241, + 8242, + 8243, + 8244, + 8245, + 8246, + 8247, + 8248, + 8249, + 8250, + 8251, + 8252, + 8253, + 8254, + 8255, + 8256, + 8257, + 8258, + 8259, + 8260, + 8261, + 8262, + 8263, + 8264, + 8265, + 8266, + 8267, + 8268, + 8269, + 8270, + 8271, + 8272, + 8273, + 8274, + 8275, + 8276, + 8277, + 8278, + 8279, + 8280, + 8281, + 8282, + 8283, + 8284, + 8285, + 8286, + 8287, + 8288, + 8289, + 8290, + 8291, + 8292, + 8293, + 8294, + 8295, + 8296, + 8297, + 8298, + 8299, + 8300, + 8301, + 8302, + 8303, + 8304, + 8305, + 8306, + 8307, + 8308, + 8309, + 8310, + 8311, + 8312, + 8313, + 8314, + 8315, + 8316, + 8317, + 8318, + 8319, + 8320, + 8321, + 8322, + 8323, + 8324, + 8325, + 8326, + 8327, + 8328, + 8329, + 8330, + 8331, + 8332, + 8333, + 8334, + 8335, + 8336, + 8337, + 8338, + 8339, + 8340, + 8341, + 8342, + 8343, + 8344, + 8345, + 8346, + 8347, + 8348, + 8349, + 8350, + 8351, + 8352, + 8353, + 8354, + 8355, + 8356, + 8357, + 8358, + 8359, + 8360, + 8361, + 8362, + 8363, + 8364, + 8365, + 8366, + 8367, + 8368, + 8369, + 8370, + 8371, + 8372, + 8373, + 8374, + 8375, + 8376, + 8377, + 8378, + 8379, + 8380, + 8381, + 8382, + 8383, + 8384, + 8385, + 8386, + 8387, + 8388, + 8389, + 8390, + 8391, + 8392, + 8393, + 8394, + 8395, + 8396, + 8397, + 8398, + 8399, + 8400, + 8401, + 8402, + 8403, + 8404, + 8405, + 8406, + 8407, + 8408, + 8409, + 8410, + 8411, + 8412, + 8413, + 8414, + 8415, + 8416, + 8417, + 8418, + 8419, + 8420, + 8421, + 8422, + 8423, + 8424, + 8425, + 8426, + 8427, + 8428, + 8429, + 8430, + 8431, + 8432, + 8433, + 8434, + 8435, + 8436, + 8437, + 8438, + 8439, + 8440, + 8441, + 8442, + 8443, + 8444, + 8445, + 8446, + 8447, + 8448, + 8449, + 8450, + 8451, + 8452, + 8453, + 8454, + 8455, + 8456, + 8457, + 8458, + 8459, + 8460, + 8461, + 8462, + 8463, + 8464, + 8465, + 8466, + 8467, + 8468, + 8469, + 8470, + 8471, + 8472, + 8473, + 8474, + 8475, + 8476, + 8477, + 8478, + 8479, + 8480, + 8481, + 8482, + 8483, + 8484, + 8485, + 8486, + 8487, + 8488, + 8489, + 8490, + 8491, + 8492, + 8493, + 8494, + 8495, + 8496, + 8497, + 8498, + 8499, + 8500, + 8501, + 8502, + 8503, + 8504, + 8505, + 8506, + 8507, + 8508, + 8509, + 8510, + 8511, + 8512, + 8513, + 8514, + 8515, + 8516, + 8517, + 8518, + 8519, + 8520, + 8521, + 8522, + 8523, + 8524, + 8525, + 8526, + 8527, + 8528, + 8529, + 8530, + 8531, + 8532, + 8533, + 8534, + 8535, + 8536, + 8537, + 8538, + 8539, + 8540, + 8541, + 8542, + 8543, + 8544, + 8545, + 8546, + 8547, + 8548, + 8549, + 8550, + 8551, + 8552, + 8553, + 8554, + 8555, + 8556, + 8557, + 8558, + 8559, + 8560, + 8561, + 8562, + 8563, + 8564, + 8565, + 8566, + 8567, + 8568, + 8569, + 8570, + 8571, + 8572, + 8573, + 8574, + 8575, + 8576, + 8577, + 8578, + 8579, + 8580, + 8581, + 8582, + 8583, + 8584, + 8585, + 8586, + 8587, + 8588, + 8589, + 8590, + 8591, + 8592, + 8593, + 8594, + 8595, + 8596, + 8597, + 8598, + 8599, + 8600, + 8601, + 8602, + 8603, + 8604, + 8605, + 8606, + 8607, + 8608, + 8609, + 8610, + 8611, + 8612, + 8613, + 8614, + 8615, + 8616, + 8617, + 8618, + 8619, + 8620, + 8621, + 8622, + 8623, + 8624, + 8625, + 8626, + 8627, + 8628, + 8629, + 8630, + 8631, + 8632, + 8633, + 8634, + 8635, + 8636, + 8637, + 8638, + 8639, + 8640, + 8641, + 8642, + 8643, + 8644, + 8645, + 8646, + 8647, + 8648, + 8649, + 8650, + 8651, + 8652, + 8653, + 8654, + 8655, + 8656, + 8657, + 8658, + 8659, + 8660, + 8661, + 8662, + 8663, + 8664, + 8665, + 8666, + 8667, + 8668, + 8669, + 8670, + 8671, + 8672, + 8673, + 8674, + 8675, + 8676, + 8677, + 8678, + 8679, + 8680, + 8681, + 8682, + 8683, + 8684, + 8685, + 8686, + 8687, + 8688, + 8689, + 8690, + 8691, + 8692, + 8693, + 8694, + 8695, + 8696, + 8697, + 8698, + 8699, + 8700, + 8701, + 8702, + 8703, + 8704, + 8705, + 8706, + 8707, + 8708, + 8709, + 8710, + 8711, + 8712, + 8713, + 8714, + 8715, + 8716, + 8717, + 8718, + 8719, + 8720, + 8721, + 8722, + 8723, + 8724, + 8725, + 8726, + 8727, + 8728, + 8729, + 8730, + 8731, + 8732, + 8733, + 8734, + 8735, + 8736, + 8737, + 8738, + 8739, + 8740, + 8741, + 8742, + 8743, + 8744, + 8745, + 8746, + 8747, + 8748, + 8749, + 8750, + 8751, + 8752, + 8753, + 8754, + 8755, + 8756, + 8757, + 8758, + 8759, + 8760, + 8761, + 8762, + 8763, + 8764, + 8765, + 8766, + 8767, + 8768, + 8769, + 8770, + 8771, + 8772, + 8773, + 8774, + 8775, + 8776, + 8777, + 8778, + 8779, + 8780, + 8781, + 8782, + 8783, + 8784, + 8785, + 8786, + 8787, + 8788, + 8789, + 8790, + 8791, + 8792, + 8793, + 8794, + 8795, + 8796, + 8797, + 8798, + 8799, + 8800, + 8801, + 8802, + 8803, + 8804, + 8805, + 8806, + 8807, + 8808, + 8809, + 8810, + 8811, + 8812, + 8813, + 8814, + 8815, + 8816, + 8817, + 8818, + 8819, + 8820, + 8821, + 8822, + 8823, + 8824, + 8825, + 8826, + 8827, + 8828, + 8829, + 8830, + 8831, + 8832, + 8833, + 8834, + 8835, + 8836, + 8837, + 8838, + 8839, + 8840, + 8841, + 8842, + 8843, + 8844, + 8845, + 8846, + 8847, + 8848, + 8849, + 8850, + 8851, + 8852, + 8853, + 8854, + 8855, + 8856, + 8857, + 8858, + 8859, + 8860, + 8861, + 8862, + 8863, + 8864, + 8865, + 8866, + 8867, + 8868, + 8869, + 8870, + 8871, + 8872, + 8873, + 8874, + 8875, + 8876, + 8877, + 8878, + 8879, + 8880, + 8881, + 8882, + 8883, + 8884, + 8885, + 8886, + 8887, + 8888, + 8889, + 8890, + 8891, + 8892, + 8893, + 8894, + 8895, + 8896, + 8897, + 8898, + 8899, + 8900, + 8901, + 8902, + 8903, + 8904, + 8905, + 8906, + 8907, + 8908, + 8909, + 8910, + 8911, + 8912, + 8913, + 8914, + 8915, + 8916, + 8917, + 8918, + 8919, + 8920, + 8921, + 8922, + 8923, + 8924, + 8925, + 8926, + 8927, + 8928, + 8929, + 8930, + 8931, + 8932, + 8933, + 8934, + 8935, + 8936, + 8937, + 8938, + 8939, + 8940, + 8941, + 8942, + 8943, + 8944, + 8945, + 8946, + 8947, + 8948, + 8949, + 8950, + 8951, + 8952, + 8953, + 8954, + 8955, + 8956, + 8957, + 8958, + 8959, + 8960, + 8961, + 8962, + 8963, + 8964, + 8965, + 8966, + 8967, + 8968, + 8969, + 8970, + 8971, + 8972, + 8973, + 8974, + 8975, + 8976, + 8977, + 8978, + 8979, + 8980, + 8981, + 8982, + 8983, + 8984, + 8985, + 8986, + 8987, + 8988, + 8989, + 8990, + 8991, + 8992, + 8993, + 8994, + 8995, + 8996, + 8997, + 8998, + 8999, + 9000, + 9001, + 9002, + 9003, + 9004, + 9005, + 9006, + 9007, + 9008, + 9009, + 9010, + 9011, + 9012, + 9013, + 9014, + 9015, + 9016, + 9017, + 9018, + 9019, + 9020, + 9021, + 9022, + 9023, + 9024, + 9025, + 9026, + 9027, + 9028, + 9029, + 9030, + 9031, + 9032, + 9033, + 9034, + 9035, + 9036, + 9037, + 9038, + 9039, + 9040, + 9041, + 9042, + 9043, + 9044, + 9045, + 9046, + 9047, + 9048, + 9049, + 9050, + 9051, + 9052, + 9053, + 9054, + 9055, + 9056, + 9057, + 9058, + 9059, + 9060, + 9061, + 9062, + 9063, + 9064, + 9065, + 9066, + 9067, + 9068, + 9069, + 9070, + 9071, + 9072, + 9073, + 9074, + 9075, + 9076, + 9077, + 9078, + 9079, + 9080, + 9081, + 9082, + 9083, + 9084, + 9085, + 9086, + 9087, + 9088, + 9089, + 9090, + 9091, + 9092, + 9093, + 9094, + 9095, + 9096, + 9097, + 9098, + 9099, + 9100, + 9101, + 9102, + 9103, + 9104, + 9105, + 9106, + 9107, + 9108, + 9109, + 9110, + 9111, + 9112, + 9113, + 9114, + 9115, + 9116, + 9117, + 9118, + 9119, + 9120, + 9121, + 9122, + 9123, + 9124, + 9125, + 9126, + 9127, + 9128, + 9129, + 9130, + 9131, + 9132, + 9133, + 9134, + 9135, + 9136, + 9137, + 9138, + 9139, + 9140, + 9141, + 9142, + 9143, + 9144, + 9145, + 9146, + 9147, + 9148, + 9149, + 9150, + 9151, + 9152, + 9153, + 9154, + 9155, + 9156, + 9157, + 9158, + 9159, + 9160, + 9161, + 9162, + 9163, + 9164, + 9165, + 9166, + 9167, + 9168, + 9169, + 9170, + 9171, + 9172, + 9173, + 9174, + 9175, + 9176, + 9177, + 9178, + 9179, + 9180, + 9181, + 9182, + 9183, + 9184, + 9185, + 9186, + 9187, + 9188, + 9189, + 9190, + 9191, + 9192, + 9193, + 9194, + 9195, + 9196, + 9197, + 9198, + 9199, + 9200, + 9201, + 9202, + 9203, + 9204, + 9205, + 9206, + 9207, + 9208, + 9209, + 9210, + 9211, + 9212, + 9213, + 9214, + 9215, + 9216, + 9217, + 9218, + 9219, + 9220, + 9221, + 9222, + 9223, + 9224, + 9225, + 9226, + 9227, + 9228, + 9229, + 9230, + 9231, + 9232, + 9233, + 9234, + 9235, + 9236, + 9237, + 9238, + 9239, + 9240, + 9241, + 9242, + 9243, + 9244, + 9245, + 9246, + 9247, + 9248, + 9249, + 9250, + 9251, + 9252, + 9253, + 9254, + 9255, + 9256, + 9257, + 9258, + 9259, + 9260, + 9261, + 9262, + 9263, + 9264, + 9265, + 9266, + 9267, + 9268, + 9269, + 9270, + 9271, + 9272, + 9273, + 9274, + 9275, + 9276, + 9277, + 9278, + 9279, + 9280, + 9281, + 9282, + 9283, + 9284, + 9285, + 9286, + 9287, + 9288, + 9289, + 9290, + 9291, + 9292, + 9293, + 9294, + 9295, + 9296, + 9297, + 9298, + 9299, + 9300, + 9301, + 9302, + 9303, + 9304, + 9305, + 9306, + 9307, + 9308, + 9309, + 9310, + 9311, + 9312, + 9313, + 9314, + 9315, + 9316, + 9317, + 9318, + 9319, + 9320, + 9321, + 9322, + 9323, + 9324, + 9325, + 9326, + 9327, + 9328, + 9329, + 9330, + 9331, + 9332, + 9333, + 9334, + 9335, + 9336, + 9337, + 9338, + 9339, + 9340, + 9341, + 9342, + 9343, + 9344, + 9345, + 9346, + 9347, + 9348, + 9349, + 9350, + 9351, + 9352, + 9353, + 9354, + 9355, + 9356, + 9357, + 9358, + 9359, + 9360, + 9361, + 9362, + 9363, + 9364, + 9365, + 9366, + 9367, + 9368, + 9369, + 9370, + 9371, + 9372, + 9373, + 9374, + 9375, + 9376, + 9377, + 9378, + 9379, + 9380, + 9381, + 9382, + 9383, + 9384, + 9385, + 9386, + 9387, + 9388, + 9389, + 9390, + 9391, + 9392, + 9393, + 9394, + 9395, + 9396, + 9397, + 9398, + 9399, + 9400, + 9401, + 9402, + 9403, + 9404, + 9405, + 9406, + 9407, + 9408, + 9409, + 9410, + 9411, + 9412, + 9413, + 9414, + 9415, + 9416, + 9417, + 9418, + 9419, + 9420, + 9421, + 9422, + 9423, + 9424, + 9425, + 9426, + 9427, + 9428, + 9429, + 9430, + 9431, + 9432, + 9433, + 9434, + 9435, + 9436, + 9437, + 9438, + 9439, + 9440, + 9441, + 9442, + 9443, + 9444, + 9445, + 9446, + 9447, + 9448, + 9449, + 9450, + 9451, + 9452, + 9453, + 9454, + 9455, + 9456, + 9457, + 9458, + 9459, + 9460, + 9461, + 9462, + 9463, + 9464, + 9465, + 9466, + 9467, + 9468, + 9469, + 9470, + 9471, + 9472, + 9473, + 9474, + 9475, + 9476, + 9477, + 9478, + 9479, + 9480, + 9481, + 9482, + 9483, + 9484, + 9485, + 9486, + 9487, + 9488, + 9489, + 9490, + 9491, + 9492, + 9493, + 9494, + 9495, + 9496, + 9497, + 9498, + 9499, + 9500, + 9501, + 9502, + 9503, + 9504, + 9505, + 9506, + 9507, + 9508, + 9509, + 9510, + 9511, + 9512, + 9513, + 9514, + 9515, + 9516, + 9517, + 9518, + 9519, + 9520, + 9521, + 9522, + 9523, + 9524, + 9525, + 9526, + 9527, + 9528, + 9529, + 9530, + 9531, + 9532, + 9533, + 9534, + 9535, + 9536, + 9537, + 9538, + 9539, + 9540, + 9541, + 9542, + 9543, + 9544, + 9545, + 9546, + 9547, + 9548, + 9549, + 9550, + 9551, + 9552, + 9553, + 9554, + 9555, + 9556, + 9557, + 9558, + 9559, + 9560, + 9561, + 9562, + 9563, + 9564, + 9565, + 9566, + 9567, + 9568, + 9569, + 9570, + 9571, + 9572, + 9573, + 9574, + 9575, + 9576, + 9577, + 9578, + 9579, + 9580, + 9581, + 9582, + 9583, + 9584, + 9585, + 9586, + 9587, + 9588, + 9589, + 9590, + 9591, + 9592, + 9593, + 9594, + 9595, + 9596, + 9597, + 9598, + 9599, + 9600, + 9601, + 9602, + 9603, + 9604, + 9605, + 9606, + 9607, + 9608, + 9609, + 9610, + 9611, + 9612, + 9613, + 9614, + 9615, + 9616, + 9617, + 9618, + 9619, + 9620, + 9621, + 9622, + 9623, + 9624, + 9625, + 9626, + 9627, + 9628, + 9629, + 9630, + 9631, + 9632, + 9633, + 9634, + 9635, + 9636, + 9637, + 9638, + 9639, + 9640, + 9641, + 9642, + 9643, + 9644, + 9645, + 9646, + 9647, + 9648, + 9649, + 9650, + 9651, + 9652, + 9653, + 9654, + 9655, + 9656, + 9657, + 9658, + 9659, + 9660, + 9661, + 9662, + 9663, + 9664, + 9665, + 9666, + 9667, + 9668, + 9669, + 9670, + 9671, + 9672, + 9673, + 9674, + 9675, + 9676, + 9677, + 9678, + 9679, + 9680, + 9681, + 9682, + 9683, + 9684, + 9685, + 9686, + 9687, + 9688, + 9689, + 9690, + 9691, + 9692, + 9693, + 9694, + 9695, + 9696, + 9697, + 9698, + 9699, + 9700, + 9701, + 9702, + 9703, + 9704, + 9705, + 9706, + 9707, + 9708, + 9709, + 9710, + 9711, + 9712, + 9713, + 9714, + 9715, + 9716, + 9717, + 9718, + 9719, + 9720, + 9721, + 9722, + 9723, + 9724, + 9725, + 9726, + 9727, + 9728, + 9729, + 9730, + 9731, + 9732, + 9733, + 9734, + 9735, + 9736, + 9737, + 9738, + 9739, + 9740, + 9741, + 9742, + 9743, + 9744, + 9745, + 9746, + 9747, + 9748, + 9749, + 9750, + 9751, + 9752, + 9753, + 9754, + 9755, + 9756, + 9757, + 9758, + 9759, + 9760, + 9761, + 9762, + 9763, + 9764, + 9765, + 9766, + 9767, + 9768, + 9769, + 9770, + 9771, + 9772, + 9773, + 9774, + 9775, + 9776, + 9777, + 9778, + 9779, + 9780, + 9781, + 9782, + 9783, + 9784, + 9785, + 9786, + 9787, + 9788, + 9789, + 9790, + 9791, + 9792, + 9793, + 9794, + 9795, + 9796, + 9797, + 9798, + 9799, + 9800, + 9801, + 9802, + 9803, + 9804, + 9805, + 9806, + 9807, + 9808, + 9809, + 9810, + 9811, + 9812, + 9813, + 9814, + 9815, + 9816, + 9817, + 9818, + 9819, + 9820, + 9821, + 9822, + 9823, + 9824, + 9825, + 9826, + 9827, + 9828, + 9829, + 9830, + 9831, + 9832, + 9833, + 9834, + 9835, + 9836, + 9837, + 9838, + 9839, + 9840, + 9841, + 9842, + 9843, + 9844, + 9845, + 9846, + 9847, + 9848, + 9849, + 9850, + 9851, + 9852, + 9853, + 9854, + 9855, + 9856, + 9857, + 9858, + 9859, + 9860, + 9861, + 9862, + 9863, + 9864, + 9865, + 9866, + 9867, + 9868, + 9869, + 9870, + 9871, + 9872, + 9873, + 9874, + 9875, + 9876, + 9877, + 9878, + 9879, + 9880, + 9881, + 9882, + 9883, + 9884, + 9885, + 9886, + 9887, + 9888, + 9889, + 9890, + 9891, + 9892, + 9893, + 9894, + 9895, + 9896, + 9897, + 9898, + 9899, + 9900, + 9901, + 9902, + 9903, + 9904, + 9905, + 9906, + 9907, + 9908, + 9909, + 9910, + 9911, + 9912, + 9913, + 9914, + 9915, + 9916, + 9917, + 9918, + 9919, + 9920, + 9921, + 9922, + 9923, + 9924, + 9925, + 9926, + 9927, + 9928, + 9929, + 9930, + 9931, + 9932, + 9933, + 9934, + 9935, + 9936, + 9937, + 9938, + 9939, + 9940, + 9941, + 9942, + 9943, + 9944, + 9945, + 9946, + 9947, + 9948, + 9949, + 9950, + 9951, + 9952, + 9953, + 9954, + 9955, + 9956, + 9957, + 9958, + 9959, + 9960, + 9961, + 9962, + 9963, + 9964, + 9965, + 9966, + 9967, + 9968, + 9969, + 9970, + 9971, + 9972, + 9973, + 9974, + 9975, + 9976, + 9977, + 9978, + 9979, + 9980, + 9981, + 9982, + 9983, + 9984, + 9985, + 9986, + 9987, + 9988, + 9989, + 9990, + 9991, + 9992, + 9993, + 9994, + 9995, + 9996, + 9997, + 9998, + 9999, + 10000, + 10001, + 10002, + 10003, + 10004, + 10005, + 10006, + 10007, + 10008, + 10009, + 10010, + 10011, + 10012, + 10013, + 10014, + 10015, + 10016, + 10017, + 10018, + 10019, + 10020, + 10021, + 10022, + 10023, + 10024, + 10025, + 10026, + 10027, + 10028, + 10029, + 10030, + 10031, + 10032, + 10033, + 10034, + 10035, + 10036, + 10037, + 10038, + 10039, + 10040, + 10041, + 10042, + 10043, + 10044, + 10045, + 10046, + 10047, + 10048, + 10049, + 10050, + 10051, + 10052, + 10053, + 10054, + 10055, + 10056, + 10057, + 10058, + 10059, + 10060, + 10061, + 10062, + 10063, + 10064, + 10065, + 10066, + 10067, + 10068, + 10069, + 10070, + 10071, + 10072, + 10073, + 10074, + 10075, + 10076, + 10077, + 10078, + 10079, + 10080, + 10081, + 10082, + 10083, + 10084, + 10085, + 10086, + 10087, + 10088, + 10089, + 10090, + 10091, + 10092, + 10093, + 10094, + 10095, + 10096, + 10097, + 10098, + 10099, + 10100, + 10101, + 10102, + 10103, + 10104, + 10105, + 10106, + 10107, + 10108, + 10109, + 10110, + 10111, + 10112, + 10113, + 10114, + 10115, + 10116, + 10117, + 10118, + 10119, + 10120, + 10121, + 10122, + 10123, + 10124, + 10125, + 10126, + 10127, + 10128, + 10129, + 10130, + 10131, + 10132, + 10133, + 10134, + 10135, + 10136, + 10137, + 10138, + 10139, + 10140, + 10141, + 10142, + 10143, + 10144, + 10145, + 10146, + 10147, + 10148, + 10149, + 10150, + 10151, + 10152, + 10153, + 10154, + 10155, + 10156, + 10157, + 10158, + 10159, + 10160, + 10161, + 10162, + 10163, + 10164, + 10165, + 10166, + 10167, + 10168, + 10169, + 10170, + 10171, + 10172, + 10173, + 10174, + 10175, + 10176, + 10177, + 10178, + 10179, + 10180, + 10181, + 10182, + 10183, + 10184, + 10185, + 10186, + 10187, + 10188, + 10189, + 10190, + 10191, + 10192, + 10193, + 10194, + 10195, + 10196, + 10197, + 10198, + 10199, + 10200, + 10201, + 10202, + 10203, + 10204, + 10205, + 10206, + 10207, + 10208, + 10209, + 10210, + 10211, + 10212, + 10213, + 10214, + 10215, + 10216, + 10217, + 10218, + 10219, + 10220, + 10221, + 10222, + 10223, + 10224, + 10225, + 10226, + 10227, + 10228, + 10229, + 10230, + 10231, + 10232, + 10233, + 10234, + 10235, + 10236, + 10237, + 10238, + 10239, + 10240, + 10241, + 10242, + 10243, + 10244, + 10245, + 10246, + 10247, + 10248, + 10249, + 10250, + 10251, + 10252, + 10253, + 10254, + 10255, + 10256, + 10257, + 10258, + 10259, + 10260, + 10261, + 10262, + 10263, + 10264, + 10265, + 10266, + 10267, + 10268, + 10269, + 10270, + 10271, + 10272, + 10273, + 10274, + 10275, + 10276, + 10277, + 10278, + 10279, + 10280, + 10281, + 10282, + 10283, + 10284, + 10285, + 10286, + 10287, + 10288, + 10289, + 10290, + 10291, + 10292, + 10293, + 10294, + 10295, + 10296, + 10297, + 10298, + 10299, + 10300, + 10301, + 10302, + 10303, + 10304, + 10305, + 10306, + 10307, + 10308, + 10309, + 10310, + 10311, + 10312, + 10313, + 10314, + 10315, + 10316, + 10317, + 10318, + 10319, + 10320, + 10321, + 10322, + 10323, + 10324, + 10325, + 10326, + 10327, + 10328, + 10329, + 10330, + 10331, + 10332, + 10333, + 10334, + 10335, + 10336, + 10337, + 10338, + 10339, + 10340, + 10341, + 10342, + 10343, + 10344, + 10345, + 10346, + 10347, + 10348, + 10349, + 10350, + 10351, + 10352, + 10353, + 10354, + 10355, + 10356, + 10357, + 10358, + 10359, + 10360, + 10361, + 10362, + 10363, + 10364, + 10365, + 10366, + 10367, + 10368, + 10369, + 10370, + 10371, + 10372, + 10373, + 10374, + 10375, + 10376, + 10377, + 10378, + 10379, + 10380, + 10381, + 10382, + 10383, + 10384, + 10385, + 10386, + 10387, + 10388, + 10389, + 10390, + 10391, + 10392, + 10393, + 10394, + 10395, + 10396, + 10397, + 10398, + 10399, + 10400, + 10401, + 10402, + 10403, + 10404, + 10405, + 10406, + 10407, + 10408, + 10409, + 10410, + 10411, + 10412, + 10413, + 10414, + 10415, + 10416, + 10417, + 10418, + 10419, + 10420, + 10421, + 10422, + 10423, + 10424, + 10425, + 10426, + 10427, + 10428, + 10429, + 10430, + 10431, + 10432, + 10433, + 10434, + 10435, + 10436, + 10437, + 10438, + 10439, + 10440, + 10441, + 10442, + 10443, + 10444, + 10445, + 10446, + 10447, + 10448, + 10449, + 10450, + 10451, + 10452, + 10453, + 10454, + 10455, + 10456, + 10457, + 10458, + 10459, + 10460, + 10461, + 10462, + 10463, + 10464, + 10465, + 10466, + 10467, + 10468, + 10469, + 10470, + 10471, + 10472, + 10473, + 10474, + 10475, + 10476, + 10477, + 10478, + 10479, + 10480, + 10481, + 10482, + 10483, + 10484, + 10485, + 10486, + 10487, + 10488, + 10489, + 10490, + 10491, + 10492, + 10493, + 10494, + 10495, + 10496, + 10497, + 10498, + 10499, + 10500, + 10501, + 10502, + 10503, + 10504, + 10505, + 10506, + 10507, + 10508, + 10509, + 10510, + 10511, + 10512, + 10513, + 10514, + 10515, + 10516, + 10517, + 10518, + 10519, + 10520, + 10521, + 10522, + 10523, + 10524, + 10525, + 10526, + 10527, + 10528, + 10529, + 10530, + 10531, + 10532, + 10533, + 10534, + 10535, + 10536, + 10537, + 10538, + 10539, + 10540, + 10541, + 10542, + 10543, + 10544, + 10545, + 10546, + 10547, + 10548, + 10549, + 10550, + 10551, + 10552, + 10553, + 10554, + 10555, + 10556, + 10557, + 10558, + 10559, + 10560, + 10561, + 10562, + 10563, + 10564, + 10565, + 10566, + 10567, + 10568, + 10569, + 10570, + 10571, + 10572, + 10573, + 10574, + 10575, + 10576, + 10577, + 10578, + 10579, + 10580, + 10581, + 10582, + 10583, + 10584, + 10585, + 10586, + 10587, + 10588, + 10589, + 10590, + 10591, + 10592, + 10593, + 10594, + 10595, + 10596, + 10597, + 10598, + 10599, + 10600, + 10601, + 10602, + 10603, + 10604, + 10605, + 10606, + 10607, + 10608, + 10609, + 10610, + 10611, + 10612, + 10613, + 10614, + 10615, + 10616, + 10617, + 10618, + 10619, + 10620, + 10621, + 10622, + 10623, + 10624, + 10625, + 10626, + 10627, + 10628, + 10629, + 10630, + 10631, + 10632, + 10633, + 10634, + 10635, + 10636, + 10637, + 10638, + 10639, + 10640, + 10641, + 10642, + 10643, + 10644, + 10645, + 10646, + 10647, + 10648, + 10649, + 10650, + 10651, + 10652, + 10653, + 10654, + 10655, + 10656, + 10657, + 10658, + 10659, + 10660, + 10661, + 10662, + 10663, + 10664, + 10665, + 10666, + 10667, + 10668, + 10669, + 10670, + 10671, + 10672, + 10673, + 10674, + 10675, + 10676, + 10677, + 10678, + 10679, + 10680, + 10681, + 10682, + 10683, + 10684, + 10685, + 10686, + 10687, + 10688, + 10689, + 10690, + 10691, + 10692, + 10693, + 10694, + 10695, + 10696, + 10697, + 10698, + 10699, + 10700, + 10701, + 10702, + 10703, + 10704, + 10705, + 10706, + 10707, + 10708, + 10709, + 10710, + 10711, + 10712, + 10713, + 10714, + 10715, + 10716, + 10717, + 10718, + 10719, + 10720, + 10721, + 10722, + 10723, + 10724, + 10725, + 10726, + 10727, + 10728, + 10729, + 10730, + 10731, + 10732, + 10733, + 10734, + 10735, + 10736, + 10737, + 10738, + 10739, + 10740, + 10741, + 10742, + 10743, + 10744, + 10745, + 10746, + 10747, + 10748, + 10749, + 10750, + 10751, + 10752, + 10753, + 10754, + 10755, + 10756, + 10757, + 10758, + 10759, + 10760, + 10761, + 10762, + 10763, + 10764, + 10765, + 10766, + 10767, + 10768, + 10769, + 10770, + 10771, + 10772, + 10773, + 10774, + 10775, + 10776, + 10777, + 10778, + 10779, + 10780, + 10781, + 10782, + 10783, + 10784, + 10785, + 10786, + 10787, + 10788, + 10789, + 10790, + 10791, + 10792, + 10793, + 10794, + 10795, + 10796, + 10797, + 10798, + 10799, + 10800, + 10801, + 10802, + 10803, + 10804, + 10805, + 10806, + 10807, + 10808, + 10809, + 10810, + 10811, + 10812, + 10813, + 10814, + 10815, + 10816, + 10817, + 10818, + 10819, + 10820, + 10821, + 10822, + 10823, + 10824, + 10825, + 10826, + 10827, + 10828, + 10829, + 10830, + 10831, + 10832, + 10833, + 10834, + 10835, + 10836, + 10837, + 10838, + 10839, + 10840, + 10841, + 10842, + 10843, + 10844, + 10845, + 10846, + 10847, + 10848, + 10849, + 10850, + 10851, + 10852, + 10853, + 10854, + 10855, + 10856, + 10857, + 10858, + 10859, + 10860, + 10861, + 10862, + 10863, + 10864, + 10865, + 10866, + 10867, + 10868, + 10869, + 10870, + 10871, + 10872, + 10873, + 10874, + 10875, + 10876, + 10877, + 10878, + 10879, + 10880, + 10881, + 10882, + 10883, + 10884, + 10885, + 10886, + 10887, + 10888, + 10889, + 10890, + 10891, + 10892, + 10893, + 10894, + 10895, + 10896, + 10897, + 10898, + 10899, + 10900, + 10901, + 10902, + 10903, + 10904, + 10905, + 10906, + 10907, + 10908, + 10909, + 10910, + 10911, + 10912, + 10913, + 10914, + 10915, + 10916, + 10917, + 10918, + 10919, + 10920, + 10921, + 10922, + 10923, + 10924, + 10925, + 10926, + 10927, + 10928, + 10929, + 10930, + 10931, + 10932, + 10933, + 10934, + 10935, + 10936, + 10937, + 10938, + 10939, + 10940, + 10941, + 10942, + 10943, + 10944, + 10945, + 10946, + 10947, + 10948, + 10949, + 10950, + 10951, + 10952, + 10953, + 10954, + 10955, + 10956, + 10957, + 10958, + 10959, + 10960, + 10961, + 10962, + 10963, + 10964, + 10965, + 10966, + 10967, + 10968, + 10969, + 10970, + 10971, + 10972, + 10973, + 10974, + 10975, + 10976, + 10977, + 10978, + 10979, + 10980, + 10981, + 10982, + 10983, + 10984, + 10985, + 10986, + 10987, + 10988, + 10989, + 10990, + 10991, + 10992, + 10993, + 10994, + 10995, + 10996, + 10997, + 10998, + 10999, + 11000, + 11001, + 11002, + 11003, + 11004, + 11005, + 11006, + 11007, + 11008, + 11009, + 11010, + 11011, + 11012, + 11013, + 11014, + 11015, + 11016, + 11017, + 11018, + 11019, + 11020, + 11021, + 11022, + 11023, + 11024, + 11025, + 11026, + 11027, + 11028, + 11029, + 11030, + 11031, + 11032, + 11033, + 11034, + 11035, + 11036, + 11037, + 11038, + 11039, + 11040, + 11041, + 11042, + 11043, + 11044, + 11045, + 11046, + 11047, + 11048, + 11049, + 11050, + 11051, + 11052, + 11053, + 11054, + 11055, + 11056, + 11057, + 11058, + 11059, + 11060, + 11061, + 11062, + 11063, + 11064, + 11065, + 11066, + 11067, + 11068, + 11069, + 11070, + 11071, + 11072, + 11073, + 11074, + 11075, + 11076, + 11077, + 11078, + 11079, + 11080, + 11081, + 11082, + 11083, + 11084, + 11085, + 11086, + 11087, + 11088, + 11089, + 11090, + 11091, + 11092, + 11093, + 11094, + 11095, + 11096, + 11097, + 11098, + 11099, + 11100, + 11101, + 11102, + 11103, + 11104, + 11105, + 11106, + 11107, + 11108, + 11109, + 11110, + 11111, + 11112, + 11113, + 11114, + 11115, + 11116, + 11117, + 11118, + 11119, + 11120, + 11121, + 11122, + 11123, + 11124, + 11125, + 11126, + 11127, + 11128, + 11129, + 11130, + 11131, + 11132, + 11133, + 11134, + 11135, + 11136, + 11137, + 11138, + 11139, + 11140, + 11141, + 11142, + 11143, + 11144, + 11145, + 11146, + 11147, + 11148, + 11149, + 11150, + 11151, + 11152, + 11153, + 11154, + 11155, + 11156, + 11157, + 11158, + 11159, + 11160, + 11161, + 11162, + 11163, + 11164, + 11165, + 11166, + 11167, + 11168, + 11169, + 11170, + 11171, + 11172, + 11173, + 11174, + 11175, + 11176, + 11177, + 11178, + 11179, + 11180, + 11181, + 11182, + 11183, + 11184, + 11185, + 11186, + 11187, + 11188, + 11189, + 11190, + 11191, + 11192, + 11193, + 11194, + 11195, + 11196, + 11197, + 11198, + 11199, + 11200, + 11201, + 11202, + 11203, + 11204, + 11205, + 11206, + 11207, + 11208, + 11209, + 11210, + 11211, + 11212, + 11213, + 11214, + 11215, + 11216, + 11217, + 11218, + 11219, + 11220, + 11221, + 11222, + 11223, + 11224, + 11225, + 11226, + 11227, + 11228, + 11229, + 11230, + 11231, + 11232, + 11233, + 11234, + 11235, + 11236, + 11237, + 11238, + 11239, + 11240, + 11241, + 11242, + 11243, + 11244, + 11245, + 11246, + 11247, + 11248, + 11249, + 11250, + 11251, + 11252, + 11253, + 11254, + 11255, + 11256, + 11257, + 11258, + 11259, + 11260, + 11261, + 11262, + 11263, + 11264, + 11265, + 11266, + 11267, + 11268, + 11269, + 11270, + 11271, + 11272, + 11273, + 11274, + 11275, + 11276, + 11277, + 11278, + 11279, + 11280, + 11281, + 11282, + 11283, + 11284, + 11285, + 11286, + 11287, + 11288, + 11289, + 11290, + 11291, + 11292, + 11293, + 11294, + 11295, + 11296, + 11297, + 11298, + 11299, + 11300, + 11301, + 11302, + 11303, + 11304, + 11305, + 11306, + 11307, + 11308, + 11309, + 11310, + 11311, + 11312, + 11313, + 11314, + 11315, + 11316, + 11317, + 11318, + 11319, + 11320, + 11321, + 11322, + 11323, + 11324, + 11325, + 11326, + 11327, + 11328, + 11329, + 11330, + 11331, + 11332, + 11333, + 11334, + 11335, + 11336, + 11337, + 11338, + 11339, + 11340, + 11341, + 11342, + 11343, + 11344, + 11345, + 11346, + 11347, + 11348, + 11349, + 11350, + 11351, + 11352, + 11353, + 11354, + 11355, + 11356, + 11357, + 11358, + 11359, + 11360, + 11361, + 11362, + 11363, + 11364, + 11365, + 11366, + 11367, + 11368, + 11369, + 11370, + 11371, + 11372, + 11373, + 11374, + 11375, + 11376, + 11377, + 11378, + 11379, + 11380, + 11381, + 11382, + 11383, + 11384, + 11385, + 11386, + 11387, + 11388, + 11389, + 11390, + 11391, + 11392, + 11393, + 11394, + 11395, + 11396, + 11397, + 11398, + 11399, + 11400, + 11401, + 11402, + 11403, + 11404, + 11405, + 11406, + 11407, + 11408, + 11409, + 11410, + 11411, + 11412, + 11413, + 11414, + 11415, + 11416, + 11417, + 11418, + 11419, + 11420, + 11421, + 11422, + 11423, + 11424, + 11425, + 11426, + 11427, + 11428, + 11429, + 11430, + 11431, + 11432, + 11433, + 11434, + 11435, + 11436, + 11437, + 11438, + 11439, + 11440, + 11441, + 11442, + 11443, + 11444, + 11445, + 11446, + 11447, + 11448, + 11449, + 11450, + 11451, + 11452, + 11453, + 11454, + 11455, + 11456, + 11457, + 11458, + 11459, + 11460, + 11461, + 11462, + 11463, + 11464, + 11465, + 11466, + 11467, + 11468, + 11469, + 11470, + 11471, + 11472, + 11473, + 11474, + 11475, + 11476, + 11477, + 11478, + 11479, + 11480, + 11481, + 11482, + 11483, + 11484, + 11485, + 11486, + 11487, + 11488, + 11489, + 11490, + 11491, + 11492, + 11493, + 11494, + 11495, + 11496, + 11497, + 11498, + 11499, + 11500, + 11501, + 11502, + 11503, + 11504, + 11505, + 11506, + 11507, + 11508, + 11509, + 11510, + 11511, + 11512, + 11513, + 11514, + 11515, + 11516, + 11517, + 11518, + 11519, + 11520, + 11521, + 11522, + 11523, + 11524, + 11525, + 11526, + 11527, + 11528, + 11529, + 11530, + 11531, + 11532, + 11533, + 11534, + 11535, + 11536, + 11537, + 11538, + 11539, + 11540, + 11541, + 11542, + 11543, + 11544, + 11545, + 11546, + 11547, + 11548, + 11549, + 11550, + 11551, + 11552, + 11553, + 11554, + 11555, + 11556, + 11557, + 11558, + 11559, + 11560, + 11561, + 11562, + 11563, + 11564, + 11565, + 11566, + 11567, + 11568, + 11569, + 11570, + 11571, + 11572, + 11573, + 11574, + 11575, + 11576, + 11577, + 11578, + 11579, + 11580, + 11581, + 11582, + 11583, + 11584, + 11585, + 11586, + 11587, + 11588, + 11589, + 11590, + 11591, + 11592, + 11593, + 11594, + 11595, + 11596, + 11597, + 11598, + 11599, + 11600, + 11601, + 11602, + 11603, + 11604, + 11605, + 11606, + 11607, + 11608, + 11609, + 11610, + 11611, + 11612, + 11613, + 11614, + 11615, + 11616, + 11617, + 11618, + 11619, + 11620, + 11621, + 11622, + 11623, + 11624, + 11625, + 11626, + 11627, + 11628, + 11629, + 11630, + 11631, + 11632, + 11633, + 11634, + 11635, + 11636, + 11637, + 11638, + 11639, + 11640, + 11641, + 11642, + 11643, + 11644, + 11645, + 11646, + 11647, + 11648, + 11649, + 11650, + 11651, + 11652, + 11653, + 11654, + 11655, + 11656, + 11657, + 11658, + 11659, + 11660, + 11661, + 11662, + 11663, + 11664, + 11665, + 11666, + 11667, + 11668, + 11669, + 11670, + 11671, + 11672, + 11673, + 11674, + 11675, + 11676, + 11677, + 11678, + 11679, + 11680, + 11681, + 11682, + 11683, + 11684, + 11685, + 11686, + 11687, + 11688, + 11689, + 11690, + 11691, + 11692, + 11693, + 11694, + 11695, + 11696, + 11697, + 11698, + 11699, + 11700, + 11701, + 11702, + 11703, + 11704, + 11705, + 11706, + 11707, + 11708, + 11709, + 11710, + 11711, + 11712, + 11713, + 11714, + 11715, + 11716, + 11717, + 11718, + 11719, + 11720, + 11721, + 11722, + 11723, + 11724, + 11725, + 11726, + 11727, + 11728, + 11729, + 11730, + 11731, + 11732, + 11733, + 11734, + 11735, + 11736, + 11737, + 11738, + 11739, + 11740, + 11741, + 11742, + 11743, + 11744, + 11745, + 11746, + 11747, + 11748, + 11749, + 11750, + 11751, + 11752, + 11753, + 11754, + 11755, + 11756, + 11757, + 11758, + 11759, + 11760, + 11761, + 11762, + 11763, + 11764, + 11765, + 11766, + 11767, + 11768, + 11769, + 11770, + 11771, + 11772, + 11773, + 11774, + 11775, + 11776, + 11777, + 11778, + 11779, + 11780, + 11781, + 11782, + 11783, + 11784, + 11785, + 11786, + 11787, + 11788, + 11789, + 11790, + 11791, + 11792, + 11793, + 11794, + 11795, + 11796, + 11797, + 11798, + 11799, + 11800, + 11801, + 11802, + 11803, + 11804, + 11805, + 11806, + 11807, + 11808, + 11809, + 11810, + 11811, + 11812, + 11813, + 11814, + 11815, + 11816, + 11817, + 11818, + 11819, + 11820, + 11821, + 11822, + 11823, + 11824, + 11825, + 11826, + 11827, + 11828, + 11829, + 11830, + 11831, + 11832, + 11833, + 11834, + 11835, + 11836, + 11837, + 11838, + 11839, + 11840, + 11841, + 11842, + 11843, + 11844, + 11845, + 11846, + 11847, + 11848, + 11849, + 11850, + 11851, + 11852, + 11853, + 11854, + 11855, + 11856, + 11857, + 11858, + 11859, + 11860, + 11861, + 11862, + 11863, + 11864, + 11865, + 11866, + 11867, + 11868, + 11869, + 11870, + 11871, + 11872, + 11873, + 11874, + 11875, + 11876, + 11877, + 11878, + 11879, + 11880, + 11881, + 11882, + 11883, + 11884, + 11885, + 11886, + 11887, + 11888, + 11889, + 11890, + 11891, + 11892, + 11893, + 11894, + 11895, + 11896, + 11897, + 11898, + 11899, + 11900, + 11901, + 11902, + 11903, + 11904, + 11905, + 11906, + 11907, + 11908, + 11909, + 11910, + 11911, + 11912, + 11913, + 11914, + 11915, + 11916, + 11917, + 11918, + 11919, + 11920, + 11921, + 11922, + 11923, + 11924, + 11925, + 11926, + 11927, + 11928, + 11929, + 11930, + 11931, + 11932, + 11933, + 11934, + 11935, + 11936, + 11937, + 11938, + 11939, + 11940, + 11941, + 11942, + 11943, + 11944, + 11945, + 11946, + 11947, + 11948, + 11949, + 11950, + 11951, + 11952, + 11953, + 11954, + 11955, + 11956, + 11957, + 11958, + 11959, + 11960, + 11961, + 11962, + 11963, + 11964, + 11965, + 11966, + 11967, + 11968, + 11969, + 11970, + 11971, + 11972, + 11973, + 11974, + 11975, + 11976, + 11977, + 11978, + 11979, + 11980, + 11981, + 11982, + 11983, + 11984, + 11985, + 11986, + 11987, + 11988, + 11989, + 11990, + 11991, + 11992, + 11993, + 11994, + 11995, + 11996, + 11997, + 11998, + 11999, + 12000, + 12001, + 12002, + 12003, + 12004, + 12005, + 12006, + 12007, + 12008, + 12009, + 12010, + 12011, + 12012, + 12013, + 12014, + 12015, + 12016, + 12017, + 12018, + 12019, + 12020, + 12021, + 12022, + 12023, + 12024, + 12025, + 12026, + 12027, + 12028, + 12029, + 12030, + 12031, + 12032, + 12033, + 12034, + 12035, + 12036, + 12037, + 12038, + 12039, + 12040, + 12041, + 12042, + 12043, + 12044, + 12045, + 12046, + 12047, + 12048, + 12049, + 12050, + 12051, + 12052, + 12053, + 12054, + 12055, + 12056, + 12057, + 12058, + 12059, + 12060, + 12061, + 12062, + 12063, + 12064, + 12065, + 12066, + 12067, + 12068, + 12069, + 12070, + 12071, + 12072, + 12073, + 12074, + 12075, + 12076, + 12077, + 12078, + 12079, + 12080, + 12081, + 12082, + 12083, + 12084, + 12085, + 12086, + 12087, + 12088, + 12089, + 12090, + 12091, + 12092, + 12093, + 12094, + 12095, + 12096, + 12097, + 12098, + 12099, + 12100, + 12101, + 12102, + 12103, + 12104, + 12105, + 12106, + 12107, + 12108, + 12109, + 12110, + 12111, + 12112, + 12113, + 12114, + 12115, + 12116, + 12117, + 12118, + 12119, + 12120, + 12121, + 12122, + 12123, + 12124, + 12125, + 12126, + 12127, + 12128, + 12129, + 12130, + 12131, + 12132, + 12133, + 12134, + 12135, + 12136, + 12137, + 12138, + 12139, + 12140, + 12141, + 12142, + 12143, + 12144, + 12145, + 12146, + 12147, + 12148, + 12149, + 12150, + 12151, + 12152, + 12153, + 12154, + 12155, + 12156, + 12157, + 12158, + 12159, + 12160, + 12161, + 12162, + 12163, + 12164, + 12165, + 12166, + 12167, + 12168, + 12169, + 12170, + 12171, + 12172, + 12173, + 12174, + 12175, + 12176, + 12177, + 12178, + 12179, + 12180, + 12181, + 12182, + 12183, + 12184, + 12185, + 12186, + 12187, + 12188, + 12189, + 12190, + 12191, + 12192, + 12193, + 12194, + 12195, + 12196, + 12197, + 12198, + 12199, + 12200, + 12201, + 12202, + 12203, + 12204, + 12205, + 12206, + 12207, + 12208, + 12209, + 12210, + 12211, + 12212, + 12213, + 12214, + 12215, + 12216, + 12217, + 12218, + 12219, + 12220, + 12221, + 12222, + 12223, + 12224, + 12225, + 12226, + 12227, + 12228, + 12229, + 12230, + 12231, + 12232, + 12233, + 12234, + 12235, + 12236, + 12237, + 12238, + 12239, + 12240, + 12241, + 12242, + 12243, + 12244, + 12245, + 12246, + 12247, + 12248, + 12249, + 12250, + 12251, + 12252, + 12253, + 12254, + 12255, + 12256, + 12257, + 12258, + 12259, + 12260, + 12261, + 12262, + 12263, + 12264, + 12265, + 12266, + 12267, + 12268, + 12269, + 12270, + 12271, + 12272, + 12273, + 12274, + 12275, + 12276, + 12277, + 12278, + 12279, + 12280, + 12281, + 12282, + 12283, + 12284, + 12285, + 12286, + 12287, + 12288, + 12289, + 12290, + 12291, + 12292, + 12293, + 12294, + 12295, + 12296, + 12297, + 12298, + 12299, + 12300, + 12301, + 12302, + 12303, + 12304, + 12305, + 12306, + 12307, + 12308, + 12309, + 12310, + 12311, + 12312, + 12313, + 12314, + 12315, + 12316, + 12317, + 12318, + 12319, + 12320, + 12321, + 12322, + 12323, + 12324, + 12325, + 12326, + 12327, + 12328, + 12329, + 12330, + 12331, + 12332, + 12333, + 12334, + 12335, + 12336, + 12337, + 12338, + 12339, + 12340, + 12341, + 12342, + 12343, + 12344, + 12345, + 12346, + 12347, + 12348, + 12349, + 12350, + 12351, + 12352, + 12353, + 12354, + 12355, + 12356, + 12357, + 12358, + 12359, + 12360, + 12361, + 12362, + 12363, + 12364, + 12365, + 12366, + 12367, + 12368, + 12369, + 12370, + 12371, + 12372, + 12373, + 12374, + 12375, + 12376, + 12377, + 12378, + 12379, + 12380, + 12381, + 12382, + 12383, + 12384, + 12385, + 12386, + 12387, + 12388, + 12389, + 12390, + 12391, + 12392, + 12393, + 12394, + 12395, + 12396, + 12397, + 12398, + 12399, + 12400, + 12401, + 12402, + 12403, + 12404, + 12405, + 12406, + 12407, + 12408, + 12409, + 12410, + 12411, + 12412, + 12413, + 12414, + 12415, + 12416, + 12417, + 12418, + 12419, + 12420, + 12421, + 12422, + 12423, + 12424, + 12425, + 12426, + 12427, + 12428, + 12429, + 12430, + 12431, + 12432, + 12433, + 12434, + 12435, + 12436, + 12437, + 12438, + 12439, + 12440, + 12441, + 12442, + 12443, + 12444, + 12445, + 12446, + 12447, + 12448, + 12449, + 12450, + 12451, + 12452, + 12453, + 12454, + 12455, + 12456, + 12457, + 12458, + 12459, + 12460, + 12461, + 12462, + 12463, + 12464, + 12465, + 12466, + 12467, + 12468, + 12469, + 12470, + 12471, + 12472, + 12473, + 12474, + 12475, + 12476, + 12477, + 12478, + 12479, + 12480, + 12481, + 12482, + 12483, + 12484, + 12485, + 12486, + 12487, + 12488, + 12489, + 12490, + 12491, + 12492, + 12493, + 12494, + 12495, + 12496, + 12497, + 12498, + 12499, + 12500, + 12501, + 12502, + 12503, + 12504, + 12505, + 12506, + 12507, + 12508, + 12509, + 12510, + 12511, + 12512, + 12513, + 12514, + 12515, + 12516, + 12517, + 12518, + 12519, + 12520, + 12521, + 12522, + 12523, + 12524, + 12525, + 12526, + 12527, + 12528, + 12529, + 12530, + 12531, + 12532, + 12533, + 12534, + 12535, + 12536, + 12537, + 12538, + 12539, + 12540, + 12541, + 12542, + 12543, + 12544, + 12545, + 12546, + 12547, + 12548, + 12549, + 12550, + 12551, + 12552, + 12553, + 12554, + 12555, + 12556, + 12557, + 12558, + 12559, + 12560, + 12561, + 12562, + 12563, + 12564, + 12565, + 12566, + 12567, + 12568, + 12569, + 12570, + 12571, + 12572, + 12573, + 12574, + 12575, + 12576, + 12577, + 12578, + 12579, + 12580, + 12581, + 12582, + 12583, + 12584, + 12585, + 12586, + 12587, + 12588, + 12589, + 12590, + 12591, + 12592, + 12593, + 12594, + 12595, + 12596, + 12597, + 12598, + 12599, + 12600, + 12601, + 12602, + 12603, + 12604, + 12605, + 12606, + 12607, + 12608, + 12609, + 12610, + 12611, + 12612, + 12613, + 12614, + 12615, + 12616, + 12617, + 12618, + 12619, + 12620, + 12621, + 12622, + 12623, + 12624, + 12625, + 12626, + 12627, + 12628, + 12629, + 12630, + 12631, + 12632, + 12633, + 12634, + 12635, + 12636, + 12637, + 12638, + 12639, + 12640, + 12641, + 12642, + 12643, + 12644, + 12645, + 12646, + 12647, + 12648, + 12649, + 12650, + 12651, + 12652, + 12653, + 12654, + 12655, + 12656, + 12657, + 12658, + 12659, + 12660, + 12661, + 12662, + 12663, + 12664, + 12665, + 12666, + 12667, + 12668, + 12669, + 12670, + 12671, + 12672, + 12673, + 12674, + 12675, + 12676, + 12677, + 12678, + 12679, + 12680, + 12681, + 12682, + 12683, + 12684, + 12685, + 12686, + 12687, + 12688, + 12689, + 12690, + 12691, + 12692, + 12693, + 12694, + 12695, + 12696, + 12697, + 12698, + 12699, + 12700, + 12701, + 12702, + 12703, + 12704, + 12705, + 12706, + 12707, + 12708, + 12709, + 12710, + 12711, + 12712, + 12713, + 12714, + 12715, + 12716, + 12717, + 12718, + 12719, + 12720, + 12721, + 12722, + 12723, + 12724, + 12725, + 12726, + 12727, + 12728, + 12729, + 12730, + 12731, + 12732, + 12733, + 12734, + 12735, + 12736, + 12737, + 12738, + 12739, + 12740, + 12741, + 12742, + 12743, + 12744, + 12745, + 12746, + 12747, + 12748, + 12749, + 12750, + 12751, + 12752, + 12753, + 12754, + 12755, + 12756, + 12757, + 12758, + 12759, + 12760, + 12761, + 12762, + 12763, + 12764, + 12765, + 12766, + 12767, + 12768, + 12769, + 12770, + 12771, + 12772, + 12773, + 12774, + 12775, + 12776, + 12777, + 12778, + 12779, + 12780, + 12781, + 12782, + 12783, + 12784, + 12785, + 12786, + 12787, + 12788, + 12789, + 12790, + 12791, + 12792, + 12793, + 12794, + 12795, + 12796, + 12797, + 12798, + 12799, + 12800, + 12801, + 12802, + 12803, + 12804, + 12805, + 12806, + 12807, + 12808, + 12809, + 12810, + 12811, + 12812, + 12813, + 12814, + 12815, + 12816, + 12817, + 12818, + 12819, + 12820, + 12821, + 12822, + 12823, + 12824, + 12825, + 12826, + 12827, + 12828, + 12829, + 12830, + 12831, + 12832, + 12833, + 12834, + 12835, + 12836, + 12837, + 12838, + 12839, + 12840, + 12841, + 12842, + 12843, + 12844, + 12845, + 12846, + 12847, + 12848, + 12849, + 12850, + 12851, + 12852, + 12853, + 12854, + 12855, + 12856, + 12857, + 12858, + 12859, + 12860, + 12861, + 12862, + 12863, + 12864, + 12865, + 12866, + 12867, + 12868, + 12869, + 12870, + 12871, + 12872, + 12873, + 12874, + 12875, + 12876, + 12877, + 12878, + 12879, + 12880, + 12881, + 12882, + 12883, + 12884, + 12885, + 12886, + 12887, + 12888, + 12889, + 12890, + 12891, + 12892, + 12893, + 12894, + 12895, + 12896, + 12897, + 12898, + 12899, + 12900, + 12901, + 12902, + 12903, + 12904, + 12905, + 12906, + 12907, + 12908, + 12909, + 12910, + 12911, + 12912, + 12913, + 12914, + 12915, + 12916, + 12917, + 12918, + 12919, + 12920, + 12921, + 12922, + 12923, + 12924, + 12925, + 12926, + 12927, + 12928, + 12929, + 12930, + 12931, + 12932, + 12933, + 12934, + 12935, + 12936, + 12937, + 12938, + 12939, + 12940, + 12941, + 12942, + 12943, + 12944, + 12945, + 12946, + 12947, + 12948, + 12949, + 12950, + 12951, + 12952, + 12953, + 12954, + 12955, + 12956, + 12957, + 12958, + 12959, + 12960, + 12961, + 12962, + 12963, + 12964, + 12965, + 12966, + 12967, + 12968, + 12969, + 12970, + 12971, + 12972, + 12973, + 12974, + 12975, + 12976, + 12977, + 12978, + 12979, + 12980, + 12981, + 12982, + 12983, + 12984, + 12985, + 12986, + 12987, + 12988, + 12989, + 12990, + 12991, + 12992, + 12993, + 12994, + 12995, + 12996, + 12997, + 12998, + 12999, + 13000, + 13001, + 13002, + 13003, + 13004, + 13005, + 13006, + 13007, + 13008, + 13009, + 13010, + 13011, + 13012, + 13013, + 13014, + 13015, + 13016, + 13017, + 13018, + 13019, + 13020, + 13021, + 13022, + 13023, + 13024, + 13025, + 13026, + 13027, + 13028, + 13029, + 13030, + 13031, + 13032, + 13033, + 13034, + 13035, + 13036, + 13037, + 13038, + 13039, + 13040, + 13041, + 13042, + 13043, + 13044, + 13045, + 13046, + 13047, + 13048, + 13049, + 13050, + 13051, + 13052, + 13053, + 13054, + 13055, + 13056, + 13057, + 13058, + 13059, + 13060, + 13061, + 13062, + 13063, + 13064, + 13065, + 13066, + 13067, + 13068, + 13069, + 13070, + 13071, + 13072, + 13073, + 13074, + 13075, + 13076, + 13077, + 13078, + 13079, + 13080, + 13081, + 13082, + 13083, + 13084, + 13085, + 13086, + 13087, + 13088, + 13089, + 13090, + 13091, + 13092, + 13093, + 13094, + 13095, + 13096, + 13097, + 13098, + 13099, + 13100, + 13101, + 13102, + 13103, + 13104, + 13105, + 13106, + 13107, + 13108, + 13109, + 13110, + 13111, + 13112, + 13113, + 13114, + 13115, + 13116, + 13117, + 13118, + 13119, + 13120, + 13121, + 13122, + 13123, + 13124, + 13125, + 13126, + 13127, + 13128, + 13129, + 13130, + 13131, + 13132, + 13133, + 13134, + 13135, + 13136, + 13137, + 13138, + 13139, + 13140, + 13141, + 13142, + 13143, + 13144, + 13145, + 13146, + 13147, + 13148, + 13149, + 13150, + 13151, + 13152, + 13153, + 13154, + 13155, + 13156, + 13157, + 13158, + 13159, + 13160, + 13161, + 13162, + 13163, + 13164, + 13165, + 13166, + 13167, + 13168, + 13169, + 13170, + 13171, + 13172, + 13173, + 13174, + 13175, + 13176, + 13177, + 13178, + 13179, + 13180, + 13181, + 13182, + 13183, + 13184, + 13185, + 13186, + 13187, + 13188, + 13189, + 13190, + 13191, + 13192, + 13193, + 13194, + 13195, + 13196, + 13197, + 13198, + 13199, + 13200, + 13201, + 13202, + 13203, + 13204, + 13205, + 13206, + 13207, + 13208, + 13209, + 13210, + 13211, + 13212, + 13213, + 13214, + 13215, + 13216, + 13217, + 13218, + 13219, + 13220, + 13221, + 13222, + 13223, + 13224, + 13225, + 13226, + 13227, + 13228, + 13229, + 13230, + 13231, + 13232, + 13233, + 13234, + 13235, + 13236, + 13237, + 13238, + 13239, + 13240, + 13241, + 13242, + 13243, + 13244, + 13245, + 13246, + 13247, + 13248, + 13249, + 13250, + 13251, + 13252, + 13253, + 13254, + 13255, + 13256, + 13257, + 13258, + 13259, + 13260, + 13261, + 13262, + 13263, + 13264, + 13265, + 13266, + 13267, + 13268, + 13269, + 13270, + 13271, + 13272, + 13273, + 13274, + 13275, + 13276, + 13277, + 13278, + 13279, + 13280, + 13281, + 13282, + 13283, + 13284, + 13285, + 13286, + 13287, + 13288, + 13289, + 13290, + 13291, + 13292, + 13293, + 13294, + 13295, + 13296, + 13297, + 13298, + 13299, + 13300, + 13301, + 13302, + 13303, + 13304, + 13305, + 13306, + 13307, + 13308, + 13309, + 13310, + 13311, + 13312, + 13313, + 13314, + 13315, + 13316, + 13317, + 13318, + 13319, + 13320, + 13321, + 13322, + 13323, + 13324, + 13325, + 13326, + 13327, + 13328, + 13329, + 13330, + 13331, + 13332, + 13333, + 13334, + 13335, + 13336, + 13337, + 13338, + 13339, + 13340, + 13341, + 13342, + 13343, + 13344, + 13345, + 13346, + 13347, + 13348, + 13349, + 13350, + 13351, + 13352, + 13353, + 13354, + 13355, + 13356, + 13357, + 13358, + 13359, + 13360, + 13361, + 13362, + 13363, + 13364, + 13365, + 13366, + 13367, + 13368, + 13369, + 13370, + 13371, + 13372, + 13373, + 13374, + 13375, + 13376, + 13377, + 13378, + 13379, + 13380, + 13381, + 13382, + 13383, + 13384, + 13385, + 13386, + 13387, + 13388, + 13389, + 13390, + 13391, + 13392, + 13393, + 13394, + 13395, + 13396, + 13397, + 13398, + 13399, + 13400, + 13401, + 13402, + 13403, + 13404, + 13405, + 13406, + 13407, + 13408, + 13409, + 13410, + 13411, + 13412, + 13413, + 13414, + 13415, + 13416, + 13417, + 13418, + 13419, + 13420, + 13421, + 13422, + 13423, + 13424, + 13425, + 13426, + 13427, + 13428, + 13429, + 13430, + 13431, + 13432, + 13433, + 13434, + 13435, + 13436, + 13437, + 13438, + 13439, + 13440, + 13441, + 13442, + 13443, + 13444, + 13445, + 13446, + 13447, + 13448, + 13449, + 13450, + 13451, + 13452, + 13453, + 13454, + 13455, + 13456, + 13457, + 13458, + 13459, + 13460, + 13461, + 13462, + 13463, + 13464, + 13465, + 13466, + 13467, + 13468, + 13469, + 13470, + 13471, + 13472, + 13473, + 13474, + 13475, + 13476, + 13477, + 13478, + 13479, + 13480, + 13481, + 13482, + 13483, + 13484, + 13485, + 13486, + 13487, + 13488, + 13489, + 13490, + 13491, + 13492, + 13493, + 13494, + 13495, + 13496, + 13497, + 13498, + 13499, + 13500, + 13501, + 13502, + 13503, + 13504, + 13505, + 13506, + 13507, + 13508, + 13509, + 13510, + 13511, + 13512, + 13513, + 13514, + 13515, + 13516, + 13517, + 13518, + 13519, + 13520, + 13521, + 13522, + 13523, + 13524, + 13525, + 13526, + 13527, + 13528, + 13529, + 13530, + 13531, + 13532, + 13533, + 13534, + 13535, + 13536, + 13537, + 13538, + 13539, + 13540, + 13541, + 13542, + 13543, + 13544, + 13545, + 13546, + 13547, + 13548, + 13549, + 13550, + 13551, + 13552, + 13553, + 13554, + 13555, + 13556, + 13557, + 13558, + 13559, + 13560, + 13561, + 13562, + 13563, + 13564, + 13565, + 13566, + 13567, + 13568, + 13569, + 13570, + 13571, + 13572, + 13573, + 13574, + 13575, + 13576, + 13577, + 13578, + 13579, + 13580, + 13581, + 13582, + 13583, + 13584, + 13585, + 13586, + 13587, + 13588, + 13589, + 13590, + 13591, + 13592, + 13593, + 13594, + 13595, + 13596, + 13597, + 13598, + 13599, + 13600, + 13601, + 13602, + 13603, + 13604, + 13605, + 13606, + 13607, + 13608, + 13609, + 13610, + 13611, + 13612, + 13613, + 13614, + 13615, + 13616, + 13617, + 13618, + 13619, + 13620, + 13621, + 13622, + 13623, + 13624, + 13625, + 13626, + 13627, + 13628, + 13629, + 13630, + 13631, + 13632, + 13633, + 13634, + 13635, + 13636, + 13637, + 13638, + 13639, + 13640, + 13641, + 13642, + 13643, + 13644, + 13645, + 13646, + 13647, + 13648, + 13649, + 13650, + 13651, + 13652, + 13653, + 13654, + 13655, + 13656, + 13657, + 13658, + 13659, + 13660, + 13661, + 13662, + 13663, + 13664, + 13665, + 13666, + 13667, + 13668, + 13669, + 13670, + 13671, + 13672, + 13673, + 13674, + 13675, + 13676, + 13677, + 13678, + 13679, + 13680, + 13681, + 13682, + 13683, + 13684, + 13685, + 13686, + 13687, + 13688, + 13689, + 13690, + 13691, + 13692, + 13693, + 13694, + 13695, + 13696, + 13697, + 13698, + 13699, + 13700, + 13701, + 13702, + 13703, + 13704, + 13705, + 13706, + 13707, + 13708, + 13709, + 13710, + 13711, + 13712, + 13713, + 13714, + 13715, + 13716, + 13717, + 13718, + 13719, + 13720, + 13721, + 13722, + 13723, + 13724, + 13725, + 13726, + 13727, + 13728, + 13729, + 13730, + 13731, + 13732, + 13733, + 13734, + 13735, + 13736, + 13737, + 13738, + 13739, + 13740, + 13741, + 13742, + 13743, + 13744, + 13745, + 13746, + 13747, + 13748, + 13749, + 13750, + 13751, + 13752, + 13753, + 13754, + 13755, + 13756, + 13757, + 13758, + 13759, + 13760, + 13761, + 13762, + 13763, + 13764, + 13765, + 13766, + 13767, + 13768, + 13769, + 13770, + 13771, + 13772, + 13773, + 13774, + 13775, + 13776, + 13777, + 13778, + 13779, + 13780, + 13781, + 13782, + 13783, + 13784, + 13785, + 13786, + 13787, + 13788, + 13789, + 13790, + 13791, + 13792, + 13793, + 13794, + 13795, + 13796, + 13797, + 13798, + 13799, + 13800, + 13801, + 13802, + 13803, + 13804, + 13805, + 13806, + 13807, + 13808, + 13809, + 13810, + 13811, + 13812, + 13813, + 13814, + 13815, + 13816, + 13817, + 13818, + 13819, + 13820, + 13821, + 13822, + 13823, + 13824, + 13825, + 13826, + 13827, + 13828, + 13829, + 13830, + 13831, + 13832, + 13833, + 13834, + 13835, + 13836, + 13837, + 13838, + 13839, + 13840, + 13841, + 13842, + 13843, + 13844, + 13845, + 13846, + 13847, + 13848, + 13849, + 13850, + 13851, + 13852, + 13853, + 13854, + 13855, + 13856, + 13857, + 13858, + 13859, + 13860, + 13861, + 13862, + 13863, + 13864, + 13865, + 13866, + 13867, + 13868, + 13869, + 13870, + 13871, + 13872, + 13873, + 13874, + 13875, + 13876, + 13877, + 13878, + 13879, + 13880, + 13881, + 13882, + 13883, + 13884, + 13885, + 13886, + 13887, + 13888, + 13889, + 13890, + 13891, + 13892, + 13893, + 13894, + 13895, + 13896, + 13897, + 13898, + 13899, + 13900, + 13901, + 13902, + 13903, + 13904, + 13905, + 13906, + 13907, + 13908, + 13909, + 13910, + 13911, + 13912, + 13913, + 13914, + 13915, + 13916, + 13917, + 13918, + 13919, + 13920, + 13921, + 13922, + 13923, + 13924, + 13925, + 13926, + 13927, + 13928, + 13929, + 13930, + 13931, + 13932, + 13933, + 13934, + 13935, + 13936, + 13937, + 13938, + 13939, + 13940, + 13941, + 13942, + 13943, + 13944, + 13945, + 13946, + 13947, + 13948, + 13949, + 13950, + 13951, + 13952, + 13953, + 13954, + 13955, + 13956, + 13957, + 13958, + 13959, + 13960, + 13961, + 13962, + 13963, + 13964, + 13965, + 13966, + 13967, + 13968, + 13969, + 13970, + 13971, + 13972, + 13973, + 13974, + 13975, + 13976, + 13977, + 13978, + 13979, + 13980, + 13981, + 13982, + 13983, + 13984, + 13985, + 13986, + 13987, + 13988, + 13989, + 13990, + 13991, + 13992, + 13993, + 13994, + 13995, + 13996, + 13997, + 13998, + 13999, + 14000 + ], + "height": 100, + "id": 1, + "name": "Bottom Ground", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 2, + "name": "Exterior Ground", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 3, + "name": "Exterior Decoration L1", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 4, + "name": "Exterior Decoration L2", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 5, + "name": "Interior Ground", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 6, + "name": "Wall", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 7, + "name": "Interior Furniture L1", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 8, + "name": "Interior Furniture L2 ", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 9, + "name": "Foreground L1", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 10, + "name": "Foreground L2", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "height": 100, + "id": 11, + "name": "Collisions", + "opacity": 0.4, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 12, + "name": "Object Interaction Blocks", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 13, + "name": "Arena Blocks", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 14, + "name": "Sector Blocks", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 15, + "name": "World Blocks", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 16, + "name": "Spawning Blocks", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + }, + { + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "height": 100, + "id": 17, + "name": "Special Blocks Registry", + "opacity": 1, + "type": "tilelayer", + "visible": false, + "width": 140, + "x": 0, + "y": 0 + } + ], + "nextlayerid": 18, + "nextobjectid": 1, + "orientation": "orthogonal", + "renderorder": "right-down", + "tiledversion": "1.10.2", + "tileheight": 32, + "tilesets": [ + { + "columns": 140, + "firstgid": 1, + "image": "map_assets/pku_generated/pku_full_map_tileset.png", + "imageheight": 3200, + "imagewidth": 4480, + "margin": 0, + "name": "PKU_Full_Map_Generated", + "spacing": 0, + "tilecount": 14000, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 14001, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Field_B", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 14257, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Field_C", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 14513, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Harbor_C", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 76, + "firstgid": 14769, + "image": "map_assets/v1/Room_Builder_32x32.png", + "imageheight": 3488, + "imagewidth": 2432, + "margin": 0, + "name": "Room_Builder_32x32", + "spacing": 0, + "tilecount": 8284, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 23053, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Village_B", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 23309, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Forest_B", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 23565, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Desert_C", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 23821, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Mountains_B", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 24077, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Desert_B", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 24333, + "image": "map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png", + "imageheight": 512, + "imagewidth": 512, + "margin": 0, + "name": "CuteRPG_Forest_C", + "spacing": 0, + "tilecount": 256, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 24589, + "image": "map_assets/v1/interiors_pt1.png", + "imageheight": 10016, + "imagewidth": 512, + "margin": 0, + "name": "interiors_pt1", + "spacing": 0, + "tilecount": 5008, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 29597, + "image": "map_assets/v1/interiors_pt2.png", + "imageheight": 10016, + "imagewidth": 512, + "margin": 0, + "name": "interiors_pt2", + "spacing": 0, + "tilecount": 5008, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 34605, + "image": "map_assets/v1/interiors_pt3.png", + "imageheight": 10032, + "imagewidth": 512, + "margin": 0, + "name": "interiors_pt3", + "spacing": 0, + "tilecount": 5008, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 39613, + "image": "map_assets/v1/interiors_pt4.png", + "imageheight": 4000, + "imagewidth": 512, + "margin": 0, + "name": "interiors_pt4", + "spacing": 0, + "tilecount": 2000, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 16, + "firstgid": 41613, + "image": "map_assets/v1/interiors_pt5.png", + "imageheight": 9024, + "imagewidth": 512, + "margin": 0, + "name": "interiors_pt5", + "spacing": 0, + "tilecount": 4512, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 10, + "firstgid": 46125, + "image": "map_assets/blocks/blocks_1.png", + "imageheight": 256, + "imagewidth": 320, + "margin": 0, + "name": "blocks", + "spacing": 0, + "tilecount": 80, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 10, + "firstgid": 46205, + "image": "map_assets/blocks/blocks_2.png", + "imageheight": 256, + "imagewidth": 320, + "margin": 0, + "name": "blocks_2", + "spacing": 0, + "tilecount": 80, + "tileheight": 32, + "tilewidth": 32 + }, + { + "columns": 10, + "firstgid": 46285, + "image": "map_assets/blocks/blocks_3.png", + "imageheight": 128, + "imagewidth": 320, + "margin": 0, + "name": "blocks_3", + "spacing": 0, + "tilecount": 40, + "tileheight": 32, + "tilewidth": 32 + } + ], + "tilewidth": 32, + "type": "map", + "version": "1.10", + "width": 140 +} diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_1.png b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_1.png new file mode 100644 index 0000000..62a9130 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_1.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_2.png b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_2.png new file mode 100644 index 0000000..eb2f7cb Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_2.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_3.png b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_3.png new file mode 100644 index 0000000..c0ba571 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/blocks/blocks_3.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png new file mode 100644 index 0000000..fca6996 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png new file mode 100644 index 0000000..c088247 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png new file mode 100644 index 0000000..6490e71 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png new file mode 100644 index 0000000..99bf784 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png new file mode 100644 index 0000000..8830d49 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png new file mode 100644 index 0000000..f0169ee Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png new file mode 100644 index 0000000..5f3c4fe Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png new file mode 100644 index 0000000..615391b Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png new file mode 100644 index 0000000..bfb4cae Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/pku_generated/pku_full_map_tileset.png b/agentsociety/custom/maps/pku/visuals/map_assets/pku_generated/pku_full_map_tileset.png new file mode 100644 index 0000000..151e259 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/pku_generated/pku_full_map_tileset.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/Room_Builder_32x32.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/Room_Builder_32x32.png new file mode 100644 index 0000000..786c5f7 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/Room_Builder_32x32.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt1.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt1.png new file mode 100644 index 0000000..dbca0d0 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt1.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt2.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt2.png new file mode 100644 index 0000000..abecf43 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt2.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt3.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt3.png new file mode 100644 index 0000000..ad5b2fc Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt3.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt4.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt4.png new file mode 100644 index 0000000..ae35d46 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt4.png differ diff --git a/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt5.png b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt5.png new file mode 100644 index 0000000..50696b5 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/map_assets/v1/interiors_pt5.png differ diff --git a/agentsociety/custom/maps/pku/visuals/preview.png b/agentsociety/custom/maps/pku/visuals/preview.png new file mode 100644 index 0000000..fba8988 Binary files /dev/null and b/agentsociety/custom/maps/pku/visuals/preview.png differ diff --git a/agentsociety/custom/maps/the_ville/ATTRIBUTION.md b/agentsociety/custom/maps/the_ville/ATTRIBUTION.md new file mode 100644 index 0000000..f7eedc5 --- /dev/null +++ b/agentsociety/custom/maps/the_ville/ATTRIBUTION.md @@ -0,0 +1,10 @@ +# Pixel Town Assets + +The Smallville pixel map, tilesets, and character sprites in this directory are copied from the original Generative Agents asset directory. + +Original project: + +Generative Agents: Interactive Simulacra of Human Behavior +https://github.com/joonspk-research/generative_agents + +The original README credits the visual assets to PixyMoon, LimeZu, and pipohi. diff --git a/agentsociety/custom/maps/the_ville/README.md b/agentsociety/custom/maps/the_ville/README.md new file mode 100644 index 0000000..f78e9cd --- /dev/null +++ b/agentsociety/custom/maps/the_ville/README.md @@ -0,0 +1,57 @@ +

🏘️ The Ville · GOD Map Package

+ +

+ The default pixel-town world that ships with GOD.
+ 10 locations · 65 interactions · the reference shape for every new map. +

+ +

+ 🌏 中文 · + 📘 Map Packages Guide +

+ +--- + +This is the **default GOD pixel-town map package**. Use this directory as the +reference shape when you build your own world. A new map can be added by +copying [`_template/`](../_template/README.md), replacing `map.yaml`, +`visuals/map.json`, the tileset images, and (optionally) character or location +assets. + +## 📦 Layout + +```text +the_ville/ +├── map.yaml ← semantic manifest used by GOD +├── README.md ← you are here +├── ATTRIBUTION.md ← visual asset credits +├── visuals/ +│ ├── the_ville_jan7.json ← Tiled JSON map (orthogonal) +│ └── map_assets/**/*.png ← tileset images +└── characters/ + └── *.png ← 32×32 character sprites +``` + +## 🗺️ World + +| Stat | Value | +| --- | --- | +| Map id | `the_ville` | +| Display name | The Ville | +| Tile size | 32 × 32 | +| Locations | 10 (`home`, `school`, `library`, `cafe`, `park`, `supply_store`, `market`, `pharmacy`, `pub`, `dorm`) | +| Interactions | 65 location-scoped actions | +| Tiled JSON | `visuals/the_ville_jan7.json` | + +## ✅ Validation + +```bash +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/the_ville +``` + +## 🙏 Credits + +The pixel tiles, characters, and tilesets were originally produced for the +[Generative Agents](https://github.com/joonspk-research/generative_agents) +project. Full attribution lives in [`ATTRIBUTION.md`](ATTRIBUTION.md). diff --git a/agentsociety/custom/maps/the_ville/README.zh-CN.md b/agentsociety/custom/maps/the_ville/README.zh-CN.md new file mode 100644 index 0000000..3f49ca8 --- /dev/null +++ b/agentsociety/custom/maps/the_ville/README.zh-CN.md @@ -0,0 +1,55 @@ +

🏘️ The Ville · GOD 地图包

+ +

+ GOD 内置的默认像素小镇世界。
+ 10 个地点 · 65 个交互 · 所有新地图的参考形态。 +

+ +

+ 🌏 English · + 📘 地图包指南 +

+ +--- + +这是 **GOD 默认的像素小镇地图包**。当你想做自己的世界时,把这个目录当作参考样本。 +复制 [`_template/`](../_template/README.zh-CN.md)、替换 `map.yaml`、`visuals/map.json`、 +图块素材,以及(可选的)人物或地点资产,新地图就能加入。 + +## 📦 目录结构 + +```text +the_ville/ +├── map.yaml ← GOD 读取的语义清单 +├── README.md ← 你正在看 +├── ATTRIBUTION.md ← 图块素材版权归属 +├── visuals/ +│ ├── the_ville_jan7.json ← Tiled JSON 地图(orthogonal 正交投影) +│ └── map_assets/**/*.png ← 图块素材 +└── characters/ + └── *.png ← 32×32 人物精灵 +``` + +## 🗺️ 世界概览 + +| 指标 | 值 | +| --- | --- | +| Map id | `the_ville` | +| 显示名 | The Ville | +| 图块尺寸 | 32 × 32 | +| 地点 | 10 个(`home`、`school`、`library`、`cafe`、`park`、`supply_store`、`market`、`pharmacy`、`pub`、`dorm`) | +| 交互 | 65 个 location-scoped 动作 | +| Tiled JSON | `visuals/the_ville_jan7.json` | + +## ✅ 校验 + +```bash +cd agentsociety +uv run python scripts/validate_map_package.py custom/maps/the_ville +``` + +## 🙏 致谢 + +像素图块、人物、tileset 原始作品来自 +[Generative Agents](https://github.com/joonspk-research/generative_agents) 项目。 +完整版权归属见 [`ATTRIBUTION.md`](ATTRIBUTION.md)。 diff --git a/agentsociety/custom/maps/the_ville/characters/Abigail_Chen.png b/agentsociety/custom/maps/the_ville/characters/Abigail_Chen.png new file mode 100644 index 0000000..5f357e1 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Abigail_Chen.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Adam_Smith.png b/agentsociety/custom/maps/the_ville/characters/Adam_Smith.png new file mode 100644 index 0000000..5611b15 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Adam_Smith.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Arthur_Burton.png b/agentsociety/custom/maps/the_ville/characters/Arthur_Burton.png new file mode 100644 index 0000000..b456db8 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Arthur_Burton.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Ayesha_Khan.png b/agentsociety/custom/maps/the_ville/characters/Ayesha_Khan.png new file mode 100644 index 0000000..f835739 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Ayesha_Khan.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Carlos_Gomez.png b/agentsociety/custom/maps/the_ville/characters/Carlos_Gomez.png new file mode 100644 index 0000000..5cb12aa Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Carlos_Gomez.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Carmen_Ortiz.png b/agentsociety/custom/maps/the_ville/characters/Carmen_Ortiz.png new file mode 100644 index 0000000..8a091a0 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Carmen_Ortiz.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Eddy_Lin.png b/agentsociety/custom/maps/the_ville/characters/Eddy_Lin.png new file mode 100644 index 0000000..554b554 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Eddy_Lin.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Francisco_Lopez.png b/agentsociety/custom/maps/the_ville/characters/Francisco_Lopez.png new file mode 100644 index 0000000..49c7d9e Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Francisco_Lopez.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Giorgio_Rossi.png b/agentsociety/custom/maps/the_ville/characters/Giorgio_Rossi.png new file mode 100644 index 0000000..afdf607 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Giorgio_Rossi.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Hailey_Johnson.png b/agentsociety/custom/maps/the_ville/characters/Hailey_Johnson.png new file mode 100644 index 0000000..6975403 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Hailey_Johnson.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Isabella_Rodriguez.png b/agentsociety/custom/maps/the_ville/characters/Isabella_Rodriguez.png new file mode 100644 index 0000000..3c3d129 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Isabella_Rodriguez.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Jane_Moreno.png b/agentsociety/custom/maps/the_ville/characters/Jane_Moreno.png new file mode 100644 index 0000000..cfa8a8b Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Jane_Moreno.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Jennifer_Moore.png b/agentsociety/custom/maps/the_ville/characters/Jennifer_Moore.png new file mode 100644 index 0000000..b244ef2 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Jennifer_Moore.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/John_Lin.png b/agentsociety/custom/maps/the_ville/characters/John_Lin.png new file mode 100644 index 0000000..d79eb38 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/John_Lin.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Klaus_Mueller.png b/agentsociety/custom/maps/the_ville/characters/Klaus_Mueller.png new file mode 100644 index 0000000..c489315 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Klaus_Mueller.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Latoya_Williams.png b/agentsociety/custom/maps/the_ville/characters/Latoya_Williams.png new file mode 100644 index 0000000..87b06e1 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Latoya_Williams.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Maria_Lopez.png b/agentsociety/custom/maps/the_ville/characters/Maria_Lopez.png new file mode 100644 index 0000000..356f939 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Maria_Lopez.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Mei_Lin.png b/agentsociety/custom/maps/the_ville/characters/Mei_Lin.png new file mode 100644 index 0000000..754c2c3 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Mei_Lin.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Rajiv_Patel.png b/agentsociety/custom/maps/the_ville/characters/Rajiv_Patel.png new file mode 100644 index 0000000..cb5966e Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Rajiv_Patel.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Ryan_Park.png b/agentsociety/custom/maps/the_ville/characters/Ryan_Park.png new file mode 100644 index 0000000..aa3b47a Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Ryan_Park.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Sam_Moore.png b/agentsociety/custom/maps/the_ville/characters/Sam_Moore.png new file mode 100644 index 0000000..88f6b0e Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Sam_Moore.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Tamara_Taylor.png b/agentsociety/custom/maps/the_ville/characters/Tamara_Taylor.png new file mode 100644 index 0000000..23f4799 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Tamara_Taylor.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Tom_Moreno.png b/agentsociety/custom/maps/the_ville/characters/Tom_Moreno.png new file mode 100644 index 0000000..60f0a9a Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Tom_Moreno.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Wolfgang_Schulz.png b/agentsociety/custom/maps/the_ville/characters/Wolfgang_Schulz.png new file mode 100644 index 0000000..2f258af Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Wolfgang_Schulz.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/Yuriko_Yamamoto.png b/agentsociety/custom/maps/the_ville/characters/Yuriko_Yamamoto.png new file mode 100644 index 0000000..e40eb8d Binary files /dev/null and b/agentsociety/custom/maps/the_ville/characters/Yuriko_Yamamoto.png differ diff --git a/agentsociety/custom/maps/the_ville/characters/atlas.json b/agentsociety/custom/maps/the_ville/characters/atlas.json new file mode 100644 index 0000000..70df592 --- /dev/null +++ b/agentsociety/custom/maps/the_ville/characters/atlas.json @@ -0,0 +1,278 @@ + { + "frames": [ + { + "filename": "down-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "down", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 0 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + { + "filename": "left-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "left", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 32 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + + + { + "filename": "right-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "right", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 64 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + + + + + { + "filename": "up-walk.000", + "frame": { + "w": 32, + "h": 32, + "x": 0, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.001", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.002", + "frame": { + "w": 32, + "h": 32, + "x": 64, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up-walk.003", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + }, + { + "filename": "up", + "frame": { + "w": 32, + "h": 32, + "x": 32, + "y": 96 + }, + "anchor": { + "x": 0.5, + "y": 0.5 + } + } + ], + "meta": { + "description": "Atlas generado con Atlas Packer Gamma V2", + "web": "https://gammafp.github.io/atlas-packer-phaser/" + } +} \ No newline at end of file diff --git a/agentsociety/custom/maps/the_ville/map.yaml b/agentsociety/custom/maps/the_ville/map.yaml new file mode 100644 index 0000000..b6fe185 --- /dev/null +++ b/agentsociety/custom/maps/the_ville/map.yaml @@ -0,0 +1,1453 @@ +schema_version: 1 +map_id: the_ville +display_name: 维尔小镇像素地图 +localized: + en: + display_name: "The Ville Pixel Map" + zh: + display_name: "维尔小镇像素地图" +tiled_map_path: visuals/the_ville_jan7.json +tile_size: 32 +character_root: characters +default_location_order: +- home +- school +- library +- cafe +- park +- supply_store +- market +- pharmacy +- pub +- dorm +spawn_points: +- id: alice_start + location_id: park +- id: bob_start + location_id: cafe +- id: charlie_start + location_id: market +- id: guest_start + location_id: school +- id: resident_start + location_id: home +locations: +- id: home + name: 家 + localized: + en: + name: "Home" + zh: + name: "家" + aliases: + - home + - house + - apartment + - 住所 + - Isabella Rodriguez's apartment + source_address: "the Ville:Isabella Rodriguez's apartment" + anchor_tile: + x: 77 + y: 15 + interaction_ids: + - cook_meal + - eat_at_home + - sleep_at_home + - relax_at_home + - tidy_home + - read_at_home + - work_from_home + - video_call_family + - water_plants + scene_type: home + bounds: + x: 71 + y: 13 + w: 14 + h: 6 +- id: school + name: 学校教室 + localized: + en: + name: "School Classroom" + zh: + name: "学校教室" + aliases: + - school + - classroom + - 教室 + - Oak Hill College + source_address: "the Ville:Oak Hill College:classroom" + anchor_tile: + x: 111 + y: 24 + interaction_ids: + - attend_class + - teach_class + - study_after_class + - prepare_lesson + - grade_homework + - hold_office_hours + - school_meeting + scene_type: school + bounds: + x: 108 + y: 19 + w: 8 + h: 11 +- id: library + name: 学校图书馆 + localized: + en: + name: "School Library" + zh: + name: "学校图书馆" + aliases: + - library + - 图书馆 + - Oak Hill College library + source_address: "the Ville:Oak Hill College:library" + anchor_tile: + x: 122 + y: 24 + interaction_ids: + - read_book + - study_library + - research_topic + - borrow_book + - return_book + - quiet_work + scene_type: library + bounds: + x: 118 + y: 19 + w: 7 + h: 11 +- id: cafe + name: 霍布斯咖啡馆 + localized: + en: + name: "Hobbs Cafe" + zh: + name: "霍布斯咖啡馆" + aliases: + - cafe + - café + - coffee shop + - 咖啡馆 + - Hobbs Cafe + source_address: "the Ville:Hobbs Cafe:cafe" + anchor_tile: + x: 77 + y: 22 + interaction_ids: + - eat_light_meal + - chat_over_coffee + - work_cafe_shift + - order_coffee + - take_takeaway + - casual_meetup + - tidy_cafe + scene_type: cafe + bounds: + x: 72 + y: 19 + w: 12 + h: 8 +- id: park + name: 约翰逊公园 + localized: + en: + name: "Johnson Park" + zh: + name: "约翰逊公园" + aliases: + - park + - 小公园 + - 公园 + - Johnson Park + source_address: "the Ville:Johnson Park:park" + anchor_tile: + x: 28 + y: 46 + interaction_ids: + - take_walk + - meet_friend + - rest_on_bench + - coordinate_group + - morning_exercise + - bird_watch + - picnic + - public_announcement + scene_type: park + bounds: + x: 21 + y: 41 + w: 15 + h: 11 +- id: supply_store + name: 哈维橡树供给店 + localized: + en: + name: "Harvey Oak Supply Store" + zh: + name: "哈维橡树供给店" + aliases: + - supply store + - supply_store + - hardware store + - 供给店 + - 物资店 + - Harvey Oak Supply Store + source_address: "the Ville:Harvey Oak Supply Store:supply store" + anchor_tile: + x: 63 + y: 48 + interaction_ids: + - inspect_supplies + - prepare_kit + - repair_tools + - restock_shelves + - customer_service + - lend_tools + scene_type: supply_store + bounds: + x: 57 + y: 42 + w: 14 + h: 12 +- id: market + name: 柳树市场 + localized: + en: + name: "The Willows Market" + zh: + name: "柳树市场" + aliases: + - market + - shop + - store + - grocery + - 商店 + - 市场 + - The Willows Market and Pharmacy + source_address: "the Ville:The Willows Market and Pharmacy:store" + anchor_tile: + x: 84 + y: 47 + interaction_ids: + - buy_food + - work_shop_shift + - restock_vegetables + - haggle_price + - deliver_order + - chat_with_regular + scene_type: market + bounds: + x: 75 + y: 42 + w: 19 + h: 12 +- id: pharmacy + name: 柳树药房 + localized: + en: + name: "The Willows Pharmacy" + zh: + name: "柳树药房" + aliases: + - pharmacy + - 药房 + - 药店 + - medicine shelf + - The Willows Pharmacy + source_address: "the Ville:The Willows Market and Pharmacy:store" + source_object: "pharmacy store shelf" + anchor_tile: + x: 76 + y: 47 + interaction_ids: + - buy_medicine + - pharmacy_consultation + - refill_prescription + - blood_pressure_check + - organize_medicine_shelf + - home_visit_prep + scene_type: pharmacy + bounds: + x: 75 + y: 42 + w: 19 + h: 12 +- id: pub + name: 玫瑰王冠酒馆 + localized: + en: + name: "The Rose and Crown Pub" + zh: + name: "玫瑰王冠酒馆" + aliases: + - pub + - bar + - tavern + - 酒馆 + - The Rose and Crown Pub + source_address: "the Ville:The Rose and Crown Pub:pub" + anchor_tile: + x: 57 + y: 23 + interaction_ids: + - socialize_at_pub + - eat_pub_meal + - watch_match + - evening_chat + - host_event + scene_type: pub + bounds: + x: 53 + y: 20 + w: 10 + h: 7 +- id: dorm + name: 橡树山学院宿舍 + localized: + en: + name: "Oak Hill College Dormitory" + zh: + name: "橡树山学院宿舍" + aliases: + - dorm + - dormitory + - college dorm + - 宿舍 + - Dorm for Oak Hill College + source_address: "the Ville:Dorm for Oak Hill College" + anchor_tile: + x: 119 + y: 46 + interaction_ids: + - rest_at_dorm + - eat_at_dorm + - study_in_dorm + - common_room_hangout + - video_call_home + scene_type: dorm + bounds: + x: 105 + y: 31 + w: 29 + h: 32 +interactions: +- id: cook_meal + name: 做饭 + description: 在家准备一顿普通饭菜。 + localized: + en: + name: "Cook Meal" + description: "Prepare a simple meal at home." + zh: + name: "做饭" + description: "在家准备一顿普通饭菜。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里做饭" + status: active + emotion: calm + latest_event: "{agent_name} 在家准备饭菜。" +- id: eat_at_home + name: 在家吃饭 + description: 在家吃饭并恢复日常节奏。 + localized: + en: + name: "Eat at Home" + description: "Eat at home and return to the daily rhythm." + zh: + name: "在家吃饭" + description: "在家吃饭并恢复日常节奏。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里吃饭" + status: resting + emotion: content + latest_event: "{agent_name} 在家吃了一顿饭。" +- id: sleep_at_home + name: 睡觉 + description: 在家睡觉或午休。 + localized: + en: + name: "Sleep" + description: "Sleep at home or take a short nap." + zh: + name: "睡觉" + description: "在家睡觉或午休。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里睡觉" + status: resting + emotion: peaceful + latest_event: "{agent_name} 回家休息。" +- id: relax_at_home + name: 居家休息 + description: 在家休息、整理物品或做轻松活动。 + localized: + en: + name: "Relax at Home" + description: "Rest, organize belongings, or do a light activity at home." + zh: + name: "居家休息" + description: "在家休息、整理物品或做轻松活动。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在家中休息片刻。" +- id: attend_class + name: 上课 + description: 作为学生在 Oak Hill College 教室上课。 + localized: + en: + name: "Attend Class" + description: "Attend class as a student in an Oak Hill College classroom." + zh: + name: "上课" + description: "作为学生在 Oak Hill College 教室上课。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校上课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校上课。" +- id: teach_class + name: 教书 + description: 作为老师在 Oak Hill College 教室教课。 + localized: + en: + name: "Teach Class" + description: "Teach a class in an Oak Hill College classroom." + zh: + name: "教书" + description: "作为老师在 Oak Hill College 教室教课。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校教书" + status: active + emotion: focused + latest_event: "{agent_name} 在学校给学生上课。" +- id: study_after_class + name: 课后学习 + description: 在学校复习、备课或完成作业。 + localized: + en: + name: "Study After Class" + description: "Review, prepare lessons, or finish homework at school." + zh: + name: "课后学习" + description: "在学校复习、备课或完成作业。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校学习或备课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校进行课后学习。" +- id: read_book + name: 阅读 + description: 在学校图书馆阅读。 + localized: + en: + name: "Read" + description: "Read in the school library." + zh: + name: "阅读" + description: "在学校图书馆阅读。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆阅读" + status: active + emotion: calm + latest_event: "{agent_name} 在学校图书馆阅读。" +- id: study_library + name: 图书馆学习 + description: 在学校图书馆安静学习。 + localized: + en: + name: "Library Study" + description: "Study quietly in the school library." + zh: + name: "图书馆学习" + description: "在学校图书馆安静学习。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆学习" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆学习。" +- id: eat_light_meal + name: 简餐 + description: 在 Hobbs Cafe 吃一顿简餐。 + localized: + en: + name: "Light Meal" + description: "Have a simple meal at Hobbs Cafe." + zh: + name: "简餐" + description: "在 Hobbs Cafe 吃一顿简餐。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆用餐" + status: active + emotion: content + latest_event: "{agent_name} 在咖啡馆吃了点东西。" +- id: chat_over_coffee + name: 咖啡聊天 + description: 在 Hobbs Cafe 和朋友聊天。 + localized: + en: + name: "Coffee Chat" + description: "Chat with a friend at Hobbs Cafe." + zh: + name: "咖啡聊天" + description: "在 Hobbs Cafe 和朋友聊天。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆聊天" + status: socializing + emotion: warm + latest_event: "{agent_name} 在咖啡馆和朋友聊天。" + group_message: "{agent_name} 在咖啡馆说:{message}" +- id: work_cafe_shift + name: 咖啡馆值班 + description: 在 Hobbs Cafe 柜台工作。 + localized: + en: + name: "Cafe Shift" + description: "Work behind the counter at Hobbs Cafe." + zh: + name: "咖啡馆值班" + description: "在 Hobbs Cafe 柜台工作。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆值班" + status: active + emotion: focused + latest_event: "{agent_name} 在咖啡馆完成一段值班。" +- id: take_walk + name: 散步 + description: 在 Johnson Park 散步。 + localized: + en: + name: "Take a Walk" + description: "Take a walk in Johnson Park." + zh: + name: "散步" + description: "在 Johnson Park 散步。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园散步" + status: active + emotion: calm + latest_event: "{agent_name} 在公园散步。" +- id: meet_friend + name: 见朋友 + description: 在 Johnson Park 和朋友见面交流。 + localized: + en: + name: "Meet a Friend" + description: "Meet and talk with a friend in Johnson Park." + zh: + name: "见朋友" + description: "在 Johnson Park 和朋友见面交流。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园见朋友" + status: socializing + emotion: warm + latest_event: "{agent_name} 在公园和朋友碰面。" + group_message: "{agent_name} 和朋友聊到:{message}" +- id: rest_on_bench + name: 长椅休息 + description: 在 Johnson Park 长椅上短暂休息。 + localized: + en: + name: "Rest on a Bench" + description: "Rest briefly on a bench in Johnson Park." + zh: + name: "长椅休息" + description: "在 Johnson Park 长椅上短暂休息。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园长椅上休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在公园短暂休息。" +- id: coordinate_group + name: 公园碰头 + description: 在 Johnson Park 汇合并协调下一步活动。 + localized: + en: + name: "Park Meetup" + description: "Meet in Johnson Park and coordinate the next activity." + zh: + name: "公园碰头" + description: "在 Johnson Park 汇合并协调下一步活动。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园和大家碰头" + status: socializing + emotion: focused + latest_event: "{agent_name} 在公园协调了下一步安排。" + group_message: "{agent_name} 在公园说:{message}" +- id: inspect_supplies + name: 清点货架 + description: 在 Harvey Oak Supply Store 查看工具和生活物资。 + localized: + en: + name: "Inspect Supplies" + description: "Check tools and household supplies at Harvey Oak Supply Store." + zh: + name: "清点货架" + description: "在 Harvey Oak Supply Store 查看工具和生活物资。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店清点物资" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店检查了货架。" +- id: prepare_kit + name: 准备用品 + description: 在 Harvey Oak Supply Store 整理需要带走的用品。 + localized: + en: + name: "Prepare Supplies" + description: "Organize supplies to take from Harvey Oak Supply Store." + zh: + name: "准备用品" + description: "在 Harvey Oak Supply Store 整理需要带走的用品。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店整理用品" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店整理了用品。" +- id: repair_tools + name: 修理工具 + description: 在 Harvey Oak Supply Store 使用工具进行维修。 + localized: + en: + name: "Repair Tools" + description: "Use tools for repairs at Harvey Oak Supply Store." + zh: + name: "修理工具" + description: "在 Harvey Oak Supply Store 使用工具进行维修。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店修理工具" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店修理了一件工具。" +- id: buy_food + name: 买食物 + description: 在 The Willows Market 购买食物或生活用品。 + localized: + en: + name: "Buy Food" + description: "Buy food or household goods at The Willows Market." + zh: + name: "买食物" + description: "在 The Willows Market 购买食物或生活用品。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场购买食物" + status: active + emotion: calm + latest_event: "{agent_name} 在市场补充生活用品。" +- id: work_shop_shift + name: 店铺值班 + description: 在 The Willows Market 店铺工作。 + localized: + en: + name: "Shop Shift" + description: "Work a shop shift at The Willows Market." + zh: + name: "店铺值班" + description: "在 The Willows Market 店铺工作。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场店铺值班" + status: active + emotion: focused + latest_event: "{agent_name} 在市场完成一段工作。" +- id: buy_medicine + name: 买药 + description: 在 The Willows Pharmacy 购买药品。 + localized: + en: + name: "Buy Medicine" + description: "Buy medicine at The Willows Pharmacy." + zh: + name: "买药" + description: "在 The Willows Pharmacy 购买药品。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房买药" + status: active + emotion: calm + latest_event: "{agent_name} 在药房购买了药品。" +- id: pharmacy_consultation + name: 药房咨询 + description: 在 The Willows Pharmacy 咨询药品或健康问题。 + localized: + en: + name: "Pharmacy Consultation" + description: "Ask about medicine or health concerns at The Willows Pharmacy." + zh: + name: "药房咨询" + description: "在 The Willows Pharmacy 咨询药品或健康问题。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房咨询" + status: active + emotion: hopeful + latest_event: "{agent_name} 在药房完成了一次咨询。" +- id: socialize_at_pub + name: 酒馆社交 + description: 在 The Rose and Crown Pub 和熟人聊天。 + localized: + en: + name: "Pub Socializing" + description: "Chat with acquaintances at The Rose and Crown Pub." + zh: + name: "酒馆社交" + description: "在 The Rose and Crown Pub 和熟人聊天。" + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆社交" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆和熟人聊天。" + group_message: "{agent_name} 在酒馆说:{message}" +- id: eat_pub_meal + name: 酒馆用餐 + description: 在 The Rose and Crown Pub 吃饭。 + localized: + en: + name: "Pub Meal" + description: "Eat a meal at The Rose and Crown Pub." + zh: + name: "酒馆用餐" + description: "在 The Rose and Crown Pub 吃饭。" + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆用餐" + status: active + emotion: content + latest_event: "{agent_name} 在酒馆吃了一顿饭。" +- id: rest_at_dorm + name: 宿舍休息 + description: 在 Oak Hill College 宿舍休息。 + localized: + en: + name: "Dorm Rest" + description: "Rest at the Oak Hill College dormitory." + zh: + name: "宿舍休息" + description: "在 Oak Hill College 宿舍休息。" + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在宿舍休息。" +- id: eat_at_dorm + name: 宿舍用餐 + description: 在 Oak Hill College 宿舍吃饭。 + localized: + en: + name: "Dorm Meal" + description: "Eat at the Oak Hill College dormitory." + zh: + name: "宿舍用餐" + description: "在 Oak Hill College 宿舍吃饭。" + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍用餐" + status: active + emotion: content + latest_event: "{agent_name} 在宿舍吃饭。" +- id: tidy_home + name: 整理家务 + description: 在家收拾房间或整理物品。 + localized: + en: + name: "Tidy Home" + description: "Clean the room or organize belongings at home." + zh: + name: "整理家务" + description: "在家收拾房间或整理物品。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中收拾" + status: active + emotion: calm + latest_event: "{agent_name} 在家中整理了一下。" +- id: read_at_home + name: 在家阅读 + description: 在家中翻一本书或杂志。 + localized: + en: + name: "Read at Home" + description: "Read a book or magazine at home." + zh: + name: "在家阅读" + description: "在家中翻一本书或杂志。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中翻书" + status: resting + emotion: focused + latest_event: "{agent_name} 在家中读了一会儿书。" +- id: work_from_home + name: 居家办公 + description: 在家中远程处理工作。 + localized: + en: + name: "Work from Home" + description: "Handle remote work from home." + zh: + name: "居家办公" + description: "在家中远程处理工作。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中远程办公" + status: active + emotion: focused + latest_event: "{agent_name} 在家中继续远程工作。" +- id: video_call_family + name: 视频家人 + description: 在家中和家人视频通话。 + localized: + en: + name: "Video Call Family" + description: "Have a video call with family at home." + zh: + name: "视频家人" + description: "在家中和家人视频通话。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中和家人视频" + status: socializing + emotion: warm + latest_event: "{agent_name} 在家中和家人通了视频。" +- id: water_plants + name: 浇花 + description: 在家给花草浇水或修剪。 + localized: + en: + name: "Water Plants" + description: "Water or trim plants at home." + zh: + name: "浇花" + description: "在家给花草浇水或修剪。" + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中浇花" + status: active + emotion: calm + latest_event: "{agent_name} 在家中浇了一遍花。" +- id: prepare_lesson + name: 备课 + description: 在学校教室准备课程材料。 + localized: + en: + name: "Prepare Lesson" + description: "Prepare course materials in the school classroom." + zh: + name: "备课" + description: "在学校教室准备课程材料。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校备课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校完成了一段备课。" +- id: grade_homework + name: 批改作业 + description: 在学校教室或办公室批改学生作业。 + localized: + en: + name: "Grade Homework" + description: "Grade student assignments in the classroom or office." + zh: + name: "批改作业" + description: "在学校教室或办公室批改学生作业。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校批改作业" + status: active + emotion: focused + latest_event: "{agent_name} 在学校批改了一批作业。" +- id: hold_office_hours + name: 课后答疑 + description: 在学校接待学生答疑或谈话。 + localized: + en: + name: "Office Hours" + description: "Receive students for questions or conversation at school." + zh: + name: "课后答疑" + description: "在学校接待学生答疑或谈话。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校进行课后答疑" + status: socializing + emotion: warm + latest_event: "{agent_name} 在学校接待了一位学生答疑。" +- id: school_meeting + name: 教研例会 + description: 在学校参加教研或行政例会。 + localized: + en: + name: "School Meeting" + description: "Attend a teaching or administrative meeting at school." + zh: + name: "教研例会" + description: "在学校参加教研或行政例会。" + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校参加例会" + status: active + emotion: focused + latest_event: "{agent_name} 在学校参加了一次例会。" +- id: research_topic + name: 资料查阅 + description: 在学校图书馆查找资料。 + localized: + en: + name: "Research Materials" + description: "Look up research materials in the school library." + zh: + name: "资料查阅" + description: "在学校图书馆查找资料。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆查资料" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆完成了一段资料查阅。" +- id: borrow_book + name: 借书 + description: 在图书馆办理借书手续。 + localized: + en: + name: "Borrow Book" + description: "Borrow a book from the library." + zh: + name: "借书" + description: "在图书馆办理借书手续。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆借书" + status: active + emotion: calm + latest_event: "{agent_name} 在图书馆借了一本书。" +- id: return_book + name: 还书 + description: 在图书馆归还借出的书籍。 + localized: + en: + name: "Return Book" + description: "Return a borrowed book to the library." + zh: + name: "还书" + description: "在图书馆归还借出的书籍。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆还书" + status: active + emotion: calm + latest_event: "{agent_name} 在图书馆把书还了。" +- id: quiet_work + name: 安静办公 + description: 在图书馆安静地进行个人办公。 + localized: + en: + name: "Quiet Work" + description: "Work quietly on personal tasks in the library." + zh: + name: "安静办公" + description: "在图书馆安静地进行个人办公。" + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆安静办公" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆完成了一段安静办公。" +- id: order_coffee + name: 点咖啡 + description: 在 Hobbs Cafe 点一杯咖啡。 + localized: + en: + name: "Order Coffee" + description: "Order a cup of coffee at Hobbs Cafe." + zh: + name: "点咖啡" + description: "在 Hobbs Cafe 点一杯咖啡。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆点单" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆点了一杯咖啡。" +- id: take_takeaway + name: 外带 + description: 在 Hobbs Cafe 打包外带饮品或简餐。 + localized: + en: + name: "Takeaway" + description: "Pack drinks or a light meal to go from Hobbs Cafe." + zh: + name: "外带" + description: "在 Hobbs Cafe 打包外带饮品或简餐。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆打包外带" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆打包外带。" +- id: casual_meetup + name: 随性碰头 + description: 在 Hobbs Cafe 和熟人临时碰个面。 + localized: + en: + name: "Casual Meetup" + description: "Meet an acquaintance casually at Hobbs Cafe." + zh: + name: "随性碰头" + description: "在 Hobbs Cafe 和熟人临时碰个面。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆和熟人碰头" + status: socializing + emotion: warm + latest_event: "{agent_name} 在咖啡馆和熟人随性见了一面。" + group_message: "{agent_name} 在咖啡馆顺口说:{message}" +- id: tidy_cafe + name: 整理咖啡馆 + description: 在 Hobbs Cafe 整理桌椅、补水或清洁吧台。 + localized: + en: + name: "Tidy Cafe" + description: "Arrange tables, refill water, or clean the counter at Hobbs Cafe." + zh: + name: "整理咖啡馆" + description: "在 Hobbs Cafe 整理桌椅、补水或清洁吧台。" + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆整理桌椅" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆做了一次清整。" +- id: morning_exercise + name: 晨练 + description: 在 Johnson Park 晨练或拉伸。 + localized: + en: + name: "Morning Exercise" + description: "Exercise or stretch in Johnson Park." + zh: + name: "晨练" + description: "在 Johnson Park 晨练或拉伸。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园晨练" + status: active + emotion: focused + latest_event: "{agent_name} 在公园做了一段晨练。" +- id: bird_watch + name: 观鸟 + description: 在 Johnson Park 安静看树上的鸟。 + localized: + en: + name: "Bird Watching" + description: "Quietly watch birds in the trees at Johnson Park." + zh: + name: "观鸟" + description: "在 Johnson Park 安静看树上的鸟。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园观鸟" + status: resting + emotion: peaceful + latest_event: "{agent_name} 在公园看了一会儿鸟。" +- id: picnic + name: 简单野餐 + description: 在 Johnson Park 草地上简单野餐或吃便当。 + localized: + en: + name: "Simple Picnic" + description: "Have a simple picnic or boxed meal on the grass in Johnson Park." + zh: + name: "简单野餐" + description: "在 Johnson Park 草地上简单野餐或吃便当。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园简单野餐" + status: socializing + emotion: warm + latest_event: "{agent_name} 在公园进行了一次简单野餐。" +- id: public_announcement + name: 公共播报 + description: 在 Johnson Park 向群组发布公共公告或提醒。 + localized: + en: + name: "Public Announcement" + description: "Post a public notice or reminder to the group from Johnson Park." + zh: + name: "公共播报" + description: "在 Johnson Park 向群组发布公共公告或提醒。" + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园发布一条公共公告" + status: socializing + emotion: focused + latest_event: "{agent_name} 在公园发出了一条公共公告。" + group_message: "{agent_name} 在公园通知大家:{message}" +- id: restock_shelves + name: 上货 + description: 在 Harvey Oak Supply Store 给货架上货。 + localized: + en: + name: "Restock Shelves" + description: "Restock shelves at Harvey Oak Supply Store." + zh: + name: "上货" + description: "在 Harvey Oak Supply Store 给货架上货。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店上货" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店补了一批货。" +- id: customer_service + name: 顾客接待 + description: 在 Harvey Oak Supply Store 接待来店顾客。 + localized: + en: + name: "Customer Service" + description: "Receive customers at Harvey Oak Supply Store." + zh: + name: "顾客接待" + description: "在 Harvey Oak Supply Store 接待来店顾客。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店接待顾客" + status: socializing + emotion: warm + latest_event: "{agent_name} 在供给店接待了一位顾客。" +- id: lend_tools + name: 借出工具 + description: 在 Harvey Oak Supply Store 借出工具给熟客或邻居。 + localized: + en: + name: "Lend Tools" + description: "Lend tools to regular customers or neighbors at Harvey Oak Supply Store." + zh: + name: "借出工具" + description: "在 Harvey Oak Supply Store 借出工具给熟客或邻居。" + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店借出工具" + status: active + emotion: calm + latest_event: "{agent_name} 在供给店借出了一件工具。" +- id: restock_vegetables + name: 蔬果补货 + description: 在 The Willows Market 给蔬果摊补货。 + localized: + en: + name: "Restock Produce" + description: "Restock the produce stand at The Willows Market." + zh: + name: "蔬果补货" + description: "在 The Willows Market 给蔬果摊补货。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场补蔬果" + status: active + emotion: focused + latest_event: "{agent_name} 在市场补了一批蔬果。" +- id: haggle_price + name: 议价 + description: 在 The Willows Market 和顾客议价。 + localized: + en: + name: "Haggle Price" + description: "Negotiate prices with customers at The Willows Market." + zh: + name: "议价" + description: "在 The Willows Market 和顾客议价。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场和顾客议价" + status: active + emotion: focused + latest_event: "{agent_name} 在市场和顾客达成了价格。" +- id: deliver_order + name: 送单 + description: 在 The Willows Market 给附近邻居送一单。 + localized: + en: + name: "Deliver Order" + description: "Deliver an order to a nearby neighbor from The Willows Market." + zh: + name: "送单" + description: "在 The Willows Market 给附近邻居送一单。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场送一单" + status: active + emotion: focused + latest_event: "{agent_name} 在市场送出了一单。" +- id: chat_with_regular + name: 和老客闲聊 + description: 在 The Willows Market 和老顾客寒暄。 + localized: + en: + name: "Chat with Regulars" + description: "Exchange greetings with regular customers at The Willows Market." + zh: + name: "和老客闲聊" + description: "在 The Willows Market 和老顾客寒暄。" + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场和老客寒暄" + status: socializing + emotion: warm + latest_event: "{agent_name} 在市场和老客聊了两句。" +- id: refill_prescription + name: 续方 + description: 在 The Willows Pharmacy 为居民办理处方续方。 + localized: + en: + name: "Refill Prescription" + description: "Refill a prescription for a resident at The Willows Pharmacy." + zh: + name: "续方" + description: "在 The Willows Pharmacy 为居民办理处方续方。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房办理续方" + status: active + emotion: calm + latest_event: "{agent_name} 在药房完成了一次续方。" +- id: blood_pressure_check + name: 量血压 + description: 在 The Willows Pharmacy 为居民量血压并记录。 + localized: + en: + name: "Blood Pressure Check" + description: "Check and record a resident's blood pressure at The Willows Pharmacy." + zh: + name: "量血压" + description: "在 The Willows Pharmacy 为居民量血压并记录。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房量血压" + status: active + emotion: calm + latest_event: "{agent_name} 在药房量了一次血压。" +- id: organize_medicine_shelf + name: 整理药架 + description: 在 The Willows Pharmacy 整理药品和过期排查。 + localized: + en: + name: "Organize Medicine Shelf" + description: "Organize medicines and check expiration dates at The Willows Pharmacy." + zh: + name: "整理药架" + description: "在 The Willows Pharmacy 整理药品和过期排查。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房整理药架" + status: active + emotion: focused + latest_event: "{agent_name} 在药房完成了一次药架整理。" +- id: home_visit_prep + name: 上门准备 + description: 在 The Willows Pharmacy 整理上门随访需要带的用品。 + localized: + en: + name: "Home Visit Prep" + description: "Prepare supplies for a home follow-up visit at The Willows Pharmacy." + zh: + name: "上门准备" + description: "在 The Willows Pharmacy 整理上门随访需要带的用品。" + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房整理上门用品" + status: active + emotion: focused + latest_event: "{agent_name} 在药房准备好了上门用品。" +- id: watch_match + name: 看比赛 + description: 在 The Rose and Crown Pub 看一场比赛转播。 + localized: + en: + name: "Watch Match" + description: "Watch a sports broadcast at The Rose and Crown Pub." + zh: + name: "看比赛" + description: "在 The Rose and Crown Pub 看一场比赛转播。" + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆看比赛" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆看了一段比赛。" +- id: evening_chat + name: 晚间闲聊 + description: 在 The Rose and Crown Pub 和熟人晚间闲聊。 + localized: + en: + name: "Evening Chat" + description: "Chat with acquaintances in the evening at The Rose and Crown Pub." + zh: + name: "晚间闲聊" + description: "在 The Rose and Crown Pub 和熟人晚间闲聊。" + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆和熟人闲聊" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆和熟人聊了一会儿。" + group_message: "{agent_name} 在酒馆顺口说:{message}" +- id: host_event + name: 主持小活动 + description: 在 The Rose and Crown Pub 张罗一个小型活动。 + localized: + en: + name: "Host Small Event" + description: "Organize a small event at The Rose and Crown Pub." + zh: + name: "主持小活动" + description: "在 The Rose and Crown Pub 张罗一个小型活动。" + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆张罗一个小活动" + status: socializing + emotion: focused + latest_event: "{agent_name} 在酒馆张罗了一次小活动。" + group_message: "{agent_name} 在酒馆张罗:{message}" +- id: study_in_dorm + name: 宿舍自习 + description: 在 Oak Hill College 宿舍安静自习。 + localized: + en: + name: "Dorm Study" + description: "Study quietly at the Oak Hill College dormitory." + zh: + name: "宿舍自习" + description: "在 Oak Hill College 宿舍安静自习。" + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍自习" + status: active + emotion: focused + latest_event: "{agent_name} 在宿舍完成了一段自习。" +- id: common_room_hangout + name: 公共区休闲 + description: 在 Oak Hill College 宿舍公共区和同学休闲。 + localized: + en: + name: "Common Room Hangout" + description: "Relax with classmates in the dormitory common room." + zh: + name: "公共区休闲" + description: "在 Oak Hill College 宿舍公共区和同学休闲。" + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍公共区休闲" + status: socializing + emotion: warm + latest_event: "{agent_name} 在宿舍公共区和同学打了招呼。" +- id: video_call_home + name: 视频家里 + description: 在 Oak Hill College 宿舍和家人视频。 + localized: + en: + name: "Video Call Home" + description: "Video call family from the Oak Hill College dormitory." + zh: + name: "视频家里" + description: "在 Oak Hill College 宿舍和家人视频。" + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍和家人视频" + status: socializing + emotion: warm + latest_event: "{agent_name} 在宿舍和家人通了视频。" diff --git a/agentsociety/custom/maps/the_ville/town.yaml b/agentsociety/custom/maps/the_ville/town.yaml new file mode 100644 index 0000000..21b9f5f --- /dev/null +++ b/agentsociety/custom/maps/the_ville/town.yaml @@ -0,0 +1,943 @@ +schema_version: 1 +map_id: the_ville +display_name: The Ville Pixel Town +tiled_map_path: visuals/the_ville_jan7.json +tile_size: 32 +character_root: characters +default_location_order: +- home +- school +- library +- cafe +- park +- supply_store +- market +- pharmacy +- pub +- dorm +spawn_points: +- id: alice_start + location_id: park +- id: bob_start + location_id: cafe +- id: charlie_start + location_id: market +- id: guest_start + location_id: school +- id: resident_start + location_id: home +locations: +- id: home + name: 家 + aliases: + - home + - house + - apartment + - 住所 + - Isabella Rodriguez's apartment + source_address: "the Ville:Isabella Rodriguez's apartment" + anchor_tile: + x: 77 + y: 15 + interaction_ids: + - cook_meal + - eat_at_home + - sleep_at_home + - relax_at_home + - tidy_home + - read_at_home + - work_from_home + - video_call_family + - water_plants + scene_type: home + bounds: + x: 71 + y: 13 + w: 14 + h: 6 +- id: school + name: 学校教室 + aliases: + - school + - classroom + - 教室 + - Oak Hill College + source_address: "the Ville:Oak Hill College:classroom" + anchor_tile: + x: 111 + y: 24 + interaction_ids: + - attend_class + - teach_class + - study_after_class + - prepare_lesson + - grade_homework + - hold_office_hours + - school_meeting + scene_type: school + bounds: + x: 108 + y: 19 + w: 8 + h: 11 +- id: library + name: 学校图书馆 + aliases: + - library + - 图书馆 + - Oak Hill College library + source_address: "the Ville:Oak Hill College:library" + anchor_tile: + x: 122 + y: 24 + interaction_ids: + - read_book + - study_library + - research_topic + - borrow_book + - return_book + - quiet_work + scene_type: library + bounds: + x: 118 + y: 19 + w: 7 + h: 11 +- id: cafe + name: Hobbs Cafe 咖啡馆 + aliases: + - cafe + - café + - coffee shop + - 咖啡馆 + - Hobbs Cafe + source_address: "the Ville:Hobbs Cafe:cafe" + anchor_tile: + x: 77 + y: 22 + interaction_ids: + - eat_light_meal + - chat_over_coffee + - work_cafe_shift + - order_coffee + - take_takeaway + - casual_meetup + - tidy_cafe + scene_type: cafe + bounds: + x: 72 + y: 19 + w: 12 + h: 8 +- id: park + name: Johnson Park 公园 + aliases: + - park + - 小公园 + - 公园 + - Johnson Park + source_address: "the Ville:Johnson Park:park" + anchor_tile: + x: 28 + y: 46 + interaction_ids: + - take_walk + - meet_friend + - rest_on_bench + - coordinate_group + - morning_exercise + - bird_watch + - picnic + - public_announcement + scene_type: park + bounds: + x: 21 + y: 41 + w: 15 + h: 11 +- id: supply_store + name: Harvey Oak Supply Store 供给店 + aliases: + - supply store + - supply_store + - hardware store + - 供给店 + - 物资店 + - Harvey Oak Supply Store + source_address: "the Ville:Harvey Oak Supply Store:supply store" + anchor_tile: + x: 63 + y: 48 + interaction_ids: + - inspect_supplies + - prepare_kit + - repair_tools + - restock_shelves + - customer_service + - lend_tools + scene_type: supply_store + bounds: + x: 57 + y: 42 + w: 14 + h: 12 +- id: market + name: The Willows Market 商店 + aliases: + - market + - shop + - store + - grocery + - 商店 + - 市场 + - The Willows Market and Pharmacy + source_address: "the Ville:The Willows Market and Pharmacy:store" + anchor_tile: + x: 84 + y: 47 + interaction_ids: + - buy_food + - work_shop_shift + - restock_vegetables + - haggle_price + - deliver_order + - chat_with_regular + scene_type: market + bounds: + x: 75 + y: 42 + w: 19 + h: 12 +- id: pharmacy + name: The Willows Pharmacy 药房 + aliases: + - pharmacy + - 药房 + - 药店 + - medicine shelf + - The Willows Pharmacy + source_address: "the Ville:The Willows Market and Pharmacy:store" + source_object: "pharmacy store shelf" + anchor_tile: + x: 76 + y: 47 + interaction_ids: + - buy_medicine + - pharmacy_consultation + - refill_prescription + - blood_pressure_check + - organize_medicine_shelf + - home_visit_prep + scene_type: pharmacy + bounds: + x: 75 + y: 42 + w: 19 + h: 12 +- id: pub + name: The Rose and Crown Pub 酒馆 + aliases: + - pub + - bar + - tavern + - 酒馆 + - The Rose and Crown Pub + source_address: "the Ville:The Rose and Crown Pub:pub" + anchor_tile: + x: 57 + y: 23 + interaction_ids: + - socialize_at_pub + - eat_pub_meal + - watch_match + - evening_chat + - host_event + scene_type: pub + bounds: + x: 53 + y: 20 + w: 10 + h: 7 +- id: dorm + name: Oak Hill College 宿舍 + aliases: + - dorm + - dormitory + - college dorm + - 宿舍 + - Dorm for Oak Hill College + source_address: "the Ville:Dorm for Oak Hill College" + anchor_tile: + x: 119 + y: 46 + interaction_ids: + - rest_at_dorm + - eat_at_dorm + - study_in_dorm + - common_room_hangout + - video_call_home + scene_type: dorm + bounds: + x: 105 + y: 31 + w: 29 + h: 32 +interactions: +- id: cook_meal + name: 做饭 + description: 在家准备一顿普通饭菜。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里做饭" + status: active + emotion: calm + latest_event: "{agent_name} 在家准备饭菜。" +- id: eat_at_home + name: 在家吃饭 + description: 在家吃饭并恢复日常节奏。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里吃饭" + status: resting + emotion: content + latest_event: "{agent_name} 在家吃了一顿饭。" +- id: sleep_at_home + name: 睡觉 + description: 在家睡觉或午休。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家里睡觉" + status: resting + emotion: peaceful + latest_event: "{agent_name} 回家休息。" +- id: relax_at_home + name: 居家休息 + description: 在家休息、整理物品或做轻松活动。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在家中休息片刻。" +- id: attend_class + name: 上课 + description: 作为学生在 Oak Hill College 教室上课。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校上课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校上课。" +- id: teach_class + name: 教书 + description: 作为老师在 Oak Hill College 教室教课。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校教书" + status: active + emotion: focused + latest_event: "{agent_name} 在学校给学生上课。" +- id: study_after_class + name: 课后学习 + description: 在学校复习、备课或完成作业。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校学习或备课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校进行课后学习。" +- id: read_book + name: 阅读 + description: 在学校图书馆阅读。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆阅读" + status: active + emotion: calm + latest_event: "{agent_name} 在学校图书馆阅读。" +- id: study_library + name: 图书馆学习 + description: 在学校图书馆安静学习。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆学习" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆学习。" +- id: eat_light_meal + name: 简餐 + description: 在 Hobbs Cafe 吃一顿简餐。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆用餐" + status: active + emotion: content + latest_event: "{agent_name} 在咖啡馆吃了点东西。" +- id: chat_over_coffee + name: 咖啡聊天 + description: 在 Hobbs Cafe 和朋友聊天。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆聊天" + status: socializing + emotion: warm + latest_event: "{agent_name} 在咖啡馆和朋友聊天。" + group_message: "{agent_name} 在咖啡馆说:{message}" +- id: work_cafe_shift + name: 咖啡馆值班 + description: 在 Hobbs Cafe 柜台工作。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆值班" + status: active + emotion: focused + latest_event: "{agent_name} 在咖啡馆完成一段值班。" +- id: take_walk + name: 散步 + description: 在 Johnson Park 散步。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园散步" + status: active + emotion: calm + latest_event: "{agent_name} 在公园散步。" +- id: meet_friend + name: 见朋友 + description: 在 Johnson Park 和朋友见面交流。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园见朋友" + status: socializing + emotion: warm + latest_event: "{agent_name} 在公园和朋友碰面。" + group_message: "{agent_name} 和朋友聊到:{message}" +- id: rest_on_bench + name: 长椅休息 + description: 在 Johnson Park 长椅上短暂休息。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园长椅上休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在公园短暂休息。" +- id: coordinate_group + name: 公园碰头 + description: 在 Johnson Park 汇合并协调下一步活动。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园和大家碰头" + status: socializing + emotion: focused + latest_event: "{agent_name} 在公园协调了下一步安排。" + group_message: "{agent_name} 在公园说:{message}" +- id: inspect_supplies + name: 清点货架 + description: 在 Harvey Oak Supply Store 查看工具和生活物资。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店清点物资" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店检查了货架。" +- id: prepare_kit + name: 准备用品 + description: 在 Harvey Oak Supply Store 整理需要带走的用品。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店整理用品" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店整理了用品。" +- id: repair_tools + name: 修理工具 + description: 在 Harvey Oak Supply Store 使用工具进行维修。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店修理工具" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店修理了一件工具。" +- id: buy_food + name: 买食物 + description: 在 The Willows Market 购买食物或生活用品。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场购买食物" + status: active + emotion: calm + latest_event: "{agent_name} 在市场补充生活用品。" +- id: work_shop_shift + name: 店铺值班 + description: 在 The Willows Market 店铺工作。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场店铺值班" + status: active + emotion: focused + latest_event: "{agent_name} 在市场完成一段工作。" +- id: buy_medicine + name: 买药 + description: 在 The Willows Pharmacy 购买药品。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房买药" + status: active + emotion: calm + latest_event: "{agent_name} 在药房购买了药品。" +- id: pharmacy_consultation + name: 药房咨询 + description: 在 The Willows Pharmacy 咨询药品或健康问题。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房咨询" + status: active + emotion: hopeful + latest_event: "{agent_name} 在药房完成了一次咨询。" +- id: socialize_at_pub + name: 酒馆社交 + description: 在 The Rose and Crown Pub 和熟人聊天。 + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆社交" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆和熟人聊天。" + group_message: "{agent_name} 在酒馆说:{message}" +- id: eat_pub_meal + name: 酒馆用餐 + description: 在 The Rose and Crown Pub 吃饭。 + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆用餐" + status: active + emotion: content + latest_event: "{agent_name} 在酒馆吃了一顿饭。" +- id: rest_at_dorm + name: 宿舍休息 + description: 在 Oak Hill College 宿舍休息。 + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍休息" + status: resting + emotion: calm + latest_event: "{agent_name} 在宿舍休息。" +- id: eat_at_dorm + name: 宿舍用餐 + description: 在 Oak Hill College 宿舍吃饭。 + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍用餐" + status: active + emotion: content + latest_event: "{agent_name} 在宿舍吃饭。" +- id: tidy_home + name: 整理家务 + description: 在家收拾房间或整理物品。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中收拾" + status: active + emotion: calm + latest_event: "{agent_name} 在家中整理了一下。" +- id: read_at_home + name: 在家阅读 + description: 在家中翻一本书或杂志。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中翻书" + status: resting + emotion: focused + latest_event: "{agent_name} 在家中读了一会儿书。" +- id: work_from_home + name: 居家办公 + description: 在家中远程处理工作。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中远程办公" + status: active + emotion: focused + latest_event: "{agent_name} 在家中继续远程工作。" +- id: video_call_family + name: 视频家人 + description: 在家中和家人视频通话。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中和家人视频" + status: socializing + emotion: warm + latest_event: "{agent_name} 在家中和家人通了视频。" +- id: water_plants + name: 浇花 + description: 在家给花草浇水或修剪。 + allowed_location_ids: + - home + effects: + action: "{agent_name} 正在家中浇花" + status: active + emotion: calm + latest_event: "{agent_name} 在家中浇了一遍花。" +- id: prepare_lesson + name: 备课 + description: 在学校教室准备课程材料。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校备课" + status: active + emotion: focused + latest_event: "{agent_name} 在学校完成了一段备课。" +- id: grade_homework + name: 批改作业 + description: 在学校教室或办公室批改学生作业。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校批改作业" + status: active + emotion: focused + latest_event: "{agent_name} 在学校批改了一批作业。" +- id: hold_office_hours + name: 课后答疑 + description: 在学校接待学生答疑或谈话。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校进行课后答疑" + status: socializing + emotion: warm + latest_event: "{agent_name} 在学校接待了一位学生答疑。" +- id: school_meeting + name: 教研例会 + description: 在学校参加教研或行政例会。 + allowed_location_ids: + - school + effects: + action: "{agent_name} 正在学校参加例会" + status: active + emotion: focused + latest_event: "{agent_name} 在学校参加了一次例会。" +- id: research_topic + name: 资料查阅 + description: 在学校图书馆查找资料。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆查资料" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆完成了一段资料查阅。" +- id: borrow_book + name: 借书 + description: 在图书馆办理借书手续。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆借书" + status: active + emotion: calm + latest_event: "{agent_name} 在图书馆借了一本书。" +- id: return_book + name: 还书 + description: 在图书馆归还借出的书籍。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆还书" + status: active + emotion: calm + latest_event: "{agent_name} 在图书馆把书还了。" +- id: quiet_work + name: 安静办公 + description: 在图书馆安静地进行个人办公。 + allowed_location_ids: + - library + effects: + action: "{agent_name} 正在图书馆安静办公" + status: active + emotion: focused + latest_event: "{agent_name} 在图书馆完成了一段安静办公。" +- id: order_coffee + name: 点咖啡 + description: 在 Hobbs Cafe 点一杯咖啡。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆点单" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆点了一杯咖啡。" +- id: take_takeaway + name: 外带 + description: 在 Hobbs Cafe 打包外带饮品或简餐。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆打包外带" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆打包外带。" +- id: casual_meetup + name: 随性碰头 + description: 在 Hobbs Cafe 和熟人临时碰个面。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆和熟人碰头" + status: socializing + emotion: warm + latest_event: "{agent_name} 在咖啡馆和熟人随性见了一面。" + group_message: "{agent_name} 在咖啡馆顺口说:{message}" +- id: tidy_cafe + name: 整理咖啡馆 + description: 在 Hobbs Cafe 整理桌椅、补水或清洁吧台。 + allowed_location_ids: + - cafe + effects: + action: "{agent_name} 正在咖啡馆整理桌椅" + status: active + emotion: calm + latest_event: "{agent_name} 在咖啡馆做了一次清整。" +- id: morning_exercise + name: 晨练 + description: 在 Johnson Park 晨练或拉伸。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园晨练" + status: active + emotion: focused + latest_event: "{agent_name} 在公园做了一段晨练。" +- id: bird_watch + name: 观鸟 + description: 在 Johnson Park 安静看树上的鸟。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园观鸟" + status: resting + emotion: peaceful + latest_event: "{agent_name} 在公园看了一会儿鸟。" +- id: picnic + name: 简单野餐 + description: 在 Johnson Park 草地上简单野餐或吃便当。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园简单野餐" + status: socializing + emotion: warm + latest_event: "{agent_name} 在公园进行了一次简单野餐。" +- id: public_announcement + name: 公共播报 + description: 在 Johnson Park 向群组发布公共公告或提醒。 + allowed_location_ids: + - park + effects: + action: "{agent_name} 正在公园发布一条公共公告" + status: socializing + emotion: focused + latest_event: "{agent_name} 在公园发出了一条公共公告。" + group_message: "{agent_name} 在公园通知大家:{message}" +- id: restock_shelves + name: 上货 + description: 在 Harvey Oak Supply Store 给货架上货。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店上货" + status: active + emotion: focused + latest_event: "{agent_name} 在供给店补了一批货。" +- id: customer_service + name: 顾客接待 + description: 在 Harvey Oak Supply Store 接待来店顾客。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店接待顾客" + status: socializing + emotion: warm + latest_event: "{agent_name} 在供给店接待了一位顾客。" +- id: lend_tools + name: 借出工具 + description: 在 Harvey Oak Supply Store 借出工具给熟客或邻居。 + allowed_location_ids: + - supply_store + effects: + action: "{agent_name} 正在供给店借出工具" + status: active + emotion: calm + latest_event: "{agent_name} 在供给店借出了一件工具。" +- id: restock_vegetables + name: 蔬果补货 + description: 在 The Willows Market 给蔬果摊补货。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场补蔬果" + status: active + emotion: focused + latest_event: "{agent_name} 在市场补了一批蔬果。" +- id: haggle_price + name: 议价 + description: 在 The Willows Market 和顾客议价。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场和顾客议价" + status: active + emotion: focused + latest_event: "{agent_name} 在市场和顾客达成了价格。" +- id: deliver_order + name: 送单 + description: 在 The Willows Market 给附近邻居送一单。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场送一单" + status: active + emotion: focused + latest_event: "{agent_name} 在市场送出了一单。" +- id: chat_with_regular + name: 和老客闲聊 + description: 在 The Willows Market 和老顾客寒暄。 + allowed_location_ids: + - market + effects: + action: "{agent_name} 正在市场和老客寒暄" + status: socializing + emotion: warm + latest_event: "{agent_name} 在市场和老客聊了两句。" +- id: refill_prescription + name: 续方 + description: 在 The Willows Pharmacy 为居民办理处方续方。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房办理续方" + status: active + emotion: calm + latest_event: "{agent_name} 在药房完成了一次续方。" +- id: blood_pressure_check + name: 量血压 + description: 在 The Willows Pharmacy 为居民量血压并记录。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房量血压" + status: active + emotion: calm + latest_event: "{agent_name} 在药房量了一次血压。" +- id: organize_medicine_shelf + name: 整理药架 + description: 在 The Willows Pharmacy 整理药品和过期排查。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房整理药架" + status: active + emotion: focused + latest_event: "{agent_name} 在药房完成了一次药架整理。" +- id: home_visit_prep + name: 上门准备 + description: 在 The Willows Pharmacy 整理上门随访需要带的用品。 + allowed_location_ids: + - pharmacy + effects: + action: "{agent_name} 正在药房整理上门用品" + status: active + emotion: focused + latest_event: "{agent_name} 在药房准备好了上门用品。" +- id: watch_match + name: 看比赛 + description: 在 The Rose and Crown Pub 看一场比赛转播。 + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆看比赛" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆看了一段比赛。" +- id: evening_chat + name: 晚间闲聊 + description: 在 The Rose and Crown Pub 和熟人晚间闲聊。 + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆和熟人闲聊" + status: socializing + emotion: warm + latest_event: "{agent_name} 在酒馆和熟人聊了一会儿。" + group_message: "{agent_name} 在酒馆顺口说:{message}" +- id: host_event + name: 主持小活动 + description: 在 The Rose and Crown Pub 张罗一个小型活动。 + allowed_location_ids: + - pub + effects: + action: "{agent_name} 正在酒馆张罗一个小活动" + status: socializing + emotion: focused + latest_event: "{agent_name} 在酒馆张罗了一次小活动。" + group_message: "{agent_name} 在酒馆张罗:{message}" +- id: study_in_dorm + name: 宿舍自习 + description: 在 Oak Hill College 宿舍安静自习。 + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍自习" + status: active + emotion: focused + latest_event: "{agent_name} 在宿舍完成了一段自习。" +- id: common_room_hangout + name: 公共区休闲 + description: 在 Oak Hill College 宿舍公共区和同学休闲。 + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍公共区休闲" + status: socializing + emotion: warm + latest_event: "{agent_name} 在宿舍公共区和同学打了招呼。" +- id: video_call_home + name: 视频家里 + description: 在 Oak Hill College 宿舍和家人视频。 + allowed_location_ids: + - dorm + effects: + action: "{agent_name} 正在宿舍和家人视频" + status: socializing + emotion: warm + latest_event: "{agent_name} 在宿舍和家人通了视频。" diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_1.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_1.png new file mode 100644 index 0000000..ebda833 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_1.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_2.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_2.png new file mode 100644 index 0000000..b5dd5a6 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_2.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_3.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_3.png new file mode 100644 index 0000000..419bfb7 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/blocks/blocks_3.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/Read Me.txt b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/Read Me.txt new file mode 100644 index 0000000..052a8bf --- /dev/null +++ b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/Read Me.txt @@ -0,0 +1,15 @@ +Hello, thank you for purchasing my assets! +please read the license below and don't forget to rate the asset on itch!♥ + +License: +- You can use it on your project, personal or commercial. +- Modify and edit it to fit your project. +- Credits to PixyMoon. + +You cannot: +- Sell this asset pack, not even modified. +- Claim that this asset is yours. + +Don't forget to follow me on twitter and itch.io!♥ +https://twitter.com/_PixyMoon_ +https://pixymoon.itch.io/ \ No newline at end of file diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png new file mode 100644 index 0000000..a190565 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_B.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png new file mode 100644 index 0000000..912f2cf Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Desert_C.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png new file mode 100644 index 0000000..2eb0e7a Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_B.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png new file mode 100644 index 0000000..0d0ce63 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Field_C.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png new file mode 100644 index 0000000..f8d5eb6 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_B.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png new file mode 100644 index 0000000..caa74d8 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Forest_C.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png new file mode 100644 index 0000000..3efeedd Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Harbor_C.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png new file mode 100644 index 0000000..22290b6 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Mountains_B.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png new file mode 100644 index 0000000..e3fbe12 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/cute_rpg_word_VXAce/tilesets/CuteRPG_Village_B.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/Room_Builder_32x32.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/Room_Builder_32x32.png new file mode 100644 index 0000000..a611f4a Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/Room_Builder_32x32.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt1.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt1.png new file mode 100644 index 0000000..0333d21 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt1.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt2.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt2.png new file mode 100644 index 0000000..4fe1f6a Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt2.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt3.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt3.png new file mode 100644 index 0000000..7e05a47 Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt3.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt4.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt4.png new file mode 100644 index 0000000..42a45fd Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt4.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt5.png b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt5.png new file mode 100644 index 0000000..8e7236f Binary files /dev/null and b/agentsociety/custom/maps/the_ville/visuals/map_assets/v1/interiors_pt5.png differ diff --git a/agentsociety/custom/maps/the_ville/visuals/the_ville_jan7.json b/agentsociety/custom/maps/the_ville/visuals/the_ville_jan7.json new file mode 100644 index 0000000..c541627 --- /dev/null +++ b/agentsociety/custom/maps/the_ville/visuals/the_ville_jan7.json @@ -0,0 +1,2155 @@ +{ "compressionlevel":-1, + "height":100, + "infinite":false, + "layers":[ + { + "data":[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 226, 226, 226, 226, 226, 226, 226, 226, 226, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "height":100, + "id":1, + "name":"Bottom Ground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9261, 9083, 9064, 9263, 0, 0, 0, 0, 9885, 9886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9261, 9885, 9886, 9263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9261, 9083, 9064, 9263, 0, 0, 0, 0, 0, 0, 0, 9277, 9080, 9065, 9279, 0, 0, 0, 0, 9901, 9902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9901, 9902, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9080, 9065, 9279, 0, 0, 0, 0, 0, 0, 0, 9293, 9079, 9063, 9295, 0, 0, 0, 0, 9917, 9918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9293, 9917, 9918, 9295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9293, 9079, 9063, 9295, 0, 0, 0, 0, 0, 68, 82, 82, 82, 82, 82, 82, 69, 68, 82, 82, 82, 82, 82, 82, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 69, 68, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 100, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9581, 9582, 9582, 9582, 9582, 9583, 68, 100, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 82, 82, 69, 0, 0, 0, 0, 9261, 9262, 9263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 146, 133, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 9597, 9598, 9598, 9598, 9598, 9599, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 9261, 9262, 9262, 9262, 9248, 9068, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 9597, 9598, 9598, 9598, 9598, 9599, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 9277, 9079, 9080, 9065, 9080, 9065, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 9613, 9614, 9614, 9614, 9614, 9615, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 9277, 9080, 9064, 9082, 9066, 9080, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 9293, 9264, 9080, 9082, 9265, 9294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 117, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 84, 114, 114, 85, 0, 9277, 9066, 9082, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 100, 98, 98, 98, 117, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 84, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9080, 9080, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 117, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9082, 9066, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 82, 82, 82, 82, 82, 82, 82, 82, 69, 68, 82, 82, 82, 82, 82, 82, 82, 82, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 117, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9296, 9080, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 100, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 82, 82, 69, 0, 0, 0, 0, 0, 0, 68, 100, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9296, 9079, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 178, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 69, 0, 0, 0, 0, 68, 100, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9277, 9064, 9080, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 148, 162, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 82, 82, 82, 82, 100, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9261, 9262, 9248, 9082, 9065, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 9277, 9296, 9296, 9066, 9296, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 9277, 9065, 9065, 9065, 9066, 9249, 9262, 9262, 9262, 9262, 9262, 9262, 9263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9293, 9294, 9264, 9080, 9080, 9065, 9065, 9080, 9080, 9296, 9082, 9065, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9264, 9080, 9065, 9065, 9080, 9079, 9080, 9080, 9080, 9279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9294, 9294, 9294, 9294, 9294, 9294, 9294, 9294, 9295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 84, 114, 114, 114, 114, 114, 114, 114, 114, 114, 116, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 54, 0, 0, 0, 0, 0, 0, 38, 54, 0, 0, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 84, 116, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 22, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 22, 38, 0, 0, 0, 0, 0, 84, 116, 98, 98, 98, 101, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, 54, 38, 0, 0, 0, 0, 0, 0, 54, 38, 0, 0, 0, 0, 0, 0, 97, 98, 98, 98, 98, 101, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 69, 68, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 69, 68, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 38, 0, 0, 0, 0, 0, 0, 22, 22, 0, 0, 0, 0, 0, 0, 22, 38, 0, 0, 0, 0, 0, 0, 84, 116, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 38, 0, 0, 0, 0, 0, 0, 38, 70, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 84, 114, 116, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 116, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 84, 114, 114, 114, 114, 114, 114, 114, 114, 114, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9901, 9902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9261, 9901, 9902, 9263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9901, 9902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9917, 9918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9293, 9917, 9918, 9295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9917, 9918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 162, 162, 162, 162, 162, 162, 146, 133, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 162, 162, 162, 162, 162, 162, 146, 133, 0, 0, 0, 0, 0, 0, 0, 0, 132, 162, 162, 162, 162, 162, 162, 162, 146, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 162, 178, 178, 178, 178, 178, 178, 178, 149, 0, 0, 0, 0, 0, 0, 0, 0, 148, 162, 178, 178, 178, 178, 178, 178, 178, 149, 0, 0, 0, 0, 0, 0, 0, 0, 148, 162, 178, 178, 178, 178, 178, 178, 178, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":4, + "name":"Exterior Ground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 10481, 10482, 0, 0, 10468, 10469, 10468, 10484, 10500, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 0, 0, 0, 10483, 10484, 10485, 10484, 10500, 10501, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10346, 10347, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 10499, 10500, 10501, 10500, 10501, 10500, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10183, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10361, 10362, 10363, 10364, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 10515, 10516, 10500, 10501, 10500, 10501, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 0, 10367, 0, 10196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10377, 10378, 10379, 10380, 0, 0, 0, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 0, 10516, 10517, 10516, 10517, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10361, 10345, 10394, 10395, 10348, 10347, 10346, 10347, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 10401, 10402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10342, 10341, 10179, 0, 0, 0, 0, 0, 10423, 10424, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 10417, 10418, 0, 10465, 10466, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 10439, 10440, 0, 10355, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 0, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 0, 10481, 10482, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 0, 0, 0, 0, 10455, 10456, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 10423, 10424, 0, 10423, 10424, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 10503, 10504, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10373, 10389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10357, 10356, 10357, 10356, 10357, 10356, 10389, 0, 10439, 10440, 0, 10439, 10440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10519, 10520, 10503, 10504, 0, 0, 0, 10409, 10410, 10411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 10200, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 10388, 10389, 10388, 10389, 10388, 10389, 0, 0, 10455, 10456, 0, 10455, 10456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 10519, 10520, 0, 10465, 10466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10336, 0, 0, 10388, 10389, 10388, 10389, 10388, 10357, 10356, 10357, 10356, 10389, 10388, 10389, 10337, 10338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 0, 10481, 10482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10336, 10352, 0, 0, 0, 0, 0, 0, 0, 10388, 10372, 10373, 10389, 0, 0, 0, 10353, 10354, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10503, 10504, 10503, 10504, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10352, 10, 0, 0, 10183, 0, 10181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10337, 10338, 0, 0, 4, 18, 18, 18, 18, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 9584, 0, 0, 10519, 10520, 10519, 10520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 5, 0, 10204, 0, 0, 10353, 10354, 0, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 10535, 10536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 10335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 4, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 10335, 0, 10351, 10335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 33, 34, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10351, 0, 0, 10351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 21, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 37, 18, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10188, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9584, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10203, 0, 33, 10202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 50, 50, 50, 50, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 21, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10197, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10185, 10183, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10340, 10341, 10340, 10341, 0, 0, 0, 0, 0, 16, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10355, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 20, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10358, 10340, 10341, 0, 10367, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 10203, 10198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10342, 10341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, + 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10366, 0, 0, 0, + 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10373, 10389, 10188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10388, 10389, 10388, 10357, 10356, 10357, 10356, 10389, 10388, 10389, 0, 0, 0, 10195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10388, 10372, 10373, 10389, 0, 10185, 0, 0, 10336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10341, 0, 10352, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10355, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 72, 92, 112, 59, 108, 79, 58, 64, 96, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10388, 10357, 10356, 10357, 10356, 10357, 10356, 10389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 9, 403, 0, 0, 0, 0, 385, 386, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10388, 10389, 10388, 10389, 10388, 10389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 95, 105, 57, 108, 56, 109, 93, 107, 90, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 266, 266, 313, 0, 0, 314, 266, 266, 313, 0, 9, 314, 266, 266, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 8, 0, 0, 11, 0, 0, 0, 0, 0, 7, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 8, 16, 7, 0, 0, 0, 16, 10, 15, 10, 11, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 76, 9, 0, 92, 16, 0, 76, 0, 0, 88, 8, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 10346, 10347, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 13, 281, 0, 0, 56, 0, 0, 56, 0, 0, 56, 0, 0, 56, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10361, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 76, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10377, 10378, 10379, 10380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 10, 10, 0, 0, 0, 0, 0, 16, 76, 0, 0, 56, 0, 8, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10361, 10345, 10394, 10395, 10348, 10347, 10346, 10347, 0, 0, 0, 0, 0, 15, 0, 281, 0, 11, 56, 0, 13, 87, 13, 0, 56, 0, 0, 96, 0, 9, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 10, 0, 0, 13, 0, 0, 0, 0, 7, 14, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 0, 0, 0, 0, 0, 0, 281, 15, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 14, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 0, 0, 0, 0, 0, 297, 266, 266, 313, 0, 0, 314, 266, 266, 313, 0, 9, 314, 266, 266, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10346, 10347, 10409, 10410, 10411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10361, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10185, 0, 10377, 10378, 10379, 10380, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10361, 10345, 10394, 10395, 10348, 10347, 10346, 10347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10184, 10182, 0, 0, 0, 0, 0, 10409, 10410, 10411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10336, 0, 0, 0, 0, 0, 10188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0, 10352, 10336, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10336, 10336, 10352, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 18, 36, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10352, 10352, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10423, 10424, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10439, 10440, 0, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10455, 10456, 0, 0, 0, 0, 0, 10423, 10424, 0, 0, 0, 10423, 10424, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 10423, 10424, 10423, 10424, 0, 0, 10439, 10440, 0, 10423, 10424, 10439, 10440, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10424, 0, 10439, 10440, 10439, 10440, 10423, 10424, 10455, 10456, 0, 10439, 10440, 10455, 10456, 10423, 10424, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10440, 0, 10455, 10456, 10455, 10456, 10439, 10440, 0, 0, 0, 10455, 10456, 10423, 10424, 10439, 10440, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10456, 0, 0, 0, 0, 0, 10455, 10456, 0, 10215, 10216, 0, 0, 10439, 10440, 10455, 10456, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 50, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10186, 0, 0, 0, 0, 0, 0, 10231, 10232, 0, 0, 10455, 10456, 0, 0, 0, 20, 52, 0, 0, 14, 0, 53, 50, 50, 50, 50, 50, 50, 50, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10200, 0, 0, 0, 10215, 10216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 50, 50, 50, 50, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 21, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10231, 10232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10183, 0, 0, 10198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10200, 0, 0, 10503, 10504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 21, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10519, 10520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 10215, 10216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 9301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10200, 0, 13, 0, 0, 0, 10231, 10232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 10346, 10347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 284, 0, 285, 0, 283, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 10361, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 298, 298, 298, 298, 298, 300, 0, 301, 298, 299, 0, 0, 0, 0, 0, 0, 9298, 9267, 9267, 9267, 9267, 9267, 9267, 9267, 9267, 9267, 9267, 9300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 10377, 10378, 10379, 10380, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 10361, 10345, 10394, 10395, 10348, 10347, 10346, 10347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 0, 0, 0, 10369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10187, 0, 0, 0, 0, 0, 0, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 0, 10503, 10504, 0, 10369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10346, 10347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 10519, 10520, 10503, 10504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10361, 10362, 10363, 10364, 0, 0, 0, 0, 0, 0, 0, 4, 36, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 0, 0, 0, 0, 0, 0, 0, 10409, 10410, 10411, 0, 0, 10535, 10536, 10519, 10520, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 10377, 10378, 10379, 10380, 0, 4, 18, 18, 18, 18, 18, 36, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10204, 0, 0, 0, 0, 10355, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 10535, 10536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 10361, 10345, 10394, 10395, 10348, 4, 36, 10347, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10358, 10340, 10341, 0, 10367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10346, 10347, 0, 0, 0, 0, 0, 0, 0, 0, 10465, 10466, 0, 0, 0, 0, 0, 0, 0, 10465, 10466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 0, 0, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 10369, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 0, 10369, 0, 0, 0, 0, 0, 0, 0, 10198, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 0, 0, 0, 10361, 10362, 10363, 10364, 0, 0, 0, 10503, 10504, 0, 0, 10481, 10482, 0, 0, 10465, 10466, 0, 0, 0, 10481, 10482, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 18, 18, 18, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10342, 10341, 0, 0, 0, 10355, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 10401, 10402, 0, 0, 0, 10377, 10378, 10379, 10380, 0, 0, 0, 10519, 10520, 0, 10503, 10504, 0, 10369, 0, 10481, 10482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 75, 0, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10358, 10340, 10341, 0, 10367, 0, 10369, 0, 10200, 0, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 10417, 10418, 0, 0, 10361, 10345, 10394, 10395, 10348, 10347, 10346, 10347, 10535, 10536, 0, 10519, 10520, 0, 10465, 10466, 10465, 10466, 10465, 10466, 0, 10465, 10466, 10465, 10466, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10409, 10410, 10411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 10201, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 10401, 10402, 10377, 10363, 10345, 10348, 10362, 10363, 10362, 10363, 10364, 0, 0, 10535, 10536, 0, 10481, 10482, 10481, 10482, 10481, 10482, 0, 10481, 10482, 10481, 10482, 0, 10499, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 0, 0, 0, 10215, 10216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10373, 10389, 10340, 10356, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10342, 10341, 0, 0, 0, 0, 0, 0, 0, 0, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 10417, 10418, 10393, 10394, 10520, 10519, 10520, 10377, 10378, 10379, 10380, 0, 10503, 10504, 0, 10465, 10466, 10465, 10466, 10465, 10466, 0, 10465, 10466, 10465, 10466, 10465, 10466, 10515, 10516, 10500, 10501, 10500, 10501, 10500, 10501, 10500, 10501, 10502, 0, 0, 0, 10465, 10466, 0, 0, 10231, 10232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 0, 10535, 10536, 10535, 10536, 10393, 10394, 10395, 10396, 0, 10519, 10520, 0, 10481, 10482, 10481, 10482, 10481, 10482, 0, 10481, 10482, 10481, 10482, 10481, 10482, 10465, 10466, 10516, 10517, 10516, 10517, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 10481, 10482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10389, 10388, 10389, 10388, 10357, 10356, 10357, 10356, 10389, 10388, 10389, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 10484, 10500, 10501, 10500, 10501, 10470, 10469, 0, 0, 0, 0, 0, 10401, 10402, 10410, 10411, 10503, 10504, 10535, 10536, 10465, 10466, 0, 0, 10465, 10466, 0, 0, 0, 0, 10465, 10466, 10465, 10466, 10481, 10482, 10465, 10466, 0, 10465, 10466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10372, 10373, 10389, 0, 0, 0, 0, 10340, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10356, 10357, 10373, 10389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10483, 10484, 10485, 10484, 10500, 10501, 10500, 10501, 10485, 10501, 10500, 10486, 0, 0, 0, 0, 10417, 10418, 0, 0, 10519, 10520, 0, 0, 10481, 10482, 10465, 10466, 10481, 10482, 10465, 10466, 10465, 10466, 10481, 10482, 10481, 10482, 0, 0, 10481, 10482, 0, 10481, 10482, 0, 4, 18, 18, 18, 18, 18, 18, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":6, + "name":"Exterior Decoration L1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 402, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 437, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 57, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, + 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10401, 10402, 10457, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 10473, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, + 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9600, 9615, 0, 0, 0, 0, 0, 0, 0, 10401, 10402, 0, 10401, 10402, 10401, 10402, 10490, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9598, 9599, 0, 404, 0, 0, 0, 0, 0, 0, 10417, 10418, 0, 10417, 10418, 10417, 10418, 0, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 166, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9600, 9615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10401, 10402, 0, 10401, 10402, 0, 0, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 0, 10417, 10418, 0, 0, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10401, 10402, 0, 0, 10401, 10402, 0, 0, 0, 0, 0, 0, 10401, 10402, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 10401, 10402, 10417, 10418, 0, 74, 0, 10401, 10402, 0, 10417, 10418, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 0, 0, 0, 0, 0, 10417, 10418, 10401, 10402, 0, + 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10341, 0, 10417, 10418, 0, + 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10356, 10357, 10339, 10357, 10339, 10357, 10341, 0, 10401, 10402, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10342, 10339, 10357, 10339, 10357, 10341, 10417, 10418, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9597, 9598, 9598, 9598, 9599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10341, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9613, 9614, 9614, 9614, 9615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10339, 10389, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10339, 10389, 10340, 10341, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10389, 10388, 10389, 10388, 10357, 10339, 10389, 10340, 10373, 10357, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 9125, 9126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10401, 10402, 0, 0, 0, 0, 0, 10388, 10389, 0, 10371, 10357, 10373, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9141, 9142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 10401, 10402, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 22, 0, 0, 0, 0, 9461, 0, 0, 0, 0, 0, 0, 0, 0, 9442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10417, 10418, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9144, 0, 0, 0, 0, 0, 10371, 10372, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 54, 10388, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 10340, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10356, 10357, 10339, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10342, + 9515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9444, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10373, 10372, 10373, + 9531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 60, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10372, + 9547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9493, 0, 0, 0, 0, 0, 9496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9447, 0, 0, 9442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9447, 0, 9465, 0, 0, 0, 0, 9465, 0, 0, 0, 0, 0, 0, 9460, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, + 9563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10389, 10388, 10389, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9447, 0, 0, 0, 0, 0, 0, 0, 9461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 18, 18, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 10441, 10444, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10443, 10444, + 0, 22, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 10397, 10398, 10399, 10400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9093, 9094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10458, 10459, 10458, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 10413, 10414, 10415, 10416, 0, 0, 0, 134, 135, 0, 0, 0, 0, 9109, 9110, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10457, 10458, 10459, 10458, 10459, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 150, 151, 0, 0, 0, 0, 0, 10429, 10430, 10431, 10432, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10473, 10474, 10475, 10474, 10475, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 134, 135, 0, 0, 0, 0, 0, 10445, 10446, 10447, 10448, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10489, 10490, 10428, 10425, 10428, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 10461, 10462, 10463, 10464, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10457, 10458, 10459, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 10477, 10478, 10479, 10480, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 10473, 10474, 10475, + 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10489, 10490, 10491, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 9448, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 9506, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9522, 0, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9093, 9094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 150, 151, 0, 9475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9109, 9110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, + 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9461, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9445, 0, 0, 0, 9461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, 62, 0, 0, 0, 0, 0, 78, 105, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9449, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 8, 0, 0, 136, 137, 138, 139, 232, 233, 234, 235, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9448, 0, 0, 0, 0, 0, 0, 0, 0, 9446, 0, 0, 9462, 0, 0, 9461, 0, 0, 0, 0, 0, 0, 9447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 248, 249, 250, 251, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 79, 0, 62, 0, 0, 0, 77, 92, 94, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 168, 169, 170, 171, 136, 137, 138, 139, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 167, 0, 152, 153, 154, 155, 184, 185, 186, 187, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 0, 168, 169, 170, 171, 200, 201, 202, 203, 168, 169, 170, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 60, 0, 0, 0, 0, 9, 0, 0, 0, 198, 199, 0, 184, 185, 186, 187, 216, 217, 218, 219, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 215, 0, 200, 201, 202, 203, 232, 233, 234, 235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 0, 216, 217, 218, 219, 248, 249, 250, 251, 166, 167, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 0, 0, 232, 233, 234, 235, 136, 137, 138, 139, 182, 183, 0, 0, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10441, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10460, 0, 0, 248, 249, 250, 251, 152, 153, 154, 155, 198, 199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10457, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10475, 10476, 0, 0, 136, 137, 138, 139, 168, 169, 170, 171, 214, 215, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10473, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10428, 10427, 0, 0, 152, 153, 154, 155, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10489, 10490, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10442, 10443, 10444, 0, 168, 169, 170, 171, 0, 0, 0, 0, 45, 166, 167, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10341, 10340, 10341, 10340, 10341, 10340, 10341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 0, 184, 185, 186, 187, 166, 167, 0, 166, 167, 182, 183, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10356, 10357, 10339, 10357, 10339, 10357, 10341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 166, 167, 0, 0, 0, 182, 183, 0, 182, 183, 198, 199, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10342, 10339, 10357, 10339, 10357, 10341, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 47, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 0, 182, 183, 0, 0, 0, 198, 199, 0, 198, 199, 214, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10340, 10373, 10357, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10341, 0, 0, 0, 0, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 70, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10343, 10344, 0, 10343, 10344, 0, 0, 166, 167, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 198, 199, 0, 73, 0, 214, 215, 0, 214, 215, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10357, 10373, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10339, 10389, 137, 138, 139, 0, 0, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 204, 205, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 204, 205, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 200, 201, 202, 203, 10359, 10360, 0, 10359, 10360, 10369, 0, 182, 183, 0, 0, 43, 0, 121, 0, 0, 0, 14, 0, 214, 215, 0, 38, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10371, 10372, 10373, 10372, 10373, 10372, 10373, 10372, 10339, 10389, 152, 153, 154, 155, 0, 10441, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10217, 10218, 0, 0, 220, 221, 220, 221, 220, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 220, 221, 220, 221, 0, 0, 9193, 9194, 9209, 9210, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 216, 217, 218, 219, 10375, 10376, 0, 10375, 10376, 0, 10368, 198, 199, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 10441, 10444, 0, 0, 0, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10389, 10388, 10389, 10388, 10357, 10339, 10389, 0, 168, 169, 170, 171, 0, 10457, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10475, 10476, 0, 0, 112, 0, 0, 0, 10182, 10185, 10180, 10185, 10182, 10183, 10233, 10234, 0, 0, 0, 204, 205, 204, 205, 0, 0, 0, 0, 0, 0, 123, 123, 0, 88, 121, 0, 0, 0, 204, 205, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9099, 9100, 0, 0, 232, 233, 234, 235, 232, 233, 234, 235, 204, 205, 204, 205, 10343, 10344, 0, 214, 215, 0, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 10441, 10442, 10443, 10444, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10388, 10389, 0, 0, 184, 185, 186, 187, 10367, 10473, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10428, 10427, 0, 0, 0, 0, 0, 0, 10117, 10118, 10119, 10120, 10123, 10124, 10151, 10152, 0, 0, 0, 220, 221, 220, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 220, 221, 0, 0, 0, 204, 205, 204, 205, 0, 0, 9115, 9116, 0, 0, 248, 249, 250, 204, 205, 249, 250, 251, 220, 221, 220, 221, 10359, 10360, 0, 0, 0, 10441, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10458, 10442, 10458, 10459, 10460, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 10490, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10442, 10443, 10444, 0, 0, 0, 0, 0, 10133, 10134, 10135, 10136, 10139, 10140, 10167, 10168, 0, 0, 204, 205, 204, 205, 204, 205, 0, 0, 122, 120, 0, 103, 121, 0, 120, 120, 0, 0, 204, 205, 204, 205, 204, 205, 0, 0, 220, 221, 220, 221, 0, 0, 9131, 9132, 0, 0, 95, 137, 138, 220, 221, 137, 138, 10468, 10469, 10468, 10469, 0, 10375, 10376, 0, 44, 0, 10457, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10458, 10459, 10475, 10476, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 0, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 220, 221, 220, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 220, 221, 220, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 152, 153, 154, 10484, 10485, 10484, 10485, 155, 0, 0, 0, 166, 167, 10473, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10474, 10475, 10428, 10427, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 10343, 10344, 0, 10343, 10344, 0, 10343, 10344, 0, 10343, 10344, 0, 10343, 10344, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 168, 169, 170, 171, 168, 169, 170, 10500, 10437, 10436, 10437, 171, 166, 167, 0, 182, 183, 10489, 10490, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10425, 10428, 10442, 10443, 10444, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 10366, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 0, 0, 0, 0, 0, 0, 57, 6, 0, 0, 0, 0, 0, 0, 0, 204, 205, 220, 221, 220, 221, 200, 201, 202, 203, 200, 201, 202, 203, 10359, 10360, 0, 10359, 10360, 0, 10359, 10360, 0, 10359, 10360, 0, 10359, 10360, 0, 10499, 10470, 10484, 10485, 10467, 10502, 64, 0, 184, 185, 186, 187, 184, 185, 186, 10516, 10453, 10452, 10453, 0, 182, 183, 0, 198, 199, 0, 0, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 10457, 10458, 10459, 10460, 0, 0, + 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 204, 205, 0, 0, 0, 0, 0, 136, 137, 138, 139, 204, 205, 204, 205, 204, 205, 204, 205, 204, 205, 0, 0, 92, 0, 204, 205, 220, 221, 136, 137, 138, 139, 216, 217, 218, 219, 216, 217, 218, 219, 10375, 10376, 0, 10375, 10376, 0, 10375, 10376, 0, 10375, 10376, 0, 10375, 10376, 0, 0, 10499, 10500, 10501, 10470, 10469, 0, 137, 138, 10468, 10469, 10468, 10469, 0, 0, 0, 0, 0, 0, 0, 198, 199, 0, 214, 215, 0, 0, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 10473, 10474, 10475, 10476, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 220, 221, 204, 205, 204, 205, 0, 152, 153, 154, 155, 220, 221, 220, 221, 220, 221, 220, 221, 220, 221, 204, 205, 204, 205, 220, 221, 0, 0, 152, 153, 154, 155, 232, 233, 234, 235, 232, 233, 234, 235, 204, 205, 204, 205, 10343, 10344, 0, 10343, 10344, 0, 10343, 10344, 0, 0, 43, 0, 0, 10516, 10517, 10516, 10517, 152, 153, 154, 10484, 10485, 10484, 10485, 155, 10367, 0, 166, 167, 79, 0, 214, 215, 0, 0, 6, 0, 60, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 10492, 10489, 10490, 10491, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9512, 9513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139, 220, 221, 220, 221, 0, 168, 169, 170, 171, 204, 205, 136, 137, 138, 139, 136, 137, 138, 139, 220, 221, 220, 221, 136, 137, 138, 139, 168, 169, 170, 171, 248, 249, 250, 204, 205, 249, 250, 251, 220, 221, 220, 221, 10359, 10360, 0, 10359, 10360, 0, 10359, 10360, 0, 0, 137, 138, 10468, 10469, 10468, 10469, 0, 168, 169, 170, 10500, 10437, 10436, 10437, 171, 10367, 0, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9514, 9515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9528, 9529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 136, 137, 138, 139, 0, 184, 185, 186, 187, 220, 221, 152, 153, 154, 155, 152, 153, 154, 155, 136, 137, 138, 139, 152, 153, 154, 155, 184, 185, 186, 187, 136, 137, 138, 220, 221, 137, 138, 10468, 10469, 10468, 10469, 0, 10375, 10376, 0, 10375, 10376, 0, 10375, 10376, 0, 152, 153, 154, 10484, 10485, 10484, 10485, 155, 184, 185, 186, 10516, 10453, 10452, 10453, 0, 0, 10369, 198, 199, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 10468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9530, 9531, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 9544, 9545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, 152, 153, 154, 155, 44, 0, 0, 204, 205, 204, 205, 168, 169, 170, 171, 168, 169, 170, 171, 152, 153, 154, 155, 168, 169, 170, 171, 136, 137, 138, 139, 152, 153, 154, 155, 152, 153, 154, 10484, 10485, 10484, 10485, 155, 0, 10468, 10469, 10468, 10469, 10468, 10469, 0, 0, 168, 169, 170, 10500, 10437, 10436, 10437, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 10469, 10468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 9546, 9547, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9560, 9561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 168, 169, 170, 171, 0, 0, 0, 220, 221, 220, 221, 184, 185, 186, 187, 184, 185, 186, 187, 168, 169, 170, 171, 184, 185, 186, 187, 152, 153, 154, 155, 168, 169, 170, 171, 168, 169, 170, 10500, 10437, 10436, 10437, 171, 0, 10499, 10470, 10484, 10485, 10467, 10502, 0, 7, 184, 185, 186, 10516, 10453, 10452, 10453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10347, 10346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9562, 9563, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 168, 169, 170, 171, 184, 185, 186, 187, 184, 185, 186, 10516, 10453, 10452, 10453, 0, 0, 0, 10499, 10500, 10501, 10470, 10469, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 105, 0, 0, 0, 59, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 10516, 10517, 10516, 10517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":9, + "name":"Exterior Decoration L2", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5281, 5128, 4974, 5202, 4901, 0, 0, 4950, 5104, 5180, 5256, 4951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5122, 5047, 5199, 5121, 5121, 5045, 5273, 5047, 5274, 5046, 0, 0, 5029, 5026, 4875, 5029, 5178, 0, 0, 5178, 4951, 5181, 4877, 5104, 5181, 4875, 4952, 5104, 5102, 5178, 5102, 0, 0, 5279, 5051, 5129, 5128, 4900, 0, 0, 5256, 4951, 5257, 5104, 5254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5046, 4970, 4969, 5123, 5197, 4968, 5120, 5047, 5197, 4895, 0, 0, 4952, 5102, 4877, 5103, 5105, 0, 0, 5027, 5027, 5104, 5029, 4951, 5254, 5179, 5254, 5255, 5105, 4876, 4876, 0, 0, 4901, 5126, 4901, 5127, 5129, 0, 0, 5179, 4876, 5105, 5027, 4876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4968, 4892, 4970, 5121, 4894, 5120, 5046, 5275, 5047, 5275, 0, 0, 5102, 5180, 4875, 5256, 5102, 0, 0, 5255, 5257, 5028, 5257, 5180, 5102, 5028, 4951, 5027, 5029, 5257, 5028, 0, 0, 0, 0, 4898, 5127, 0, 0, 0, 0, 0, 5102, 5103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5045, 4969, 5273, 4968, 4894, 4971, 4969, 5045, 5122, 5045, 0, 0, 0, 0, 5026, 5256, 0, 0, 0, 4877, 5105, 4874, 4950, 4952, 5026, 5257, 5026, 5105, 4877, 4875, 4953, 0, 0, 0, 0, 5278, 5278, 0, 0, 0, 0, 0, 5178, 5027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5208, 5133, 5284, 5133, 4981, 5057, 5132, 4904, 0, 0, 5281, 5280, 5281, 4974, 5281, 5052, 5128, 4899, 0, 0, 5209, 5209, 5134, 5056, 4907, 5059, 5284, 5286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5044, 4895, 0, 0, 0, 0, 0, 0, 0, 0, 5257, 5257, 0, 0, 0, 0, 4950, 5104, 4950, 4951, 5181, 4952, 4874, 0, 0, 0, 0, 0, 0, 5128, 5203, 4900, 5129, 4974, 0, 0, 4951, 5180, 5178, 5179, 5257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5209, 5285, 5059, 5132, 4980, 5287, 4980, 4980, 0, 0, 5203, 5280, 5205, 4977, 4977, 4900, 5129, 5203, 0, 0, 5059, 5058, 5286, 5135, 5056, 5285, 5287, 5059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5273, 4971, 0, 0, 0, 0, 0, 0, 4874, 5029, 5029, 4951, 5256, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5052, 5205, 5052, 4898, 5053, 0, 0, 5181, 5256, 4874, 5102, 5181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4980, 5056, 5135, 4905, 5057, 5286, 5134, 5058, 0, 0, 5280, 4901, 5203, 5053, 4974, 5278, 5129, 4976, 0, 0, 4982, 5133, 4906, 5134, 5209, 5057, 4980, 4983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 4874, 5105, 5179, 4951, 4874, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5053, 4975, 4977, 5050, 5279, 0, 0, 5026, 5028, 4952, 4950, 5028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4904, 5133, 4904, 5134, 4905, 4905, 5284, 5058, 0, 0, 5278, 5280, 4977, 5281, 5203, 5279, 5053, 5281, 0, 0, 5057, 4906, 5210, 4980, 4983, 5287, 4981, 5056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5256, 5026, 5254, 4875, 5254, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5205, 4975, 5278, 4898, 4975, 0, 0, 5257, 5254, 4951, 5102, 4951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4981, 5056, 5286, 4906, 5059, 5057, 5056, 5209, 0, 0, 5052, 4977, 5050, 5051, 5127, 5281, 5279, 5053, 0, 0, 5287, 5058, 4980, 4980, 5284, 4983, 4983, 4906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 4874, 5180, 4950, 4877, 4951, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5127, 5128, 5205, 4900, 5128, 0, 0, 4953, 5103, 5104, 5256, 4874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5210, 4904, 0, 0, 0, 0, 0, 0, 0, 0, 5127, 5128, 0, 0, 0, 0, 0, 0, 0, 0, 5057, 5211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5029, 5181, 5105, 5102, 4875, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 4901, 4900, 5204, 5280, 4901, 0, 0, 4950, 4953, 5028, 5256, 5027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4905, 5135, 0, 0, 0, 0, 0, 0, 0, 0, 5281, 4898, 0, 0, 0, 0, 0, 0, 0, 0, 5056, 5209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5255, 5180, 5254, 5254, 5028, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5202, 5127, 5129, 5204, 5204, 0, 0, 4950, 4874, 4874, 5178, 4950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 4950, 4875, 4875, 5027, 5027, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 5203, 5050, 5279, 4975, 4898, 0, 0, 5181, 5105, 4951, 5181, 5178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 4953, 5255, 5257, 5257, 5256, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4977, 5128, 0, 0, 0, 0, 0, 0, 0, 0, 5211, 5211, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5129, 5205, 4976, 4974, 4898, 4898, 5129, 5127, 0, 0, 4982, 4983, 5209, 4982, 4983, 4904, 4906, 5056, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5202, 4898, 4975, 5051, 4976, 4899, 5051, 4899, 0, 0, 5284, 4904, 5285, 4980, 5057, 5287, 4981, 5285, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5051, 5052, 5051, 5202, 5205, 4900, 5281, 5052, 0, 0, 5132, 5285, 4982, 5208, 5285, 5210, 5132, 5057, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5204, 5204, 5050, 5051, 4898, 4900, 5204, 4899, 0, 0, 4906, 5285, 5132, 4981, 4981, 5284, 4983, 5209, 0, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5280, 5280, 4898, 5051, 5281, 5204, 4976, 4977, 0, 0, 5134, 4907, 5284, 5058, 5211, 5135, 5057, 5210, 0, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 5026, 5178, 5029, 5105, 5179, 5178, 5028, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 4953, 5181, 4877, 4950, 5102, 4874, 4950, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 5257, 5105, 5103, 5181, 4877, 5180, 5102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 4953, 4952, 4876, 5257, 4950, 4875, 5255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5102, 5105, 5103, 4952, 5181, 5103, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5255, 5029, 4952, 5256, 5029, 4950, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 490, 490, 490, 0, 0, 0, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5256, 5179, 5256, 4952, 5027, 5256, 0, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 490, 490, 0, 0, 0, 0, 0, 4953, 5257, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 5105, 4874, 4874, 4950, 5104, 5103, 0, 0, 5026, 5255, 5256, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 4951, 4951, 4876, 5255, 5027, 4877, 0, 0, 4875, 4875, 5257, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 4875, 5257, 5179, 4951, 5103, 5257, 0, 0, 5180, 5254, 4950, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 0, 5254, 5178, 5028, 4874, 5180, 5256, 0, 0, 4876, 4951, 5103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5178, 4953, 4876, 5181, 4953, 5028, 0, 0, 5178, 4953, 4876, 5181, 4953, 5028, 0, 0, 4953, 4952, 5027, 5180, 4875, 5179, 0, 0, 5029, 5028, 5028, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5178, 4953, 4876, 5181, 4953, 5028, 0, 0, 4950, 4951, 5105, 4951, 5181, 5255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4951, 4875, 5105, 4874, 5104, 0, 0, 0, 4881, 5034, 4882, 5261, 4958, 0, 0, 0, 4975, 5203, 5126, 5279, 5280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4875, 5026, 4874, 5027, 5179, 5026, 0, 0, 5102, 5104, 5181, 5254, 4877, 4875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5029, 5026, 5103, 5105, 5257, 0, 0, 0, 4957, 5035, 5034, 5186, 4882, 0, 0, 0, 5203, 4901, 5050, 4976, 5053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5179, 5257, 5255, 4874, 5178, 5105, 0, 0, 5028, 4876, 5254, 5029, 4876, 4951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5255, 5178, 5181, 5254, 5178, 0, 0, 0, 4880, 4883, 4958, 5263, 4883, 5108, 0, 0, 5126, 5281, 5205, 5051, 5205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5178, 5105, 5255, 4876, 5178, 4952, 0, 0, 5180, 5026, 5103, 5181, 5029, 4951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5104, 5105, 5104, 5254, 4952, 0, 0, 5111, 4880, 5108, 5262, 5108, 5261, 0, 0, 0, 5051, 5279, 5204, 5126, 5052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5026, 5255, 5255, 5179, 4952, 5027, 0, 0, 5029, 4874, 4952, 4951, 5103, 4875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5103, 5029, 5028, 5181, 5257, 0, 0, 5262, 4880, 5109, 5035, 5260, 5032, 0, 0, 0, 5052, 5204, 5281, 5129, 5204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5256, 4951, 4876, 4953, 4953, 0, 0, 0, 4957, 4959, 5034, 4883, 5108, 0, 0, 0, 5278, 4901, 4975, 4901, 4898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5181, 4951, 5105, 5026, 5103, 0, 0, 0, 4881, 4883, 5187, 4956, 4883, 0, 0, 0, 4977, 5204, 5129, 5281, 5203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5652, 5576, 5424, 5654, 5500, 5424, 5503, 5728, 5424, 5427, 5579, 5577, 0, 0, 0, 0, 0, 0, 4875, 4951, 5256, 5179, 5105, 5254, 5102, 5026, 5103, 4875, 5180, 4875, 0, 0, 0, 0, 0, 0, 5108, 5111, 4881, 4881, 5260, 5110, 4881, 4883, 5262, 4882, 4957, 5263, 5263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5029, 5256, 0, 0, 0, 0, 0, 4957, 5184, 5185, 0, 0, 0, 0, 0, 0, 5278, 5280, 5051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5500, 5348, 5578, 5653, 5731, 5577, 5731, 5728, 5576, 5351, 5653, 5351, 0, 0, 0, 0, 0, 0, 4876, 5180, 5178, 5105, 4877, 5254, 5256, 5103, 5026, 5254, 5181, 5178, 0, 0, 0, 0, 0, 0, 5109, 5261, 5034, 5034, 4956, 4880, 5033, 5108, 4956, 5109, 4883, 4881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5178, 5029, 0, 0, 0, 0, 0, 5262, 5263, 5033, 0, 0, 0, 0, 0, 0, 5050, 4975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5426, 5728, 5728, 5425, 5426, 5424, 5502, 5730, 5427, 5577, 5350, 5653, 0, 0, 0, 0, 0, 0, 5178, 4953, 5026, 4874, 5256, 5256, 4950, 5105, 4877, 5256, 4874, 5102, 0, 0, 0, 0, 0, 0, 4881, 5034, 5108, 4881, 4883, 4881, 5108, 4957, 5108, 4957, 5261, 4881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4950, 4951, 5029, 4876, 5180, 0, 0, 0, 4956, 5110, 5184, 5263, 4958, 0, 0, 0, 5051, 5050, 5205, 5205, 5128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5425, 5501, 5427, 5729, 5731, 5729, 5501, 5426, 5728, 5577, 5348, 5652, 0, 0, 0, 0, 0, 0, 5027, 5104, 5027, 4877, 4874, 4876, 5105, 5180, 4877, 5179, 5180, 5254, 0, 0, 0, 0, 0, 0, 4880, 5263, 4881, 4881, 5111, 4883, 5109, 4881, 5263, 5033, 4882, 5108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4950, 5181, 5102, 5026, 4950, 0, 0, 0, 4957, 4881, 4882, 5184, 4956, 0, 0, 0, 5052, 4898, 4977, 4976, 5128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5579, 5729, 5501, 5731, 5655, 5348, 5501, 5653, 5731, 5654, 5578, 5502, 0, 0, 0, 0, 0, 0, 5257, 5180, 4874, 5105, 4952, 5028, 5028, 4876, 4876, 5179, 4951, 4951, 0, 0, 0, 0, 0, 0, 5034, 4883, 4882, 4956, 4881, 5034, 4881, 5110, 5260, 4881, 5260, 5262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5179, 4876, 4876, 5179, 5256, 0, 0, 0, 4880, 5109, 5184, 4882, 5262, 0, 0, 0, 4976, 4898, 5280, 5127, 5050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5425, 5652, 5729, 5502, 5652, 5425, 5730, 5501, 5501, 5350, 5351, 5501, 0, 0, 0, 0, 0, 0, 5028, 4875, 5026, 5105, 5255, 5180, 4874, 4876, 5028, 5255, 5181, 4874, 0, 0, 0, 0, 0, 0, 4883, 5109, 5110, 5034, 4880, 4956, 4956, 5111, 5110, 4956, 5034, 5033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5349, 5578, 5349, 5427, 5425, 5579, 5424, 5427, 5653, 5427, 5731, 5728, 0, 0, 0, 0, 0, 0, 5029, 5029, 5255, 0, 0, 0, 0, 0, 4875, 5256, 0, 0, 0, 0, 0, 0, 0, 0, 5260, 4881, 4880, 5033, 0, 0, 0, 5034, 5262, 5109, 4957, 5262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5729, 5652, 5424, 5348, 5655, 5731, 5655, 5579, 5731, 5730, 5655, 5350, 0, 0, 0, 0, 0, 0, 4874, 5254, 4876, 5027, 5026, 0, 0, 0, 4876, 4875, 0, 0, 0, 0, 0, 0, 0, 0, 4956, 5260, 4881, 4956, 5109, 0, 4883, 4881, 4881, 5263, 5034, 5110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5500, 5349, 5501, 5503, 5501, 5502, 5654, 5501, 5425, 5500, 5500, 5652, 0, 0, 0, 0, 0, 0, 5102, 5179, 5255, 5029, 4877, 0, 5181, 4952, 5180, 5104, 5178, 5256, 0, 0, 0, 0, 0, 0, 5261, 5109, 5111, 5033, 5261, 5034, 5263, 5111, 4956, 4956, 5034, 4881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5577, 5653, 5426, 5579, 5427, 5577, 5424, 5425, 5730, 5729, 5576, 5652, 0, 0, 0, 0, 0, 0, 4875, 5257, 4874, 5026, 4950, 5254, 5103, 5027, 5028, 5026, 5178, 5256, 0, 0, 0, 0, 0, 0, 5111, 5261, 4956, 5109, 4882, 5262, 5034, 4883, 4956, 5033, 5034, 5111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5655, 5348, 5351, 5500, 5424, 5351, 5348, 5426, 5578, 5503, 5731, 5500, 0, 0, 0, 0, 0, 0, 5256, 5179, 5104, 5256, 4953, 4877, 4953, 5102, 5103, 5256, 4876, 5255, 0, 0, 0, 0, 0, 0, 4883, 5260, 5109, 4881, 5033, 4883, 4881, 5108, 5034, 4881, 4880, 5262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":5, + "name":"Interior Ground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6669, 6668, 6668, 6515, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6668, 6668, 6668, 6669, 6668, 6668, 6515, 6669, 6669, 6669, 6518, 6591, 6744, 6744, 6745, 6745, 6745, 6594, 6591, 6744, 6744, 6745, 6745, 6745, 6594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6591, 6744, 6744, 6744, 6745, 6744, 6744, 6591, 6745, 6745, 6745, 6594, 6591, 6744, 6744, 6745, 6745, 6745, 6594, 6591, 6744, 6744, 6744, 6744, 6744, 6745, 6744, 6744, 6591, 6745, 6745, 6745, 6594, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8804, 8805, 8805, 8805, 8651, 8804, 8804, 8805, 8654, 8651, 8804, 8805, 8805, 8805, 8651, 8804, 8804, 8805, 8654, 8651, 8804, 8805, 8805, 8805, 8805, 8805, 8804, 8805, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 6670, 6515, 6668, 6741, 0, 0, 6513, 6518, 6515, 6668, 6741, 0, 0, 6513, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8727, 8880, 8881, 8881, 8881, 8727, 8880, 8880, 8881, 8730, 8727, 8880, 8881, 8881, 8881, 8727, 8880, 8880, 8881, 8730, 8727, 8880, 8881, 8881, 8881, 8881, 8881, 8880, 8881, 8730, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6515, 6668, 6741, 0, 0, 6513, 6518, 6515, 6668, 6668, 6668, 6668, 6668, 6741, 0, 0, 6513, 6668, 6668, 6668, 6518, 6591, 6744, 6817, 0, 0, 6589, 6594, 6591, 6744, 6817, 0, 0, 6589, 6594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6741, 0, 0, 6513, 6668, 6668, 6668, 6518, 6591, 6744, 6817, 0, 0, 6589, 6594, 6591, 6744, 6744, 6744, 6744, 6744, 6817, 0, 0, 6589, 6744, 6744, 6744, 6594, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5459, 5612, 5613, 5613, 5613, 5613, 5613, 5613, 5613, 5462, 5459, 5613, 5612, 5612, 5612, 5612, 5612, 5613, 5462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 8649, 8804, 8804, 8804, 8804, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 6591, 6744, 6744, 6744, 6817, 0, 0, 6589, 6744, 6744, 6744, 6594, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5535, 5688, 5689, 5689, 5689, 5689, 5689, 5689, 5689, 5538, 5535, 5689, 5688, 5688, 5688, 5688, 5688, 5689, 5538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 8725, 8880, 8880, 8880, 8880, 8730, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 9031, 9034, 0, 0, 8806, 8803, 0, 0, 0, 0, 9031, 9034, 0, 0, 8806, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8804, 8804, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8804, 8804, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8727, 8880, 8953, 0, 0, 8725, 8880, 8880, 8880, 8880, 8880, 8880, 8953, 0, 0, 8725, 8880, 8880, 8880, 8880, 8880, 8880, 8953, 0, 0, 8725, 8880, 8880, 8880, 8730, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8804, 8804, 8804, 8877, 0, 0, 8649, 8805, 8654, 8651, 8804, 8804, 8804, 8877, 0, 0, 8649, 8805, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 6670, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 6895, 6898, 0, 0, 6895, 6896, 6898, 6895, 6898, 0, 0, 6895, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8727, 8880, 8880, 8880, 8953, 0, 0, 8725, 8881, 8730, 8727, 8880, 8880, 8880, 8953, 0, 0, 8725, 8881, 8730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6897, 6898, 0, 0, 0, 0, 6895, 6896, 6897, 6896, 6898, 6895, 6898, 0, 0, 6895, 6896, 6898, 6895, 6896, 6897, 6898, 0, 0, 0, 0, 6895, 6896, 6896, 6897, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 5611, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5534, 5612, 5613, 5612, 5613, 5685, 0, 0, 5457, 5613, 5613, 5685, 0, 0, 5613, 5613, 5613, 5613, 5462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8651, 8877, 0, 0, 8806, 8803, 0, 0, 0, 0, 8651, 8877, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5610, 5688, 5689, 5688, 5689, 5761, 0, 0, 5533, 5689, 5689, 5761, 0, 0, 5689, 5689, 5689, 5689, 5538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8727, 8953, 0, 0, 8806, 8803, 0, 0, 0, 0, 8727, 8953, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 8803, 0, 0, 0, 0, 8803, 0, 0, 0, 8806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 9032, 9032, 9032, 9032, 9032, 9032, 9033, 9032, 9031, 9032, 9032, 9032, 9032, 9032, 9032, 9032, 9033, 9032, 9032, 8954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 9033, 9032, 9033, 9034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5839, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5841, 5840, 5841, 5842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6668, 6741, 0, 0, 0, 0, 6513, 6668, 6669, 6668, 6669, 6518, 0, 0, 6515, 6668, 6668, 6668, 6668, 6741, 0, 0, 0, 0, 6513, 6669, 6669, 6669, 6669, 6669, 6669, 6669, 6668, 6669, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6591, 6744, 6744, 6744, 6744, 6817, 0, 0, 0, 0, 6589, 6744, 6745, 6744, 6745, 6594, 0, 0, 6591, 6744, 6744, 6744, 6744, 6817, 0, 0, 0, 0, 6589, 6745, 6745, 6745, 6745, 6745, 6745, 6745, 6744, 6745, 6594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5449, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5525, 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5530, 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5530, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5451, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 5604, 5604, 5604, 5677, 0, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5527, 5680, 5680, 5680, 5680, 5680, 5680, 5530, 5680, 5680, 5680, 5753, 0, 0, 0, 0, 0, 0, 0, 0, 5831, 5832, 5832, 5832, 5832, 5834, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 5451, 5604, 5677, 0, 0, 5449, 5604, 5454, 5451, 5677, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 5527, 5680, 5753, 0, 0, 5525, 5680, 5530, 5527, 5753, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 5831, 5832, 5832, 5832, 5834, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6897, 6896, 6896, 6896, 6896, 6897, 6896, 6896, 6896, 6898, 0, 0, 6895, 6896, 6898, 0, 0, 6895, 6897, 6896, 6896, 6896, 6896, 6897, 6896, 6896, 6896, 6896, 6896, 6896, 6898, 0, 0, 6895, 6896, 6896, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5451, 5604, 5677, 0, 0, 5449, 5604, 5454, 5451, 5604, 5677, 0, 0, 5449, 5604, 5454, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5527, 5680, 5753, 0, 0, 5525, 5680, 5530, 5527, 5680, 5753, 0, 0, 5525, 5680, 5530, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5833, 5834, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5603, 0, 0, 0, 0, 0, 0, 5606, 5603, 0, 0, 0, 0, 0, 0, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 0, 5831, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 5011, 5164, 5165, 5165, 5237, 0, 0, 5009, 5164, 5011, 5165, 5164, 5165, 5014, 0, 0, 0, 0, 5011, 5164, 5165, 5165, 5237, 0, 0, 5009, 5164, 5011, 5165, 5164, 5165, 5014, 0, 0, 0, 0, 5011, 5164, 5165, 5165, 5237, 0, 0, 5009, 5164, 5011, 5165, 5164, 5165, 5014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 6059, 6212, 6285, 0, 0, 6057, 6062, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 6135, 0, 0, 0, 0, 0, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 5087, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 5087, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 5009, 5164, 5165, 5014, 5165, 5237, 0, 0, 5009, 5164, 5014, 0, 0, 0, 0, 5087, 0, 0, 5009, 5164, 5165, 5014, 5165, 5237, 0, 0, 5009, 5164, 5014, 0, 0, 0, 0, 5087, 0, 0, 5009, 5164, 5165, 5014, 5165, 5237, 0, 0, 5009, 5164, 5014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 5087, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 5090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":3, + "name":"Wall", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19906, 0, 0, 0, 0, 0, 0, 12198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13285, 13286, 0, 0, 15429, 15430, 0, 0, 0, 19904, 0, 0, 0, 0, 0, 0, 19906, 0, 0, 13906, 13907, 0, 0, 0, 0, 15429, 15430, 0, 0, 0, 19906, 0, 0, 19853, 19854, 12292, 12293, 19922, 0, 0, 19853, 19854, 12292, 12293, 12214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13301, 13302, 18714, 13125, 15445, 15446, 0, 19853, 19854, 19920, 0, 0, 19853, 19854, 12292, 12293, 19922, 0, 0, 13922, 13923, 0, 18714, 18347, 18348, 15445, 15446, 0, 19853, 19854, 19922, 0, 0, 19869, 19870, 12308, 12309, 19938, 0, 0, 19869, 19870, 12308, 12309, 12230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13317, 13318, 18730, 13141, 15461, 15462, 0, 19869, 19870, 19936, 0, 0, 19869, 19870, 12308, 12309, 19938, 0, 0, 13938, 13939, 0, 18730, 18363, 18364, 15461, 15462, 0, 19869, 19870, 19938, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13333, 13334, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 13954, 13955, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 13906, 13907, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610627558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15987, 15952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610627558, 0, 0, 14269, 14270, 0, 0, 15078, 0, 0, 13906, 13907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24218, 24219, 13517, 13518, 0, 19853, 19854, 12260, 0, 0, 13922, 13923, 13453, 13454, 0, 19853, 19854, 12212, 0, 0, 24864, 0, 24866, 0, 0, 0, 28022, 28023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15987, 15952, 0, 0, 0, 0, 0, 0, 0, 1610627557, 0, 0, 13291, 13292, 0, 0, 15078, 0, 0, 17673, 17674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14285, 14286, 0, 0, 15094, 0, 0, 13922, 13923, 0, 0, 18714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15476, 15477, 15478, 15479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24234, 24235, 13533, 13534, 0, 19869, 19870, 12276, 0, 0, 13938, 13939, 13469, 13470, 0, 19869, 19870, 12228, 0, 0, 24880, 24881, 24882, 0, 0, 0, 28038, 28039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19534, 19535, 17673, 17674, 0, 0, 0, 0, 14973, 14974, 0, 0, 13307, 13308, 0, 0, 15094, 0, 0, 17689, 17690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14301, 14302, 0, 0, 15110, 0, 0, 13938, 13939, 0, 0, 18730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15997, 15998, 15997, 15998, 16017, 16018, 0, 0, 0, 0, 0, 0, 0, 15492, 15493, 15494, 15495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 13954, 13955, 0, 11561, 0, 19885, 19886, 0, 0, 0, 24896, 24897, 24898, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17689, 17690, 0, 0, 0, 0, 14989, 14990, 0, 0, 13323, 13324, 0, 0, 15110, 0, 0, 17705, 17706, 0, 0, 18569, 18570, 18570, 18570, 18570, 18570, 18570, 18571, 0, 0, 14317, 14318, 0, 0, 0, 0, 0, 13954, 13955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16013, 16014, 16013, 16014, 16033, 16034, 16019, 16020, 0, 0, 16579, 16580, 0, 15508, 15509, 15510, 15511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15987, 15952, 0, 0, 0, 0, 0, 0, 0, 0, 11961, 11962, 0, 11577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12294, 12295, 12212, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17705, 17706, 0, 0, 0, 0, 0, 0, 0, 0, 13339, 13340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18585, 18586, 18586, 18586, 18586, 18586, 18586, 18587, 0, 0, 0, 0, 0, 0, 19131, 0, 0, 15912, 0, 0, 0, 19131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16595, 16596, 0, 15524, 15525, 15526, 15527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16003, 15968, 0, 0, 0, 0, 0, 1610627558, 0, 0, 11977, 11978, 0, 11593, 0, 0, 0, 1610627558, 0, 0, 0, 0, 0, 12310, 12311, 12228, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22093, 22094, 22094, 22094, 22094, 22094, 22094, 22094, 22095, 0, 0, 0, 0, 0, 0, 19131, 0, 0, 0, 0, 0, 0, 0, 0, 14896, 0, 14895, 0, 14880, 0, 0, 0, 15987, 15952, 0, 0, 19163, 0, 0, 15928, 15952, 0, 0, 19163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15951, 15952, 0, 15951, 15952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610627557, 0, 0, 11993, 11994, 0, 0, 0, 0, 0, 1610627557, 0, 0, 15987, 15952, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22109, 22110, 22110, 22110, 22110, 22110, 22110, 22110, 22111, 0, 0, 0, 0, 0, 0, 19163, 0, 0, 0, 0, 0, 0, 13183, 0, 0, 13218, 0, 0, 0, 0, 0, 0, 16003, 15968, 0, 0, 19179, 0, 0, 15944, 15968, 0, 0, 19179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15909, 0, 15967, 15968, 0, 15967, 15968, 0, 0, 0, 14881, 19129, 19128, 14915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17673, 17674, 0, 0, 18047, 0, 18049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14895, 0, 14879, 0, 14895, 0, 14894, 0, 0, 0, 17485, 17486, 0, 0, 19179, 0, 0, 15986, 15987, 15952, 0, 13199, 13168, 13169, 13234, 0, 0, 30943, 30944, 0, 0, 16015, 16016, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15986, 15925, 0, 15951, 15952, 0, 15951, 15952, 0, 0, 0, 14897, 19145, 19144, 14931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17689, 17690, 0, 0, 18063, 18064, 18065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15501, 0, 0, 0, 0, 0, 0, 0, 0, 11766, 0, 0, 17501, 17502, 0, 0, 28013, 0, 0, 16002, 16003, 15968, 0, 13183, 13184, 13185, 13218, 0, 0, 30959, 30960, 0, 0, 16031, 16032, 0, 0, 28029, 0, 0, 0, 0, 0, 0, 28029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16002, 15941, 0, 15967, 15968, 0, 15967, 15968, 0, 0, 0, 14881, 19161, 19160, 14915, 0, 15423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17705, 17706, 0, 0, 18079, 18080, 18081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15517, 0, 0, 0, 0, 0, 0, 0, 0, 11782, 0, 0, 17517, 17518, 0, 0, 28029, 0, 0, 15986, 15987, 15952, 0, 13199, 13200, 13201, 13234, 0, 0, 30975, 30976, 0, 0, 0, 0, 0, 0, 28045, 0, 0, 0, 0, 0, 0, 28045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15951, 15952, 0, 15951, 15952, 0, 0, 0, 14897, 19177, 19176, 14931, 0, 15439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15332, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 11959, 11960, 0, 0, 0, 0, 12246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28045, 0, 0, 16002, 16003, 15968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15967, 15968, 0, 15967, 15968, 0, 0, 0, 0, 0, 0, 0, 0, 15455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15348, 13517, 13518, 0, 0, 0, 0, 12260, 0, 0, 28013, 11975, 11976, 0, 0, 0, 0, 12262, 0, 0, 0, 13183, 0, 0, 13186, 0, 0, 19147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15364, 13533, 13534, 0, 0, 0, 0, 12276, 0, 0, 28029, 11991, 11992, 0, 0, 0, 0, 12278, 0, 0, 0, 13199, 13168, 13169, 13202, 0, 0, 19163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11959, 11960, 0, 0, 0, 1610627558, 0, 0, 28045, 0, 0, 0, 0, 0, 0, 1610627558, 0, 16122, 16123, 13183, 13184, 13185, 13218, 0, 0, 19179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11975, 11976, 0, 0, 0, 1610627557, 0, 0, 15987, 15952, 0, 0, 0, 0, 0, 1610627557, 0, 16138, 16139, 13199, 13200, 13201, 13234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24864, 0, 11991, 11992, 0, 19853, 19854, 0, 0, 0, 16003, 15968, 0, 0, 0, 19853, 19854, 0, 0, 16138, 16139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24880, 24881, 24882, 0, 0, 19869, 19870, 0, 0, 0, 24880, 24881, 24882, 0, 0, 19869, 19870, 0, 0, 16154, 16155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16645, 16646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16661, 16662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14392, 14393, 14394, 14395, 14396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14408, 14409, 14410, 14411, 14412, 0, 0, 0, 0, 0, 0, 0, 18574, 18575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21602, 21603, 21604, 0, 0, 21193, 21194, 21195, 20835, 20836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14424, 14425, 14426, 14427, 14428, 0, 0, 0, 0, 0, 0, 0, 18590, 18591, 0, 0, 0, 0, 18565, 18566, 18567, 21605, 21606, 0, 0, 0, 0, 21618, 21619, 21620, 0, 0, 21209, 21210, 21211, 20851, 20852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14440, 14441, 14442, 14443, 14444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18581, 18582, 18583, 21621, 21622, 0, 0, 0, 0, 21634, 21635, 21636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18047, 0, 18049, 17673, 17674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22093, 22094, 22094, 22094, 22095, 0, 0, 0, 0, 15862, 0, 0, 21637, 21638, 0, 0, 0, 0, 0, 0, 0, 18569, 18570, 18570, 18570, 18570, 18570, 18571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18063, 18064, 18065, 17689, 17690, 0, 0, 13287, 13288, 16019, 16020, 0, 13125, 13124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15608, 15609, 15610, 15611, 15612, 15601, 15602, 15603, 0, 22109, 22110, 22110, 22110, 22111, 0, 0, 0, 0, 15878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18585, 18586, 18586, 18586, 18586, 18586, 18587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18079, 18080, 18081, 17705, 17706, 0, 0, 13303, 13304, 16543, 16544, 0, 13141, 13140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15624, 15625, 15626, 15627, 15628, 15617, 15618, 15619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15894, 0, 17405, 17406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13215, 0, 0, 13218, 0, 19131, 0, 13319, 13320, 16559, 16560, 0, 15986, 15987, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15640, 15641, 15642, 15643, 15644, 15633, 15634, 15635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15862, 0, 17421, 17422, 0, 0, 20148, 20149, 20148, 20149, 20148, 20149, 0, 20148, 20149, 20148, 20149, 20148, 20149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13231, 13216, 13217, 13234, 0, 19147, 0, 13335, 13336, 0, 0, 0, 16002, 16003, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15656, 15657, 15658, 15659, 15660, 15649, 15650, 15651, 0, 0, 0, 0, 16985, 16986, 0, 0, 0, 0, 15878, 0, 17437, 17438, 0, 0, 20164, 20165, 20164, 20165, 20164, 20165, 0, 20164, 20165, 20164, 20165, 20164, 20165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 16416, 0, 0, 13151, 13232, 13233, 13218, 0, 19163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17001, 17002, 0, 0, 0, 0, 15894, 0, 0, 0, 0, 0, 20180, 20181, 20180, 20181, 20180, 20181, 0, 20180, 20181, 20180, 20181, 20180, 20181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19853, 19854, 0, 12292, 12293, 12212, 0, 16178, 16179, 16141, 16432, 16143, 0, 13167, 13200, 13201, 13234, 0, 19179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10881, 10882, 10881, 10882, 10881, 10882, 10881, 10882, 0, 0, 0, 0, 17017, 17018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10881, 10882, 22358, 22359, 22358, 22359, 0, 0, 0, 22358, 22359, 22358, 22359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19869, 19870, 0, 12308, 12309, 12228, 0, 16194, 16195, 0, 16448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10897, 10898, 10897, 10898, 10897, 10898, 10897, 10898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22137, 22136, 0, 0, 0, 10897, 10898, 22374, 22375, 22374, 22375, 0, 0, 0, 22374, 22375, 22374, 22375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 16194, 16195, 0, 0, 0, 16365, 16366, 16367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10913, 10914, 10913, 10914, 10913, 10914, 10913, 10914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22153, 22152, 0, 0, 0, 10913, 10914, 22390, 22391, 22390, 22391, 0, 0, 0, 22390, 22391, 22390, 22391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16210, 16211, 0, 0, 0, 16381, 16382, 16383, 0, 13453, 13454, 0, 0, 18939, 0, 0, 0, 12212, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22169, 22168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16397, 16398, 16399, 0, 13469, 13470, 0, 0, 18955, 18999, 0, 0, 12228, 0, 19131, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16413, 16414, 16415, 0, 15912, 0, 0, 0, 0, 19015, 0, 0, 0, 0, 19163, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13494, 13495, 0, 0, 15429, 15430, 0, 0, 0, 0, 0, 0, 15928, 15952, 0, 0, 0, 15991, 0, 0, 0, 0, 19179, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 13510, 13511, 0, 0, 15445, 15446, 0, 0, 0, 15909, 0, 0, 15944, 15968, 0, 0, 0, 16007, 0, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15928, 15952, 0, 0, 13526, 13527, 0, 0, 15461, 15462, 0, 0, 15986, 15925, 0, 24879, 24880, 24881, 24882, 0, 0, 16023, 0, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13453, 13454, 0, 0, 28013, 0, 0, 0, 13517, 13518, 0, 0, 15909, 0, 0, 0, 13453, 13454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15944, 15968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16002, 15941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13469, 13470, 0, 0, 28029, 0, 0, 0, 13533, 13534, 0, 15986, 15925, 0, 0, 0, 13469, 13470, 0, 16607, 16608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13285, 13286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28045, 0, 0, 0, 15424, 0, 0, 16002, 15941, 0, 0, 0, 15912, 0, 0, 16623, 16624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 28013, 0, 0, 0, 13301, 13302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 19131, 0, 0, 0, 15440, 0, 0, 0, 19131, 0, 0, 0, 15928, 15952, 0, 0, 19131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16525, 16526, 28029, 0, 0, 28029, 0, 0, 0, 13317, 13318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15928, 15952, 0, 0, 19163, 0, 0, 0, 15456, 0, 0, 0, 19163, 0, 0, 0, 15944, 15968, 0, 0, 19163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15473, 15474, 15475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24832, 24833, 24834, 16541, 16542, 28045, 0, 0, 28045, 0, 0, 0, 13333, 13334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15944, 15968, 0, 0, 19179, 0, 0, 0, 15472, 0, 0, 0, 19179, 0, 0, 0, 13285, 13286, 0, 0, 19179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15489, 15490, 15491, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 15429, 15430, 30997, 30998, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 15425, 15426, 15427, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13301, 13302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15505, 15506, 15507, 0, 0, 0, 14821, 14822, 0, 12260, 12292, 12293, 0, 0, 0, 0, 0, 0, 15445, 15446, 31013, 31014, 0, 0, 14821, 14822, 0, 12260, 12292, 12293, 0, 0, 0, 0, 0, 0, 15441, 15442, 15443, 0, 0, 0, 14821, 14822, 0, 12260, 12292, 12293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13317, 13318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15521, 15522, 15523, 0, 0, 0, 0, 19195, 0, 12276, 12308, 12309, 0, 0, 0, 0, 0, 0, 15461, 15462, 31029, 31030, 0, 0, 0, 19195, 0, 12276, 12308, 12309, 0, 0, 0, 0, 0, 0, 15457, 15458, 15459, 0, 0, 0, 0, 19195, 0, 12276, 12308, 12309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12199, 0, 0, 0, 0, 0, 0, 0, 12247, 0, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19211, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19211, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19211, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12312, 12313, 0, 0, 12215, 0, 0, 0, 12294, 12295, 0, 0, 12263, 0, 0, 0, 12292, 12293, 0, 0, 12260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19177, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19177, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19177, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12328, 12329, 0, 0, 12231, 0, 0, 0, 12310, 12311, 0, 0, 12279, 0, 0, 0, 12308, 12309, 0, 0, 12276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19885, 19886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 19853, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 19869, 19870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13906, 13907, 0, 13285, 13286, 0, 0, 13517, 13518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13906, 13907, 0, 13287, 13288, 0, 0, 13453, 13454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13287, 13288, 0, 13287, 13288, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 13922, 13923, 0, 13301, 13302, 0, 0, 13533, 13534, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 13922, 13923, 0, 13303, 13304, 0, 0, 13469, 13470, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 13303, 13304, 0, 13303, 13304, 0, 0, 0, 28029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28029, 15951, 15952, 13938, 13939, 0, 13317, 13318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28029, 15951, 15952, 13938, 13939, 0, 13319, 13320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28029, 15951, 15952, 13319, 13320, 0, 13319, 13320, 15986, 15987, 0, 28045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28045, 15967, 15968, 13954, 13955, 0, 13333, 13334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28045, 15967, 15968, 13954, 13955, 0, 13335, 13336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28045, 15967, 15968, 13335, 13336, 0, 13335, 13336, 16002, 16003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12921, 12922, 12923, 12924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12937, 12938, 12939, 12940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12953, 12954, 12955, 12956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":10, + "name":"Interior Furniture L1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14973, 14974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14989, 14990, 14821, 14822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14821, 14822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 15911, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14924, 14940, 0, 0, 0, 15038, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 15927, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14792, 0, 14973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14808, 0, 14989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10922, 10923, 10922, 10923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10922, 10923, 10922, 10923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10938, 10939, 10938, 10939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10938, 10939, 10938, 10939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14974, 14792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14990, 14808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610623659, 1610623675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610623658, 1610623674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221236411, 3221236410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221236411, 3221236410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221236395, 3221236394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221236395, 3221236394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15910, 0, 0, 24864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, 2684369381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, 2684369382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13289, 13290, 0, 0, 15859, 0, 0, 0, 13291, 13292, 0, 0, 15862, 0, 0, 0, 0, 0, 0, 0, 15862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13305, 13306, 0, 0, 15875, 0, 0, 0, 13307, 13308, 0, 0, 15878, 0, 0, 0, 0, 0, 0, 0, 15878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10922, 10923, 14990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10922, 10923, 14989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10922, 10923, 0, 14990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13321, 13322, 0, 0, 15891, 0, 0, 0, 13323, 13324, 0, 0, 15894, 0, 0, 0, 0, 0, 0, 0, 15894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10938, 10939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10938, 10939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10938, 10939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13183, 0, 0, 13218, 0, 0, 15811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13151, 0, 0, 13154, 0, 0, 15811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13215, 0, 0, 13218, 0, 0, 15811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13199, 13168, 13169, 13234, 0, 0, 15827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13167, 13216, 13217, 13170, 0, 0, 15827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13231, 13168, 13169, 13234, 0, 0, 15827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13183, 13184, 13185, 13218, 0, 0, 15843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13151, 13232, 13233, 13154, 0, 0, 15843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13151, 13184, 13185, 13218, 0, 0, 15843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13199, 13200, 13201, 13234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13167, 13200, 13201, 13170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13167, 13200, 13201, 13234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":11, + "name":"Interior Furniture L2 ", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6669, 6668, 6668, 6515, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6669, 6669, 6669, 6518, 6515, 6668, 6668, 6668, 6668, 6668, 6669, 6668, 6668, 6515, 6669, 6669, 6669, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8804, 8805, 8805, 8805, 8651, 8804, 8804, 8805, 8654, 8651, 8804, 8805, 8805, 8805, 8651, 8804, 8804, 8805, 8654, 8651, 8804, 8805, 8805, 8805, 8805, 8805, 8804, 8805, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 6515, 6668, 6741, 0, 0, 6513, 6518, 6515, 6668, 6741, 0, 0, 6513, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6741, 0, 0, 6513, 6518, 6515, 6668, 6668, 6668, 6668, 6668, 6741, 0, 0, 6513, 6668, 6668, 6668, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6741, 0, 0, 6513, 6668, 6668, 6668, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5459, 5612, 5613, 5613, 5613, 5613, 5613, 5613, 5613, 5462, 5459, 5613, 5612, 5612, 5612, 5612, 5612, 5613, 5462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8649, 8804, 8804, 8804, 8804, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18569, 18570, 18570, 18570, 18570, 18570, 18570, 18571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9034, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22093, 22094, 22094, 22094, 22094, 22094, 22094, 22094, 22095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8804, 8804, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8804, 8804, 8804, 8877, 0, 0, 8649, 8804, 8804, 8804, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30943, 30944, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15501, 0, 0, 0, 0, 0, 0, 0, 0, 11766, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8804, 8804, 8804, 8877, 0, 0, 8649, 8805, 8654, 8651, 8804, 8804, 8804, 8877, 0, 0, 8649, 8805, 8654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 6895, 6896, 6898, 6895, 6898, 0, 0, 6895, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9125, 9126, 6895, 6897, 6898, 0, 0, 0, 0, 6895, 6896, 6897, 6896, 6898, 6895, 6898, 0, 0, 6895, 6896, 6898, 6895, 6896, 6897, 6898, 0, 0, 0, 0, 6895, 6896, 6896, 6897, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5534, 5612, 5613, 5612, 5613, 5685, 0, 0, 5457, 5613, 5613, 5685, 0, 0, 5613, 5613, 5613, 5613, 5462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8877, 0, 0, 0, 0, 0, 0, 0, 0, 8651, 8877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 9032, 9032, 9032, 9032, 9032, 9032, 9033, 9032, 9031, 9032, 9032, 9032, 9032, 9032, 9032, 9032, 9033, 9032, 9032, 8954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9031, 9032, 9033, 9032, 9033, 9034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5839, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5841, 5840, 5841, 5842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6515, 6668, 6668, 6668, 6668, 6741, 0, 0, 0, 0, 6513, 6668, 6669, 6668, 6669, 6518, 0, 0, 6515, 6668, 6668, 6668, 6668, 6741, 0, 0, 0, 0, 6513, 6669, 6669, 6669, 6669, 6669, 6669, 6669, 6668, 6669, 6518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10397, 10398, 10399, 10400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9093, 9094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10413, 10414, 10415, 10416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5449, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10429, 10430, 10431, 10432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22093, 22094, 22094, 22094, 22095, 0, 0, 0, 0, 15862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18569, 18570, 18570, 18570, 18570, 18570, 18571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10445, 10446, 10447, 10448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15608, 15609, 15610, 15611, 15612, 15601, 15602, 15603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10461, 10462, 10463, 10464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15862, 0, 0, 0, 0, 0, 20148, 20149, 20148, 20149, 20148, 20149, 0, 20148, 20149, 20148, 20149, 20148, 20149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16985, 16986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5451, 5604, 5604, 5604, 5604, 5604, 5604, 5454, 5604, 5604, 5604, 5677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5831, 5832, 5832, 5832, 5832, 5834, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10881, 10882, 10881, 10882, 10881, 10882, 10881, 10882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10881, 10882, 22358, 22359, 22358, 22359, 0, 0, 0, 22358, 22359, 22358, 22359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16365, 16366, 16367, 5451, 5604, 5677, 0, 0, 5449, 5604, 5454, 5451, 5677, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5527, 5680, 5753, 0, 0, 5525, 5680, 5530, 5527, 5753, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5831, 5832, 5832, 5832, 5834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6897, 6896, 6896, 6896, 6896, 6897, 6896, 6896, 6896, 6898, 0, 0, 6895, 6896, 6898, 0, 0, 6895, 6897, 6896, 6896, 6896, 6896, 6897, 6896, 6896, 6896, 6896, 6896, 6896, 6898, 0, 0, 6895, 6896, 6896, 6896, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5604, 5677, 0, 0, 5449, 5604, 5454, 5451, 5604, 5677, 0, 0, 5449, 5604, 5454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5833, 5834, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16607, 16608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13285, 13286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15424, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24864, 0, 0, 16525, 16526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13290, 0, 0, 0, 0, 0, 0, 0, 13292, 0, 0, 0, 0, 0, 0, 13285, 13286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 4935, 5088, 5089, 5089, 5161, 0, 0, 4933, 5088, 4935, 5089, 5088, 5089, 4938, 0, 0, 0, 0, 0, 5831, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 5983, 6136, 6209, 0, 0, 5981, 5986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6895, 6898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 6363, 6364, 6364, 6364, 6365, 6365, 6366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 0, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 0, 0, 0, 4933, 5088, 5089, 4938, 5089, 5161, 0, 0, 4933, 5088, 4938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 5315, 5316, 5316, 5316, 5317, 5317, 5318, 5317, 5317, 6898, 0, 0, 6895, 5318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10217, 10218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9099, 9100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10117, 10118, 10119, 10120, 10123, 10124, 10151, 10152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":19, + "name":"Foreground L1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19906, 0, 0, 0, 0, 0, 0, 12198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13285, 13286, 0, 0, 15429, 15430, 0, 0, 0, 19904, 0, 0, 0, 0, 0, 0, 19906, 0, 0, 13906, 13907, 0, 0, 0, 0, 15429, 15430, 0, 0, 0, 19906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14269, 14270, 0, 0, 15078, 0, 0, 13906, 13907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13291, 13292, 0, 0, 15078, 0, 0, 17673, 17674, 14973, 14974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15476, 15477, 15478, 15479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19534, 19535, 17673, 17674, 0, 0, 0, 0, 14973, 14974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15997, 15998, 15997, 15998, 16017, 16018, 0, 0, 0, 0, 0, 0, 0, 15492, 15493, 15494, 15495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14924, 14940, 0, 0, 0, 15038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17673, 17674, 0, 0, 0, 14792, 18049, 14973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15332, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 11959, 11960, 0, 0, 0, 0, 12246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14392, 14393, 14394, 14395, 14396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14408, 14409, 14410, 14411, 14412, 0, 0, 0, 0, 0, 0, 0, 18574, 18575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21602, 21603, 21604, 0, 0, 21193, 21194, 21195, 20835, 20836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14974, 14792, 18049, 17673, 17674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12196, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16381, 16382, 16383, 0, 13453, 13454, 0, 0, 18939, 0, 0, 0, 12212, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16397, 16369, 16399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13494, 13495, 0, 0, 15429, 15430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15473, 15474, 15475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15489, 15490, 15491, 0, 0, 0, 14974, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 15429, 15430, 30997, 30998, 0, 0, 14973, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 15425, 15426, 15427, 0, 0, 0, 0, 14974, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12199, 0, 0, 0, 0, 0, 0, 0, 12247, 0, 0, 0, 0, 0, 0, 0, 12244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":20, + "name":"Foreground L2", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 2684386685, 2684386685, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 2684386685, 2684386685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684386685, 2684386685, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 2684386685, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 2684386685, 2684386685, 2684386685, 2684386685, 0, 0, 2684386685, 32125, 2684386685, 2684386685, 2684386685, 2684386685, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 32125, 32125, 0, 0, 0, 32125, 2684386685, 0, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 32125, 32125, 0, 0, 0, 32125, 2684386685, 0, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 0, 0, 2684386685, 2684386685, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 2684386685, 0, 0, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 0, 0, 2684386685, 2684386685, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 2684386685, 0, 0, 2684386685, 2684386685, 0, 0, 0, 2684386685, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 32125, 2684386685, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 2684386685, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 2684386685, 0, 0, 2684386685, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 32125, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 32125, 0, 32125, 32125, 0, 32125, 32125, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 32125, 32125, 32125, 32125, 0, 0, 32125, 32125, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 32125, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 32125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":12, + "name":"Collisions", + "opacity":0.4, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32208, 32208, 32277, 32277, 32218, 0, 0, 32208, 32208, 32277, 32277, 32218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 32227, 32238, 32247, 32257, 32257, 0, 32208, 32208, 32218, 0, 0, 32208, 32208, 32277, 32277, 32218, 0, 0, 32227, 32227, 0, 32238, 32247, 32247, 32257, 32257, 0, 32208, 32208, 32218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32209, 0, 0, 0, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 0, 0, 0, 32208, 32208, 32218, 0, 0, 32227, 32227, 0, 0, 0, 32208, 32208, 32218, 0, 0, 0, 32227, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 32227, 0, 0, 32238, 0, 0, 32227, 32227, 0, 0, 32238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 32227, 0, 0, 32238, 0, 0, 32238, 32238, 0, 32258, 32258, 32228, 32249, 32249, 32249, 32249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32238, 32238, 32239, 32239, 32239, 32228, 32258, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32279, 32279, 32279, 32279, 0, 0, 0, 0, 0, 0, 32240, 32240, 0, 32250, 32250, 32250, 32250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 32209, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 32277, 32277, 32218, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32259, 0, 32259, 0, 32259, 0, 0, 0, 0, 32237, 0, 32228, 0, 0, 0, 0, 32237, 0, 32228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32270, 0, 0, 32270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 32277, 0, 0, 0, 32267, 32267, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32260, 0, 0, 32260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32229, 0, 32229, 0, 32229, 0, 32229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32259, 0, 32259, 0, 32259, 0, 0, 32259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32280, 0, 0, 0, 32270, 0, 0, 32270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32220, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32279, 32279, 0, 32247, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32260, 0, 0, 32260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32238, 32238, 0, 0, 0, 32248, 32228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 0, 0, 32219, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 32259, 0, 32259, 0, 32259, 0, 0, 32259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32270, 0, 0, 32270, 0, 0, 0, 0, 0, 0, 0, 32250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32269, 32269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 0, 0, 32218, 0, 0, 0, 32267, 32267, 0, 0, 0, 0, 32218, 0, 0, 0, 32268, 0, 0, 32268, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 0, 0, 32277, 0, 0, 0, 32247, 32247, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32277, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 32277, 0, 0, 0, 32278, 32268, 0, 0, 32268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32267, 32267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 32227, 0, 0, 0, 32208, 32208, 0, 0, 0, 32278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 32222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 32252, 0, 0, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 32252, 0, 0, 32252, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32271, 32271, 32271, 32271, 32271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32281, 32281, 32281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32221, 32221, 32221, 32221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32248, 32228, 32238, 32238, 0, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 32252, 0, 0, 32252, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32212, 32212, 32212, 0, 0, 0, 0, 0, 0, 32231, 0, 0, 32231, 0, 0, 0, 0, 0, 0, 0, 0, 32261, 32261, 32261, 32261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 32227, 32227, 32210, 32210, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32231, 0, 0, 32231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 0, 32252, 32252, 0, 32252, 32252, 0, 0, 0, 0, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32271, 32271, 32271, 32271, 32271, 32271, 32271, 32271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32231, 0, 0, 32231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32231, 0, 0, 0, 0, 32241, 32241, 32241, 32241, 32241, 32241, 0, 32241, 32241, 32241, 32241, 32241, 32241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 32252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32208, 32208, 0, 32277, 32277, 32218, 0, 0, 32278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32211, 0, 0, 32251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32278, 0, 0, 0, 32282, 32282, 32282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32271, 32271, 32271, 32271, 32271, 32271, 32271, 32271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32211, 0, 0, 32251, 0, 0, 32241, 32241, 32241, 32241, 32241, 32241, 0, 0, 0, 32241, 32241, 32241, 32241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32278, 0, 0, 32282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32211, 0, 0, 32251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32218, 32277, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32282, 0, 0, 0, 0, 32247, 32247, 0, 0, 32230, 32230, 0, 0, 0, 32277, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 32257, 32257, 0, 0, 32237, 0, 0, 0, 0, 32227, 0, 0, 0, 32279, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32272, 32272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 32247, 0, 0, 0, 0, 32247, 32247, 0, 0, 0, 0, 0, 0, 32247, 32247, 0, 0, 32278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 32237, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32210, 32210, 0, 0, 0, 0, 32247, 0, 0, 32227, 32227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 0, 32228, 0, 0, 0, 0, 0, 32257, 0, 32228, 0, 0, 0, 0, 0, 0, 0, 32228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32227, 32227, 0, 32238, 0, 0, 0, 0, 32227, 32227, 0, 32238, 0, 0, 0, 0, 32227, 32227, 0, 32238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32257, 32257, 32257, 0, 0, 0, 32228, 0, 0, 32218, 32277, 32277, 0, 0, 0, 0, 0, 0, 32257, 32257, 0, 0, 0, 0, 32228, 0, 0, 32218, 32277, 32277, 0, 0, 0, 0, 0, 0, 32257, 32257, 32257, 0, 0, 0, 32228, 0, 0, 32218, 32277, 32277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32262, 32262, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32277, 32277, 0, 0, 32218, 0, 0, 0, 32277, 32277, 0, 0, 32218, 0, 0, 0, 32277, 32277, 0, 0, 32218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32268, 0, 0, 32268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 32208, 32208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 32227, 32227, 0, 32227, 32227, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 32227, 32227, 0, 32227, 32227, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32237, 32227, 32227, 0, 32227, 32227, 32237, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32209, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32242, 0, 0, 0, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 0, 0, 0, 0, 32232, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 0, 0, 32232, 0, 0, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 0, 0, 0, 0, 32232, 32232, 0, 0, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 32232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":14, + "name":"Object Interaction Blocks", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32200, 32200, 32200, 32200, 32200, 0, 0, 32151, 32151, 32151, 32151, 32151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 32199, 32199, 32199, 32199, 0, 32140, 32140, 32140, 0, 0, 32160, 32160, 32160, 32160, 32160, 0, 0, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 0, 32180, 32180, 32180, 0, 0, 32200, 32200, 32200, 32200, 32200, 0, 0, 32151, 32151, 32151, 32151, 32151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 32199, 32199, 32199, 32199, 0, 32140, 32140, 32140, 0, 0, 32160, 32160, 32160, 32160, 32160, 0, 0, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 0, 32180, 32180, 32180, 0, 0, 32200, 32200, 32200, 32200, 32200, 0, 0, 32151, 32151, 32151, 32151, 32151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 32199, 32199, 32199, 32199, 0, 32140, 32140, 32140, 0, 0, 32160, 32160, 32160, 32160, 32160, 0, 0, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 0, 32180, 32180, 32180, 0, 0, 32200, 32200, 32200, 32200, 32200, 0, 0, 32151, 32151, 32151, 32151, 32151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 32199, 32199, 32199, 32199, 32199, 32140, 32140, 32140, 0, 0, 32160, 32160, 32160, 32160, 32160, 0, 0, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32170, 32180, 32180, 32180, 0, 0, 0, 0, 32200, 32200, 0, 0, 0, 0, 0, 32151, 32151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 0, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 0, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 32178, 32178, 32178, 32178, 32178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 32199, 32199, 32199, 32199, 32199, 32140, 32140, 32140, 0, 0, 0, 0, 32160, 32160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32170, 32170, 0, 0, 0, 0, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 0, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 0, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 32178, 32178, 32178, 32178, 32178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 0, 0, 0, 0, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 0, 0, 0, 0, 0, 0, 32170, 32170, 0, 0, 0, 0, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 0, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 0, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32199, 32199, 0, 0, 0, 0, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 0, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 0, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 32188, 32188, 32188, 32188, 32188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 32138, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 32158, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 32188, 32188, 32188, 32188, 32188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 32138, 32138, 32138, 32148, 32148, 32148, 0, 0, 32158, 32158, 32158, 32158, 32158, 32168, 32168, 32168, 0, 0, 32178, 32178, 32178, 32188, 32188, 32188, 32188, 32188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 0, 0, 0, 0, 0, 0, 0, 0, 32158, 32158, 0, 0, 0, 0, 0, 0, 0, 0, 32178, 32178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32138, 32138, 0, 0, 0, 0, 0, 0, 0, 0, 32158, 32158, 0, 0, 0, 0, 0, 0, 0, 0, 32178, 32178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32189, 32189, 32189, 32189, 32189, 32189, 32189, 32189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 32190, 32190, 32190, 32190, 32190, 0, 0, 32141, 32141, 32141, 32141, 32141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32169, 32179, 32179, 32179, 32179, 32179, 32179, 32189, 32189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 32161, 0, 0, 32150, 32150, 32150, 32150, 32150, 0, 0, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 32171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 32198, 32198, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 32149, 32149, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 32189, 32189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 32181, 0, 0, 32191, 32191, 32191, 32191, 32191, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 32198, 32198, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 32149, 32149, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 32189, 32189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 0, 0, 0, 0, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 0, 0, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 0, 0, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 32189, 32189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32181, 32181, 0, 0, 0, 0, 32191, 32191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 0, 0, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 0, 0, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 0, 32139, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 0, 32159, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 0, 0, 0, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32198, 32198, 32198, 32198, 0, 32139, 32139, 32139, 0, 0, 32149, 32149, 32149, 32149, 0, 32159, 32159, 32159, 0, 32179, 32179, 32179, 32179, 32179, 32179, 32179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 0, 0, 0, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32179, 32179, 32179, 32179, 32179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 0, 0, 0, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32179, 32179, 32179, 32179, 32179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 32201, 0, 0, 0, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 0, 0, 0, 0, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32172, 32172, 32172, 32172, 32172, 32172, 32172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32173, 32173, 32173, 32173, 32173, 32173, 32173, 0, 32172, 32172, 32172, 32172, 32172, 32172, 32172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32173, 32173, 0, 32172, 32172, 32172, 32172, 32172, 32172, 32172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32173, 32173, 0, 32172, 32172, 32172, 32172, 32172, 32172, 32172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32173, 32173, 0, 32172, 32172, 32172, 32172, 32172, 32172, 32172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32143, 32143, 32143, 32143, 32143, 32143, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32173, 32173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32143, 32143, 32143, 32143, 32143, 32143, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32142, 32142, 0, 0, 0, 0, 32142, 32142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32143, 32143, 32143, 32143, 32143, 32143, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32143, 32143, 32143, 32143, 32143, 32143, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 0, 32182, 32182, 0, 0, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 32152, 0, 0, 0, 0, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 32162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32143, 32143, 0, 0, 0, 0, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 0, 32182, 32182, 32182, 32182, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 32163, 0, 32182, 32182, 32182, 32182, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32182, 32182, 32182, 32182, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 0, 0, 32202, 32202, 0, 0, 32192, 32192, 0, 0, 32192, 32192, 0, 0, 32182, 32182, 32182, 32182, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 32182, 32182, 32182, 32182, 32182, 32182, 0, 0, 32153, 32153, 32153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 0, 0, 32193, 0, 0, 0, 32174, 32174, 0, 0, 32174, 0, 0, 0, 32194, 32194, 0, 0, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32202, 32202, 32202, 32202, 32202, 32202, 0, 0, 32192, 32192, 32192, 32192, 32192, 32192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32193, 32193, 32193, 32193, 32193, 0, 0, 0, 32174, 32174, 32174, 32174, 32174, 0, 0, 0, 32194, 32194, 32194, 32194, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32235, 0, 0, 32245, 32245, 32245, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32216, 0, 0, 32226, 32226, 32226, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32276, 0, 0, 32207, 32207, 32207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32203, 32203, 0, 0, 0, 0, 0, 0, 32184, 32184, 0, 0, 0, 0, 0, 0, 32204, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32235, 0, 0, 32245, 32245, 32245, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32216, 0, 0, 32226, 32226, 32226, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32276, 0, 0, 32207, 32207, 32207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32203, 32203, 32203, 32203, 32203, 0, 0, 0, 32184, 32184, 32184, 32184, 32184, 0, 0, 0, 32204, 32204, 32204, 32204, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32235, 0, 0, 32245, 32245, 32245, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32216, 0, 0, 32226, 32226, 32226, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32276, 0, 0, 32207, 32207, 32207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32203, 32203, 32203, 32203, 32203, 0, 0, 0, 32184, 32184, 32184, 32184, 32184, 0, 0, 0, 32204, 32204, 32204, 32204, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32235, 0, 0, 32245, 32245, 32245, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32216, 0, 0, 32226, 32226, 32226, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32276, 0, 0, 32207, 32207, 32207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32203, 32203, 32203, 32203, 32203, 0, 0, 0, 32184, 32184, 32184, 32184, 32184, 0, 0, 0, 32204, 32204, 32204, 32204, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32235, 32235, 0, 0, 32245, 32245, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32216, 32216, 0, 0, 32226, 32226, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32276, 32276, 0, 0, 32207, 32207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32203, 32203, 32203, 32203, 32203, 0, 0, 0, 32184, 32184, 32184, 32184, 32184, 0, 0, 0, 32204, 32204, 32204, 32204, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 32225, 32225, 32225, 32225, 32225, 32225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32206, 32206, 32206, 32206, 32206, 32206, 32206, 32206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32266, 32266, 32266, 32266, 32266, 32266, 32266, 32266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32225, 32225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32205, 32205, 32205, 32205, 32205, 0, 32215, 32215, 32215, 32215, 32215, 32215, 0, 0, 0, 0, 0, 0, 32265, 32265, 32265, 32265, 32265, 0, 32275, 32275, 32275, 32275, 32275, 32275, 0, 0, 0, 0, 0, 0, 32246, 32246, 32246, 32246, 32246, 0, 32256, 32256, 32256, 32256, 32256, 32256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32205, 32205, 32205, 32205, 32205, 0, 32215, 32215, 32215, 32215, 32215, 32215, 0, 0, 0, 0, 0, 0, 32265, 32265, 32265, 32265, 32265, 0, 32275, 32275, 32275, 32275, 32275, 32275, 0, 0, 0, 0, 0, 0, 32246, 32246, 32246, 32246, 32246, 0, 32256, 32256, 32256, 32256, 32256, 32256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32205, 32205, 32205, 32205, 32205, 0, 32215, 32215, 32215, 32215, 32215, 32215, 0, 0, 0, 0, 0, 0, 32265, 32265, 32265, 32265, 32265, 0, 32275, 32275, 32275, 32275, 32275, 32275, 0, 0, 0, 0, 0, 0, 32246, 32246, 32246, 32246, 32246, 0, 32256, 32256, 32256, 32256, 32256, 32256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 0, 0, 0, 0, 0, 0, 0, 0, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 0, 0, 0, 0, 0, 0, 0, 0, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 0, 0, 0, 0, 0, 0, 0, 0, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 0, 0, 0, 0, 0, 0, 0, 0, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 0, 0, 0, 0, 0, 0, 0, 0, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 0, 0, 0, 0, 0, 0, 0, 0, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 0, 0, 0, 0, 0, 0, 0, 0, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 0, 0, 0, 0, 0, 0, 0, 0, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 32255, 0, 0, 0, 0, 0, 0, 0, 0, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 32236, 0, 0, 0, 0, 0, 0, 0, 0, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 32217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":13, + "name":"Arena Blocks", + "opacity":1, + "type":"tilelayer", + "visible":false, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32165, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32145, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32165, 32165, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32145, 32145, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32165, 32165, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32145, 32145, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32175, 32175, 32175, 32175, 32175, 32175, 32175, 32185, 32185, 32185, 32185, 32185, 32185, 32185, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32195, 32155, 32155, 32155, 32155, 32155, 32155, 32155, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 32136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 32146, 0, 0, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32135, 32135, 32135, 32135, 32135, 32135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 32156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 32166, 0, 0, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 32176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 0, 0, 32186, 32186, 0, 32196, 32196, 32196, 0, 0, 32196, 32196, 0, 32137, 32137, 32137, 0, 0, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 32177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32186, 32186, 32186, 32186, 32186, 32186, 32186, 0, 32196, 32196, 32196, 32196, 32196, 32196, 32196, 0, 32137, 32137, 32137, 32137, 32137, 32137, 32137, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 32147, 0, 0, 0, 0, 0, 0, 0, 0, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 32157, 0, 0, 0, 0, 0, 0, 0, 0, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 32167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":16, + "name":"Sector Blocks", + "opacity":1, + "type":"tilelayer", + "visible":false, + "width":140, + "x":0, + "y":0 + }, + { + "data":[32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, + 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134, 32134], + "height":100, + "id":17, + "name":"World Blocks", + "opacity":1, + "type":"tilelayer", + "visible":false, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32306, 32316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32307, 32317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32285, 0, 0, 0, 0, 0, 0, 0, 0, 32295, 32305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32288, 32298, 0, 0, 0, 0, 0, 32308, 32318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32287, 32297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32313, 32323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32304, 32314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32289, 32299, 0, 0, 0, 0, 0, 0, 32309, 32319, 0, 0, 0, 0, 0, 0, 32290, 32300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32310, 32320, 0, 32291, 32301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32311, 32321, 0, 32292, 32302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32312, 32322, 0, 32293, 32303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":15, + "name":"Spawning Blocks", + "opacity":0.68, + "type":"tilelayer", + "visible":false, + "width":140, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32125, 32126, 32127, 32128, 32129, 32130, 32131, 32132, 32133, 32134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32135, 32136, 32137, 32138, 32139, 32140, 32141, 32142, 32143, 32144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32145, 32146, 32147, 32148, 32149, 32150, 32151, 32152, 32153, 32154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32155, 32156, 32157, 32158, 32159, 32160, 32161, 32162, 32163, 32164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32165, 32166, 32167, 32168, 32169, 32170, 32171, 32172, 32173, 32174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32175, 32176, 32177, 32178, 32179, 32180, 32181, 32182, 32183, 32184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32185, 32186, 32187, 32188, 32189, 32190, 32191, 32192, 32193, 32194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32195, 32196, 32197, 32198, 32199, 32200, 32201, 32202, 32203, 32204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32205, 32206, 32207, 32208, 32209, 32210, 32211, 32212, 32213, 32214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32215, 32216, 32217, 32218, 32219, 32220, 32221, 32222, 32223, 32224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32225, 32226, 32227, 32228, 32229, 32230, 32231, 32232, 32233, 32234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32235, 32236, 32237, 32238, 32239, 32240, 32241, 32242, 32243, 32244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32245, 32246, 32247, 32248, 32249, 32250, 32251, 32252, 32253, 32254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32255, 32256, 32257, 32258, 32259, 32260, 32261, 32262, 32263, 32264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32265, 32266, 32267, 32268, 32269, 32270, 32271, 32272, 32273, 32274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32275, 32276, 32277, 32278, 32279, 32280, 32281, 32282, 32283, 32284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32285, 32286, 32287, 32288, 32289, 32290, 32291, 32292, 32293, 32294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32295, 32296, 32297, 32298, 32299, 32300, 32301, 32302, 32303, 32304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32305, 32306, 32307, 32308, 32309, 32310, 32311, 32312, 32313, 32314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32315, 32316, 32317, 32318, 32319, 32320, 32321, 32322, 32323, 32324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":18, + "name":"Special Blocks Registry", + "opacity":1, + "type":"tilelayer", + "visible":false, + "width":140, + "x":0, + "y":0 + }], + "nextlayerid":21, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.8.6", + "tileheight":32, + "tilesets":[ + { + "columns":16, + "firstgid":1, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Field_B.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Field_B", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":257, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Field_C.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Field_C", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":513, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Harbor_C.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Harbor_C", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":76, + "firstgid":769, + "image":"map_assets\/v1\/Room_Builder_32x32.png", + "imageheight":3488, + "imagewidth":2432, + "margin":0, + "name":"Room_Builder_32x32", + "spacing":0, + "tilecount":8284, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":9053, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Village_B.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Village_B", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":9309, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Forest_B.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Forest_B", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":9565, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Desert_C.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Desert_C", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":9821, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Mountains_B.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Mountains_B", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":10077, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Desert_B.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Desert_B", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":10333, + "image":"map_assets\/cute_rpg_word_VXAce\/tilesets\/CuteRPG_Forest_C.png", + "imageheight":512, + "imagewidth":512, + "margin":0, + "name":"CuteRPG_Forest_C", + "spacing":0, + "tilecount":256, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":10589, + "image":"map_assets\/v1\/interiors_pt1.png", + "imageheight":10016, + "imagewidth":512, + "margin":0, + "name":"interiors_pt1", + "spacing":0, + "tilecount":5008, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":15597, + "image":"map_assets\/v1\/interiors_pt2.png", + "imageheight":10016, + "imagewidth":512, + "margin":0, + "name":"interiors_pt2", + "spacing":0, + "tilecount":5008, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":20605, + "image":"map_assets\/v1\/interiors_pt3.png", + "imageheight":10032, + "imagewidth":512, + "margin":0, + "name":"interiors_pt3", + "spacing":0, + "tilecount":5008, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":25613, + "image":"map_assets\/v1\/interiors_pt4.png", + "imageheight":4000, + "imagewidth":512, + "margin":0, + "name":"interiors_pt4", + "spacing":0, + "tilecount":2000, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":16, + "firstgid":27613, + "image":"map_assets\/v1\/interiors_pt5.png", + "imageheight":9024, + "imagewidth":512, + "margin":0, + "name":"interiors_pt5", + "spacing":0, + "tilecount":4512, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":10, + "firstgid":32125, + "image":"map_assets\/blocks\/blocks_1.png", + "imageheight":256, + "imagewidth":320, + "margin":0, + "name":"blocks", + "spacing":0, + "tilecount":80, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":10, + "firstgid":32205, + "image":"map_assets\/blocks\/blocks_2.png", + "imageheight":256, + "imagewidth":320, + "margin":0, + "name":"blocks_2", + "spacing":0, + "tilecount":80, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }, + { + "columns":10, + "firstgid":32285, + "image":"map_assets\/blocks\/blocks_3.png", + "imageheight":128, + "imagewidth":320, + "margin":0, + "name":"blocks_3", + "spacing":0, + "tilecount":40, + "tileheight":32, + "tilewidth":32, + "transparentcolor":"#ff00ff" + }], + "tilewidth":32, + "type":"map", + "version":"1.8", + "width":140 +} \ No newline at end of file diff --git a/agentsociety/custom/skills/_shared/agent_skill_runtime.py b/agentsociety/custom/skills/_shared/agent_skill_runtime.py new file mode 100644 index 0000000..57aa26d --- /dev/null +++ b/agentsociety/custom/skills/_shared/agent_skill_runtime.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python3 +"""Protocol helpers for executable GOD skills. + +The shared layer intentionally contains no skill ids, trigger keywords, or +business behavior. A skill script owns its own strategy and uses these helpers +only to parse input, inspect the observation, build a SkillResult, and emit it. +""" + +from __future__ import annotations + +import argparse +import json +import os +from datetime import datetime +from pathlib import Path +from typing import Any + + +SCHEMA_VERSION = "agent_skill_result.v1" + + +def parse_args() -> dict[str, Any]: + parser = argparse.ArgumentParser() + parser.add_argument("--args-json", default="{}") + parsed = json.loads(parser.parse_args().args_json) + if not isinstance(parsed, dict): + raise TypeError("--args-json must decode to an object") + return parsed + + +def safe_name(value: str) -> str: + return "".join(ch if ch.isalnum() else "_" for ch in value).strip("_") or "skill" + + +def current_skill_dir() -> Path: + raw = os.environ.get("SKILL_DIR") + if raw: + return Path(raw).resolve() + return Path(__file__).resolve().parents[1] + + +def load_local_skill_spec(skill_dir: Path | None = None) -> dict[str, Any]: + target = (skill_dir or current_skill_dir()) / "skill.json" + with target.open("r", encoding="utf-8") as handle: + spec = json.load(handle) + if not isinstance(spec, dict): + raise TypeError(f"{target} must contain a JSON object") + return spec + + +def observation_from(args: dict[str, Any]) -> dict[str, Any]: + raw = args.get("observation") + if isinstance(raw, dict): + return raw + if isinstance(raw, str): + try: + parsed = json.loads(raw) + if isinstance(parsed, dict): + return parsed + except json.JSONDecodeError: + return {"raw": raw} + return {} + + +def skill_args_from(args: dict[str, Any]) -> dict[str, Any]: + raw = args.get("skill_args") + return raw if isinstance(raw, dict) else {} + + +def as_ids(items: Any) -> list[str]: + if not isinstance(items, list): + return [] + result: list[str] = [] + for item in items: + value = item.get("id") if isinstance(item, dict) else item + text = str(value or "").strip() + if text: + result.append(text) + return result + + +def available_location_ids(observation: dict[str, Any]) -> list[str]: + return as_ids(observation.get("known_locations")) + + +def available_interaction_ids(observation: dict[str, Any]) -> list[str]: + return as_ids(observation.get("known_interactions")) + + +def choose_available_location( + observation: dict[str, Any], + candidates: list[str] | tuple[str, ...], + *, + fallback_current: bool = True, +) -> str: + available = available_location_ids(observation) + available_set = set(available) + for candidate in candidates: + if candidate and candidate in available_set: + return candidate + current = str(observation.get("location_id") or "") + if fallback_current and current: + return current + return available[0] if available else current + + +def choose_available_interaction( + observation: dict[str, Any], + candidates: list[str] | tuple[str, ...], + *, + location_id: str = "", +) -> str: + allowed = set(available_interaction_ids(observation)) + for item in observation.get("known_interactions", []) or []: + if not isinstance(item, dict): + continue + item_id = str(item.get("id") or "") + if not item_id or item_id not in candidates: + continue + allowed_locations = item.get("allowed_location_ids") or item.get("location_ids") or [] + if not location_id or not allowed_locations or location_id in allowed_locations: + return item_id + for candidate in candidates: + if candidate and candidate in allowed and not location_id: + return candidate + return "" + + +def hour_from(value: Any) -> float: + try: + text = str(value or "") + if not text: + return 12.0 + parsed = datetime.fromisoformat(text) + return parsed.hour + parsed.minute / 60.0 + except Exception: + return 12.0 + + +def profile_text(profile: Any) -> str: + if isinstance(profile, dict): + return " ".join(str(value) for value in profile.values()).lower() + return str(profile or "").lower() + + +def collect_text(args: dict[str, Any], observation: dict[str, Any]) -> str: + parts: list[str] = [] + for key in ("latest_event", "last_message", "raw"): + parts.append(str(observation.get(key) or "")) + for item in observation.get("recent_messages", []) or []: + if isinstance(item, dict): + parts.append(str(item.get("content") or "")) + for item in args.get("pending_interventions") or []: + parts.append(str(item)) + return " ".join(parts).lower() + + +def build_skill_result( + *, + skill_id: str, + summary: str, + reason: str, + world_effect: dict[str, Any] | None = None, + speech_effect: dict[str, Any] | None = None, + memory_effects: list[dict[str, Any]] | None = None, + confidence: float = 0.75, +) -> dict[str, Any]: + return { + "schema_version": SCHEMA_VERSION, + "skill_id": skill_id, + "summary": summary, + "reason": reason, + "confidence": confidence, + "world_effect": world_effect, + "speech_effect": speech_effect, + "memory_effects": memory_effects or [], + } + + +def memory_effect(skill_id: str, content: str, **metadata: Any) -> dict[str, Any]: + return { + "kind": "skill_event", + "content": content, + "metadata": {"skill_id": skill_id, **metadata}, + } + + +def write_result(work_dir: Path, skill_id: str, result: dict[str, Any]) -> None: + target = work_dir / "state" / "skill_results" / f"{safe_name(skill_id)}.json" + target.parent.mkdir(parents=True, exist_ok=True) + target.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8") + + +def emit_result(args: dict[str, Any], skill_id: str, result: dict[str, Any]) -> int: + work_dir = Path(args.get("agent_work_dir") or os.environ.get("AGENT_WORK_DIR") or ".").resolve() + write_result(work_dir, skill_id, result) + print(json.dumps(result, ensure_ascii=False)) + return 0 diff --git a/agentsociety/custom/skills/care.basic/SKILL.md b/agentsociety/custom/skills/care.basic/SKILL.md new file mode 100644 index 0000000..512fcfa --- /dev/null +++ b/agentsociety/custom/skills/care.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: care.basic +description: Offer basic care check-ins for neighbors. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use care.basic in a grounded town situation +outputs: + - state/skill_results/care_basic.json +--- + +# Care Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/care.basic/scripts/run_skill.py b/agentsociety/custom/skills/care.basic/scripts/run_skill.py new file mode 100755 index 0000000..dab76a3 --- /dev/null +++ b/agentsociety/custom/skills/care.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'care.basic' +SUMMARY = 'Offer basic care check-ins for neighbors.' +TARGET_LOCATIONS = ['pharmacy', 'home'] +TARGET_INTERACTIONS = ['blood_pressure_check', 'home_visit_prep'] +STATUS = 'caring' +EMOTION = 'attentive' +SPEECH = '我先确认身体状况,再提醒对方下一步怎么照顾自己。' +MEMORY_TEMPLATE = 'Used care.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/care.basic/skill.json b/agentsociety/custom/skills/care.basic/skill.json new file mode 100644 index 0000000..9c73885 --- /dev/null +++ b/agentsociety/custom/skills/care.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "care.basic", + "name": "Care Basic", + "description": "Offer basic care check-ins for neighbors.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "pharmacy", + "home" + ], + "target_interactions": [ + "blood_pressure_check", + "home_visit_prep" + ], + "status": "caring", + "emotion": "attentive", + "speech": "我先确认身体状况,再提醒对方下一步怎么照顾自己。", + "memory_template": "Used care.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use care.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/chronic.followup/SKILL.md b/agentsociety/custom/skills/chronic.followup/SKILL.md new file mode 100644 index 0000000..071e7f2 --- /dev/null +++ b/agentsociety/custom/skills/chronic.followup/SKILL.md @@ -0,0 +1,26 @@ +--- +name: chronic.followup +description: Follow up on recurring health needs and medication routines. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use chronic.followup in a grounded town situation +outputs: + - state/skill_results/chronic_followup.json +--- + +# Chronic Followup + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/chronic.followup/scripts/run_skill.py b/agentsociety/custom/skills/chronic.followup/scripts/run_skill.py new file mode 100755 index 0000000..29df4bb --- /dev/null +++ b/agentsociety/custom/skills/chronic.followup/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'chronic.followup' +SUMMARY = 'Follow up on recurring health needs and medication routines.' +TARGET_LOCATIONS = ['pharmacy', 'home'] +TARGET_INTERACTIONS = ['refill_prescription', 'blood_pressure_check'] +STATUS = 'following_up' +EMOTION = 'careful' +SPEECH = '我会把长期需要跟进的事项记清楚。' +MEMORY_TEMPLATE = 'Used chronic.followup: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/chronic.followup/skill.json b/agentsociety/custom/skills/chronic.followup/skill.json new file mode 100644 index 0000000..97dffdd --- /dev/null +++ b/agentsociety/custom/skills/chronic.followup/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "chronic.followup", + "name": "Chronic Followup", + "description": "Follow up on recurring health needs and medication routines.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "pharmacy", + "home" + ], + "target_interactions": [ + "refill_prescription", + "blood_pressure_check" + ], + "status": "following_up", + "emotion": "careful", + "speech": "我会把长期需要跟进的事项记清楚。", + "memory_template": "Used chronic.followup: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use chronic.followup in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/class.learn/SKILL.md b/agentsociety/custom/skills/class.learn/SKILL.md new file mode 100644 index 0000000..1b75a89 --- /dev/null +++ b/agentsociety/custom/skills/class.learn/SKILL.md @@ -0,0 +1,26 @@ +--- +name: class.learn +description: Attend class or study using the school and library workflow. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use class.learn in a grounded town situation +outputs: + - state/skill_results/class_learn.json +--- + +# Class Learn + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/class.learn/scripts/run_skill.py b/agentsociety/custom/skills/class.learn/scripts/run_skill.py new file mode 100755 index 0000000..c5c7162 --- /dev/null +++ b/agentsociety/custom/skills/class.learn/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'class.learn' +SUMMARY = 'Attend class or study using the school and library workflow.' +TARGET_LOCATIONS = ['school', 'library'] +TARGET_INTERACTIONS = ['attend_class', 'study_after_class'] +STATUS = 'learning' +EMOTION = 'focused' +SPEECH = '我先把今天该学的内容跟上。' +MEMORY_TEMPLATE = 'Used class.learn: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/class.learn/skill.json b/agentsociety/custom/skills/class.learn/skill.json new file mode 100644 index 0000000..393a5c4 --- /dev/null +++ b/agentsociety/custom/skills/class.learn/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "class.learn", + "name": "Class Learn", + "description": "Attend class or study using the school and library workflow.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "school", + "library" + ], + "target_interactions": [ + "attend_class", + "study_after_class" + ], + "status": "learning", + "emotion": "focused", + "speech": "我先把今天该学的内容跟上。", + "memory_template": "Used class.learn: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use class.learn in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/class.organize/SKILL.md b/agentsociety/custom/skills/class.organize/SKILL.md new file mode 100644 index 0000000..e5feafd --- /dev/null +++ b/agentsociety/custom/skills/class.organize/SKILL.md @@ -0,0 +1,26 @@ +--- +name: class.organize +description: Organize class materials, meetings, and student follow-up. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use class.organize in a grounded town situation +outputs: + - state/skill_results/class_organize.json +--- + +# Class Organize + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/class.organize/scripts/run_skill.py b/agentsociety/custom/skills/class.organize/scripts/run_skill.py new file mode 100755 index 0000000..dbd08d9 --- /dev/null +++ b/agentsociety/custom/skills/class.organize/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'class.organize' +SUMMARY = 'Organize class materials, meetings, and student follow-up.' +TARGET_LOCATIONS = ['school', 'library'] +TARGET_INTERACTIONS = ['prepare_lesson', 'school_meeting'] +STATUS = 'organizing_class' +EMOTION = 'focused' +SPEECH = '我把课程安排和需要提醒的学生整理一下。' +MEMORY_TEMPLATE = 'Used class.organize: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/class.organize/skill.json b/agentsociety/custom/skills/class.organize/skill.json new file mode 100644 index 0000000..3982982 --- /dev/null +++ b/agentsociety/custom/skills/class.organize/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "class.organize", + "name": "Class Organize", + "description": "Organize class materials, meetings, and student follow-up.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "school", + "library" + ], + "target_interactions": [ + "prepare_lesson", + "school_meeting" + ], + "status": "organizing_class", + "emotion": "focused", + "speech": "我把课程安排和需要提醒的学生整理一下。", + "memory_template": "Used class.organize: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use class.organize in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/community.coordinate/SKILL.md b/agentsociety/custom/skills/community.coordinate/SKILL.md new file mode 100644 index 0000000..eccaf4c --- /dev/null +++ b/agentsociety/custom/skills/community.coordinate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: community.coordinate +description: Coordinate neighbors and shared town information. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use community.coordinate in a grounded town situation +outputs: + - state/skill_results/community_coordinate.json +--- + +# Community Coordinate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/community.coordinate/scripts/run_skill.py b/agentsociety/custom/skills/community.coordinate/scripts/run_skill.py new file mode 100755 index 0000000..585154c --- /dev/null +++ b/agentsociety/custom/skills/community.coordinate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'community.coordinate' +SUMMARY = 'Coordinate neighbors and shared town information.' +TARGET_LOCATIONS = ['park', 'supply_store'] +TARGET_INTERACTIONS = ['coordinate_group', 'public_announcement'] +STATUS = 'coordinating' +EMOTION = 'focused' +SPEECH = '我会把当前情况整理清楚,并同步给需要知道的人。' +MEMORY_TEMPLATE = 'Used community.coordinate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/community.coordinate/skill.json b/agentsociety/custom/skills/community.coordinate/skill.json new file mode 100644 index 0000000..c85b5d5 --- /dev/null +++ b/agentsociety/custom/skills/community.coordinate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "community.coordinate", + "name": "Community Coordinate", + "description": "Coordinate neighbors and shared town information.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "supply_store" + ], + "target_interactions": [ + "coordinate_group", + "public_announcement" + ], + "status": "coordinating", + "emotion": "focused", + "speech": "我会把当前情况整理清楚,并同步给需要知道的人。", + "memory_template": "Used community.coordinate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use community.coordinate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/community.observe/SKILL.md b/agentsociety/custom/skills/community.observe/SKILL.md new file mode 100644 index 0000000..43de79f --- /dev/null +++ b/agentsociety/custom/skills/community.observe/SKILL.md @@ -0,0 +1,26 @@ +--- +name: community.observe +description: Observe community activity and notice practical changes. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use community.observe in a grounded town situation +outputs: + - state/skill_results/community_observe.json +--- + +# Community Observe + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/community.observe/scripts/run_skill.py b/agentsociety/custom/skills/community.observe/scripts/run_skill.py new file mode 100755 index 0000000..968d274 --- /dev/null +++ b/agentsociety/custom/skills/community.observe/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'community.observe' +SUMMARY = 'Observe community activity and notice practical changes.' +TARGET_LOCATIONS = ['park', 'market'] +TARGET_INTERACTIONS = ['take_walk', 'chat_with_regular'] +STATUS = 'observing' +EMOTION = 'curious' +SPEECH = '我顺路观察一下大家今天的状态。' +MEMORY_TEMPLATE = 'Used community.observe: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/community.observe/skill.json b/agentsociety/custom/skills/community.observe/skill.json new file mode 100644 index 0000000..f7005a1 --- /dev/null +++ b/agentsociety/custom/skills/community.observe/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "community.observe", + "name": "Community Observe", + "description": "Observe community activity and notice practical changes.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "market" + ], + "target_interactions": [ + "take_walk", + "chat_with_regular" + ], + "status": "observing", + "emotion": "curious", + "speech": "我顺路观察一下大家今天的状态。", + "memory_template": "Used community.observe: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use community.observe in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/computer.basic/SKILL.md b/agentsociety/custom/skills/computer.basic/SKILL.md new file mode 100644 index 0000000..318224d --- /dev/null +++ b/agentsociety/custom/skills/computer.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: computer.basic +description: Use basic computer work to prepare messages or records. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use computer.basic in a grounded town situation +outputs: + - state/skill_results/computer_basic.json +--- + +# Computer Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/computer.basic/scripts/run_skill.py b/agentsociety/custom/skills/computer.basic/scripts/run_skill.py new file mode 100755 index 0000000..8c8c4ae --- /dev/null +++ b/agentsociety/custom/skills/computer.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'computer.basic' +SUMMARY = 'Use basic computer work to prepare messages or records.' +TARGET_LOCATIONS = ['home', 'library'] +TARGET_INTERACTIONS = ['work_from_home', 'quiet_work'] +STATUS = 'computing' +EMOTION = 'focused' +SPEECH = '我先用电脑把这件事整理成可执行的信息。' +MEMORY_TEMPLATE = 'Used computer.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/computer.basic/skill.json b/agentsociety/custom/skills/computer.basic/skill.json new file mode 100644 index 0000000..0b2e064 --- /dev/null +++ b/agentsociety/custom/skills/computer.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "computer.basic", + "name": "Computer Basic", + "description": "Use basic computer work to prepare messages or records.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "library" + ], + "target_interactions": [ + "work_from_home", + "quiet_work" + ], + "status": "computing", + "emotion": "focused", + "speech": "我先用电脑把这件事整理成可执行的信息。", + "memory_template": "Used computer.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use computer.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/computer.repair/SKILL.md b/agentsociety/custom/skills/computer.repair/SKILL.md new file mode 100644 index 0000000..4e681f3 --- /dev/null +++ b/agentsociety/custom/skills/computer.repair/SKILL.md @@ -0,0 +1,26 @@ +--- +name: computer.repair +description: Diagnose and repair a computer or small device. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use computer.repair in a grounded town situation +outputs: + - state/skill_results/computer_repair.json +--- + +# Computer Repair + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/computer.repair/scripts/run_skill.py b/agentsociety/custom/skills/computer.repair/scripts/run_skill.py new file mode 100755 index 0000000..b0c7905 --- /dev/null +++ b/agentsociety/custom/skills/computer.repair/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'computer.repair' +SUMMARY = 'Diagnose and repair a computer or small device.' +TARGET_LOCATIONS = ['home', 'supply_store'] +TARGET_INTERACTIONS = ['work_from_home', 'repair_tools'] +STATUS = 'repairing_computer' +EMOTION = 'focused' +SPEECH = '我先检查设备问题,再决定要不要拿工具处理。' +MEMORY_TEMPLATE = 'Used computer.repair: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/computer.repair/skill.json b/agentsociety/custom/skills/computer.repair/skill.json new file mode 100644 index 0000000..8581781 --- /dev/null +++ b/agentsociety/custom/skills/computer.repair/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "computer.repair", + "name": "Computer Repair", + "description": "Diagnose and repair a computer or small device.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "supply_store" + ], + "target_interactions": [ + "work_from_home", + "repair_tools" + ], + "status": "repairing_computer", + "emotion": "focused", + "speech": "我先检查设备问题,再决定要不要拿工具处理。", + "memory_template": "Used computer.repair: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use computer.repair in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/conflict.mediate/SKILL.md b/agentsociety/custom/skills/conflict.mediate/SKILL.md new file mode 100644 index 0000000..e6f373b --- /dev/null +++ b/agentsociety/custom/skills/conflict.mediate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: conflict.mediate +description: Mediate disagreement through calm conversation. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use conflict.mediate in a grounded town situation +outputs: + - state/skill_results/conflict_mediate.json +--- + +# Conflict Mediate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/conflict.mediate/scripts/run_skill.py b/agentsociety/custom/skills/conflict.mediate/scripts/run_skill.py new file mode 100755 index 0000000..7ab4a92 --- /dev/null +++ b/agentsociety/custom/skills/conflict.mediate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'conflict.mediate' +SUMMARY = 'Mediate disagreement through calm conversation.' +TARGET_LOCATIONS = ['cafe', 'park'] +TARGET_INTERACTIONS = ['casual_meetup', 'meet_friend'] +STATUS = 'mediating' +EMOTION = 'patient' +SPEECH = '我先听双方怎么说,再帮大家把话说稳。' +MEMORY_TEMPLATE = 'Used conflict.mediate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/conflict.mediate/skill.json b/agentsociety/custom/skills/conflict.mediate/skill.json new file mode 100644 index 0000000..a1a2418 --- /dev/null +++ b/agentsociety/custom/skills/conflict.mediate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "conflict.mediate", + "name": "Conflict Mediate", + "description": "Mediate disagreement through calm conversation.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "cafe", + "park" + ], + "target_interactions": [ + "casual_meetup", + "meet_friend" + ], + "status": "mediating", + "emotion": "patient", + "speech": "我先听双方怎么说,再帮大家把话说稳。", + "memory_template": "Used conflict.mediate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use conflict.mediate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/cooking.lightmeal/SKILL.md b/agentsociety/custom/skills/cooking.lightmeal/SKILL.md new file mode 100644 index 0000000..b87a9b3 --- /dev/null +++ b/agentsociety/custom/skills/cooking.lightmeal/SKILL.md @@ -0,0 +1,26 @@ +--- +name: cooking.lightmeal +description: Prepare or choose a simple everyday meal. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use cooking.lightmeal in a grounded town situation +outputs: + - state/skill_results/cooking_lightmeal.json +--- + +# Cooking Lightmeal + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/cooking.lightmeal/scripts/run_skill.py b/agentsociety/custom/skills/cooking.lightmeal/scripts/run_skill.py new file mode 100755 index 0000000..561081c --- /dev/null +++ b/agentsociety/custom/skills/cooking.lightmeal/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'cooking.lightmeal' +SUMMARY = 'Prepare or choose a simple everyday meal.' +TARGET_LOCATIONS = ['cafe', 'home', 'market'] +TARGET_INTERACTIONS = ['eat_light_meal', 'cook_meal', 'buy_food'] +STATUS = 'preparing_food' +EMOTION = 'content' +SPEECH = '我去准备一点简单但合适的吃的。' +MEMORY_TEMPLATE = 'Used cooking.lightmeal: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/cooking.lightmeal/skill.json b/agentsociety/custom/skills/cooking.lightmeal/skill.json new file mode 100644 index 0000000..d20a214 --- /dev/null +++ b/agentsociety/custom/skills/cooking.lightmeal/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "cooking.lightmeal", + "name": "Cooking Lightmeal", + "description": "Prepare or choose a simple everyday meal.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "cafe", + "home", + "market" + ], + "target_interactions": [ + "eat_light_meal", + "cook_meal", + "buy_food" + ], + "status": "preparing_food", + "emotion": "content", + "speech": "我去准备一点简单但合适的吃的。", + "memory_template": "Used cooking.lightmeal: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use cooking.lightmeal in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/crowd.guide/SKILL.md b/agentsociety/custom/skills/crowd.guide/SKILL.md new file mode 100644 index 0000000..877f65e --- /dev/null +++ b/agentsociety/custom/skills/crowd.guide/SKILL.md @@ -0,0 +1,26 @@ +--- +name: crowd.guide +description: Guide a group toward an orderly shared action. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use crowd.guide in a grounded town situation +outputs: + - state/skill_results/crowd_guide.json +--- + +# Crowd Guide + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/crowd.guide/scripts/run_skill.py b/agentsociety/custom/skills/crowd.guide/scripts/run_skill.py new file mode 100755 index 0000000..2de768d --- /dev/null +++ b/agentsociety/custom/skills/crowd.guide/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'crowd.guide' +SUMMARY = 'Guide a group toward an orderly shared action.' +TARGET_LOCATIONS = ['park', 'supply_store'] +TARGET_INTERACTIONS = ['coordinate_group', 'public_announcement'] +STATUS = 'guiding_crowd' +EMOTION = 'steady' +SPEECH = '大家先别急,我来把方向和顺序说清楚。' +MEMORY_TEMPLATE = 'Used crowd.guide: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/crowd.guide/skill.json b/agentsociety/custom/skills/crowd.guide/skill.json new file mode 100644 index 0000000..f910253 --- /dev/null +++ b/agentsociety/custom/skills/crowd.guide/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "crowd.guide", + "name": "Crowd Guide", + "description": "Guide a group toward an orderly shared action.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "supply_store" + ], + "target_interactions": [ + "coordinate_group", + "public_announcement" + ], + "status": "guiding_crowd", + "emotion": "steady", + "speech": "大家先别急,我来把方向和顺序说清楚。", + "memory_template": "Used crowd.guide: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use crowd.guide in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/emotion.calm/SKILL.md b/agentsociety/custom/skills/emotion.calm/SKILL.md new file mode 100644 index 0000000..a8f4e8f --- /dev/null +++ b/agentsociety/custom/skills/emotion.calm/SKILL.md @@ -0,0 +1,26 @@ +--- +name: emotion.calm +description: Regulate tension and calm the nearby social mood. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use emotion.calm in a grounded town situation +outputs: + - state/skill_results/emotion_calm.json +--- + +# Emotion Calm + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/emotion.calm/scripts/run_skill.py b/agentsociety/custom/skills/emotion.calm/scripts/run_skill.py new file mode 100755 index 0000000..faf96a5 --- /dev/null +++ b/agentsociety/custom/skills/emotion.calm/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'emotion.calm' +SUMMARY = 'Regulate tension and calm the nearby social mood.' +TARGET_LOCATIONS = ['park', 'cafe', 'home'] +TARGET_INTERACTIONS = ['rest_on_bench', 'chat_over_coffee', 'relax_at_home'] +STATUS = 'calming' +EMOTION = 'calm' +SPEECH = '我先让气氛慢下来,大家才好做决定。' +MEMORY_TEMPLATE = 'Used emotion.calm: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/emotion.calm/skill.json b/agentsociety/custom/skills/emotion.calm/skill.json new file mode 100644 index 0000000..1d48655 --- /dev/null +++ b/agentsociety/custom/skills/emotion.calm/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "emotion.calm", + "name": "Emotion Calm", + "description": "Regulate tension and calm the nearby social mood.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "cafe", + "home" + ], + "target_interactions": [ + "rest_on_bench", + "chat_over_coffee", + "relax_at_home" + ], + "status": "calming", + "emotion": "calm", + "speech": "我先让气氛慢下来,大家才好做决定。", + "memory_template": "Used emotion.calm: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use emotion.calm in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/first_aid.basic/SKILL.md b/agentsociety/custom/skills/first_aid.basic/SKILL.md new file mode 100644 index 0000000..26f27ff --- /dev/null +++ b/agentsociety/custom/skills/first_aid.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: first_aid.basic +description: Prepare basic first-aid support and immediate care. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use first_aid.basic in a grounded town situation +outputs: + - state/skill_results/first_aid_basic.json +--- + +# First Aid Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/first_aid.basic/scripts/run_skill.py b/agentsociety/custom/skills/first_aid.basic/scripts/run_skill.py new file mode 100755 index 0000000..5663962 --- /dev/null +++ b/agentsociety/custom/skills/first_aid.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'first_aid.basic' +SUMMARY = 'Prepare basic first-aid support and immediate care.' +TARGET_LOCATIONS = ['pharmacy', 'supply_store'] +TARGET_INTERACTIONS = ['pharmacy_consultation', 'prepare_kit'] +STATUS = 'first_aid_ready' +EMOTION = 'alert' +SPEECH = '我会先看是否需要药品、包扎或进一步求助。' +MEMORY_TEMPLATE = 'Used first_aid.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/first_aid.basic/skill.json b/agentsociety/custom/skills/first_aid.basic/skill.json new file mode 100644 index 0000000..6f16512 --- /dev/null +++ b/agentsociety/custom/skills/first_aid.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "first_aid.basic", + "name": "First Aid Basic", + "description": "Prepare basic first-aid support and immediate care.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "pharmacy", + "supply_store" + ], + "target_interactions": [ + "pharmacy_consultation", + "prepare_kit" + ], + "status": "first_aid_ready", + "emotion": "alert", + "speech": "我会先看是否需要药品、包扎或进一步求助。", + "memory_template": "Used first_aid.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use first_aid.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/garden.basic/SKILL.md b/agentsociety/custom/skills/garden.basic/SKILL.md new file mode 100644 index 0000000..8d0ff8c --- /dev/null +++ b/agentsociety/custom/skills/garden.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: garden.basic +description: Tend plants and quiet outdoor/domestic care. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use garden.basic in a grounded town situation +outputs: + - state/skill_results/garden_basic.json +--- + +# Garden Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/garden.basic/scripts/run_skill.py b/agentsociety/custom/skills/garden.basic/scripts/run_skill.py new file mode 100755 index 0000000..c7bf0d8 --- /dev/null +++ b/agentsociety/custom/skills/garden.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'garden.basic' +SUMMARY = 'Tend plants and quiet outdoor/domestic care.' +TARGET_LOCATIONS = ['home', 'park'] +TARGET_INTERACTIONS = ['water_plants', 'bird_watch'] +STATUS = 'gardening' +EMOTION = 'calm' +SPEECH = '我去照看一下植物,也顺便让自己安静下来。' +MEMORY_TEMPLATE = 'Used garden.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/garden.basic/skill.json b/agentsociety/custom/skills/garden.basic/skill.json new file mode 100644 index 0000000..7a29826 --- /dev/null +++ b/agentsociety/custom/skills/garden.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "garden.basic", + "name": "Garden Basic", + "description": "Tend plants and quiet outdoor/domestic care.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "park" + ], + "target_interactions": [ + "water_plants", + "bird_watch" + ], + "status": "gardening", + "emotion": "calm", + "speech": "我去照看一下植物,也顺便让自己安静下来。", + "memory_template": "Used garden.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use garden.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/gossip.filter/SKILL.md b/agentsociety/custom/skills/gossip.filter/SKILL.md new file mode 100644 index 0000000..1f23cd0 --- /dev/null +++ b/agentsociety/custom/skills/gossip.filter/SKILL.md @@ -0,0 +1,26 @@ +--- +name: gossip.filter +description: Separate useful neighborhood signals from idle gossip. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use gossip.filter in a grounded town situation +outputs: + - state/skill_results/gossip_filter.json +--- + +# Gossip Filter + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/gossip.filter/scripts/run_skill.py b/agentsociety/custom/skills/gossip.filter/scripts/run_skill.py new file mode 100755 index 0000000..07fb9bd --- /dev/null +++ b/agentsociety/custom/skills/gossip.filter/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'gossip.filter' +SUMMARY = 'Separate useful neighborhood signals from idle gossip.' +TARGET_LOCATIONS = ['cafe', 'market'] +TARGET_INTERACTIONS = ['chat_over_coffee', 'chat_with_regular'] +STATUS = 'filtering_news' +EMOTION = 'curious' +SPEECH = '我会听听大家在说什么,只留下真正有用的信息。' +MEMORY_TEMPLATE = 'Used gossip.filter: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/gossip.filter/skill.json b/agentsociety/custom/skills/gossip.filter/skill.json new file mode 100644 index 0000000..75334e6 --- /dev/null +++ b/agentsociety/custom/skills/gossip.filter/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "gossip.filter", + "name": "Gossip Filter", + "description": "Separate useful neighborhood signals from idle gossip.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "cafe", + "market" + ], + "target_interactions": [ + "chat_over_coffee", + "chat_with_regular" + ], + "status": "filtering_news", + "emotion": "curious", + "speech": "我会听听大家在说什么,只留下真正有用的信息。", + "memory_template": "Used gossip.filter: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use gossip.filter in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/health.educate/SKILL.md b/agentsociety/custom/skills/health.educate/SKILL.md new file mode 100644 index 0000000..b5378de --- /dev/null +++ b/agentsociety/custom/skills/health.educate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: health.educate +description: Explain practical health advice in everyday language. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use health.educate in a grounded town situation +outputs: + - state/skill_results/health_educate.json +--- + +# Health Educate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/health.educate/scripts/run_skill.py b/agentsociety/custom/skills/health.educate/scripts/run_skill.py new file mode 100755 index 0000000..e1a1d69 --- /dev/null +++ b/agentsociety/custom/skills/health.educate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'health.educate' +SUMMARY = 'Explain practical health advice in everyday language.' +TARGET_LOCATIONS = ['pharmacy', 'school'] +TARGET_INTERACTIONS = ['pharmacy_consultation', 'hold_office_hours'] +STATUS = 'health_teaching' +EMOTION = 'warm' +SPEECH = '我会把健康提醒说得清楚一点,方便对方照做。' +MEMORY_TEMPLATE = 'Used health.educate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/health.educate/skill.json b/agentsociety/custom/skills/health.educate/skill.json new file mode 100644 index 0000000..ae548f3 --- /dev/null +++ b/agentsociety/custom/skills/health.educate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "health.educate", + "name": "Health Educate", + "description": "Explain practical health advice in everyday language.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "pharmacy", + "school" + ], + "target_interactions": [ + "pharmacy_consultation", + "hold_office_hours" + ], + "status": "health_teaching", + "emotion": "warm", + "speech": "我会把健康提醒说得清楚一点,方便对方照做。", + "memory_template": "Used health.educate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use health.educate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/history.localtelling/SKILL.md b/agentsociety/custom/skills/history.localtelling/SKILL.md new file mode 100644 index 0000000..f49d693 --- /dev/null +++ b/agentsociety/custom/skills/history.localtelling/SKILL.md @@ -0,0 +1,26 @@ +--- +name: history.localtelling +description: Tell local history to connect present action with memory. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use history.localtelling in a grounded town situation +outputs: + - state/skill_results/history_localtelling.json +--- + +# History Localtelling + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/history.localtelling/scripts/run_skill.py b/agentsociety/custom/skills/history.localtelling/scripts/run_skill.py new file mode 100755 index 0000000..3e2eb69 --- /dev/null +++ b/agentsociety/custom/skills/history.localtelling/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'history.localtelling' +SUMMARY = 'Tell local history to connect present action with memory.' +TARGET_LOCATIONS = ['library', 'park'] +TARGET_INTERACTIONS = ['research_topic', 'meet_friend'] +STATUS = 'storytelling' +EMOTION = 'warm' +SPEECH = '我想用一个本地故事帮大家理解这件事。' +MEMORY_TEMPLATE = 'Used history.localtelling: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/history.localtelling/skill.json b/agentsociety/custom/skills/history.localtelling/skill.json new file mode 100644 index 0000000..e1fcc8b --- /dev/null +++ b/agentsociety/custom/skills/history.localtelling/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "history.localtelling", + "name": "History Localtelling", + "description": "Tell local history to connect present action with memory.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "park" + ], + "target_interactions": [ + "research_topic", + "meet_friend" + ], + "status": "storytelling", + "emotion": "warm", + "speech": "我想用一个本地故事帮大家理解这件事。", + "memory_template": "Used history.localtelling: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use history.localtelling in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/info.research/SKILL.md b/agentsociety/custom/skills/info.research/SKILL.md new file mode 100644 index 0000000..8276268 --- /dev/null +++ b/agentsociety/custom/skills/info.research/SKILL.md @@ -0,0 +1,26 @@ +--- +name: info.research +description: Research a topic before acting or advising. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use info.research in a grounded town situation +outputs: + - state/skill_results/info_research.json +--- + +# Info Research + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/info.research/scripts/run_skill.py b/agentsociety/custom/skills/info.research/scripts/run_skill.py new file mode 100755 index 0000000..a2ff25c --- /dev/null +++ b/agentsociety/custom/skills/info.research/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'info.research' +SUMMARY = 'Research a topic before acting or advising.' +TARGET_LOCATIONS = ['library', 'home'] +TARGET_INTERACTIONS = ['research_topic', 'work_from_home'] +STATUS = 'researching' +EMOTION = 'focused' +SPEECH = '我先查清楚,再给出更可靠的建议。' +MEMORY_TEMPLATE = 'Used info.research: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/info.research/skill.json b/agentsociety/custom/skills/info.research/skill.json new file mode 100644 index 0000000..c8136dc --- /dev/null +++ b/agentsociety/custom/skills/info.research/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "info.research", + "name": "Info Research", + "description": "Research a topic before acting or advising.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "home" + ], + "target_interactions": [ + "research_topic", + "work_from_home" + ], + "status": "researching", + "emotion": "focused", + "speech": "我先查清楚,再给出更可靠的建议。", + "memory_template": "Used info.research: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use info.research in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/ingredient.advise/SKILL.md b/agentsociety/custom/skills/ingredient.advise/SKILL.md new file mode 100644 index 0000000..9267057 --- /dev/null +++ b/agentsociety/custom/skills/ingredient.advise/SKILL.md @@ -0,0 +1,26 @@ +--- +name: ingredient.advise +description: Advise on ingredients and practical meal choices. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use ingredient.advise in a grounded town situation +outputs: + - state/skill_results/ingredient_advise.json +--- + +# Ingredient Advise + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/ingredient.advise/scripts/run_skill.py b/agentsociety/custom/skills/ingredient.advise/scripts/run_skill.py new file mode 100755 index 0000000..57a6b8a --- /dev/null +++ b/agentsociety/custom/skills/ingredient.advise/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'ingredient.advise' +SUMMARY = 'Advise on ingredients and practical meal choices.' +TARGET_LOCATIONS = ['market', 'cafe'] +TARGET_INTERACTIONS = ['buy_food', 'eat_light_meal'] +STATUS = 'advising_ingredients' +EMOTION = 'helpful' +SPEECH = '我会按现在能买到的东西推荐搭配。' +MEMORY_TEMPLATE = 'Used ingredient.advise: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/ingredient.advise/skill.json b/agentsociety/custom/skills/ingredient.advise/skill.json new file mode 100644 index 0000000..80f51ac --- /dev/null +++ b/agentsociety/custom/skills/ingredient.advise/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "ingredient.advise", + "name": "Ingredient Advise", + "description": "Advise on ingredients and practical meal choices.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "market", + "cafe" + ], + "target_interactions": [ + "buy_food", + "eat_light_meal" + ], + "status": "advising_ingredients", + "emotion": "helpful", + "speech": "我会按现在能买到的东西推荐搭配。", + "memory_template": "Used ingredient.advise: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use ingredient.advise in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/inventory.count/SKILL.md b/agentsociety/custom/skills/inventory.count/SKILL.md new file mode 100644 index 0000000..71dc30a --- /dev/null +++ b/agentsociety/custom/skills/inventory.count/SKILL.md @@ -0,0 +1,26 @@ +--- +name: inventory.count +description: Count supplies and identify missing stock. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use inventory.count in a grounded town situation +outputs: + - state/skill_results/inventory_count.json +--- + +# Inventory Count + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/inventory.count/scripts/run_skill.py b/agentsociety/custom/skills/inventory.count/scripts/run_skill.py new file mode 100755 index 0000000..366428a --- /dev/null +++ b/agentsociety/custom/skills/inventory.count/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'inventory.count' +SUMMARY = 'Count supplies and identify missing stock.' +TARGET_LOCATIONS = ['supply_store', 'market'] +TARGET_INTERACTIONS = ['inspect_supplies', 'restock_shelves'] +STATUS = 'counting_inventory' +EMOTION = 'focused' +SPEECH = '我先把库存数清楚,看看缺什么。' +MEMORY_TEMPLATE = 'Used inventory.count: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/inventory.count/skill.json b/agentsociety/custom/skills/inventory.count/skill.json new file mode 100644 index 0000000..4268d88 --- /dev/null +++ b/agentsociety/custom/skills/inventory.count/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "inventory.count", + "name": "Inventory Count", + "description": "Count supplies and identify missing stock.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "supply_store", + "market" + ], + "target_interactions": [ + "inspect_supplies", + "restock_shelves" + ], + "status": "counting_inventory", + "emotion": "focused", + "speech": "我先把库存数清楚,看看缺什么。", + "memory_template": "Used inventory.count: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use inventory.count in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/ledger.basic/SKILL.md b/agentsociety/custom/skills/ledger.basic/SKILL.md new file mode 100644 index 0000000..62ce42d --- /dev/null +++ b/agentsociety/custom/skills/ledger.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: ledger.basic +description: Keep a simple ledger for shop or shared resources. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use ledger.basic in a grounded town situation +outputs: + - state/skill_results/ledger_basic.json +--- + +# Ledger Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/ledger.basic/scripts/run_skill.py b/agentsociety/custom/skills/ledger.basic/scripts/run_skill.py new file mode 100755 index 0000000..7dc0b83 --- /dev/null +++ b/agentsociety/custom/skills/ledger.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'ledger.basic' +SUMMARY = 'Keep a simple ledger for shop or shared resources.' +TARGET_LOCATIONS = ['market', 'supply_store'] +TARGET_INTERACTIONS = ['work_shop_shift', 'customer_service'] +STATUS = 'ledgering' +EMOTION = 'focused' +SPEECH = '我把收支和物资变动记下来。' +MEMORY_TEMPLATE = 'Used ledger.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/ledger.basic/skill.json b/agentsociety/custom/skills/ledger.basic/skill.json new file mode 100644 index 0000000..fe14c86 --- /dev/null +++ b/agentsociety/custom/skills/ledger.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "ledger.basic", + "name": "Ledger Basic", + "description": "Keep a simple ledger for shop or shared resources.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "market", + "supply_store" + ], + "target_interactions": [ + "work_shop_shift", + "customer_service" + ], + "status": "ledgering", + "emotion": "focused", + "speech": "我把收支和物资变动记下来。", + "memory_template": "Used ledger.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use ledger.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/library.curate/SKILL.md b/agentsociety/custom/skills/library.curate/SKILL.md new file mode 100644 index 0000000..32d887f --- /dev/null +++ b/agentsociety/custom/skills/library.curate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: library.curate +description: Curate library resources for the next useful topic. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use library.curate in a grounded town situation +outputs: + - state/skill_results/library_curate.json +--- + +# Library Curate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/library.curate/scripts/run_skill.py b/agentsociety/custom/skills/library.curate/scripts/run_skill.py new file mode 100755 index 0000000..8ce8b80 --- /dev/null +++ b/agentsociety/custom/skills/library.curate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'library.curate' +SUMMARY = 'Curate library resources for the next useful topic.' +TARGET_LOCATIONS = ['library', 'school'] +TARGET_INTERACTIONS = ['borrow_book', 'research_topic'] +STATUS = 'curating_library' +EMOTION = 'focused' +SPEECH = '我找几本现在真正派得上用场的资料。' +MEMORY_TEMPLATE = 'Used library.curate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/library.curate/skill.json b/agentsociety/custom/skills/library.curate/skill.json new file mode 100644 index 0000000..accec41 --- /dev/null +++ b/agentsociety/custom/skills/library.curate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "library.curate", + "name": "Library Curate", + "description": "Curate library resources for the next useful topic.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "school" + ], + "target_interactions": [ + "borrow_book", + "research_topic" + ], + "status": "curating_library", + "emotion": "focused", + "speech": "我找几本现在真正派得上用场的资料。", + "memory_template": "Used library.curate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use library.curate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/listen.relay/SKILL.md b/agentsociety/custom/skills/listen.relay/SKILL.md new file mode 100644 index 0000000..7b18e7e --- /dev/null +++ b/agentsociety/custom/skills/listen.relay/SKILL.md @@ -0,0 +1,26 @@ +--- +name: listen.relay +description: Listen carefully and relay a message faithfully. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use listen.relay in a grounded town situation +outputs: + - state/skill_results/listen_relay.json +--- + +# Listen Relay + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/listen.relay/scripts/run_skill.py b/agentsociety/custom/skills/listen.relay/scripts/run_skill.py new file mode 100755 index 0000000..a090029 --- /dev/null +++ b/agentsociety/custom/skills/listen.relay/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'listen.relay' +SUMMARY = 'Listen carefully and relay a message faithfully.' +TARGET_LOCATIONS = ['cafe', 'park'] +TARGET_INTERACTIONS = ['chat_over_coffee', 'meet_friend'] +STATUS = 'relaying' +EMOTION = 'attentive' +SPEECH = '我会先听完整,再转述给该知道的人。' +MEMORY_TEMPLATE = 'Used listen.relay: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/listen.relay/skill.json b/agentsociety/custom/skills/listen.relay/skill.json new file mode 100644 index 0000000..7ee9dfa --- /dev/null +++ b/agentsociety/custom/skills/listen.relay/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "listen.relay", + "name": "Listen Relay", + "description": "Listen carefully and relay a message faithfully.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "cafe", + "park" + ], + "target_interactions": [ + "chat_over_coffee", + "meet_friend" + ], + "status": "relaying", + "emotion": "attentive", + "speech": "我会先听完整,再转述给该知道的人。", + "memory_template": "Used listen.relay: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use listen.relay in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/map.navigate/SKILL.md b/agentsociety/custom/skills/map.navigate/SKILL.md new file mode 100644 index 0000000..5f87d31 --- /dev/null +++ b/agentsociety/custom/skills/map.navigate/SKILL.md @@ -0,0 +1,24 @@ +--- +name: map.navigate +description: Move toward a requested target location or perform a requested interaction if already there. +script: scripts/run_skill.py +shared: true +effects: + - move + - interact + - set_state + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the decision includes a specific target location or map interaction +outputs: + - state/skill_results/map_navigate.json +--- + +# Map Navigate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/map.navigate/scripts/run_skill.py b/agentsociety/custom/skills/map.navigate/scripts/run_skill.py new file mode 100755 index 0000000..2564814 --- /dev/null +++ b/agentsociety/custom/skills/map.navigate/scripts/run_skill.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, + skill_args_from, +) + +SKILL_ID = "map.navigate" + + +def requested_targets(args: dict, spec: dict) -> tuple[list[str], list[str], str]: + skill_args = skill_args_from(args) + requested_location = str(skill_args.get("location_id") or skill_args.get("target_location_id") or "").strip() + requested_interaction = str(skill_args.get("interaction_id") or "").strip() + locations = [requested_location] if requested_location else list(spec["target_locations"]) + interactions = [requested_interaction] if requested_interaction else list(spec["target_interactions"]) + target = requested_location or requested_interaction or "default navigation target" + return locations, interactions, target + + +def build_navigation_effect(observation: dict, locations: list[str], interactions: list[str]) -> dict: + current = str(observation.get("location_id") or "") + location_id = choose_available_location(observation, locations, fallback_current=False) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"map.navigate: move from {current or 'unknown'} to {location_id}"} + interaction_id = choose_available_interaction(observation, interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": "navigation target reached"}, "reason": "map.navigate: perform requested interaction at current location"} + return {"type": "set_state", "action": "check map and wait for a reachable target", "status": "moving", "emotion": "focused", "reason": "map.navigate: requested target is not currently reachable"} + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + locations, interactions, target = requested_targets(args, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary="navigate to a reachable town target", + reason="The navigation skill follows explicit location or interaction args before falling back to its local map defaults.", + world_effect=build_navigation_effect(observation, locations, interactions), + memory_effects=[memory_effect(SKILL_ID, spec["memory_template"].format(target=target))], + confidence=0.8, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/map.navigate/skill.json b/agentsociety/custom/skills/map.navigate/skill.json new file mode 100644 index 0000000..5232d4e --- /dev/null +++ b/agentsociety/custom/skills/map.navigate/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "map.navigate", + "name": "Map Navigate", + "description": "Move toward a requested target location or perform a requested interaction if already there.", + "shared": true, + "effects": [ + "move", + "interact", + "set_state", + "remember" + ], + "target_locations": [ + "park", + "cafe", + "market", + "home" + ], + "target_interactions": [ + "take_walk", + "chat_over_coffee", + "buy_food", + "relax_at_home" + ], + "status": "moving", + "emotion": "focused", + "speech": "", + "memory_template": "Navigation target resolved to {target}.", + "failure_strategy": "set_state", + "strategy": "navigate_args", + "trigger_examples": [ + "the decision includes a specific target location or map interaction" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/memory.record/SKILL.md b/agentsociety/custom/skills/memory.record/SKILL.md new file mode 100644 index 0000000..d02bc3c --- /dev/null +++ b/agentsociety/custom/skills/memory.record/SKILL.md @@ -0,0 +1,21 @@ +--- +name: memory.record +description: Write relevant step context into agent memory without moving or speaking by default. +script: scripts/run_skill.py +shared: true +effects: + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - a meaningful event should be preserved for future decisions +outputs: + - state/skill_results/memory_record.json +--- + +# Memory Record + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/memory.record/scripts/run_skill.py b/agentsociety/custom/skills/memory.record/scripts/run_skill.py new file mode 100755 index 0000000..47c71d8 --- /dev/null +++ b/agentsociety/custom/skills/memory.record/scripts/run_skill.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, + skill_args_from, +) + +SKILL_ID = "memory.record" + + +def memory_content(args: dict, observation: dict) -> str: + skill_args = skill_args_from(args) + explicit = str(skill_args.get("content") or "").strip() + if explicit: + return explicit + event = str(observation.get("latest_event") or "").strip() + if event: + return event + location_id = str(observation.get("location_id") or "unknown") + return f"Quiet step at {location_id}; no special external event was present." + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + content = memory_content(args, observation) + location_id = str(observation.get("location_id") or "unknown") + explicit_content = bool(str(skill_args_from(args).get("content") or "").strip()) + memory_text = content if explicit_content else spec["memory_template"].format(location_id=location_id, content=content) + result = build_skill_result( + skill_id=SKILL_ID, + summary="record current context in memory", + reason="This skill only writes durable context; it does not fabricate movement or speech.", + memory_effects=[memory_effect(SKILL_ID, memory_text, location_id=location_id)], + confidence=0.82, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/memory.record/skill.json b/agentsociety/custom/skills/memory.record/skill.json new file mode 100644 index 0000000..d4c8a9a --- /dev/null +++ b/agentsociety/custom/skills/memory.record/skill.json @@ -0,0 +1,24 @@ +{ + "skill_id": "memory.record", + "name": "Memory Record", + "description": "Write relevant step context into agent memory without moving or speaking by default.", + "shared": true, + "effects": [ + "remember" + ], + "target_locations": [], + "target_interactions": [], + "status": "reflecting", + "emotion": "calm", + "speech": "", + "memory_template": "Recorded context at {location_id}: {content}", + "failure_strategy": "memory_only", + "strategy": "memory_only", + "trigger_examples": [ + "a meaningful event should be preserved for future decisions" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/messaging.group/SKILL.md b/agentsociety/custom/skills/messaging.group/SKILL.md new file mode 100644 index 0000000..08c2a52 --- /dev/null +++ b/agentsociety/custom/skills/messaging.group/SKILL.md @@ -0,0 +1,26 @@ +--- +name: messaging.group +description: Send a concise practical group update. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use messaging.group in a grounded town situation +outputs: + - state/skill_results/messaging_group.json +--- + +# Messaging Group + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/messaging.group/scripts/run_skill.py b/agentsociety/custom/skills/messaging.group/scripts/run_skill.py new file mode 100755 index 0000000..e988890 --- /dev/null +++ b/agentsociety/custom/skills/messaging.group/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'messaging.group' +SUMMARY = 'Send a concise practical group update.' +TARGET_LOCATIONS = ['home', 'cafe', 'park'] +TARGET_INTERACTIONS = ['video_call_family', 'chat_over_coffee', 'public_announcement'] +STATUS = 'messaging_group' +EMOTION = 'clear' +SPEECH = '我把这件事简短同步到群里,方便大家配合。' +MEMORY_TEMPLATE = 'Used messaging.group: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/messaging.group/skill.json b/agentsociety/custom/skills/messaging.group/skill.json new file mode 100644 index 0000000..c65e62a --- /dev/null +++ b/agentsociety/custom/skills/messaging.group/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "messaging.group", + "name": "Messaging Group", + "description": "Send a concise practical group update.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "cafe", + "park" + ], + "target_interactions": [ + "video_call_family", + "chat_over_coffee", + "public_announcement" + ], + "status": "messaging_group", + "emotion": "clear", + "speech": "我把这件事简短同步到群里,方便大家配合。", + "memory_template": "Used messaging.group: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use messaging.group in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/neighbor.greet/SKILL.md b/agentsociety/custom/skills/neighbor.greet/SKILL.md new file mode 100644 index 0000000..fb86fdb --- /dev/null +++ b/agentsociety/custom/skills/neighbor.greet/SKILL.md @@ -0,0 +1,26 @@ +--- +name: neighbor.greet +description: Greet neighbors and maintain ordinary social warmth. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use neighbor.greet in a grounded town situation +outputs: + - state/skill_results/neighbor_greet.json +--- + +# Neighbor Greet + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/neighbor.greet/scripts/run_skill.py b/agentsociety/custom/skills/neighbor.greet/scripts/run_skill.py new file mode 100755 index 0000000..25dce47 --- /dev/null +++ b/agentsociety/custom/skills/neighbor.greet/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'neighbor.greet' +SUMMARY = 'Greet neighbors and maintain ordinary social warmth.' +TARGET_LOCATIONS = ['park', 'market', 'cafe'] +TARGET_INTERACTIONS = ['meet_friend', 'chat_with_regular', 'casual_meetup'] +STATUS = 'greeting' +EMOTION = 'warm' +SPEECH = '我顺路问候一下,看看大家今天过得怎么样。' +MEMORY_TEMPLATE = 'Used neighbor.greet: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/neighbor.greet/skill.json b/agentsociety/custom/skills/neighbor.greet/skill.json new file mode 100644 index 0000000..9fee521 --- /dev/null +++ b/agentsociety/custom/skills/neighbor.greet/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "neighbor.greet", + "name": "Neighbor Greet", + "description": "Greet neighbors and maintain ordinary social warmth.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "market", + "cafe" + ], + "target_interactions": [ + "meet_friend", + "chat_with_regular", + "casual_meetup" + ], + "status": "greeting", + "emotion": "warm", + "speech": "我顺路问候一下,看看大家今天过得怎么样。", + "memory_template": "Used neighbor.greet: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use neighbor.greet in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/neighbor.support/SKILL.md b/agentsociety/custom/skills/neighbor.support/SKILL.md new file mode 100644 index 0000000..79581fd --- /dev/null +++ b/agentsociety/custom/skills/neighbor.support/SKILL.md @@ -0,0 +1,26 @@ +--- +name: neighbor.support +description: Offer practical support to a nearby neighbor. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use neighbor.support in a grounded town situation +outputs: + - state/skill_results/neighbor_support.json +--- + +# Neighbor Support + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/neighbor.support/scripts/run_skill.py b/agentsociety/custom/skills/neighbor.support/scripts/run_skill.py new file mode 100755 index 0000000..48823b2 --- /dev/null +++ b/agentsociety/custom/skills/neighbor.support/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'neighbor.support' +SUMMARY = 'Offer practical support to a nearby neighbor.' +TARGET_LOCATIONS = ['home', 'park', 'market'] +TARGET_INTERACTIONS = ['home_visit_prep', 'meet_friend', 'deliver_order'] +STATUS = 'supporting_neighbor' +EMOTION = 'helpful' +SPEECH = '我看看附近有没有人需要顺手帮一把。' +MEMORY_TEMPLATE = 'Used neighbor.support: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/neighbor.support/skill.json b/agentsociety/custom/skills/neighbor.support/skill.json new file mode 100644 index 0000000..da54514 --- /dev/null +++ b/agentsociety/custom/skills/neighbor.support/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "neighbor.support", + "name": "Neighbor Support", + "description": "Offer practical support to a nearby neighbor.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "park", + "market" + ], + "target_interactions": [ + "home_visit_prep", + "meet_friend", + "deliver_order" + ], + "status": "supporting_neighbor", + "emotion": "helpful", + "speech": "我看看附近有没有人需要顺手帮一把。", + "memory_template": "Used neighbor.support: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use neighbor.support in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/notice.write/SKILL.md b/agentsociety/custom/skills/notice.write/SKILL.md new file mode 100644 index 0000000..aa860f4 --- /dev/null +++ b/agentsociety/custom/skills/notice.write/SKILL.md @@ -0,0 +1,26 @@ +--- +name: notice.write +description: Write a clear public notice or local announcement. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use notice.write in a grounded town situation +outputs: + - state/skill_results/notice_write.json +--- + +# Notice Write + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/notice.write/scripts/run_skill.py b/agentsociety/custom/skills/notice.write/scripts/run_skill.py new file mode 100755 index 0000000..ab19c2b --- /dev/null +++ b/agentsociety/custom/skills/notice.write/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'notice.write' +SUMMARY = 'Write a clear public notice or local announcement.' +TARGET_LOCATIONS = ['library', 'park'] +TARGET_INTERACTIONS = ['quiet_work', 'public_announcement'] +STATUS = 'writing_notice' +EMOTION = 'focused' +SPEECH = '我把公告写得短一点、清楚一点。' +MEMORY_TEMPLATE = 'Used notice.write: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/notice.write/skill.json b/agentsociety/custom/skills/notice.write/skill.json new file mode 100644 index 0000000..81ca202 --- /dev/null +++ b/agentsociety/custom/skills/notice.write/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "notice.write", + "name": "Notice Write", + "description": "Write a clear public notice or local announcement.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "park" + ], + "target_interactions": [ + "quiet_work", + "public_announcement" + ], + "status": "writing_notice", + "emotion": "focused", + "speech": "我把公告写得短一点、清楚一点。", + "memory_template": "Used notice.write: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use notice.write in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/patrol.plan/SKILL.md b/agentsociety/custom/skills/patrol.plan/SKILL.md new file mode 100644 index 0000000..6b94b11 --- /dev/null +++ b/agentsociety/custom/skills/patrol.plan/SKILL.md @@ -0,0 +1,26 @@ +--- +name: patrol.plan +description: Plan a practical patrol route through town. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use patrol.plan in a grounded town situation +outputs: + - state/skill_results/patrol_plan.json +--- + +# Patrol Plan + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/patrol.plan/scripts/run_skill.py b/agentsociety/custom/skills/patrol.plan/scripts/run_skill.py new file mode 100755 index 0000000..2d0ed3e --- /dev/null +++ b/agentsociety/custom/skills/patrol.plan/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'patrol.plan' +SUMMARY = 'Plan a practical patrol route through town.' +TARGET_LOCATIONS = ['park', 'market', 'supply_store'] +TARGET_INTERACTIONS = ['take_walk', 'coordinate_group', 'inspect_supplies'] +STATUS = 'planning_patrol' +EMOTION = 'alert' +SPEECH = '我先规划一条能覆盖重点地点的路线。' +MEMORY_TEMPLATE = 'Used patrol.plan: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/patrol.plan/skill.json b/agentsociety/custom/skills/patrol.plan/skill.json new file mode 100644 index 0000000..f42dcde --- /dev/null +++ b/agentsociety/custom/skills/patrol.plan/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "patrol.plan", + "name": "Patrol Plan", + "description": "Plan a practical patrol route through town.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "market", + "supply_store" + ], + "target_interactions": [ + "take_walk", + "coordinate_group", + "inspect_supplies" + ], + "status": "planning_patrol", + "emotion": "alert", + "speech": "我先规划一条能覆盖重点地点的路线。", + "memory_template": "Used patrol.plan: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use patrol.plan in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/peer.communicate/SKILL.md b/agentsociety/custom/skills/peer.communicate/SKILL.md new file mode 100644 index 0000000..a25670e --- /dev/null +++ b/agentsociety/custom/skills/peer.communicate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: peer.communicate +description: Talk with a peer in a grounded, age-appropriate way. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use peer.communicate in a grounded town situation +outputs: + - state/skill_results/peer_communicate.json +--- + +# Peer Communicate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/peer.communicate/scripts/run_skill.py b/agentsociety/custom/skills/peer.communicate/scripts/run_skill.py new file mode 100755 index 0000000..e4172ae --- /dev/null +++ b/agentsociety/custom/skills/peer.communicate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'peer.communicate' +SUMMARY = 'Talk with a peer in a grounded, age-appropriate way.' +TARGET_LOCATIONS = ['school', 'cafe', 'park'] +TARGET_INTERACTIONS = ['study_after_class', 'casual_meetup', 'meet_friend'] +STATUS = 'peer_talking' +EMOTION = 'open' +SPEECH = '我用同龄人能接受的方式把话说开。' +MEMORY_TEMPLATE = 'Used peer.communicate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/peer.communicate/skill.json b/agentsociety/custom/skills/peer.communicate/skill.json new file mode 100644 index 0000000..58cc322 --- /dev/null +++ b/agentsociety/custom/skills/peer.communicate/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "peer.communicate", + "name": "Peer Communicate", + "description": "Talk with a peer in a grounded, age-appropriate way.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "school", + "cafe", + "park" + ], + "target_interactions": [ + "study_after_class", + "casual_meetup", + "meet_friend" + ], + "status": "peer_talking", + "emotion": "open", + "speech": "我用同龄人能接受的方式把话说开。", + "memory_template": "Used peer.communicate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use peer.communicate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/phone.photolog/SKILL.md b/agentsociety/custom/skills/phone.photolog/SKILL.md new file mode 100644 index 0000000..b8ba652 --- /dev/null +++ b/agentsociety/custom/skills/phone.photolog/SKILL.md @@ -0,0 +1,26 @@ +--- +name: phone.photolog +description: Take a simple phone photo note for later recall. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use phone.photolog in a grounded town situation +outputs: + - state/skill_results/phone_photolog.json +--- + +# Phone Photolog + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/phone.photolog/scripts/run_skill.py b/agentsociety/custom/skills/phone.photolog/scripts/run_skill.py new file mode 100755 index 0000000..0cbe733 --- /dev/null +++ b/agentsociety/custom/skills/phone.photolog/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'phone.photolog' +SUMMARY = 'Take a simple phone photo note for later recall.' +TARGET_LOCATIONS = ['park', 'market', 'library'] +TARGET_INTERACTIONS = ['bird_watch', 'chat_with_regular', 'quiet_work'] +STATUS = 'photologging' +EMOTION = 'observant' +SPEECH = '我拍一张有用的记录,之后好回忆细节。' +MEMORY_TEMPLATE = 'Used phone.photolog: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/phone.photolog/skill.json b/agentsociety/custom/skills/phone.photolog/skill.json new file mode 100644 index 0000000..67765cb --- /dev/null +++ b/agentsociety/custom/skills/phone.photolog/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "phone.photolog", + "name": "Phone Photolog", + "description": "Take a simple phone photo note for later recall.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "market", + "library" + ], + "target_interactions": [ + "bird_watch", + "chat_with_regular", + "quiet_work" + ], + "status": "photologging", + "emotion": "observant", + "speech": "我拍一张有用的记录,之后好回忆细节。", + "memory_template": "Used phone.photolog: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use phone.photolog in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/price.negotiate/SKILL.md b/agentsociety/custom/skills/price.negotiate/SKILL.md new file mode 100644 index 0000000..efd6920 --- /dev/null +++ b/agentsociety/custom/skills/price.negotiate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: price.negotiate +description: Negotiate market price with practical tradeoffs. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use price.negotiate in a grounded town situation +outputs: + - state/skill_results/price_negotiate.json +--- + +# Price Negotiate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/price.negotiate/scripts/run_skill.py b/agentsociety/custom/skills/price.negotiate/scripts/run_skill.py new file mode 100755 index 0000000..1ce6724 --- /dev/null +++ b/agentsociety/custom/skills/price.negotiate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'price.negotiate' +SUMMARY = 'Negotiate market price with practical tradeoffs.' +TARGET_LOCATIONS = ['market'] +TARGET_INTERACTIONS = ['haggle_price', 'buy_food'] +STATUS = 'negotiating' +EMOTION = 'sharp' +SPEECH = '我先问清价格和数量,再试着谈一个双方都能接受的价。' +MEMORY_TEMPLATE = 'Used price.negotiate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/price.negotiate/skill.json b/agentsociety/custom/skills/price.negotiate/skill.json new file mode 100644 index 0000000..079e771 --- /dev/null +++ b/agentsociety/custom/skills/price.negotiate/skill.json @@ -0,0 +1,34 @@ +{ + "skill_id": "price.negotiate", + "name": "Price Negotiate", + "description": "Negotiate market price with practical tradeoffs.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "market" + ], + "target_interactions": [ + "haggle_price", + "buy_food" + ], + "status": "negotiating", + "emotion": "sharp", + "speech": "我先问清价格和数量,再试着谈一个双方都能接受的价。", + "memory_template": "Used price.negotiate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use price.negotiate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/privacy.protect/SKILL.md b/agentsociety/custom/skills/privacy.protect/SKILL.md new file mode 100644 index 0000000..2a3cb0a --- /dev/null +++ b/agentsociety/custom/skills/privacy.protect/SKILL.md @@ -0,0 +1,26 @@ +--- +name: privacy.protect +description: Protect private information before sharing or recording. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use privacy.protect in a grounded town situation +outputs: + - state/skill_results/privacy_protect.json +--- + +# Privacy Protect + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/privacy.protect/scripts/run_skill.py b/agentsociety/custom/skills/privacy.protect/scripts/run_skill.py new file mode 100755 index 0000000..97bd327 --- /dev/null +++ b/agentsociety/custom/skills/privacy.protect/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'privacy.protect' +SUMMARY = 'Protect private information before sharing or recording.' +TARGET_LOCATIONS = ['home', 'library'] +TARGET_INTERACTIONS = ['work_from_home', 'quiet_work'] +STATUS = 'protecting_privacy' +EMOTION = 'careful' +SPEECH = '我先确认哪些信息不能随便说出去。' +MEMORY_TEMPLATE = 'Used privacy.protect: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/privacy.protect/skill.json b/agentsociety/custom/skills/privacy.protect/skill.json new file mode 100644 index 0000000..b24e197 --- /dev/null +++ b/agentsociety/custom/skills/privacy.protect/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "privacy.protect", + "name": "Privacy Protect", + "description": "Protect private information before sharing or recording.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "library" + ], + "target_interactions": [ + "work_from_home", + "quiet_work" + ], + "status": "protecting_privacy", + "emotion": "careful", + "speech": "我先确认哪些信息不能随便说出去。", + "memory_template": "Used privacy.protect: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use privacy.protect in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/radio.comms/SKILL.md b/agentsociety/custom/skills/radio.comms/SKILL.md new file mode 100644 index 0000000..841a124 --- /dev/null +++ b/agentsociety/custom/skills/radio.comms/SKILL.md @@ -0,0 +1,26 @@ +--- +name: radio.comms +description: Coordinate concise radio-style communications. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use radio.comms in a grounded town situation +outputs: + - state/skill_results/radio_comms.json +--- + +# Radio Comms + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/radio.comms/scripts/run_skill.py b/agentsociety/custom/skills/radio.comms/scripts/run_skill.py new file mode 100755 index 0000000..5cd0a05 --- /dev/null +++ b/agentsociety/custom/skills/radio.comms/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'radio.comms' +SUMMARY = 'Coordinate concise radio-style communications.' +TARGET_LOCATIONS = ['park', 'supply_store'] +TARGET_INTERACTIONS = ['public_announcement', 'coordinate_group'] +STATUS = 'radio_comms' +EMOTION = 'clear' +SPEECH = '我用最短的信息说明位置、需求和下一步。' +MEMORY_TEMPLATE = 'Used radio.comms: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/radio.comms/skill.json b/agentsociety/custom/skills/radio.comms/skill.json new file mode 100644 index 0000000..8c9f6b5 --- /dev/null +++ b/agentsociety/custom/skills/radio.comms/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "radio.comms", + "name": "Radio Comms", + "description": "Coordinate concise radio-style communications.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "supply_store" + ], + "target_interactions": [ + "public_announcement", + "coordinate_group" + ], + "status": "radio_comms", + "emotion": "clear", + "speech": "我用最短的信息说明位置、需求和下一步。", + "memory_template": "Used radio.comms: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use radio.comms in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/record.shortnote/SKILL.md b/agentsociety/custom/skills/record.shortnote/SKILL.md new file mode 100644 index 0000000..67d6b0b --- /dev/null +++ b/agentsociety/custom/skills/record.shortnote/SKILL.md @@ -0,0 +1,26 @@ +--- +name: record.shortnote +description: Write a brief useful note about the current situation. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use record.shortnote in a grounded town situation +outputs: + - state/skill_results/record_shortnote.json +--- + +# Record Shortnote + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/record.shortnote/scripts/run_skill.py b/agentsociety/custom/skills/record.shortnote/scripts/run_skill.py new file mode 100755 index 0000000..df97ab2 --- /dev/null +++ b/agentsociety/custom/skills/record.shortnote/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'record.shortnote' +SUMMARY = 'Write a brief useful note about the current situation.' +TARGET_LOCATIONS = ['library', 'home'] +TARGET_INTERACTIONS = ['quiet_work', 'read_at_home'] +STATUS = 'short_note' +EMOTION = 'focused' +SPEECH = '我会把这一点记成短句,之后容易查。' +MEMORY_TEMPLATE = 'Used record.shortnote: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/record.shortnote/skill.json b/agentsociety/custom/skills/record.shortnote/skill.json new file mode 100644 index 0000000..789033b --- /dev/null +++ b/agentsociety/custom/skills/record.shortnote/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "record.shortnote", + "name": "Record Shortnote", + "description": "Write a brief useful note about the current situation.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "home" + ], + "target_interactions": [ + "quiet_work", + "read_at_home" + ], + "status": "short_note", + "emotion": "focused", + "speech": "我会把这一点记成短句,之后容易查。", + "memory_template": "Used record.shortnote: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use record.shortnote in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/remote.communicate/SKILL.md b/agentsociety/custom/skills/remote.communicate/SKILL.md new file mode 100644 index 0000000..9bb8631 --- /dev/null +++ b/agentsociety/custom/skills/remote.communicate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: remote.communicate +description: Communicate with someone who is not physically nearby. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use remote.communicate in a grounded town situation +outputs: + - state/skill_results/remote_communicate.json +--- + +# Remote Communicate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/remote.communicate/scripts/run_skill.py b/agentsociety/custom/skills/remote.communicate/scripts/run_skill.py new file mode 100755 index 0000000..7904c43 --- /dev/null +++ b/agentsociety/custom/skills/remote.communicate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'remote.communicate' +SUMMARY = 'Communicate with someone who is not physically nearby.' +TARGET_LOCATIONS = ['home', 'cafe'] +TARGET_INTERACTIONS = ['video_call_family', 'chat_over_coffee'] +STATUS = 'remote_comms' +EMOTION = 'warm' +SPEECH = '我先远程确认对方情况,再决定下一步。' +MEMORY_TEMPLATE = 'Used remote.communicate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/remote.communicate/skill.json b/agentsociety/custom/skills/remote.communicate/skill.json new file mode 100644 index 0000000..5c89f16 --- /dev/null +++ b/agentsociety/custom/skills/remote.communicate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "remote.communicate", + "name": "Remote Communicate", + "description": "Communicate with someone who is not physically nearby.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "cafe" + ], + "target_interactions": [ + "video_call_family", + "chat_over_coffee" + ], + "status": "remote_comms", + "emotion": "warm", + "speech": "我先远程确认对方情况,再决定下一步。", + "memory_template": "Used remote.communicate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use remote.communicate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/repair.basic/SKILL.md b/agentsociety/custom/skills/repair.basic/SKILL.md new file mode 100644 index 0000000..24fc611 --- /dev/null +++ b/agentsociety/custom/skills/repair.basic/SKILL.md @@ -0,0 +1,26 @@ +--- +name: repair.basic +description: Repair a simple household or shared item. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use repair.basic in a grounded town situation +outputs: + - state/skill_results/repair_basic.json +--- + +# Repair Basic + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/repair.basic/scripts/run_skill.py b/agentsociety/custom/skills/repair.basic/scripts/run_skill.py new file mode 100755 index 0000000..c6e2f53 --- /dev/null +++ b/agentsociety/custom/skills/repair.basic/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'repair.basic' +SUMMARY = 'Repair a simple household or shared item.' +TARGET_LOCATIONS = ['supply_store', 'home'] +TARGET_INTERACTIONS = ['repair_tools', 'tidy_home'] +STATUS = 'repairing' +EMOTION = 'focused' +SPEECH = '我先检查哪里坏了,再动手修。' +MEMORY_TEMPLATE = 'Used repair.basic: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/repair.basic/skill.json b/agentsociety/custom/skills/repair.basic/skill.json new file mode 100644 index 0000000..eccb509 --- /dev/null +++ b/agentsociety/custom/skills/repair.basic/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "repair.basic", + "name": "Repair Basic", + "description": "Repair a simple household or shared item.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "supply_store", + "home" + ], + "target_interactions": [ + "repair_tools", + "tidy_home" + ], + "status": "repairing", + "emotion": "focused", + "speech": "我先检查哪里坏了,再动手修。", + "memory_template": "Used repair.basic: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use repair.basic in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/roster.verify/SKILL.md b/agentsociety/custom/skills/roster.verify/SKILL.md new file mode 100644 index 0000000..fbe3ac2 --- /dev/null +++ b/agentsociety/custom/skills/roster.verify/SKILL.md @@ -0,0 +1,26 @@ +--- +name: roster.verify +description: Verify names, attendance, or responsibility lists. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use roster.verify in a grounded town situation +outputs: + - state/skill_results/roster_verify.json +--- + +# Roster Verify + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/roster.verify/scripts/run_skill.py b/agentsociety/custom/skills/roster.verify/scripts/run_skill.py new file mode 100755 index 0000000..dc6618c --- /dev/null +++ b/agentsociety/custom/skills/roster.verify/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'roster.verify' +SUMMARY = 'Verify names, attendance, or responsibility lists.' +TARGET_LOCATIONS = ['school', 'library'] +TARGET_INTERACTIONS = ['school_meeting', 'quiet_work'] +STATUS = 'verifying_roster' +EMOTION = 'precise' +SPEECH = '我先核对名单,避免漏掉关键的人。' +MEMORY_TEMPLATE = 'Used roster.verify: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/roster.verify/skill.json b/agentsociety/custom/skills/roster.verify/skill.json new file mode 100644 index 0000000..2acbb90 --- /dev/null +++ b/agentsociety/custom/skills/roster.verify/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "roster.verify", + "name": "Roster Verify", + "description": "Verify names, attendance, or responsibility lists.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "school", + "library" + ], + "target_interactions": [ + "school_meeting", + "quiet_work" + ], + "status": "verifying_roster", + "emotion": "precise", + "speech": "我先核对名单,避免漏掉关键的人。", + "memory_template": "Used roster.verify: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use roster.verify in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/route.localmap/SKILL.md b/agentsociety/custom/skills/route.localmap/SKILL.md new file mode 100644 index 0000000..807b586 --- /dev/null +++ b/agentsociety/custom/skills/route.localmap/SKILL.md @@ -0,0 +1,26 @@ +--- +name: route.localmap +description: Use local map knowledge to pick a sensible route. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use route.localmap in a grounded town situation +outputs: + - state/skill_results/route_localmap.json +--- + +# Route Localmap + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/route.localmap/scripts/run_skill.py b/agentsociety/custom/skills/route.localmap/scripts/run_skill.py new file mode 100755 index 0000000..c250fa9 --- /dev/null +++ b/agentsociety/custom/skills/route.localmap/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'route.localmap' +SUMMARY = 'Use local map knowledge to pick a sensible route.' +TARGET_LOCATIONS = ['park', 'market', 'supply_store'] +TARGET_INTERACTIONS = ['take_walk', 'deliver_order', 'inspect_supplies'] +STATUS = 'routing' +EMOTION = 'alert' +SPEECH = '我按本地路线选一个最顺的走法。' +MEMORY_TEMPLATE = 'Used route.localmap: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/route.localmap/skill.json b/agentsociety/custom/skills/route.localmap/skill.json new file mode 100644 index 0000000..8d01b0d --- /dev/null +++ b/agentsociety/custom/skills/route.localmap/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "route.localmap", + "name": "Route Localmap", + "description": "Use local map knowledge to pick a sensible route.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "market", + "supply_store" + ], + "target_interactions": [ + "take_walk", + "deliver_order", + "inspect_supplies" + ], + "status": "routing", + "emotion": "alert", + "speech": "我按本地路线选一个最顺的走法。", + "memory_template": "Used route.localmap: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use route.localmap in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/route.recall/SKILL.md b/agentsociety/custom/skills/route.recall/SKILL.md new file mode 100644 index 0000000..51b9400 --- /dev/null +++ b/agentsociety/custom/skills/route.recall/SKILL.md @@ -0,0 +1,26 @@ +--- +name: route.recall +description: Recall familiar routes from memory for grounded movement. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use route.recall in a grounded town situation +outputs: + - state/skill_results/route_recall.json +--- + +# Route Recall + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/route.recall/scripts/run_skill.py b/agentsociety/custom/skills/route.recall/scripts/run_skill.py new file mode 100755 index 0000000..1df3200 --- /dev/null +++ b/agentsociety/custom/skills/route.recall/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'route.recall' +SUMMARY = 'Recall familiar routes from memory for grounded movement.' +TARGET_LOCATIONS = ['home', 'park', 'market'] +TARGET_INTERACTIONS = ['read_at_home', 'take_walk', 'buy_food'] +STATUS = 'recalling_route' +EMOTION = 'thoughtful' +SPEECH = '我想想平常怎么走最稳妥。' +MEMORY_TEMPLATE = 'Used route.recall: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/route.recall/skill.json b/agentsociety/custom/skills/route.recall/skill.json new file mode 100644 index 0000000..3a5254d --- /dev/null +++ b/agentsociety/custom/skills/route.recall/skill.json @@ -0,0 +1,37 @@ +{ + "skill_id": "route.recall", + "name": "Route Recall", + "description": "Recall familiar routes from memory for grounded movement.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "park", + "market" + ], + "target_interactions": [ + "read_at_home", + "take_walk", + "buy_food" + ], + "status": "recalling_route", + "emotion": "thoughtful", + "speech": "我想想平常怎么走最稳妥。", + "memory_template": "Used route.recall: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use route.recall in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/routine.daily/SKILL.md b/agentsociety/custom/skills/routine.daily/SKILL.md new file mode 100644 index 0000000..58c70fe --- /dev/null +++ b/agentsociety/custom/skills/routine.daily/SKILL.md @@ -0,0 +1,24 @@ +--- +name: routine.daily +description: Choose a natural daily movement, interaction, or state from time, role, and current town context. +script: scripts/run_skill.py +shared: true +effects: + - move + - interact + - set_state + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - morning, lunch, work, school, evening, or sleep routine is the most natural next step +outputs: + - state/skill_results/routine_daily.json +--- + +# Routine Daily + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/routine.daily/scripts/run_skill.py b/agentsociety/custom/skills/routine.daily/scripts/run_skill.py new file mode 100755 index 0000000..639b212 --- /dev/null +++ b/agentsociety/custom/skills/routine.daily/scripts/run_skill.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + hour_from, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, + profile_text, +) + +SKILL_ID = "routine.daily" + + +def choose_daily_plan(args: dict, observation: dict, spec: dict) -> dict: + role_text = profile_text(args.get("profile")) + hour = hour_from(args.get("time")) + if ("学生" in role_text or "student" in role_text) and 7.5 <= hour < 16.5: + return {"summary": "school study routine", "locations": ["school", "library"], "interactions": ["attend_class", "study_after_class"], "status": "studying", "emotion": "focused"} + if any(word in role_text for word in ("老师", "教师", "teacher")) and 7.5 <= hour < 17.5: + return {"summary": "teaching routine", "locations": ["school", "library"], "interactions": ["teach_class", "prepare_lesson"], "status": "teaching", "emotion": "focused"} + if any(word in role_text for word in ("医生", "护士", "pharmacist", "doctor", "nurse")) and 8 <= hour < 18: + return {"summary": "health care shift", "locations": ["pharmacy", "home"], "interactions": ["pharmacy_consultation", "blood_pressure_check"], "status": "caring", "emotion": "attentive"} + if any(word in role_text for word in ("店", "商", "shop", "vendor", "market")) and 8 <= hour < 18: + return {"summary": "market work routine", "locations": ["market", "supply_store"], "interactions": ["work_shop_shift", "customer_service"], "status": "working", "emotion": "focused"} + if 5.5 <= hour < 8.5: + return {"summary": "morning home routine", "locations": ["home", "park"], "interactions": ["cook_meal", "morning_exercise"], "status": "starting_day", "emotion": "calm"} + if 11.5 <= hour < 13.5: + return {"summary": "lunch routine", "locations": ["cafe", "market", "home"], "interactions": ["eat_light_meal", "buy_food", "eat_at_home"], "status": "eating", "emotion": "content"} + if 17.5 <= hour < 20.5: + return {"summary": "evening routine", "locations": ["home", "cafe", "park"], "interactions": ["eat_at_home", "chat_over_coffee", "meet_friend"], "status": "winding_down", "emotion": "calm"} + if hour >= 23 or hour < 5.5: + return {"summary": "sleep routine", "locations": ["home", "dorm"], "interactions": ["sleep_at_home", "rest_at_dorm"], "status": "resting", "emotion": "tired"} + return {"summary": "ordinary town routine", "locations": spec["target_locations"], "interactions": spec["target_interactions"], "status": spec["status"], "emotion": spec["emotion"]} + + +def build_world_effect(observation: dict, plan: dict) -> dict: + current = str(observation.get("location_id") or "") + location_id = choose_available_location(observation, plan["locations"]) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"routine.daily: move for {plan['summary']}"} + interaction_id = choose_available_interaction(observation, plan["interactions"], location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": plan["summary"]}, "reason": f"routine.daily: perform {plan['summary']}"} + return {"type": "set_state", "action": plan["summary"], "status": plan["status"], "emotion": plan["emotion"], "reason": "routine.daily: no matching map target is currently available"} + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + plan = choose_daily_plan(args, observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=plan["summary"], + reason="The daily skill uses the agent role, clock time, current location, and available town actions.", + world_effect=build_world_effect(observation, plan), + memory_effects=[memory_effect(SKILL_ID, spec["memory_template"].format(summary=plan["summary"]))], + confidence=0.78, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/routine.daily/skill.json b/agentsociety/custom/skills/routine.daily/skill.json new file mode 100644 index 0000000..020f504 --- /dev/null +++ b/agentsociety/custom/skills/routine.daily/skill.json @@ -0,0 +1,41 @@ +{ + "skill_id": "routine.daily", + "name": "Routine Daily", + "description": "Choose a natural daily movement, interaction, or state from time, role, and current town context.", + "shared": true, + "effects": [ + "move", + "interact", + "set_state", + "remember" + ], + "target_locations": [ + "home", + "school", + "market", + "cafe", + "park", + "library" + ], + "target_interactions": [ + "cook_meal", + "attend_class", + "work_shop_shift", + "eat_light_meal", + "take_walk", + "read_book" + ], + "status": "active", + "emotion": "calm", + "speech": "", + "memory_template": "Followed a daily routine: {summary}.", + "failure_strategy": "set_state", + "strategy": "routine_time_role", + "trigger_examples": [ + "morning, lunch, work, school, evening, or sleep routine is the most natural next step" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/safety.respond/SKILL.md b/agentsociety/custom/skills/safety.respond/SKILL.md new file mode 100644 index 0000000..f70956a --- /dev/null +++ b/agentsociety/custom/skills/safety.respond/SKILL.md @@ -0,0 +1,25 @@ +--- +name: safety.respond +description: Respond to urgent or risky events with safety movement, announcement, and memory. +script: scripts/run_skill.py +shared: true +effects: + - move + - interact + - set_state + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - fire, earthquake, emergency, evacuation, urgent warning, or safety intervention is present +outputs: + - state/skill_results/safety_respond.json +--- + +# Safety Respond + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/safety.respond/scripts/run_skill.py b/agentsociety/custom/skills/safety.respond/scripts/run_skill.py new file mode 100755 index 0000000..7ad632b --- /dev/null +++ b/agentsociety/custom/skills/safety.respond/scripts/run_skill.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + collect_text, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, + skill_args_from, +) + +SKILL_ID = "safety.respond" +URGENCY_WORDS = ("火灾", "地震", "洪水", "撤离", "疏散", "紧急", "危险", "volcano", "earthquake", "fire", "flood", "emergency", "evacuate") + + +def is_urgent(args: dict, observation: dict) -> bool: + text = collect_text(args, observation) + return any(word.lower() in text for word in URGENCY_WORDS) + + +def build_safety_world(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + location_id = choose_available_location(observation, spec["target_locations"]) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": "safety.respond: move toward safety supplies or public coordination"} + interaction_id = choose_available_interaction(observation, spec["target_interactions"], location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": "safety response"}, "reason": "safety.respond: use the safest available local interaction"} + return {"type": "set_state", "action": "hold safety posture and monitor conditions", "status": spec["status"], "emotion": spec["emotion"], "reason": "safety.respond: no reachable safety interaction is available"} + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + skill_args = skill_args_from(args) + urgent = is_urgent(args, observation) + announcement = str(skill_args.get("message") or spec["speech"]) + content = collect_text(args, observation)[:120] or "routine safety readiness" + result = build_skill_result( + skill_id=SKILL_ID, + summary="respond to a safety-relevant event" if urgent else "maintain safety readiness", + reason="Urgency words or intervention context require safety coordination." if urgent else "No urgent term was detected, so the skill keeps a cautious readiness posture.", + world_effect=build_safety_world(observation, spec), + speech_effect={"type": "group_message", "group_id": int(skill_args.get("group_id") or 1), "content": announcement}, + memory_effects=[memory_effect(SKILL_ID, spec["memory_template"].format(content=content), urgent=urgent)], + confidence=0.92 if urgent else 0.62, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/safety.respond/skill.json b/agentsociety/custom/skills/safety.respond/skill.json new file mode 100644 index 0000000..7edbd33 --- /dev/null +++ b/agentsociety/custom/skills/safety.respond/skill.json @@ -0,0 +1,38 @@ +{ + "skill_id": "safety.respond", + "name": "Safety Respond", + "description": "Respond to urgent or risky events with safety movement, announcement, and memory.", + "shared": true, + "effects": [ + "move", + "interact", + "set_state", + "group_message", + "remember" + ], + "target_locations": [ + "supply_store", + "park", + "pharmacy", + "home" + ], + "target_interactions": [ + "prepare_kit", + "public_announcement", + "pharmacy_consultation", + "relax_at_home" + ], + "status": "alert", + "emotion": "focused", + "speech": "请大家确认安全,必要时前往安全地点,并同步身边需要帮助的人。", + "memory_template": "Safety response recorded: {content}", + "failure_strategy": "set_state", + "strategy": "safety_response", + "trigger_examples": [ + "fire, earthquake, emergency, evacuation, urgent warning, or safety intervention is present" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/script.automate/SKILL.md b/agentsociety/custom/skills/script.automate/SKILL.md new file mode 100644 index 0000000..8220036 --- /dev/null +++ b/agentsociety/custom/skills/script.automate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: script.automate +description: Automate a small repetitive computer task. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use script.automate in a grounded town situation +outputs: + - state/skill_results/script_automate.json +--- + +# Script Automate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/script.automate/scripts/run_skill.py b/agentsociety/custom/skills/script.automate/scripts/run_skill.py new file mode 100755 index 0000000..bd4c8e1 --- /dev/null +++ b/agentsociety/custom/skills/script.automate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'script.automate' +SUMMARY = 'Automate a small repetitive computer task.' +TARGET_LOCATIONS = ['home', 'library'] +TARGET_INTERACTIONS = ['work_from_home', 'quiet_work'] +STATUS = 'automating' +EMOTION = 'focused' +SPEECH = '我写个小脚本把重复步骤省下来。' +MEMORY_TEMPLATE = 'Used script.automate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/script.automate/skill.json b/agentsociety/custom/skills/script.automate/skill.json new file mode 100644 index 0000000..a20f12c --- /dev/null +++ b/agentsociety/custom/skills/script.automate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "script.automate", + "name": "Script Automate", + "description": "Automate a small repetitive computer task.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "library" + ], + "target_interactions": [ + "work_from_home", + "quiet_work" + ], + "status": "automating", + "emotion": "focused", + "speech": "我写个小脚本把重复步骤省下来。", + "memory_template": "Used script.automate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use script.automate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/shop.run/SKILL.md b/agentsociety/custom/skills/shop.run/SKILL.md new file mode 100644 index 0000000..dd3cbc0 --- /dev/null +++ b/agentsociety/custom/skills/shop.run/SKILL.md @@ -0,0 +1,26 @@ +--- +name: shop.run +description: Run ordinary shop work and customer service. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use shop.run in a grounded town situation +outputs: + - state/skill_results/shop_run.json +--- + +# Shop Run + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/shop.run/scripts/run_skill.py b/agentsociety/custom/skills/shop.run/scripts/run_skill.py new file mode 100755 index 0000000..cd9df66 --- /dev/null +++ b/agentsociety/custom/skills/shop.run/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'shop.run' +SUMMARY = 'Run ordinary shop work and customer service.' +TARGET_LOCATIONS = ['supply_store', 'market'] +TARGET_INTERACTIONS = ['customer_service', 'work_shop_shift'] +STATUS = 'shop_working' +EMOTION = 'attentive' +SPEECH = '我先把顾客和货架都照看好。' +MEMORY_TEMPLATE = 'Used shop.run: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/shop.run/skill.json b/agentsociety/custom/skills/shop.run/skill.json new file mode 100644 index 0000000..0a15685 --- /dev/null +++ b/agentsociety/custom/skills/shop.run/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "shop.run", + "name": "Shop Run", + "description": "Run ordinary shop work and customer service.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "supply_store", + "market" + ], + "target_interactions": [ + "customer_service", + "work_shop_shift" + ], + "status": "shop_working", + "emotion": "attentive", + "speech": "我先把顾客和货架都照看好。", + "memory_template": "Used shop.run: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use shop.run in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/sketch.draw/SKILL.md b/agentsociety/custom/skills/sketch.draw/SKILL.md new file mode 100644 index 0000000..5ebec7d --- /dev/null +++ b/agentsociety/custom/skills/sketch.draw/SKILL.md @@ -0,0 +1,26 @@ +--- +name: sketch.draw +description: Draw or sketch a quiet observation. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use sketch.draw in a grounded town situation +outputs: + - state/skill_results/sketch_draw.json +--- + +# Sketch Draw + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/sketch.draw/scripts/run_skill.py b/agentsociety/custom/skills/sketch.draw/scripts/run_skill.py new file mode 100755 index 0000000..94f656b --- /dev/null +++ b/agentsociety/custom/skills/sketch.draw/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'sketch.draw' +SUMMARY = 'Draw or sketch a quiet observation.' +TARGET_LOCATIONS = ['park', 'library'] +TARGET_INTERACTIONS = ['bird_watch', 'quiet_work'] +STATUS = 'sketching' +EMOTION = 'calm' +SPEECH = '我把眼前这个细节画下来。' +MEMORY_TEMPLATE = 'Used sketch.draw: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/sketch.draw/skill.json b/agentsociety/custom/skills/sketch.draw/skill.json new file mode 100644 index 0000000..0abe5e9 --- /dev/null +++ b/agentsociety/custom/skills/sketch.draw/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "sketch.draw", + "name": "Sketch Draw", + "description": "Draw or sketch a quiet observation.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "park", + "library" + ], + "target_interactions": [ + "bird_watch", + "quiet_work" + ], + "status": "sketching", + "emotion": "calm", + "speech": "我把眼前这个细节画下来。", + "memory_template": "Used sketch.draw: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use sketch.draw in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/social.matchmake/SKILL.md b/agentsociety/custom/skills/social.matchmake/SKILL.md new file mode 100644 index 0000000..065f9f9 --- /dev/null +++ b/agentsociety/custom/skills/social.matchmake/SKILL.md @@ -0,0 +1,26 @@ +--- +name: social.matchmake +description: Connect two people who may help each other. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use social.matchmake in a grounded town situation +outputs: + - state/skill_results/social_matchmake.json +--- + +# Social Matchmake + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/social.matchmake/scripts/run_skill.py b/agentsociety/custom/skills/social.matchmake/scripts/run_skill.py new file mode 100755 index 0000000..383b061 --- /dev/null +++ b/agentsociety/custom/skills/social.matchmake/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'social.matchmake' +SUMMARY = 'Connect two people who may help each other.' +TARGET_LOCATIONS = ['cafe', 'park'] +TARGET_INTERACTIONS = ['casual_meetup', 'meet_friend'] +STATUS = 'matching_people' +EMOTION = 'warm' +SPEECH = '我想把合适的人介绍到一起聊聊。' +MEMORY_TEMPLATE = 'Used social.matchmake: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/social.matchmake/skill.json b/agentsociety/custom/skills/social.matchmake/skill.json new file mode 100644 index 0000000..93ffa47 --- /dev/null +++ b/agentsociety/custom/skills/social.matchmake/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "social.matchmake", + "name": "Social Matchmake", + "description": "Connect two people who may help each other.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "cafe", + "park" + ], + "target_interactions": [ + "casual_meetup", + "meet_friend" + ], + "status": "matching_people", + "emotion": "warm", + "speech": "我想把合适的人介绍到一起聊聊。", + "memory_template": "Used social.matchmake: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use social.matchmake in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/social.reply/SKILL.md b/agentsociety/custom/skills/social.reply/SKILL.md new file mode 100644 index 0000000..becc063 --- /dev/null +++ b/agentsociety/custom/skills/social.reply/SKILL.md @@ -0,0 +1,24 @@ +--- +name: social.reply +description: Reply to a recent direct or group message without inventing unrelated movement. +script: scripts/run_skill.py +shared: true +effects: + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - another agent or user has sent a message that deserves a response +outputs: + - state/skill_results/social_reply.json +--- + +# Social Reply + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/social.reply/scripts/run_skill.py b/agentsociety/custom/skills/social.reply/scripts/run_skill.py new file mode 100755 index 0000000..287b8f1 --- /dev/null +++ b/agentsociety/custom/skills/social.reply/scripts/run_skill.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, + skill_args_from, +) + +SKILL_ID = "social.reply" + + +def recent_external_messages(args: dict, observation: dict) -> list[dict]: + agent_id = int(args.get("agent_id") or observation.get("agent_id") or 0) + messages = [] + for item in observation.get("recent_messages", []) or []: + if isinstance(item, dict) and int(item.get("sender_id") or -1) != agent_id: + messages.append(item) + return messages + + +def build_reply(args: dict, message: dict, spec: dict) -> str: + requested = str(skill_args_from(args).get("content") or "").strip() + if requested: + return requested + content = str(message.get("content") or "").strip() + if content: + return f"我收到了:{content[:40]}。我会结合当前情况继续处理。" + return str(spec.get("speech") or "我收到了,会继续留意。") + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + messages = recent_external_messages(args, observation) + if messages: + last = messages[-1] + reply = build_reply(args, last, spec) + if last.get("group_id") is not None: + speech = {"type": "group_message", "group_id": int(last.get("group_id") or 1), "content": reply} + else: + speech = {"type": "direct_message", "receiver_id": int(last.get("sender_id") or 0), "content": reply} + message_text = str(last.get("content") or "")[:80] + result = build_skill_result( + skill_id=SKILL_ID, + summary="reply to a recent message", + reason="A recent message from another participant needs an explicit reply.", + speech_effect=speech, + memory_effects=[memory_effect(SKILL_ID, spec["memory_template"].format(message=message_text))], + confidence=0.86, + ) + else: + result = build_skill_result( + skill_id=SKILL_ID, + summary="stay socially attentive", + reason="No direct or group message currently needs a reply.", + world_effect={"type": "set_state", "action": "listening for nearby social cues", "status": spec["status"], "emotion": spec["emotion"], "reason": "social.reply: no pending message"}, + memory_effects=[memory_effect(SKILL_ID, "No reply was needed this step.")], + confidence=0.55, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/social.reply/skill.json b/agentsociety/custom/skills/social.reply/skill.json new file mode 100644 index 0000000..ab580e2 --- /dev/null +++ b/agentsociety/custom/skills/social.reply/skill.json @@ -0,0 +1,27 @@ +{ + "skill_id": "social.reply", + "name": "Social Reply", + "description": "Reply to a recent direct or group message without inventing unrelated movement.", + "shared": true, + "effects": [ + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [], + "target_interactions": [], + "status": "available", + "emotion": "warm", + "speech": "我收到了,会结合当前情况继续处理。", + "memory_template": "Handled social message: {message}", + "failure_strategy": "set_state", + "strategy": "reply_recent_message", + "trigger_examples": [ + "another agent or user has sent a message that deserves a response" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/stall.run/SKILL.md b/agentsociety/custom/skills/stall.run/SKILL.md new file mode 100644 index 0000000..fef56fa --- /dev/null +++ b/agentsociety/custom/skills/stall.run/SKILL.md @@ -0,0 +1,26 @@ +--- +name: stall.run +description: Run a market stall and handle daily stall tasks. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use stall.run in a grounded town situation +outputs: + - state/skill_results/stall_run.json +--- + +# Stall Run + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/stall.run/scripts/run_skill.py b/agentsociety/custom/skills/stall.run/scripts/run_skill.py new file mode 100755 index 0000000..358328e --- /dev/null +++ b/agentsociety/custom/skills/stall.run/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'stall.run' +SUMMARY = 'Run a market stall and handle daily stall tasks.' +TARGET_LOCATIONS = ['market'] +TARGET_INTERACTIONS = ['work_shop_shift', 'restock_vegetables'] +STATUS = 'stall_working' +EMOTION = 'focused' +SPEECH = '我先把摊位收拾好,再接待顾客。' +MEMORY_TEMPLATE = 'Used stall.run: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/stall.run/skill.json b/agentsociety/custom/skills/stall.run/skill.json new file mode 100644 index 0000000..640826e --- /dev/null +++ b/agentsociety/custom/skills/stall.run/skill.json @@ -0,0 +1,34 @@ +{ + "skill_id": "stall.run", + "name": "Stall Run", + "description": "Run a market stall and handle daily stall tasks.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "market" + ], + "target_interactions": [ + "work_shop_shift", + "restock_vegetables" + ], + "status": "stall_working", + "emotion": "focused", + "speech": "我先把摊位收拾好,再接待顾客。", + "memory_template": "Used stall.run: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use stall.run in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/story.localpast/SKILL.md b/agentsociety/custom/skills/story.localpast/SKILL.md new file mode 100644 index 0000000..6803516 --- /dev/null +++ b/agentsociety/custom/skills/story.localpast/SKILL.md @@ -0,0 +1,26 @@ +--- +name: story.localpast +description: Share a story from the local past. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use story.localpast in a grounded town situation +outputs: + - state/skill_results/story_localpast.json +--- + +# Story Localpast + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/story.localpast/scripts/run_skill.py b/agentsociety/custom/skills/story.localpast/scripts/run_skill.py new file mode 100755 index 0000000..84fc437 --- /dev/null +++ b/agentsociety/custom/skills/story.localpast/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'story.localpast' +SUMMARY = 'Share a story from the local past.' +TARGET_LOCATIONS = ['library', 'park'] +TARGET_INTERACTIONS = ['research_topic', 'meet_friend'] +STATUS = 'telling_story' +EMOTION = 'warm' +SPEECH = '我讲一个和这个地方有关的旧故事。' +MEMORY_TEMPLATE = 'Used story.localpast: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/story.localpast/skill.json b/agentsociety/custom/skills/story.localpast/skill.json new file mode 100644 index 0000000..56555e7 --- /dev/null +++ b/agentsociety/custom/skills/story.localpast/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "story.localpast", + "name": "Story Localpast", + "description": "Share a story from the local past.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "park" + ], + "target_interactions": [ + "research_topic", + "meet_friend" + ], + "status": "telling_story", + "emotion": "warm", + "speech": "我讲一个和这个地方有关的旧故事。", + "memory_template": "Used story.localpast: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use story.localpast in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/tools.repair/SKILL.md b/agentsociety/custom/skills/tools.repair/SKILL.md new file mode 100644 index 0000000..b11d848 --- /dev/null +++ b/agentsociety/custom/skills/tools.repair/SKILL.md @@ -0,0 +1,26 @@ +--- +name: tools.repair +description: Inspect and repair a practical tool or device. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use tools.repair in a grounded town situation +outputs: + - state/skill_results/tools_repair.json +--- + +# Tools Repair + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/tools.repair/scripts/run_skill.py b/agentsociety/custom/skills/tools.repair/scripts/run_skill.py new file mode 100755 index 0000000..6598251 --- /dev/null +++ b/agentsociety/custom/skills/tools.repair/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'tools.repair' +SUMMARY = 'Inspect and repair a practical tool or device.' +TARGET_LOCATIONS = ['supply_store', 'home'] +TARGET_INTERACTIONS = ['repair_tools', 'inspect_supplies'] +STATUS = 'repairing' +EMOTION = 'focused' +SPEECH = '我先找工具检查问题,再决定怎么修。' +MEMORY_TEMPLATE = 'Used tools.repair: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/tools.repair/skill.json b/agentsociety/custom/skills/tools.repair/skill.json new file mode 100644 index 0000000..ba455bb --- /dev/null +++ b/agentsociety/custom/skills/tools.repair/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "tools.repair", + "name": "Tools Repair", + "description": "Inspect and repair a practical tool or device.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "supply_store", + "home" + ], + "target_interactions": [ + "repair_tools", + "inspect_supplies" + ], + "status": "repairing", + "emotion": "focused", + "speech": "我先找工具检查问题,再决定怎么修。", + "memory_template": "Used tools.repair: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use tools.repair in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/vegetable.source/SKILL.md b/agentsociety/custom/skills/vegetable.source/SKILL.md new file mode 100644 index 0000000..c4124a0 --- /dev/null +++ b/agentsociety/custom/skills/vegetable.source/SKILL.md @@ -0,0 +1,26 @@ +--- +name: vegetable.source +description: Source vegetables and practical food supplies. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use vegetable.source in a grounded town situation +outputs: + - state/skill_results/vegetable_source.json +--- + +# Vegetable Source + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/vegetable.source/scripts/run_skill.py b/agentsociety/custom/skills/vegetable.source/scripts/run_skill.py new file mode 100755 index 0000000..6bf9e3e --- /dev/null +++ b/agentsociety/custom/skills/vegetable.source/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'vegetable.source' +SUMMARY = 'Source vegetables and practical food supplies.' +TARGET_LOCATIONS = ['market', 'supply_store'] +TARGET_INTERACTIONS = ['restock_vegetables', 'buy_food'] +STATUS = 'sourcing_vegetables' +EMOTION = 'practical' +SPEECH = '我先看今天哪些菜新鲜、数量够不够。' +MEMORY_TEMPLATE = 'Used vegetable.source: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/vegetable.source/skill.json b/agentsociety/custom/skills/vegetable.source/skill.json new file mode 100644 index 0000000..56b701e --- /dev/null +++ b/agentsociety/custom/skills/vegetable.source/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "vegetable.source", + "name": "Vegetable Source", + "description": "Source vegetables and practical food supplies.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "market", + "supply_store" + ], + "target_interactions": [ + "restock_vegetables", + "buy_food" + ], + "status": "sourcing_vegetables", + "emotion": "practical", + "speech": "我先看今天哪些菜新鲜、数量够不够。", + "memory_template": "Used vegetable.source: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use vegetable.source in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/writing.feedback/SKILL.md b/agentsociety/custom/skills/writing.feedback/SKILL.md new file mode 100644 index 0000000..8ba593c --- /dev/null +++ b/agentsociety/custom/skills/writing.feedback/SKILL.md @@ -0,0 +1,26 @@ +--- +name: writing.feedback +description: Give clear feedback on a piece of writing. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use writing.feedback in a grounded town situation +outputs: + - state/skill_results/writing_feedback.json +--- + +# Writing Feedback + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/writing.feedback/scripts/run_skill.py b/agentsociety/custom/skills/writing.feedback/scripts/run_skill.py new file mode 100755 index 0000000..7a51ef4 --- /dev/null +++ b/agentsociety/custom/skills/writing.feedback/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'writing.feedback' +SUMMARY = 'Give clear feedback on a piece of writing.' +TARGET_LOCATIONS = ['library', 'school'] +TARGET_INTERACTIONS = ['quiet_work', 'hold_office_hours'] +STATUS = 'giving_feedback' +EMOTION = 'focused' +SPEECH = '我把反馈说具体一点,让对方知道怎么改。' +MEMORY_TEMPLATE = 'Used writing.feedback: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/writing.feedback/skill.json b/agentsociety/custom/skills/writing.feedback/skill.json new file mode 100644 index 0000000..da10cce --- /dev/null +++ b/agentsociety/custom/skills/writing.feedback/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "writing.feedback", + "name": "Writing Feedback", + "description": "Give clear feedback on a piece of writing.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "library", + "school" + ], + "target_interactions": [ + "quiet_work", + "hold_office_hours" + ], + "status": "giving_feedback", + "emotion": "focused", + "speech": "我把反馈说具体一点,让对方知道怎么改。", + "memory_template": "Used writing.feedback: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use writing.feedback in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/writing.hand/SKILL.md b/agentsociety/custom/skills/writing.hand/SKILL.md new file mode 100644 index 0000000..698afff --- /dev/null +++ b/agentsociety/custom/skills/writing.hand/SKILL.md @@ -0,0 +1,26 @@ +--- +name: writing.hand +description: Write something by hand with care and attention. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use writing.hand in a grounded town situation +outputs: + - state/skill_results/writing_hand.json +--- + +# Writing Hand + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/writing.hand/scripts/run_skill.py b/agentsociety/custom/skills/writing.hand/scripts/run_skill.py new file mode 100755 index 0000000..4472536 --- /dev/null +++ b/agentsociety/custom/skills/writing.hand/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'writing.hand' +SUMMARY = 'Write something by hand with care and attention.' +TARGET_LOCATIONS = ['home', 'library'] +TARGET_INTERACTIONS = ['read_at_home', 'quiet_work'] +STATUS = 'handwriting' +EMOTION = 'calm' +SPEECH = '我慢慢写,确保内容清楚。' +MEMORY_TEMPLATE = 'Used writing.hand: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/writing.hand/skill.json b/agentsociety/custom/skills/writing.hand/skill.json new file mode 100644 index 0000000..3745905 --- /dev/null +++ b/agentsociety/custom/skills/writing.hand/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "writing.hand", + "name": "Writing Hand", + "description": "Write something by hand with care and attention.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "home", + "library" + ], + "target_interactions": [ + "read_at_home", + "quiet_work" + ], + "status": "handwriting", + "emotion": "calm", + "speech": "我慢慢写,确保内容清楚。", + "memory_template": "Used writing.hand: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use writing.hand in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/custom/skills/youth.communicate/SKILL.md b/agentsociety/custom/skills/youth.communicate/SKILL.md new file mode 100644 index 0000000..4403366 --- /dev/null +++ b/agentsociety/custom/skills/youth.communicate/SKILL.md @@ -0,0 +1,26 @@ +--- +name: youth.communicate +description: Communicate with youth in a patient supportive way. +script: scripts/run_skill.py +shared: false +effects: + - move + - interact + - set_state + - direct_message + - group_message + - remember +args_schema: {"type":"object","additionalProperties":true} +trigger_examples: + - the agent needs to use youth.communicate in a grounded town situation +outputs: + - state/skill_results/youth_communicate.json +--- + +# Youth Communicate + +This is a real executable GOD agent skill. Its local `skill.json` describes +its own targets, interaction preferences, status changes, speech template, +memory template, and fallback strategy. `scripts/run_skill.py` returns a +standard `SkillResult`; the JiuwenClawAgent runtime validates and applies the +result to movement, interaction, speech, state, and memory. diff --git a/agentsociety/custom/skills/youth.communicate/scripts/run_skill.py b/agentsociety/custom/skills/youth.communicate/scripts/run_skill.py new file mode 100755 index 0000000..eeb034a --- /dev/null +++ b/agentsociety/custom/skills/youth.communicate/scripts/run_skill.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import sys +from pathlib import Path + +SKILL_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SKILL_DIR.parent / "_shared")) + +from agent_skill_runtime import ( # noqa: E402 + build_skill_result, + choose_available_interaction, + choose_available_location, + emit_result, + load_local_skill_spec, + memory_effect, + observation_from, + parse_args, +) + +SKILL_ID = 'youth.communicate' +SUMMARY = 'Communicate with youth in a patient supportive way.' +TARGET_LOCATIONS = ['school', 'park'] +TARGET_INTERACTIONS = ['hold_office_hours', 'meet_friend'] +STATUS = 'youth_support' +EMOTION = 'patient' +SPEECH = '我用年轻人听得进去的方式聊。' +MEMORY_TEMPLATE = 'Used youth.communicate: {summary} at {location_id}.' + + +def choose_world_effect(observation: dict, spec: dict) -> dict: + current = str(observation.get("location_id") or "") + target_locations = list(spec.get("target_locations") or TARGET_LOCATIONS) + target_interactions = list(spec.get("target_interactions") or TARGET_INTERACTIONS) + location_id = choose_available_location(observation, target_locations) + if location_id and location_id != current: + return {"type": "move", "location_id": location_id, "reason": f"{SKILL_ID}: move toward {SUMMARY}"} + interaction_id = choose_available_interaction(observation, target_interactions, location_id=current or location_id) + if interaction_id: + return {"type": "interact", "interaction_id": interaction_id, "params": {"message": SUMMARY}, "reason": f"{SKILL_ID}: perform {SUMMARY}"} + return {"type": "set_state", "action": SUMMARY, "status": str(spec.get("status") or STATUS), "emotion": str(spec.get("emotion") or EMOTION), "reason": f"{SKILL_ID}: no configured map target is reachable"} + + +def maybe_speech(world_effect: dict) -> dict | None: + if not SPEECH or world_effect.get("type") == "move": + return None + return {"type": "group_message", "group_id": 1, "content": SPEECH} + + +def build_memory(observation: dict, spec: dict) -> dict: + location_id = str(observation.get("location_id") or "unknown") + template = str(spec.get("memory_template") or MEMORY_TEMPLATE) + return memory_effect(SKILL_ID, template.format(summary=SUMMARY, location_id=location_id), location_id=location_id) + + +def main() -> int: + args = parse_args() + observation = observation_from(args) + spec = load_local_skill_spec(SKILL_DIR) + world_effect = choose_world_effect(observation, spec) + result = build_skill_result( + skill_id=SKILL_ID, + summary=SUMMARY, + reason=f"{SKILL_ID} uses its own local skill.json targets and script constants; no central keyword rule selected this behavior.", + world_effect=world_effect, + speech_effect=maybe_speech(world_effect), + memory_effects=[build_memory(observation, spec)], + confidence=0.76, + ) + return emit_result(args, SKILL_ID, result) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/agentsociety/custom/skills/youth.communicate/skill.json b/agentsociety/custom/skills/youth.communicate/skill.json new file mode 100644 index 0000000..8de3ad4 --- /dev/null +++ b/agentsociety/custom/skills/youth.communicate/skill.json @@ -0,0 +1,35 @@ +{ + "skill_id": "youth.communicate", + "name": "Youth Communicate", + "description": "Communicate with youth in a patient supportive way.", + "shared": false, + "effects": [ + "move", + "interact", + "set_state", + "direct_message", + "group_message", + "remember" + ], + "target_locations": [ + "school", + "park" + ], + "target_interactions": [ + "hold_office_hours", + "meet_friend" + ], + "status": "youth_support", + "emotion": "patient", + "speech": "我用年轻人听得进去的方式聊。", + "memory_template": "Used youth.communicate: {summary} at {location_id}.", + "failure_strategy": "set_state", + "strategy": "configured_action", + "trigger_examples": [ + "the agent needs to use youth.communicate in a grounded town situation" + ], + "args_schema": { + "type": "object", + "additionalProperties": true + } +} diff --git a/agentsociety/frontend/.gitignore b/agentsociety/frontend/.gitignore new file mode 100644 index 0000000..b9ed5c4 --- /dev/null +++ b/agentsociety/frontend/.gitignore @@ -0,0 +1,136 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# vitepress build output +**/.vitepress/dist + +# vitepress cache directory +**/.vitepress/cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* \ No newline at end of file diff --git a/agentsociety/frontend/README.md b/agentsociety/frontend/README.md new file mode 100644 index 0000000..74872fd --- /dev/null +++ b/agentsociety/frontend/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/agentsociety/frontend/eslint.config.js b/agentsociety/frontend/eslint.config.js new file mode 100644 index 0000000..092408a --- /dev/null +++ b/agentsociety/frontend/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/agentsociety/frontend/index.html b/agentsociety/frontend/index.html new file mode 100644 index 0000000..7e6a4b8 --- /dev/null +++ b/agentsociety/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + + GOD Replay + + +
+ + + diff --git a/agentsociety/frontend/package-lock.json b/agentsociety/frontend/package-lock.json new file mode 100644 index 0000000..f867044 --- /dev/null +++ b/agentsociety/frontend/package-lock.json @@ -0,0 +1,11609 @@ +{ + "name": "agentsociety-ui", + "version": "0.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "agentsociety-ui", + "version": "0.2.0", + "dependencies": { + "@ant-design/icons": "^5.5.2", + "@ant-design/pro-components": "^2.8.10", + "@ant-design/x": "^1.0.3", + "@monaco-editor/react": "^4.7.0", + "@types/react-plotly.js": "^2.6.3", + "@types/react-resizable": "^3.0.8", + "antd": "^5.22.5", + "casdoor-js-sdk": "^0.16.0", + "casdoor-react-sdk": "^1.2.0", + "dayjs": "^1.11.13", + "deck.gl": "^9.3.3", + "i18next": "^25.0.1", + "i18next-browser-languagedetector": "^8.0.5", + "jwt-decode": "^4.0.0", + "mapbox-gl": "^3.9.0", + "mobx": "^6.13.5", + "mobx-react-lite": "^4.1.0", + "phaser": "^3.90.0", + "plotly.js": "^3.6.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^15.4.1", + "react-map-gl": "^7.1.7", + "react-plotly.js": "^2.6.0", + "react-resizable": "^3.0.5", + "react-router-dom": "^7.17.0", + "survey-creator-react": "^1.12.15", + "tinycolor2": "^1.6.0" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react-swc": "^3.11.0", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.26", + "globals": "^15.12.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.61.0", + "vite": "^6.4.3" + } + }, + "node_modules/@amcharts/amcharts5": { + "version": "5.14.4", + "resolved": "https://registry.npmjs.org/@amcharts/amcharts5/-/amcharts5-5.14.4.tgz", + "integrity": "sha512-Tl7wQLWvsvyWVtlCIm1yhZtJviSDYjuNTnlUkO0D49GyByoK0nb9fr0DK4rUw4DVgyLcySxWBsb2lzTJm5Rd9Q==", + "license": "SEE LICENSE IN LICENSE", + "peer": true, + "dependencies": { + "@types/d3": "^7.0.0", + "@types/d3-chord": "^3.0.0", + "@types/d3-hierarchy": "3.1.1", + "@types/d3-sankey": "^0.11.1", + "@types/d3-shape": "^3.0.0", + "@types/geojson": "^7946.0.8", + "@types/polylabel": "^1.0.5", + "@types/svg-arc-to-cubic-bezier": "^3.2.0", + "d3": "^7.0.0", + "d3-chord": "^3.0.0", + "d3-force": "^3.0.0", + "d3-geo": "^3.0.0", + "d3-hierarchy": "^3.0.0", + "d3-sankey": "^0.12.3", + "d3-selection": "^3.0.0", + "d3-shape": "^3.0.0", + "d3-transition": "^3.0.0", + "d3-voronoi-treemap": "^1.1.2", + "flatpickr": "^4.6.13", + "markerjs2": "^2.29.4", + "pdfmake": "^0.2.2", + "polylabel": "^1.1.0", + "seedrandom": "^3.0.5", + "svg-arc-to-cubic-bezier": "^3.2.0", + "tslib": "^2.2.0" + } + }, + "node_modules/@amcharts/amcharts5/node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@amcharts/amcharts5/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@amcharts/amcharts5/node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@amcharts/amcharts5/node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@amcharts/amcharts5/node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.0.tgz", + "integrity": "sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/pro-card": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-card/-/pro-card-2.10.0.tgz", + "integrity": "sha512-sLONn1odmE0Wkbse8pol4WiaEzBV8JU5s3FAMflPpycfUcbSaa1ktXzQ7LCo2SAvOS7gkfmpFjBPtrfbigKh4g==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.4.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-components": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@ant-design/pro-components/-/pro-components-2.8.10.tgz", + "integrity": "sha512-QHnnIXdmC5GTAtm6i8eeJy5yT9npPlFyxpDm+duiDrTRKRFaAQBduArxlH3DA/hoRCCypzPONxfK9BQNIhIyZA==", + "license": "MIT", + "dependencies": { + "@ant-design/pro-card": "2.10.0", + "@ant-design/pro-descriptions": "2.6.10", + "@ant-design/pro-field": "3.1.0", + "@ant-design/pro-form": "2.32.0", + "@ant-design/pro-layout": "7.22.7", + "@ant-design/pro-list": "2.6.10", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-skeleton": "2.2.1", + "@ant-design/pro-table": "3.21.0", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.16.3" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-descriptions": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/@ant-design/pro-descriptions/-/pro-descriptions-2.6.10.tgz", + "integrity": "sha512-+4MbiOfumnWlW0Awm4m8JML5o3lR649FD24AaivCmr8BQvIAAXdTITnDMXEg8BqvdP4KOvNsStZrvYfqoev33A==", + "license": "MIT", + "dependencies": { + "@ant-design/pro-field": "3.1.0", + "@ant-design/pro-form": "2.32.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-skeleton": "2.2.1", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "rc-resize-observer": "^0.2.3", + "rc-util": "^5.0.6" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-descriptions/node_modules/rc-resize-observer": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-0.2.6.tgz", + "integrity": "sha512-YX6nYnd6fk7zbuvT6oSDMKiZjyngjHoy+fz+vL3Tez38d/G5iGdaDJa2yE7345G6sc4Mm1IGRUIwclvltddhmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-util": "^5.0.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-field": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-field/-/pro-field-3.1.0.tgz", + "integrity": "sha512-+Dgp31WjD+iwg9KIRAMgNkfQivkJKMcYBrIBmho1e8ep/O0HgWSp48g70tBIWi/Lfem/Ky2schF7O8XCFouczw==", + "license": "MIT", + "dependencies": { + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "@chenshuai2144/sketch-color": "^1.0.8", + "classnames": "^2.3.2", + "dayjs": "^1.11.10", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "rc-util": "^5.4.0", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-form": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-form/-/pro-form-2.32.0.tgz", + "integrity": "sha512-GZnVAMeYv+YHJb17lJ7rX5PYuQPvEA6EotQnPbHi9tGLN3PfexcAd21rqzuO+OrulU2x7TEMDIxtY9MzvvOGbg==", + "license": "MIT", + "dependencies": { + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-field": "3.1.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "@chenshuai2144/sketch-color": "^1.0.7", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.3.2", + "dayjs": "^1.11.10", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "rc-field-form": ">=1.22.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-layout": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.22.7.tgz", + "integrity": "sha512-fvmtNA1r9SaasVIQIQt611VSlNxtVxDbQ3e+1GhYQza3tVJi/3gCZuDyfMfTnbLmf3PaW/YvLkn7MqDbzAzoLA==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "@umijs/route-utils": "^4.0.0", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.3.2", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "path-to-regexp": "8.2.0", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6", + "swr": "^2.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-list": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/@ant-design/pro-list/-/pro-list-2.6.10.tgz", + "integrity": "sha512-xSWwnqCr+hPEYR4qY7nFUaxO5RQBxNlFaPNmobP2i+Im31slk9JuAusgWeIYO0mNhLJuLbxd8CCma2AZij3fBQ==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-card": "2.10.0", + "@ant-design/pro-field": "3.1.0", + "@ant-design/pro-table": "3.21.0", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "dayjs": "^1.11.10", + "rc-resize-observer": "^1.0.0", + "rc-util": "^4.19.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-list/node_modules/rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "license": "MIT", + "dependencies": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "node_modules/@ant-design/pro-list/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/@ant-design/pro-provider": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.16.2.tgz", + "integrity": "sha512-0KmCH1EaOND787Jz6VRMYtLNZmqfT0JPjdUfxhyOxFfnBRfrjyfZgIa6CQoAJLEUMWv57PccWS8wRHVUUk2Yiw==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@babel/runtime": "^7.18.0", + "@ctrl/tinycolor": "^3.4.0", + "dayjs": "^1.11.10", + "rc-util": "^5.0.1", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-skeleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/pro-skeleton/-/pro-skeleton-2.2.1.tgz", + "integrity": "sha512-3M2jNOZQZWEDR8pheY00OkHREfb0rquvFZLCa6DypGmiksiuuYuR9Y4iA82ZF+mva2FmpHekdwbje/GpbxqBeg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-table": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-table/-/pro-table-3.21.0.tgz", + "integrity": "sha512-sI81d3FYRv5sXamUc+M5CsHZ9CchuUQgOAPzo5H4oPAVL5h+mkYGRsBzPsxQX7khTNpWjrAtPoRm5ipx3vvWog==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-card": "2.10.0", + "@ant-design/pro-field": "3.1.0", + "@ant-design/pro-form": "2.32.0", + "@ant-design/pro-provider": "2.16.2", + "@ant-design/pro-utils": "2.18.0", + "@babel/runtime": "^7.18.0", + "@dnd-kit/core": "^6.0.8", + "@dnd-kit/modifiers": "^6.0.1", + "@dnd-kit/sortable": "^7.0.2", + "@dnd-kit/utilities": "^3.2.1", + "classnames": "^2.3.2", + "dayjs": "^1.11.10", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.0.1" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "rc-field-form": ">=1.22.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-utils": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.18.0.tgz", + "integrity": "sha512-8+ikyrN8L8a8Ph4oeHTOJEiranTj18+9+WHCHjKNdEfukI7Rjn8xpYdLJWb2AUJkb9d4eoAqjd5+k+7w81Df0w==", + "license": "MIT", + "dependencies": { + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-provider": "2.16.2", + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "dayjs": "^1.11.10", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "rc-util": "^5.0.6", + "safe-stable-stringify": "^2.4.3", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@ant-design/x": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/x/-/x-1.2.0.tgz", + "integrity": "sha512-sV+C6ER+xn6XQF3gYN3Ma9MnK8Bcfj+5C4cRvtKNvzExHwC6laBD1g6TWHH7vFPDOQUhYlJT4tw+NdcvZJx/ZA==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.1.0", + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/cssinjs-utils": "^1.1.0", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.4.0", + "@babel/runtime": "^7.25.6", + "classnames": "^2.5.1", + "rc-motion": "^2.9.2", + "rc-util": "^5.43.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "antd": "^5.20.3", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@arcgis/core": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@arcgis/core/-/core-4.34.8.tgz", + "integrity": "sha512-UrEBTjXpSA9fhmmnAENBzz9GG81xALTezQFMXUs2iMB+tiOckmJyBbhATI/W4lIQyUfNEK7Zm/46EP2PhDga/A==", + "license": "SEE LICENSE IN copyright.txt", + "peer": true, + "dependencies": { + "@amcharts/amcharts5": "~5.14.1", + "@arcgis/toolkit": "^4.34.0", + "@esri/arcgis-html-sanitizer": "~4.1.0", + "@esri/calcite-components": "^3.3.2", + "@vaadin/grid": "~24.9.1", + "@zip.js/zip.js": "~2.8.7", + "luxon": "~3.7.2", + "marked": "~16.3.0", + "tslib": "^2.8.1" + } + }, + "node_modules/@arcgis/lumina": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@arcgis/lumina/-/lumina-4.34.9.tgz", + "integrity": "sha512-efqO+SwR+1IYf29AATh1l2FUeypRyRINTBNkaJY+KkaFe+8gqSJ45qOmputhyzF5WTRDb7WhOYgnChjp6VYPpA==", + "license": "SEE LICENSE IN LICENSE.md", + "peer": true, + "dependencies": { + "@arcgis/toolkit": "~4.34.9", + "csstype": "^3.1.3", + "tslib": "^2.8.1" + }, + "peerDependencies": { + "@lit/context": "^1.1.5", + "lit": "^3.3.0" + }, + "peerDependenciesMeta": { + "@lit/context": { + "optional": true + } + } + }, + "node_modules/@arcgis/toolkit": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@arcgis/toolkit/-/toolkit-4.34.9.tgz", + "integrity": "sha512-wFST+eVnCwmg9NyICVyn9bsBnR+TlWklsGqG3L7xqSTgfXo6TuCThE7wtTb8xWxsTBkGvImqMUgpgLuwQuTQ1g==", + "license": "SEE LICENSE IN LICENSE.md", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@carto/api-client": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@carto/api-client/-/api-client-0.5.29.tgz", + "integrity": "sha512-RhZXCaBYpLrdOV2L8Bw8pJEptelEFGYWWy3OzG6sJTcVM61+HtZAcfZoE2jIMHf3FCQ2Ow3FA03KwV4LU48nGA==", + "license": "MIT", + "dependencies": { + "@loaders.gl/schema": "^4.3.3", + "@types/geojson": "^7946.0.16", + "d3-format": "^3.1.2", + "d3-scale": "^4.0.2", + "h3-js": "^4.1.0", + "jsep": "^1.4.0", + "quadbin": "^0.4.1-alpha.0" + } + }, + "node_modules/@chenshuai2144/sketch-color": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@chenshuai2144/sketch-color/-/sketch-color-1.0.9.tgz", + "integrity": "sha512-obzSy26cb7Pm7OprWyVpgMpIlrZpZ0B7vbrU0RMbvRg0YAI890S5Xy02Aj1Nhl4+KTbi1lVYHt6HQP8Hm9s+1w==", + "license": "MIT", + "dependencies": { + "reactcss": "^1.2.3", + "tinycolor2": "^1.4.2" + }, + "peerDependencies": { + "react": ">=16.12.0" + } + }, + "node_modules/@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "license": "MIT", + "dependencies": { + "commander": "^2.15.1" + }, + "bin": { + "findup": "bin/findup.js" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@deck.gl/aggregation-layers": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/aggregation-layers/-/aggregation-layers-9.3.3.tgz", + "integrity": "sha512-TeCFcNioTNTsoNR09Ee9sAWRQ995wvbida3t0n6cP4HW30u3iX+pW1vLE35ftxsKcV7C+wUbd4dtOHqUtg8pBw==", + "license": "MIT", + "dependencies": { + "@luma.gl/shadertools": "^9.3.3", + "@math.gl/core": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "d3-hexbin": "^0.2.1" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@deck.gl/layers": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" + } + }, + "node_modules/@deck.gl/arcgis": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/arcgis/-/arcgis-9.3.3.tgz", + "integrity": "sha512-S687WtylokxQDyCUuaE0oX8ubJqOiZn5sK0ITuxiUMcXmRBQhdAGbxnxVyFNnC5GcGpOUCP8Z8wKH72bwvqPJA==", + "license": "MIT", + "dependencies": { + "esri-loader": "^3.7.0" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3", + "@luma.gl/webgl": "~9.3.3" + } + }, + "node_modules/@deck.gl/carto": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/carto/-/carto-9.3.3.tgz", + "integrity": "sha512-evP29Kfqos0vn2zP+mF47U0ZLTIAk5Ov1R+6OTiRqzihrKELn9EA0O9VAo2o7l8osqjwerQ4x5ImuVO3SwhciQ==", + "license": "MIT", + "dependencies": { + "@carto/api-client": "^0.5.19", + "@loaders.gl/compression": "^4.4.1", + "@loaders.gl/gis": "^4.4.1", + "@loaders.gl/loader-utils": "^4.4.1", + "@loaders.gl/mvt": "^4.4.1", + "@loaders.gl/schema": "^4.4.1", + "@loaders.gl/tiles": "^4.4.1", + "@luma.gl/core": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", + "@math.gl/web-mercator": "^4.1.0", + "@types/d3-array": "^3.0.2", + "@types/d3-color": "^3.1.3", + "@types/d3-scale": "^3.0.0", + "cartocolor": "^5.0.2", + "d3-array": "^3.2.0", + "d3-color": "^3.1.0", + "d3-format": "^3.1.0", + "d3-scale": "^4.0.0", + "earcut": "^2.2.4", + "h3-js": "^4.4.0", + "moment-timezone": "^0.6.0", + "pbf": "^3.2.1", + "quadbin": "^0.4.0" + }, + "peerDependencies": { + "@deck.gl/aggregation-layers": "~9.3.0", + "@deck.gl/core": "~9.3.0", + "@deck.gl/extensions": "~9.3.0", + "@deck.gl/geo-layers": "~9.3.0", + "@deck.gl/layers": "~9.3.0", + "@loaders.gl/core": "^4.4.1", + "@luma.gl/core": "~9.3.3" + } + }, + "node_modules/@deck.gl/core": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-9.3.3.tgz", + "integrity": "sha512-P8IPB0VJyyKBGEUC6wT2sfqNYY/IClzYIqi0iyHBunKTUKQNwiKhPasQLCEfb157KNoCdeZxjnohkyRYqbas+A==", + "license": "MIT", + "dependencies": { + "@loaders.gl/core": "^4.4.1", + "@loaders.gl/images": "^4.4.1", + "@luma.gl/core": "^9.3.3", + "@luma.gl/engine": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", + "@math.gl/core": "^4.1.0", + "@math.gl/sun": "^4.1.0", + "@math.gl/types": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@probe.gl/env": "^4.1.1", + "@probe.gl/log": "^4.1.1", + "@probe.gl/stats": "^4.1.1", + "@types/offscreencanvas": "^2019.6.4", + "gl-matrix": "^3.0.0", + "mjolnir.js": "^3.0.0" + } + }, + "node_modules/@deck.gl/extensions": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/extensions/-/extensions-9.3.3.tgz", + "integrity": "sha512-e47Lc0s4cEubBSx8oqINl9jtF0PK48vESBufJrojYaTg6SX2TI+ObCBZjyqLWvrJK/B6N9tVntacy/F6kazBWQ==", + "license": "MIT", + "dependencies": { + "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" + } + }, + "node_modules/@deck.gl/geo-layers": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/geo-layers/-/geo-layers-9.3.3.tgz", + "integrity": "sha512-phwfFWzkPLZrlEyjR0NxRTwxAMInLr7kT2OcG2UTBT7P34MTCCR6VWr6QWrq6sSehMOhX2AdpTXUUH1gC1P77A==", + "license": "MIT", + "dependencies": { + "@loaders.gl/3d-tiles": "^4.4.1", + "@loaders.gl/gis": "^4.4.1", + "@loaders.gl/loader-utils": "^4.4.1", + "@loaders.gl/mvt": "^4.4.1", + "@loaders.gl/schema": "^4.4.1", + "@loaders.gl/terrain": "^4.4.1", + "@loaders.gl/tiles": "^4.4.1", + "@loaders.gl/wms": "^4.4.1", + "@luma.gl/gltf": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@types/geojson": "^7946.0.8", + "a5-js": "^0.7.2", + "h3-js": "^4.4.0", + "long": "^3.2.0" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@deck.gl/extensions": "~9.3.0", + "@deck.gl/layers": "~9.3.0", + "@deck.gl/mesh-layers": "~9.3.0", + "@loaders.gl/core": "^4.4.1", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" + } + }, + "node_modules/@deck.gl/google-maps": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/google-maps/-/google-maps-9.3.3.tgz", + "integrity": "sha512-/NWNj8svNbchSuCfN6jIBoTbzN+1JvICGeKWceVj0a/arFrTA9bshhEj3ipN1Mxhnh8f0+N4x0wg1TeV2RCd+g==", + "license": "MIT", + "dependencies": { + "@luma.gl/webgl": "^9.3.3", + "@math.gl/core": "^4.1.0", + "@types/google.maps": "^3.48.6" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@luma.gl/webgl": "~9.3.3" + } + }, + "node_modules/@deck.gl/json": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/json/-/json-9.3.3.tgz", + "integrity": "sha512-Xdb5cNNcpp3Q0MZruJ3y/pOfHVJ1JK9lxYaZuty3b2kKaqIAhefFJk0Rh3SgDXsJr24+iYbaingNJ7jx5BJMfg==", + "license": "MIT", + "dependencies": { + "jsep": "^0.3.0" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0" + } + }, + "node_modules/@deck.gl/json/node_modules/jsep": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-0.3.5.tgz", + "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@deck.gl/layers": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-9.3.3.tgz", + "integrity": "sha512-sp7rvAe/SM/Ja8sVKF0r5ZFj+W5y1h9HpmFZUGv+knkBhrwWLfxa6p3sycimdLMd22tCguw7ps4klKgZjgYTtw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "^4.4.1", + "@loaders.gl/schema": "^4.4.1", + "@luma.gl/shadertools": "^9.3.3", + "@mapbox/tiny-sdf": "^2.0.5", + "@math.gl/core": "^4.1.0", + "@math.gl/polygon": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "earcut": "^2.2.4" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@loaders.gl/core": "^4.4.1", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" + } + }, + "node_modules/@deck.gl/mapbox": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-9.3.3.tgz", + "integrity": "sha512-aUPqrwF6wkx+EtvKA3SaiK+UROMnZSmgEJWZ1qSKFSiH//kPuo5imbtXyan8sGhOet7NjnfEwJqFA3EBk7zDLA==", + "license": "MIT", + "dependencies": { + "@math.gl/web-mercator": "^4.1.0" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@math.gl/web-mercator": "^4.1.0" + } + }, + "node_modules/@deck.gl/mesh-layers": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/mesh-layers/-/mesh-layers-9.3.3.tgz", + "integrity": "sha512-XGS1w4kWHlchzcWBJ74zo/JJzk+/oro/+i7SS0p/O+1/q93k/M7tFykw2ApmG+DWEeCoFMA0+TT2Mdo/7fPF9g==", + "license": "MIT", + "dependencies": { + "@loaders.gl/gltf": "^4.4.1", + "@loaders.gl/schema": "^4.4.1", + "@luma.gl/gltf": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3", + "@luma.gl/gltf": "~9.3.3", + "@luma.gl/shadertools": "~9.3.3" + } + }, + "node_modules/@deck.gl/react": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/react/-/react-9.3.3.tgz", + "integrity": "sha512-9lgp5DwueLxflSfz670F/ep53ZK5l54DSsaj7K+85CwvlHNOcLe/mlWSWXC+qNISyY4Se114VzT69Hb4Km2QHg==", + "license": "MIT", + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@deck.gl/widgets": "~9.3.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/@deck.gl/widgets": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@deck.gl/widgets/-/widgets-9.3.3.tgz", + "integrity": "sha512-vbNrLmi9yO1VAuwh3d+EzpT1sJTV64sCrBVizZQ+pZdf+leMBpmbGfNXSarsh+HuU1Moc4NmcdNZPVoOt/QkFA==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.5", + "preact": "^10.17.0" + }, + "peerDependencies": { + "@deck.gl/core": "~9.3.0", + "@luma.gl/core": "~9.3.3" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "license": "MIT", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-6.0.1.tgz", + "integrity": "sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.1", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.0.6", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", + "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.0.7", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@esri/arcgis-html-sanitizer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-4.1.0.tgz", + "integrity": "sha512-einEveDJ/k1180NOp78PB/4Hje9eBy3dyOGLLtLn6bSkizpUfCwuYBIXOA7Y3F/k/BsTQXgKqUVwQ0eiscWMdA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "xss": "1.0.13" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@esri/calcite-components": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-3.3.3.tgz", + "integrity": "sha512-tw+EfJ3pb+Odj71W6E9GUkm8rMbNxfW1KeiI8GgsKDzhr39hMKwY+zYYFFYuO0FONxWGvAB+B8yqB0NvH7WeHw==", + "license": "SEE LICENSE.md", + "peer": true, + "dependencies": { + "@arcgis/lumina": ">=4.34.0-next.158 <4.35.0", + "@arcgis/toolkit": ">=4.34.0-next.158 <4.35.0", + "@esri/calcite-ui-icons": "4.3.0", + "@floating-ui/dom": "^1.6.12", + "@floating-ui/utils": "^0.2.8", + "@types/sortablejs": "^1.15.8", + "color": "^5.0.0", + "composed-offset-position": "^0.0.6", + "es-toolkit": "^1.39.8", + "focus-trap": "^7.6.5", + "interactjs": "^1.10.27", + "lit": "^3.3.0", + "sortablejs": "^1.15.6", + "timezone-groups": "^0.10.4", + "type-fest": "^4.30.1" + } + }, + "node_modules/@esri/calcite-ui-icons": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@esri/calcite-ui-icons/-/calcite-ui-icons-4.3.0.tgz", + "integrity": "sha512-iOOuRurpjFxFVw6+aXW2JpSkRBrdOpBcbdibfPOmSPqMd1aoHBtYmYXetKoH9vfrXoBiPyO2PkDnczhsu/N9IA==", + "license": "SEE LICENSE.md", + "peer": true, + "bin": { + "spriter": "bin/spriter.js" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@foliojs-fork/fontkit": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.2.tgz", + "integrity": "sha512-IfB5EiIb+GZk+77TRB86AHroVaqfq8JRFlUbz0WEwsInyCG0epX2tCPOy+UfaWPju30DeVoUAXfzWXmhn753KA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@foliojs-fork/restructure": "^2.0.2", + "brotli": "^1.2.0", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.2.tgz", + "integrity": "sha512-ZPohpxxbuKNE0l/5iBJnOAfUaMACwvUIKCvqtWGKIMv1lPYoNjYXRfhi9FeeV9McBkBLxsMFWTVVhHJA8cyzvg==", + "license": "MIT", + "peer": true, + "dependencies": { + "base64-js": "1.3.1", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "license": "MIT", + "peer": true + }, + "node_modules/@foliojs-fork/pdfkit": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.15.3.tgz", + "integrity": "sha512-Obc0Wmy3bm7BINFVvPhcl2rnSSK61DQrlHU8aXnAqDk9LCjWdUOPwhgD8Ywz5VtuFjRxmVOM/kQ/XLIBjDvltw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@foliojs-fork/fontkit": "^1.9.2", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.2.0", + "jpeg-exif": "^1.1.4", + "png-js": "^1.0.0" + } + }, + "node_modules/@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==", + "license": "MIT", + "peer": true + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@interactjs/types": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/types/-/types-1.10.27.tgz", + "integrity": "sha512-BUdv0cvs4H5ODuwft2Xp4eL8Vmi3LcihK42z0Ft/FbVJZoRioBsxH+LlsBdK4tAie7PqlKGy+1oyOncu1nQ6eA==", + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.6.0.tgz", + "integrity": "sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "node_modules/@loaders.gl/3d-tiles": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-4.4.2.tgz", + "integrity": "sha512-rf2R7x/+t41hQpaQ3iKofooE6unZ0+sGlYUXBo7lYFEnoMmalzrOI6jCs+CV96TALMPQcpfPa566XWF74XkaBQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/compression": "4.4.2", + "@loaders.gl/crypto": "4.4.2", + "@loaders.gl/draco": "4.4.2", + "@loaders.gl/gltf": "4.4.2", + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/math": "4.4.2", + "@loaders.gl/tiles": "4.4.2", + "@loaders.gl/zip": "4.4.2", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/geospatial": "^4.1.0", + "@probe.gl/log": "^4.1.1", + "long": "^5.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/3d-tiles/node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/@loaders.gl/compression": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/compression/-/compression-4.4.2.tgz", + "integrity": "sha512-/LzblCXn6wOg7ca2zkUOTO0zhjjaPAOqlLp4/kwd57v7KZU8M8aKUNlU1DAuWKW9p/+TpGsLKwDqOCO+hjrOnQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "@types/pako": "^1.0.1", + "fflate": "0.7.4", + "pako": "1.0.11", + "snappyjs": "^0.6.1" + }, + "optionalDependencies": { + "@types/brotli": "^1.3.0", + "brotli": "^1.3.2", + "lz4js": "^0.2.0", + "zstd-codec": "^0.1" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/core": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.4.2.tgz", + "integrity": "sha512-DZmsTwxdKh3q+mS1vSOW2EXFgwxZ4nIBte4H5g6e4VyQoQ6jAOkk0M6V+Asgy/eqjGTNjhfBA1HIkyBl0A9hcA==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/schema-utils": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "@probe.gl/log": "^4.1.1" + } + }, + "node_modules/@loaders.gl/crypto": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/crypto/-/crypto-4.4.2.tgz", + "integrity": "sha512-3QQxNFmCeznMIsY/ZD4pYO4SvS4i3nq5aJJ993DEIZVB1i0z19OmyJu4TSovvirXXrNWPQRJFPUUwdPxol9wLA==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "@types/crypto-js": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/draco": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-4.4.2.tgz", + "integrity": "sha512-UByWIt/yhxMFBIlyoqJYaj0rnTz/wwDWbI4CVQc/MzbLZW7NtUkDyYDcjbjE2SBWpu6Ef4ryojGd/NWIA3Yknw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/schema-utils": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "draco3d": "1.5.7" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/geoarrow": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/geoarrow/-/geoarrow-4.4.2.tgz", + "integrity": "sha512-FGCtUsvTwdxiNqS8cEtys1FdM/m6pwMzvNEa32sHfrI4Si465Oa2iJkyu2q/XMgL/vhfE/G3EezpVKZARbCzkw==", + "license": "MIT", + "dependencies": { + "@math.gl/polygon": "^4.1.0", + "apache-arrow": ">= 17.0.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/gis": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-4.4.2.tgz", + "integrity": "sha512-VMs1XcqUCqLczfySsI9VA/L3WDuuNRPqVoHcXU3FZuSe49x++gtwmxF1TEhJCaQINk0CkCOnxBbKOz3I9M1e3w==", + "license": "MIT", + "dependencies": { + "@loaders.gl/geoarrow": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/schema-utils": "4.4.2", + "@mapbox/vector-tile": "^1.3.1", + "@math.gl/polygon": "^4.1.0", + "pbf": "^3.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/gltf": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-4.4.2.tgz", + "integrity": "sha512-aBvI7P/1GxePdHIvuyTM4A8yt3F5ph4dq0mkyJHmEjBl1Cwh3mDZJI1JSlZAFVilTZ6NxJZOiHUYWe1pBloVvw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/draco": "4.4.2", + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/textures": "4.4.2", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/images": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.4.2.tgz", + "integrity": "sha512-b+1keNvPlyLniWtX4ZaThz2dF2aohi8Q+OEsDF2hJNZYyZJOqP9b/72UhlVk+inxTJfTLRBNARs2TJ2ssBlelg==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/loader-utils": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.4.2.tgz", + "integrity": "sha512-kqwBbyRC7rrQVsnJyKeoaig9hxaa5oj91OKqWm27HPuVn4q2dD67SEhiG0ND62eRp0tLY6jTqEcI5kDzHBZ6MA==", + "license": "MIT", + "dependencies": { + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "@probe.gl/log": "^4.1.1", + "@probe.gl/stats": "^4.1.1" + } + }, + "node_modules/@loaders.gl/math": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-4.4.2.tgz", + "integrity": "sha512-Pcm1DKrzH3EqC5PkBxQX0oVjmXM3RIm2Gfj0cXQoqly+8c/NBtQrcBA9tl12h2ozZe8Ednue/kockbGsyKAx5A==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/mvt": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/mvt/-/mvt-4.4.2.tgz", + "integrity": "sha512-yji3TAUofTA3GXvvyemwfrRwbd1ILpv2qe4mRduHdzjJdy2httH1cCKkesavFuLeRQqEuVyhhxYK+aSAbdt9Kg==", + "license": "MIT", + "dependencies": { + "@loaders.gl/gis": "4.4.2", + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@math.gl/polygon": "^4.1.0", + "@probe.gl/stats": "^4.1.1", + "pbf": "^3.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/schema": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.4.2.tgz", + "integrity": "sha512-mJTZehTHIFl8ed+03nebuPAMnLP8Yp00DKTzCnKT2HNy/uV4+Sw+GrGIuhPHGU8tdQmtBXRURGM2ZxUAxMfGKg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.7", + "apache-arrow": ">= 17.0.0" + } + }, + "node_modules/@loaders.gl/schema-utils": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema-utils/-/schema-utils-4.4.2.tgz", + "integrity": "sha512-yYYRD/POBEO72rhIyLASrqKUUhfIOQuFk/fgInN6Td2qvFgsHbo5UaCM4sTqVUWwNxNvXDQi8ezpbnCa/yi+OQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/schema": "4.4.2", + "@types/geojson": "^7946.0.7", + "apache-arrow": ">= 17.0.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/terrain": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/terrain/-/terrain-4.4.2.tgz", + "integrity": "sha512-ScE90mhUrIOOf+248+G8bxgg5xfLptE94gVxtYsLysyG8b4Ne2WEb6J2gpvQqmaLz3k9OqgPR7M8F1zI5BVO0w==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@mapbox/martini": "^0.2.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/textures": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-4.4.2.tgz", + "integrity": "sha512-+GKcHEE0GjpuSJ6qbuRsB0CaOSUhJ1epUvhMP5GVK7I6+bwSvG8nqmRRGXFQNmYsbFANwG+wjwKf16wqJwP6vg==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/worker-utils": "4.4.2", + "@math.gl/types": "^4.1.0", + "ktx-parse": "^0.7.0", + "texture-compressor": "^1.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/tiles": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-4.4.2.tgz", + "integrity": "sha512-DHqMC38e6IEzWEDc15GfIKsZT82VZH7ocF79xLRScey0eZfCb3qI5nDLeg5adSBBsHkG3Li0S0PEnwxQmKT3qw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/math": "4.4.2", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/geospatial": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@probe.gl/stats": "^4.1.1" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/wms": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/wms/-/wms-4.4.2.tgz", + "integrity": "sha512-7uhis6fOTHeqRLIU1EPoC1oqeXVk5p1pM136fSqMw0CbVSNj87b0FFMwlJwzwTfL8Vte8GyKrNcDa47PjaT19Q==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "@loaders.gl/xml": "4.4.2", + "@turf/rewind": "^5.1.5", + "deep-strict-equal": "^0.2.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/worker-utils": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.4.2.tgz", + "integrity": "sha512-oiZ0SoC1QKrOkhYPlVZ6Q06CtmuFRyZw2rwzmT08ZyaGtOArIJHDjlhxzwWiv+6fdws47Ub5uIGsdI1Ab1xYsA==", + "license": "MIT", + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/xml": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/xml/-/xml-4.4.2.tgz", + "integrity": "sha512-OOPqpYH1PK9szuzXh3Oy7aErMXTXB+aiKi79LPCI93Wsb8pdbQiDiRRW8X/op9qABhxpCAMXF5N89eDJv3XdtQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.4.2", + "@loaders.gl/schema": "4.4.2", + "fast-xml-parser": "^5.3.6" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@loaders.gl/zip": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/zip/-/zip-4.4.2.tgz", + "integrity": "sha512-KdgmJRNra9+9jt2zzHUvFXnBqwzeN7dW4MEgTmH/NtraGy8bz5Tk5NrIUj8JXPxhx+vP2vxUWbeCEUoLGO/m9A==", + "license": "MIT", + "dependencies": { + "@loaders.gl/compression": "4.4.2", + "@loaders.gl/crypto": "4.4.2", + "@loaders.gl/loader-utils": "4.4.2", + "jszip": "^3.1.5", + "md5": "^2.3.0" + }, + "peerDependencies": { + "@loaders.gl/core": "~4.4.0" + } + }, + "node_modules/@luma.gl/core": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-9.3.3.tgz", + "integrity": "sha512-jCFm2htvrVpcXIy85TBTF1ROgMfknKnfw2OH+Vydr41hiCFd6nqr79gM3f2uhaNkal0BghFNqF3qDioKiUWtew==", + "license": "MIT", + "dependencies": { + "@math.gl/types": "^4.1.0", + "@probe.gl/env": "^4.1.1", + "@probe.gl/log": "^4.1.1", + "@probe.gl/stats": "^4.1.1", + "@types/offscreencanvas": "^2019.7.3" + } + }, + "node_modules/@luma.gl/engine": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-9.3.3.tgz", + "integrity": "sha512-StmMTzUcUlpKMU3wvWU48A6OQyphptD9zVGBsSkK6iHIBdtBKlOcmqRkyfvRouo8JHtlrnoJDHLVKhxorwhGAg==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "^4.1.0", + "@math.gl/types": "^4.1.0", + "@probe.gl/log": "^4.1.1", + "@probe.gl/stats": "^4.1.1" + }, + "peerDependencies": { + "@luma.gl/core": "~9.3.0", + "@luma.gl/shadertools": "~9.3.0" + } + }, + "node_modules/@luma.gl/gltf": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/gltf/-/gltf-9.3.3.tgz", + "integrity": "sha512-/wty4PHYeQelXvDJesyuMdqtAfpL1XcyEQffcEAwKwu9w7JdkygSShdUwTT1iF7no0uGKuWgq824dVC9WBBQcw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/core": "~4.4.0", + "@loaders.gl/gltf": "~4.4.0", + "@loaders.gl/textures": "~4.4.0", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@luma.gl/core": "~9.3.0", + "@luma.gl/engine": "~9.3.0", + "@luma.gl/shadertools": "~9.3.0" + } + }, + "node_modules/@luma.gl/shadertools": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-9.3.3.tgz", + "integrity": "sha512-4ZfG4/Utix951vqyiG/JIx+Eg+GMNwOxgr/07/i0gf7bK1gJZIEQ5BxVcDw4MCQfdoVlGPGzl0cQKbdqBvaCAQ==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "^4.1.0", + "@math.gl/types": "^4.1.0" + }, + "peerDependencies": { + "@luma.gl/core": "~9.3.0" + } + }, + "node_modules/@luma.gl/webgl": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-9.3.3.tgz", + "integrity": "sha512-X+aavdP5o6VFHSA0es9gKZTT145jfcFbhKJt/gwJrptnKNoIW4+Y37ZEpCo1AzAnr+FQCxjgcM2kOCpoWMfSVA==", + "license": "MIT", + "dependencies": { + "@math.gl/types": "^4.1.0", + "@probe.gl/env": "^4.1.1" + }, + "peerDependencies": { + "@luma.gl/core": "~9.3.0" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==", + "license": "ISC" + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-3.0.0.tgz", + "integrity": "sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==", + "license": "BSD-3-Clause" + }, + "node_modules/@mapbox/martini": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz", + "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==", + "license": "ISC" + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.4.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.4.0.tgz", + "integrity": "sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@math.gl/core": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.1.0.tgz", + "integrity": "sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==", + "license": "MIT", + "dependencies": { + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/culling": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-4.1.0.tgz", + "integrity": "sha512-jFmjFEACnP9kVl8qhZxFNhCyd47qPfSVmSvvjR0/dIL6R9oD5zhR1ub2gN16eKDO/UM7JF9OHKU3EBIfeR7gtg==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/geospatial": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-4.1.0.tgz", + "integrity": "sha512-BzsUhpVvnmleyYF6qdqJIip6FtIzJmnWuPTGhlBuPzh7VBHLonCFSPtQpbkRuoyAlbSyaGXcVt6p6lm9eK2vtg==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/polygon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-4.1.0.tgz", + "integrity": "sha512-YA/9PzaCRHbIP5/0E9uTYrqe+jsYTQoqoDWhf6/b0Ixz8bPZBaGDEafLg3z7ffBomZLacUty9U3TlPjqMtzPjA==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0" + } + }, + "node_modules/@math.gl/sun": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/sun/-/sun-4.1.0.tgz", + "integrity": "sha512-i3q6OCBLSZ5wgZVhXg+X7gsjY/TUtuFW/2KBiq/U1ypLso3S4sEykoU/MGjxUv1xiiGtr+v8TeMbO1OBIh/HmA==", + "license": "MIT" + }, + "node_modules/@math.gl/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.1.0.tgz", + "integrity": "sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==", + "license": "MIT" + }, + "node_modules/@math.gl/web-mercator": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.1.0.tgz", + "integrity": "sha512-HZo3vO5GCMkXJThxRJ5/QYUYRr3XumfT8CzNNCwoJfinxy5NtKUd7dusNTXn7yJ40UoB8FMIwkVwNlqaiRZZAw==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0" + } + }, + "node_modules/@monaco-editor/loader": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.5.0.tgz", + "integrity": "sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", + "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.5.0" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@nodable/entities": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz", + "integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ], + "license": "MIT" + }, + "node_modules/@open-wc/dedupe-mixin": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", + "license": "MIT", + "peer": true + }, + "node_modules/@plotly/d3": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.2.tgz", + "integrity": "sha512-wvsNmh1GYjyJfyEBPKJLTMzgf2c2bEbSIL50lmqVUi+o1NHaLPi1Lb4v7VxXXJn043BhNyrxUrWI85Q+zmjOVA==", + "license": "BSD-3-Clause" + }, + "node_modules/@plotly/d3-sankey": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", + "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + } + }, + "node_modules/@plotly/d3-sankey-circular": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", + "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", + "license": "MIT", + "dependencies": { + "d3-array": "^1.2.1", + "d3-collection": "^1.0.4", + "d3-shape": "^1.2.0", + "elementary-circuits-directed-graph": "^1.0.4" + } + }, + "node_modules/@plotly/d3-sankey-circular/node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/@plotly/d3-sankey/node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/@plotly/mapbox-gl": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", + "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", + "license": "SEE LICENSE IN LICENSE.txt", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "license": "BSD-3-Clause", + "peerDependencies": { + "mapbox-gl": ">=0.32.1 <2.0.0" + } + }, + "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/tiny-sdf": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==", + "license": "BSD-2-Clause" + }, + "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", + "license": "BSD-2-Clause" + }, + "node_modules/@plotly/mapbox-gl/node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "license": "ISC" + }, + "node_modules/@plotly/mapbox-gl/node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", + "license": "ISC" + }, + "node_modules/@plotly/mapbox-gl/node_modules/mapbox-gl": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", + "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", + "license": "SEE LICENSE IN LICENSE.txt", + "peer": true, + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/@plotly/mapbox-gl/node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "license": "ISC" + }, + "node_modules/@plotly/mapbox-gl/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@plotly/mapbox-gl/node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "license": "ISC", + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/@plotly/mapbox-gl/node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "license": "ISC" + }, + "node_modules/@plotly/point-cluster": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", + "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "binary-search-bounds": "^2.0.4", + "clamp": "^1.0.1", + "defined": "^1.0.0", + "dtype": "^2.0.0", + "flatten-vertex-data": "^1.0.2", + "is-obj": "^1.0.1", + "math-log2": "^1.0.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0" + } + }, + "node_modules/@plotly/regl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", + "license": "MIT" + }, + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@probe.gl/env": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.1.1.tgz", + "integrity": "sha512-+68seNDMVsEegRB47pFA/Ws1Fjy8agcFYXxzorKToyPcD6zd+gZ5uhwoLd7TzsSw6Ydns//2KEszWn+EnNHTbA==", + "license": "MIT" + }, + "node_modules/@probe.gl/log": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.1.1.tgz", + "integrity": "sha512-kcZs9BT44pL7hS1OkRGKYRXI/SN9KejUlPD+BY40DguRLzdC5tLG/28WGMyfKdn/51GT4a0p+0P8xvDn1Ez+Kg==", + "license": "MIT", + "dependencies": { + "@probe.gl/env": "4.1.1" + } + }, + "node_modules/@probe.gl/stats": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.1.1.tgz", + "integrity": "sha512-4VpAyMHOqydSvPlEyHwXaE+AkIdR03nX+Qhlxsk2D/IW4OVmDZgIsvJB1cDzyEEtcfKcnaEbfXeiPgejBceT6g==", + "license": "MIT" + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.6.tgz", + "integrity": "sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz", + "integrity": "sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz", + "integrity": "sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz", + "integrity": "sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz", + "integrity": "sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz", + "integrity": "sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz", + "integrity": "sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz", + "integrity": "sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz", + "integrity": "sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz", + "integrity": "sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz", + "integrity": "sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz", + "integrity": "sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz", + "integrity": "sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz", + "integrity": "sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz", + "integrity": "sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz", + "integrity": "sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz", + "integrity": "sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz", + "integrity": "sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz", + "integrity": "sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz", + "integrity": "sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz", + "integrity": "sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz", + "integrity": "sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz", + "integrity": "sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz", + "integrity": "sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz", + "integrity": "sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz", + "integrity": "sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.41.tgz", + "integrity": "sha512-03nQq/082QRJJiOvp3FGbgxTGyyxMxohPTjhk/W9bD2J0tk4ukITI7goOhOO2WbaHn/lsPmo/zf8+DIXhwpgYQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.26" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.41", + "@swc/core-darwin-x64": "1.15.41", + "@swc/core-linux-arm-gnueabihf": "1.15.41", + "@swc/core-linux-arm64-gnu": "1.15.41", + "@swc/core-linux-arm64-musl": "1.15.41", + "@swc/core-linux-ppc64-gnu": "1.15.41", + "@swc/core-linux-s390x-gnu": "1.15.41", + "@swc/core-linux-x64-gnu": "1.15.41", + "@swc/core-linux-x64-musl": "1.15.41", + "@swc/core-win32-arm64-msvc": "1.15.41", + "@swc/core-win32-ia32-msvc": "1.15.41", + "@swc/core-win32-x64-msvc": "1.15.41" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.41.tgz", + "integrity": "sha512-kREh6J5paQFvP3i7f/4FbqRNOJREutVFVOkder4GVyCBQ39YmER55cW/y1NNjwrchzFqgYswFn0mMDCqbqKzrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.41.tgz", + "integrity": "sha512-N8B56ESFazZAWZyIkecADSPCwlLEinW7QLMEeotCpv4J7VXwfH+OLkmRL8o96UZ+1355fwHxDTS6/wK7yucvkA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.41.tgz", + "integrity": "sha512-6XrId2fyle0mS5xxON8rU84mPd2Cq1kDJRj+4BnQKTd7u+2kSA6Ww+JkOP0iTNqOqt9OXhPOEAjBHAuonWcdCg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.41.tgz", + "integrity": "sha512-ynLIarxlkVnqHn1D0fKOVht6mNU5ks6lrH+MY3kkS+XFaGGgDxFZVjWKJlkYTKm3RCvBTfA8Ng5fLufXheMRKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.41.tgz", + "integrity": "sha512-dXu/5vd4gh8symyhRF+4G7gOPkjmb4pONhh7sl+6GSiW0LOKZlfu5kXmyFbTz9smOT7jgr002qY9b1nujjXt2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.41.tgz", + "integrity": "sha512-XGO6zVPXoPE0gf/XnI4jBbafNT13AYgoh6ns0JCSdOetI/kqVf0vhpz7NuNgAzZrMVCsmieqjPoTwViDgh4mOQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.41.tgz", + "integrity": "sha512-0WUglRwyZtW+iMi7J3iFdrCxreZZIKf4egTwEQfIYRsqFax69A0OrFj+NIoFSE03xBT/IFRrg+S8K6f9Ky+4hA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.41.tgz", + "integrity": "sha512-VxkuQK59c0tHm6uJZCUrS3cyA2JhGGfdU6e41SZz0x/JS+4Sm7C1mIc97In14vkZJopEt7yXA2TouCqZDSygEA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.41.tgz", + "integrity": "sha512-/0qXIu1ZxggLuovLb22vFfKHq2AA4n6Whw5UwmVCHk4pkw7KWnPIQpMCEqUMPsNkFJig7PPp/TSYFu8ZEb2rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.41.tgz", + "integrity": "sha512-Y481sMNZM6rECh9VO4+y26N1lWEDAyxnBZskUf37fl90uHE946VHfmiVQWT0uMFOhyJJFovGTRuF4W82dwewUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.41.tgz", + "integrity": "sha512-BAchBD5qeUzy3hiPSLJtaaoSm4blCLyYffOF1bGE4ETcV+OisqjUAwDQMJj++4bTpvMCDzwC+Bj3PmQyBCtscw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.41", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.41.tgz", + "integrity": "sha512-WOkA+fJ/ViVBQDsSV9JC52NACTe5PhlurA6viASDZGb7HR3KS01ZG7RZ+Bg6SVQFIoq3gSbTsskQVe6EbHFAYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.26.tgz", + "integrity": "sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@turf/area": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.2.0.tgz", + "integrity": "sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", + "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-clockwise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz", + "integrity": "sha512-FqbmEEOJ4rU4/2t7FKx0HUWmjFEVqR+NJrFP7ymGSjja2SQ7Q91nnBihGuT+yuHHl6ElMjQ3ttsB/eTmyCycxA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "node_modules/@turf/boolean-clockwise/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==", + "license": "MIT" + }, + "node_modules/@turf/centroid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", + "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clone": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", + "integrity": "sha512-//pITsQ8xUdcQ9pVb4JqXiSqG4dos5Q9N4sYFoWghX21tfOV2dhc5TGqYOhnHrQS7RiKQL1vQ48kIK34gQ5oRg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@turf/clone/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==", + "license": "MIT" + }, + "node_modules/@turf/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/invariant": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", + "integrity": "sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@turf/invariant/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==", + "license": "MIT" + }, + "node_modules/@turf/meta": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", + "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rewind": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz", + "integrity": "sha512-Gdem7JXNu+G4hMllQHXRFRihJl3+pNl7qY+l4qhQFxq+hiU1cQoVFnyoleIqWKIrdK/i2YubaSwc3SCM7N5mMw==", + "license": "MIT", + "dependencies": { + "@turf/boolean-clockwise": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "node_modules/@turf/rewind/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==", + "license": "MIT" + }, + "node_modules/@turf/rewind/node_modules/@turf/meta": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz", + "integrity": "sha512-ZjQ3Ii62X9FjnK4hhdsbT+64AYRpaI8XMBMcyftEOGSmPMUVnkbvuv3C9geuElAXfQU7Zk1oWGOcrGOD9zr78Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@types/brotli": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/brotli/-/brotli-1.3.5.tgz", + "integrity": "sha512-9xoNr+bcxT236/7ZgcWw/6Pb2RRetE13p4bFy1xYSckKwyOiRfmInay8baUWZgH7/284Wl6IPe7+nOI9+OQg/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "license": "MIT" + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==", + "license": "MIT" + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", + "license": "MIT" + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz", + "integrity": "sha512-QwjxA3+YCKH3N1Rs3uSiSy1bdxlLB1uUiENXeJudBoAFvtDuswUxLcanoOaR2JYn1melDTuIXR8VhnVyI3yG/A==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-sankey": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@types/d3-sankey/-/d3-sankey-0.11.2.tgz", + "integrity": "sha512-U6SrTWUERSlOhnpSrgvMX64WblX1AxX6nEjI2t3mLK2USpQrnbwYYK+AS9SwiE7wgYmOsSSKoSdr8aoKBH0HgQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-shape": "^1" + } + }, + "node_modules/@types/d3-sankey/node_modules/@types/d3-path": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.11.tgz", + "integrity": "sha512-4pQMp8ldf7UaB/gR8Fvvy69psNHkTpD/pVw3vmEi8iZAB9EPMBruB1JvHO4BIq9QkUUd2lV1F5YXpMNj7JPBpw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-sankey/node_modules/@types/d3-shape": { + "version": "1.3.12", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.12.tgz", + "integrity": "sha512-8oMzcd4+poSLGgV0R1Q1rOlx/xdmozS4Xab7np0eamFFUYq71AU9pOCJEFnkXW2aI/oXdVYJzw6pssbSut7Z9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-path": "^1" + } + }, + "node_modules/@types/d3-scale": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", + "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-scale/node_modules/@types/d3-time": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", + "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/google.maps": { + "version": "3.65.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.65.1.tgz", + "integrity": "sha512-O9monmoXfyWsuyR4Wz3TZU26qai9y7jUV7DSRySluae6O5tQt3Obw5ETt0HKfNsjctnlF/yx/Tfn3WQNmKRXZA==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", + "license": "MIT" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "node_modules/@types/mapbox-gl": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-3.4.1.tgz", + "integrity": "sha512-NsGKKtgW93B+UaLPti6B7NwlxYlES5DpV5Gzj9F75rK5ALKsqSk15CiEHbOnTr09RGbr6ZYiCdI+59NNNcAImg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/node": { + "version": "24.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", + "license": "MIT" + }, + "node_modules/@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==", + "license": "MIT" + }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", + "license": "MIT" + }, + "node_modules/@types/plotly.js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-3.0.0.tgz", + "integrity": "sha512-WiUzfUh5Mn7+ySbuh2j0fIr7AtLmPzfu/zjtjVx4mftbuZonkQ6UqwylO9F1LqM9+PXZM8XYtyovIHw8cE+4ug==", + "license": "MIT" + }, + "node_modules/@types/polylabel": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/polylabel/-/polylabel-1.1.3.tgz", + "integrity": "sha512-9Zw2KoDpi+T4PZz2G6pO2xArE0m/GSMTW1MIxF2s8ZY8x9XDO6fv9um0ydRGvcbkFLlaq8yNK6eZxnmMZtDgWQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.21.tgz", + "integrity": "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/react-plotly.js": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/react-plotly.js/-/react-plotly.js-2.6.3.tgz", + "integrity": "sha512-HBQwyGuu/dGXDsWhnQrhH+xcJSsHvjkwfSRjP+YpOsCCWryIuXF78ZCBjpfgO3sCc0Jo8sYp4NOGtqT7Cn3epQ==", + "license": "MIT", + "dependencies": { + "@types/plotly.js": "*", + "@types/react": "*" + } + }, + "node_modules/@types/react-resizable": { + "version": "3.0.8", + "resolved": "https://registry.npmmirror.com/@types/react-resizable/-/react-resizable-3.0.8.tgz", + "integrity": "sha512-Pcvt2eGA7KNXldt1hkhVhAgZ8hK41m0mp89mFgQi7LAAEZiaLgm4fHJ5zbJZ/4m2LVaAyYrrRRv1LHDcrGQanA==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/sortablejs": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.9.tgz", + "integrity": "sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/svg-arc-to-cubic-bezier": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.3.tgz", + "integrity": "sha512-UNOnbTtl0nVTm8hwKaz5R5VZRvSulFMGojO5+Q7yucKxBoCaTtS4ibSQVRHo5VW5AaRo145U8p1Vfg5KrYe9Bg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "peer": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.0.tgz", + "integrity": "sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/type-utils": "8.61.0", + "@typescript-eslint/utils": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.61.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.0.tgz", + "integrity": "sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.0.tgz", + "integrity": "sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.61.0", + "@typescript-eslint/types": "^8.61.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.0.tgz", + "integrity": "sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.0.tgz", + "integrity": "sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.0.tgz", + "integrity": "sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/utils": "8.61.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.0.tgz", + "integrity": "sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.0.tgz", + "integrity": "sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.61.0", + "@typescript-eslint/tsconfig-utils": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.0.tgz", + "integrity": "sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.0.tgz", + "integrity": "sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@umijs/route-utils": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@umijs/route-utils/-/route-utils-4.0.3.tgz", + "integrity": "sha512-zPEcYhl1cSfkSRDzzGgoD1mDvGjxoOTJFvkn55srfgdQ3NZe2ZMCScCU6DEnOxuKP1XDVf8pqyqCDVd2+RCQIw==", + "license": "MIT" + }, + "node_modules/@umijs/use-params": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@umijs/use-params/-/use-params-1.0.9.tgz", + "integrity": "sha512-QlN0RJSBVQBwLRNxbxjQ5qzqYIGn+K7USppMoIOVlf7fxXHsnQZ2bEsa6Pm74bt6DVQxpUE8HqvdStn6Y9FV1w==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@vaadin/a11y-base": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.9.16.tgz", + "integrity": "sha512-sJE3xNko30cNVEjU2WEmNlvRjqGG7xIQAIOc85/jiYGj/s5W9fbMbL/seWz1DvNy58wYv1DhanhrBaD0AA+Jnw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/checkbox": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.9.16.tgz", + "integrity": "sha512-yZPN5Jwmxanhz98REKoWzDtey2QYi1B6R0cibux4Xh86cULCGu1kubUxYdYiPsmP4GtRrtm+tu7Q6e/GG7wkTA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.9.16", + "@vaadin/component-base": "~24.9.16", + "@vaadin/field-base": "~24.9.16", + "@vaadin/vaadin-lumo-styles": "~24.9.16", + "@vaadin/vaadin-material-styles": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/component-base": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.9.16.tgz", + "integrity": "sha512-pAhb4cBR0wWAohiXXELUFTNeipq1+U/zy/m3aja9q5VwtRgnwvRvAc7BO3Ir1RKPRtY34EZVFLSi9VqO+1UbTw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/vaadin-development-mode-detector": "^2.0.0", + "@vaadin/vaadin-usage-statistics": "^2.1.0", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/field-base": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.9.16.tgz", + "integrity": "sha512-RluCvM7LO/EqFNCBngsyJFuTkEX8axTkVKz1Bp7ZI0yLPqxSXhWCY5lqOZy5T/rW98xGuFXQ4wKaB5pWIThrfQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.9.16", + "@vaadin/component-base": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/grid": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.9.16.tgz", + "integrity": "sha512-5HcA24MTW1CyCgCOMXIX4X4vyk5ctyQqoTkvlca8yBtNMigIBiBujtnHapZ5NjhuoUzKFssw1D2ASAEQ/NJotw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.9.16", + "@vaadin/checkbox": "~24.9.16", + "@vaadin/component-base": "~24.9.16", + "@vaadin/lit-renderer": "~24.9.16", + "@vaadin/text-field": "~24.9.16", + "@vaadin/vaadin-lumo-styles": "~24.9.16", + "@vaadin/vaadin-material-styles": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/icon": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.9.16.tgz", + "integrity": "sha512-6cdFRBhw0U7GxrC5i5tqEuXaa8HMZYdQtLWiaExqqKGdUx/CaevkzZQ41jyQenhijTgEUea+88dktkWnRHaNUw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.9.16", + "@vaadin/vaadin-lumo-styles": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/input-container": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.9.16.tgz", + "integrity": "sha512-18t4Cq6X2Fv4+49CjkyHIH5OYajgHmQ9zz1PnFSSSHrViHqH8TfUo70Zc01JM0BgGSv6xPAjvgpM2N3gdtni3g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.9.16", + "@vaadin/vaadin-lumo-styles": "~24.9.16", + "@vaadin/vaadin-material-styles": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.9.16.tgz", + "integrity": "sha512-j6+we4MI4DlP9AhWpqCMXbyLwmdwTeq9+xWKEd+IlB4zT3unGJprYk4luyi3Jh8hq9OnFo2J5BZTqyCEq/lgKg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/text-field": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.9.16.tgz", + "integrity": "sha512-XnPpgzzWAQFPCbZg4CyWOgRA6HIHQbzqrFEIZiT6ssYeA0foXoflgvJBD2oXOtqX4kmNbFj1P/fLgD1puZPtLg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.9.16", + "@vaadin/component-base": "~24.9.16", + "@vaadin/field-base": "~24.9.16", + "@vaadin/input-container": "~24.9.16", + "@vaadin/vaadin-lumo-styles": "~24.9.16", + "@vaadin/vaadin-material-styles": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/vaadin-development-mode-detector": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.7.tgz", + "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@vaadin/vaadin-lumo-styles": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.9.16.tgz", + "integrity": "sha512-C3zu29dJ39f50qGDFBDUHy8YJwh4oh5EE1Vy3wdRhH22HkiSERV/13ygR+Mw2ym/sNd7B+/cDoQegQOL47xXww==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.9.16", + "@vaadin/icon": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16" + } + }, + "node_modules/@vaadin/vaadin-material-styles": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.9.16.tgz", + "integrity": "sha512-IiVuNSF0tcjUyzEEc/kdjGDS7r/nK1L+KZ7WM/MpvTtHhX8OA17Bf8JxYCSFI/1zKbyyHHEHBJunArZu9KPdYQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.9.16", + "@vaadin/vaadin-themable-mixin": "~24.9.16" + } + }, + "node_modules/@vaadin/vaadin-themable-mixin": { + "version": "24.9.16", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.9.16.tgz", + "integrity": "sha512-Q/dEJlWN9/GwAok5R7LRXZrZGQYIWOvciIPXCtE21Ti/nAeoz/nGcIt9TaeJbXAOVWGH9ZVwu5hteYWP+lGDXg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit": "^3.0.0", + "style-observer": "^0.0.8" + } + }, + "node_modules/@vaadin/vaadin-usage-statistics": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz", + "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@vaadin/vaadin-development-mode-detector": "^2.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz", + "integrity": "sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.27", + "@swc/core": "^1.12.11" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/@webcomponents/shadycss": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.11.2.tgz", + "integrity": "sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@zip.js/zip.js": { + "version": "2.8.26", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.26.tgz", + "integrity": "sha512-RQ4h9F6DOiHxpdocUDrOl6xBM+yOtz+LkUol47AVWcfebGBDpZ7w7Xvz9PS24JgXvLGiXXzSAfdCdVy1tPlaFA==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=18.0.0" + } + }, + "node_modules/a5-js": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/a5-js/-/a5-js-0.7.3.tgz", + "integrity": "sha512-3aoMwHmNkyuMDHS4q6GRRInpOawamen2pokIbc0MQmR9cqG0Y9+B0bZpzswwetjrSG2ckbYtShH+nKru6+3O5Q==", + "license": "Apache-2.0", + "dependencies": { + "gl-matrix": "^3.4.3" + } + }, + "node_modules/abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==", + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/add-dom-event-listener": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", + "license": "MIT", + "dependencies": { + "object-assign": "4.x" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansi-styles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/antd": { + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.25.2.tgz", + "integrity": "sha512-7R2nUvlHhey7Trx64+hCtGXOiy+DTUs1Lv5bwbV1LzEIZIhWb0at1AM6V3K108a5lyoR9n7DX3ptlLF7uYV/DQ==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.0", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.6", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.2.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.50.5", + "rc-tabs": "~15.6.1", + "rc-textarea": "~1.10.0", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.0", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/anynum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/anynum/-/anynum-1.0.0.tgz", + "integrity": "sha512-xjR9/zBVnUOP6ztMIIgShjsxui80nQUQH+5xJnvrYLs+90bF25/KJqaAi8mk+B4RDtX1Nspi6fmp4YTEts8SfA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/apache-arrow": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-21.1.0.tgz", + "integrity": "sha512-kQrYLxhC+NTVVZ4CCzGF6L/uPVOzJmD1T3XgbiUnP7oTeVFOFgEUu6IKNwCDkpFoBVqDKQivlX4RUFqqnWFlEA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/command-line-args": "^5.2.3", + "@types/command-line-usage": "^5.0.4", + "@types/node": "^24.0.3", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.1", + "flatbuffers": "^25.1.24", + "json-bignum": "^0.0.3", + "tslib": "^2.6.2" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-back": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz", + "integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/array-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", + "license": "MIT" + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-normalize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", + "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.0" + } + }, + "node_modules/array-range": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", + "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==", + "license": "MIT" + }, + "node_modules/array-rearrange": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", + "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", + "license": "MIT" + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-search-bounds": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", + "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==", + "license": "MIT" + }, + "node_modules/bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", + "license": "MIT" + }, + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", + "license": "MIT" + }, + "node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/buf-compare": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "integrity": "sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "license": "MIT", + "dependencies": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "node_modules/bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cartocolor": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-5.0.2.tgz", + "integrity": "sha512-Ihb/wU5V6BVbHwapd8l/zg7bnhZ4YPFVfa7quSpL86lfkPJSf4YuNBT+EvesPRP5vSqhl6vZVsQJwCR8alBooQ==", + "license": "CC-BY-4.0", + "dependencies": { + "colorbrewer": "1.5.6" + } + }, + "node_modules/casdoor-js-sdk": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/casdoor-js-sdk/-/casdoor-js-sdk-0.16.0.tgz", + "integrity": "sha512-K5ZKaSGxzAgLzYGlp444OnhZ0nAZqnvlq5/wPhpQ0HCU0uwk0NIt+KC4LC+qUdnRxaQN6f1LP8wR/xsTZQBWVQ==", + "license": "Apache-2.0", + "dependencies": { + "js-pkce": "^1.3.0", + "jwt-decode": "^4.0.0" + } + }, + "node_modules/casdoor-react-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/casdoor-react-sdk/-/casdoor-react-sdk-1.2.0.tgz", + "integrity": "sha512-vFR1Gr63LsYqMPzA63r3b2QwHqD0rF3QDfrZbtHT1EqPdVu/gvny5YXK8REgkyY038GDQTBXb5JjNTiWFFIVtw==", + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/cheap-ruler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz", + "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==", + "license": "ISC" + }, + "node_modules/clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==", + "license": "MIT" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-alpha": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", + "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", + "license": "MIT", + "dependencies": { + "color-parse": "^1.3.8" + } + }, + "node_modules/color-alpha/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-alpha/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1" + } + }, + "node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color-normalize": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", + "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1", + "color-rgba": "^2.1.1", + "dtype": "^2.0.0" + } + }, + "node_modules/color-normalize/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-normalize/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-normalize/node_modules/color-rgba": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz", + "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==", + "license": "MIT", + "dependencies": { + "color-parse": "^1.4.2", + "color-space": "^2.0.0" + } + }, + "node_modules/color-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", + "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-parse/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-rgba": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz", + "integrity": "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==", + "license": "MIT", + "dependencies": { + "color-parse": "^2.0.0", + "color-space": "^2.0.0" + } + }, + "node_modules/color-space": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-2.3.2.tgz", + "integrity": "sha512-BcKnbOEsOarCwyoLstcoEztwT0IJxqqQkNwDuA3a65sICvvHL2yoeV13psoDFh5IuiOMnIOKdQDwB4Mk3BypiA==", + "license": "Unlicense" + }, + "node_modules/color-string": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/colorbrewer": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.5.6.tgz", + "integrity": "sha512-fONg2pGXyID8zNgKHBlagW8sb/AMShGzj4rRJfz5biZ7iuHQZYquSCLE/Co1oSQFmt/vvwjyezJCejQl7FG/tg==", + "license": [ + { + "type": "Apache-Style", + "url": "https://github.com/saikocat/colorbrewer/blob/master/LICENSE.txt" + } + ] + }, + "node_modules/command-line-args": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.2.tgz", + "integrity": "sha512-AIjYVxrV9X752LmPDLbVYv8aMCuHPSLZJXEo2qo/xJfv+NYhaZ4sMSF01rM+gHPaMgvPM0l5D/F+Qx+i2WfSmQ==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.3", + "find-replace": "^5.0.2", + "lodash.camelcase": "^4.3.0", + "typical": "^7.3.0" + }, + "engines": { + "node": ">=12.20" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, + "node_modules/command-line-usage": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.4.tgz", + "integrity": "sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.1", + "typical": "^7.3.0" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/composed-offset-position": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/composed-offset-position/-/composed-offset-position-0.0.6.tgz", + "integrity": "sha512-Q7dLompI6lUwd7LWyIcP66r4WcS9u7AL2h8HaeipiRfCRPLMWqRx8fYsjb4OHi6UQFifO7XtNC2IlEJ1ozIFxw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@floating-ui/utils": "^0.2.5" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-assert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "integrity": "sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==", + "license": "MIT", + "dependencies": { + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, + "node_modules/css-font": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", + "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", + "license": "MIT", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "pick-by-alias": "^1.2.0", + "string-split-by": "^1.0.0", + "unquote": "^1.1.0" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", + "license": "MIT" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", + "license": "MIT" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", + "license": "MIT" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", + "license": "MIT" + }, + "node_modules/css-global-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", + "license": "MIT" + }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", + "license": "MIT" + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "license": "MIT" + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "license": "MIT", + "peer": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "peer": true, + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1" + } + }, + "node_modules/d3-geo-projection": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", + "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", + "license": "BSD-3-Clause", + "dependencies": { + "commander": "2", + "d3-array": "1", + "d3-geo": "^1.12.0", + "resolve": "^1.1.10" + }, + "bin": { + "geo2svg": "bin/geo2svg", + "geograticule": "bin/geograticule", + "geoproject": "bin/geoproject", + "geoquantize": "bin/geoquantize", + "geostitch": "bin/geostitch" + } + }, + "node_modules/d3-geo-projection/node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-geo/node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC", + "peer": true + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-voronoi-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-voronoi-map/-/d3-voronoi-map-2.1.1.tgz", + "integrity": "sha512-mCXfz/kD9IQxjHaU2IMjkO8fSo4J6oysPR2iL+omDsCy1i1Qn6BQ/e4hEAW8C6ms2kfuHwqtbNom80Hih94YsA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-dispatch": "2.*", + "d3-polygon": "2.*", + "d3-timer": "2.*", + "d3-weighted-voronoi": "1.*" + } + }, + "node_modules/d3-voronoi-map/node_modules/d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-voronoi-map/node_modules/d3-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz", + "integrity": "sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-voronoi-map/node_modules/d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-voronoi-treemap": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-voronoi-treemap/-/d3-voronoi-treemap-1.1.2.tgz", + "integrity": "sha512-7odu9HdG/yLPWwzDteJq4yd9Q/NwgQV7IE/u36VQtcCK7k1sZwDqbkHCeMKNTBsq5mQjDwolTsrXcU0j8ZEMCA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-voronoi-map": "2.*" + } + }, + "node_modules/d3-weighted-voronoi": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/d3-weighted-voronoi/-/d3-weighted-voronoi-1.1.3.tgz", + "integrity": "sha512-C3WdvSKl9aqhAy+f3QT3PPsQG6V+ajDfYO3BSclQDSD+araW2xDBFIH67aKzsSuuuKaX8K2y2dGq1fq/dWTVig==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-array": "2", + "d3-polygon": "2" + } + }, + "node_modules/d3-weighted-voronoi/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-weighted-voronoi/node_modules/d3-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz", + "integrity": "sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-weighted-voronoi/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC", + "peer": true + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deck.gl": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/deck.gl/-/deck.gl-9.3.3.tgz", + "integrity": "sha512-NRUySLOVpGKYKQiHWhTcdICxvSd6ItXk1K0gGo9Yg7l6FAVCxm7e+jjwRQGW0bvnEBanBh21q0bb0v+FLC56gA==", + "license": "MIT", + "dependencies": { + "@deck.gl/aggregation-layers": "9.3.3", + "@deck.gl/arcgis": "9.3.3", + "@deck.gl/carto": "9.3.3", + "@deck.gl/core": "9.3.3", + "@deck.gl/extensions": "9.3.3", + "@deck.gl/geo-layers": "9.3.3", + "@deck.gl/google-maps": "9.3.3", + "@deck.gl/json": "9.3.3", + "@deck.gl/layers": "9.3.3", + "@deck.gl/mapbox": "9.3.3", + "@deck.gl/mesh-layers": "9.3.3", + "@deck.gl/react": "9.3.3", + "@deck.gl/widgets": "9.3.3", + "@loaders.gl/core": "^4.4.1", + "@luma.gl/core": "^9.3.3", + "@luma.gl/engine": "^9.3.3" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "@arcgis/core": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-strict-equal": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", + "integrity": "sha512-3daSWyvZ/zwJvuMGlzG1O+Ow0YSadGfb3jsh9xoCutv2tWyB9dA4YvR9L9/fSdDZa2dByYQe+TqapSGUrjnkoA==", + "license": "MIT", + "dependencies": { + "core-assert": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delaunator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", + "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/delaunator/node_modules/robust-predicates": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", + "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", + "license": "Unlicense", + "peer": true + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-kerning": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", + "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", + "license": "MIT" + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT", + "peer": true + }, + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", + "license": "Apache-2.0" + }, + "node_modules/draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", + "license": "MIT", + "dependencies": { + "abs-svg-path": "~0.1.1", + "normalize-svg-path": "~0.1.0" + } + }, + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, + "node_modules/elementary-circuits-directed-graph": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", + "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", + "license": "MIT", + "dependencies": { + "strongly-connected-components": "^1.0.1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-toolkit": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.47.0.tgz", + "integrity": "sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw==", + "license": "MIT", + "peer": true, + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", + "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esri-loader": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.7.0.tgz", + "integrity": "sha512-cB1Sw9EQjtW4mtT7eFBjn/6VaaIWNTjmTd2asnnEyuZk1xVSFRMCfLZSBSjZM7ZarDcVu5WIjOP0t0MYVu4hVQ==", + "deprecated": "Use @arcgis/core instead.", + "license": "Apache-2.0" + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-isnumeric": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", + "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", + "license": "MIT", + "dependencies": { + "is-string-blank": "^1.0.1" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-xml-builder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", + "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.5.0", + "xml-naming": "^0.1.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.8.0.tgz", + "integrity": "sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "@nodable/entities": "^2.1.0", + "fast-xml-builder": "^1.2.0", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.3.0", + "xml-naming": "^0.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatbuffers": { + "version": "25.9.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", + "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", + "license": "Apache-2.0" + }, + "node_modules/flatpickr": { + "version": "4.6.13", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", + "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==", + "license": "MIT", + "peer": true + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/flatten-vertex-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", + "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", + "license": "MIT", + "dependencies": { + "dtype": "^2.0.0" + } + }, + "node_modules/focus-trap": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", + "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", + "license": "MIT", + "peer": true, + "dependencies": { + "tabbable": "^6.4.0" + } + }, + "node_modules/font-atlas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", + "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", + "license": "MIT", + "dependencies": { + "css-font": "^1.0.0" + } + }, + "node_modules/font-measure": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", + "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", + "license": "MIT", + "dependencies": { + "css-font": "^1.2.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" + }, + "node_modules/get-canvas-context": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", + "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==", + "license": "MIT" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gl-mat4": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", + "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==", + "license": "Zlib" + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "license": "MIT" + }, + "node_modules/gl-text": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", + "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", + "license": "MIT", + "dependencies": { + "bit-twiddle": "^1.0.2", + "color-normalize": "^1.5.0", + "css-font": "^1.2.0", + "detect-kerning": "^2.1.2", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "font-atlas": "^2.1.0", + "font-measure": "^1.2.2", + "gl-util": "^3.1.2", + "is-plain-obj": "^1.1.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "parse-unit": "^1.0.1", + "pick-by-alias": "^1.2.0", + "regl": "^2.0.0", + "to-px": "^1.0.1", + "typedarray-pool": "^1.1.0" + } + }, + "node_modules/gl-util": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", + "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1", + "is-firefox": "^1.0.3", + "is-plain-obj": "^1.1.0", + "number-is-integer": "^1.0.1", + "object-assign": "^4.1.0", + "pick-by-alias": "^1.2.0", + "weak-map": "^1.0.5" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-prefix": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", + "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", + "license": "MIT", + "dependencies": { + "ini": "^4.1.3", + "kind-of": "^6.0.3", + "which": "^4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", + "license": "MIT", + "dependencies": { + "glsl-token-inject-block": "^1.0.0", + "glsl-token-string": "^1.0.1", + "glsl-tokenizer": "^2.0.2" + } + }, + "node_modules/glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", + "license": "MIT", + "dependencies": { + "resolve": "^0.6.1", + "xtend": "^2.1.2" + } + }, + "node_modules/glsl-resolve/node_modules/resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==", + "license": "MIT" + }, + "node_modules/glsl-resolve/node_modules/xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==", + "license": "MIT" + }, + "node_modules/glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", + "license": "MIT", + "dependencies": { + "glsl-tokenizer": "^2.0.0" + } + }, + "node_modules/glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==", + "license": "MIT" + }, + "node_modules/glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", + "license": "MIT", + "dependencies": { + "glsl-token-assignments": "^2.0.0", + "glsl-token-depth": "^1.1.0", + "glsl-token-properties": "^1.0.0", + "glsl-token-scope": "^1.1.0" + } + }, + "node_modules/glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==", + "license": "MIT" + }, + "node_modules/glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==", + "license": "MIT" + }, + "node_modules/glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==", + "license": "MIT" + }, + "node_modules/glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==", + "license": "MIT" + }, + "node_modules/glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", + "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", + "license": "MIT", + "dependencies": { + "through2": "^0.6.3" + } + }, + "node_modules/glsl-tokenizer/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/glsl-tokenizer/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "license": "MIT", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/glslify": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", + "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", + "license": "MIT", + "dependencies": { + "bl": "^2.2.1", + "concat-stream": "^1.5.2", + "duplexify": "^3.4.5", + "falafel": "^2.1.0", + "from2": "^2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glslify-bundle": "^5.0.0", + "glslify-deps": "^1.2.5", + "minimist": "^1.2.5", + "resolve": "^1.1.5", + "stack-trace": "0.0.9", + "static-eval": "^2.0.5", + "through2": "^2.0.1", + "xtend": "^4.0.0" + }, + "bin": { + "glslify": "bin.js" + } + }, + "node_modules/glslify-bundle": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", + "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", + "license": "MIT", + "dependencies": { + "glsl-inject-defines": "^1.0.1", + "glsl-token-defines": "^1.0.0", + "glsl-token-depth": "^1.1.1", + "glsl-token-descope": "^1.0.2", + "glsl-token-scope": "^1.1.1", + "glsl-token-string": "^1.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glsl-tokenizer": "^2.0.2", + "murmurhash-js": "^1.0.0", + "shallow-copy": "0.0.1" + } + }, + "node_modules/glslify-deps": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", + "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", + "license": "ISC", + "dependencies": { + "@choojs/findup": "^0.2.0", + "events": "^3.2.0", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "^2.0.0", + "graceful-fs": "^4.1.2", + "inherits": "^2.0.1", + "map-limit": "0.0.1", + "resolve": "^1.0.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", + "license": "ISC" + }, + "node_modules/h3-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.4.0.tgz", + "integrity": "sha512-DvJh07MhGgY2KcC4OeZc8SSyA+ZXpdvoh6uCzGpoKvWtZxJB+g6VXXC1+eWYkaMIsLz7J/ErhOalHCpcs1KYog==", + "license": "Apache-2.0", + "engines": { + "node": ">=4", + "npm": ">=3", + "yarn": ">=1.3.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-hover": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", + "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1" + } + }, + "node_modules/has-passive-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", + "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/i18next": { + "version": "25.2.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.0.tgz", + "integrity": "sha512-ERhJICsxkw1vE7G0lhCUYv4ZxdBEs03qblt1myJs94rYRK9loJF3xDj8mgQz3LmCyp0yYrNjbN/1/GWZTZDGCA==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.1" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/i18next-browser-languagedetector": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.1.0.tgz", + "integrity": "sha512-mHZxNx1Lq09xt5kCauZ/4bsXOEA2pfpwSoU11/QTJB+pD94iONFwp+ohqi///PwiFvjFOxe1akYCdHyFo1ng5Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/interactjs": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/interactjs/-/interactjs-1.10.27.tgz", + "integrity": "sha512-y/8RcCftGAF24gSp76X2JS3XpHiUvDQyhF8i7ujemBz77hwiHDuJzftHx7thY8cxGogwGiPJ+o97kWB6eAXnsA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@interactjs/types": "1.10.27" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", + "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==", + "license": "MIT" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "license": "MIT" + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-firefox": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", + "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-iexplorer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", + "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-mobile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", + "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==", + "license": "MIT" + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string-blank": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", + "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==", + "license": "MIT" + }, + "node_modules/is-svg-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", + "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==", + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jpeg-exif": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/jpeg-exif/-/jpeg-exif-1.1.4.tgz", + "integrity": "sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "peer": true + }, + "node_modules/js-pkce": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/js-pkce/-/js-pkce-1.5.1.tgz", + "integrity": "sha512-+NYxv4wAwa/aHKpXS+AhBswxeOtIpxVwoz36oBLHjznCcTg+v8L9ijDR6xtkZb5vsxdpQ7sEWtr4fCc9aIt8yA==", + "license": "MIT", + "dependencies": { + "crypto-js": "^4.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/json-bignum": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", + "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ktx-parse": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.7.1.tgz", + "integrity": "sha512-FeA3g56ksdFNwjXJJsc1CCc7co+AJYDp6ipIp878zZ2bU8kWROatLYf39TQEd4/XRSUvBXovQ8gaVKWPXsCLEQ==", + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lit": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.3.tgz", + "integrity": "sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-html": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.3.tgz", + "integrity": "sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/lz4js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz", + "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg==", + "license": "ISC", + "optional": true + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/mapbox-gl": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.12.0.tgz", + "integrity": "sha512-DV6TRr+xoPrLSKuGiUcbyLVkoLdNaNNpn6O7+ZC27yQH7BOOIF7l6JKbTCMhfMJuZBVJfL8YRJjlMJ6MZCTggA==", + "license": "SEE LICENSE IN LICENSE.txt", + "workspaces": [ + "src/style-spec", + "test/build/typings" + ], + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^3.0.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "^3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "cheap-ruler": "^4.0.0", + "csscolorparser": "~1.0.3", + "earcut": "^3.0.1", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "grid-index": "^1.1.0", + "kdbush": "^4.0.2", + "martinez-polygon-clipping": "^0.7.4", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "serialize-to-js": "^3.1.2", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + } + }, + "node_modules/mapbox-gl/node_modules/earcut": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "license": "ISC" + }, + "node_modules/maplibre-gl": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz", + "integrity": "sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.3.1", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.0", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^4.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.3.0", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/maplibre-gl/node_modules/earcut": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "license": "ISC" + }, + "node_modules/marked": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.3.0.tgz", + "integrity": "sha512-K3UxuKu6l6bmA5FUwYho8CfJBlsUWAooKtdGgMcERSpF7gcBUrCGsLH7wDaaNOzwq18JzSUDyoEb/YsrqMac3w==", + "license": "MIT", + "peer": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/markerjs2": { + "version": "2.32.7", + "resolved": "https://registry.npmjs.org/markerjs2/-/markerjs2-2.32.7.tgz", + "integrity": "sha512-HeFRZjmc43DOG3lSQp92z49cq2oCYpYn2pX++SkJAW1Dij4xJtRquVRf+cXeSZQWDX3ufns1Ry/bGk+zveP7rA==", + "license": "SEE LICENSE IN LICENSE", + "peer": true + }, + "node_modules/martinez-polygon-clipping": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.7.4.tgz", + "integrity": "sha512-jBEwrKtA0jTagUZj2bnmb4Yg2s4KnJGRePStgI7bAVjtcipKiF39R4LZ2V/UT61jMYWrTcBhPazexeqd6JAVtw==", + "license": "MIT", + "dependencies": { + "robust-predicates": "^2.0.4", + "splaytree": "^0.1.4", + "tinyqueue": "^1.2.0" + } + }, + "node_modules/martinez-polygon-clipping/node_modules/tinyqueue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", + "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==", + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/math-log2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", + "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mjolnir.js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-3.0.0.tgz", + "integrity": "sha512-siX3YCG7N2HnmN1xMH3cK4JkUZJhbkhRFJL+G5N1vH0mh1t5088rJknIoqDFWDIU6NPGvRRgLnYW3ZHjSMEBLA==", + "license": "MIT" + }, + "node_modules/mobx": { + "version": "6.13.7", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.7.tgz", + "integrity": "sha512-aChaVU/DO5aRPmk1GX8L+whocagUUpBQqoPtJk+cm7UOXUk87J4PeWCh6nNmTTIfEhiR9DI/+FnA8dln/hTK7g==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react-lite": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.1.0.tgz", + "integrity": "sha512-QEP10dpHHBeQNv1pks3WnHRCem2Zp636lq54M2nKO2Sarr13pL4u6diQXf65yzXUn0mkk18SyIDCm9UOJYTi1w==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.9.0", + "react": "^16.8.0 || ^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.6.2.tgz", + "integrity": "sha512-lDsQv8FoGdBUdf0+TjGsq2orxKuXdwFlQ6Zw6TX3xIcTwTfEpCLyKqvEauvCHJ8iu3KBV8+uPhlv70YsNGdUBQ==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/monaco-editor": { + "version": "0.52.2", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz", + "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==", + "license": "MIT", + "peer": true + }, + "node_modules/mouse-event-offset": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", + "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, + "node_modules/normalize-svg-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", + "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==", + "license": "MIT" + }, + "node_modules/number-is-integer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", + "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parenthesis": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", + "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==", + "license": "MIT" + }, + "node_modules/parse-rect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", + "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", + "license": "MIT", + "dependencies": { + "pick-by-alias": "^1.2.0" + } + }, + "node_modules/parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", + "license": "MIT" + }, + "node_modules/parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-expression-matcher": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", + "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/pdfmake": { + "version": "0.2.23", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.23.tgz", + "integrity": "sha512-A/IksoKb/ikOZH1edSDJ/2zBbqJKDghD4+fXn3rT7quvCJDlsZMs3NmIB3eajLMMFU9Bd3bZPVvlUMXhvFI+bQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@foliojs-fork/linebreak": "^1.1.2", + "@foliojs-fork/pdfkit": "^0.15.3", + "iconv-lite": "^0.7.1", + "xmldoc": "^2.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pdfmake/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/phaser": { + "version": "3.90.0", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.90.0.tgz", + "integrity": "sha512-/cziz/5ZIn02uDkC9RzN8VF9x3Gs3XdFFf9nkiMEQT3p7hQlWuyjy4QWosU802qqno2YSLn2BfqwOKLv/sSVfQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1" + } + }, + "node_modules/pick-by-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", + "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plotly.js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-3.6.0.tgz", + "integrity": "sha512-Fu5IaetcuxaeQPULk4wfIik0MnvIsEb5ynOsPAMfhAnjkPOEDFG7eSb/3ZZq1DW5MwYvZFXaTFHpal4U1Q5Yig==", + "license": "MIT", + "dependencies": { + "@plotly/d3": "3.8.2", + "@plotly/d3-sankey": "0.7.2", + "@plotly/d3-sankey-circular": "0.33.1", + "@plotly/mapbox-gl": "1.13.4", + "@plotly/regl": "^2.1.2", + "@turf/area": "^7.1.0", + "@turf/bbox": "^7.1.0", + "@turf/centroid": "^7.1.0", + "base64-arraybuffer": "^1.0.2", + "color-normalize": "1.5.0", + "color-rgba": "3.0.0", + "country-regex": "^1.1.0", + "d3-force": "^1.2.1", + "d3-format": "^1.4.5", + "d3-geo": "^1.12.1", + "d3-geo-projection": "^2.9.0", + "d3-hierarchy": "^1.1.9", + "d3-interpolate": "^3.0.1", + "d3-time": "^1.1.0", + "d3-time-format": "^2.2.3", + "fast-isnumeric": "^1.1.4", + "gl-mat4": "^1.2.0", + "gl-text": "^1.4.0", + "has-hover": "^1.0.1", + "has-passive-events": "^1.0.0", + "is-mobile": "^4.0.0", + "maplibre-gl": "^4.7.1", + "mouse-event-offset": "^3.0.2", + "native-promise-only": "^0.8.1", + "parse-svg-path": "^0.1.2", + "point-in-polygon": "^1.1.0", + "polybooljs": "^1.2.2", + "probe-image-size": "^7.2.3", + "regl-error2d": "^2.0.12", + "regl-line2d": "^3.1.3", + "regl-scatter2d": "^3.3.1", + "regl-splom": "^1.0.14", + "strongly-connected-components": "^1.0.1", + "svg-path-sdf": "^1.1.3", + "tinycolor2": "^1.4.2", + "topojson-client": "^3.1.0", + "webgl-context": "^2.2.0", + "world-calendars": "^1.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/plotly.js/node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==", + "license": "BSD-3-Clause" + }, + "node_modules/plotly.js/node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", + "license": "BSD-3-Clause" + }, + "node_modules/plotly.js/node_modules/d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-time": "1" + } + }, + "node_modules/png-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.1.0.tgz", + "integrity": "sha512-PM/uYGzGdNSzqeOgly68+6wKQDL1SY0a/N+OEa/+br6LnHWOAJB0Npiamnodfq3jd2LS/i2fMeOKSAILjA+m5Q==", + "peer": true, + "dependencies": { + "browserify-zlib": "^0.2.0" + } + }, + "node_modules/point-in-polygon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", + "license": "MIT" + }, + "node_modules/polybooljs": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", + "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==", + "license": "MIT" + }, + "node_modules/polylabel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/polylabel/-/polylabel-1.1.0.tgz", + "integrity": "sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==", + "license": "ISC", + "peer": true, + "dependencies": { + "tinyqueue": "^2.0.3" + } + }, + "node_modules/polylabel/node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "license": "ISC", + "peer": true + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==", + "license": "ISC" + }, + "node_modules/preact": { + "version": "10.29.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.2.tgz", + "integrity": "sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/probe-image-size": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", + "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", + "license": "MIT", + "dependencies": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", + "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quadbin": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/quadbin/-/quadbin-0.4.2.tgz", + "integrity": "sha512-1NFzjFVM23Um51/ttD6lFDqGtUHNS5Ky1slZHk3YPwMbC+7Jl3ULLb4QvDo6+Nerv8b8SgUV+ysOhziUh4B5cQ==", + "license": "MIT", + "dependencies": { + "@math.gl/web-mercator": "^4.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.50.5", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.50.5.tgz", + "integrity": "sha512-FDZu8aolhSYd3v9KOc3lZOVAU77wmRRu44R0Wfb8Oj1dXRUsloFaXMSl6f7yuWZUxArJTli7k8TEOX2mvhDl4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.6.1.tgz", + "integrity": "sha512-/HzDV1VqOsUWyuC0c6AkxVYFjvx9+rFPKZ32ejxX0Uc7QCzcEjTA9/xMgv4HemPKwzBNX8KhGVbbumDjnj92aA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.0.tgz", + "integrity": "sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.0.tgz", + "integrity": "sha512-pAzlPnyiFn1GCtEybEG2m9nXNzQyWXqWV2xFYCmDxjN9HzyjS5Pz2F+pbNdYw8mMJsixLEKLG0wVy9vOGxJMJA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.18.6", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.6.tgz", + "integrity": "sha512-TQ5SsutL3McvWmmxqQtMIbfeoE3dGjJrRSfKekgby7WQMpPIFvv4ghytp5Z0s3D8Nik9i9YNOCqHBfk86AwgAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-i18next": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.5.1.tgz", + "integrity": "sha512-C8RZ7N7H0L+flitiX6ASjq9p5puVJU1Z8VyL3OgM/QOMRf40BMZX+5TkpxzZVcTmOLPX5zlti4InEX5pFyiVeA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.2.3", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-map-gl": { + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.1.9.tgz", + "integrity": "sha512-KsCc8Gyn05wVGlHZoopaiiCr0RCAQ6LDISo5sEy1/pV/d7RlozkF946tiX7IgyijJQMRujHol5QdwUPESjh73w==", + "license": "MIT", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^19.2.1", + "@types/mapbox-gl": ">=1.0.0" + }, + "peerDependencies": { + "mapbox-gl": ">=1.13.0", + "maplibre-gl": ">=1.13.0 <5.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "mapbox-gl": { + "optional": true + }, + "maplibre-gl": { + "optional": true + } + } + }, + "node_modules/react-map-gl/node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "19.3.3", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.3.tgz", + "integrity": "sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^3.0.0", + "minimist": "^1.2.8", + "rw": "^1.3.3", + "sort-object": "^3.0.3" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/react-map-gl/node_modules/json-stringify-pretty-compact": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", + "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==", + "license": "MIT" + }, + "node_modules/react-plotly.js": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", + "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "plotly.js": ">1.34.0", + "react": ">0.13.0" + } + }, + "node_modules/react-resizable": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz", + "integrity": "sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==", + "license": "MIT", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, + "node_modules/react-resizable/node_modules/react-draggable": { + "version": "4.4.6", + "resolved": "https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.6.tgz", + "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-router": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.17.0.tgz", + "integrity": "sha512-FDELK7rTMlCHO5+reyXsPlmfr7N1F91lPHsWYfMEGQm/KQ+F4JFM8jGoeQDmDvdTs93Fw9aSilH+uKRb4/jXvQ==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.17.0.tgz", + "integrity": "sha512-fyU2yjGups/hE6Xz0I5ZYbVL8Gx29eCjgpHaRaTaVU+OOAdfRX05KsvyRm0GO8YQwOkhpU3MurW1jyMUJn+zSw==", + "license": "MIT", + "dependencies": { + "react-router": "7.17.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.0.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regl": { + "name": "@plotly/regl", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", + "license": "MIT" + }, + "node_modules/regl-error2d": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", + "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "color-normalize": "^1.5.0", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-line2d": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", + "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "array-find-index": "^1.0.2", + "array-normalize": "^1.1.4", + "color-normalize": "^1.5.0", + "earcut": "^2.1.5", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0" + } + }, + "node_modules/regl-scatter2d": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", + "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", + "license": "MIT", + "dependencies": { + "@plotly/point-cluster": "^3.1.9", + "array-range": "^1.0.1", + "array-rearrange": "^2.2.2", + "clamp": "^1.0.1", + "color-id": "^1.1.0", + "color-normalize": "^1.5.0", + "color-rgba": "^2.1.1", + "flatten-vertex-data": "^1.0.2", + "glslify": "^7.0.0", + "is-iexplorer": "^1.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-scatter2d/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/regl-scatter2d/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/regl-scatter2d/node_modules/color-rgba": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz", + "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==", + "license": "MIT", + "dependencies": { + "color-parse": "^1.4.2", + "color-space": "^2.0.0" + } + }, + "node_modules/regl-splom": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", + "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "array-range": "^1.0.1", + "color-alpha": "^1.0.4", + "flatten-vertex-data": "^1.0.2", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "raf": "^3.4.1", + "regl-scatter2d": "^3.2.3" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/robust-predicates": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==", + "license": "Unlicense" + }, + "node_modules/rollup": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.1.tgz", + "integrity": "sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.61.1", + "@rollup/rollup-android-arm64": "4.61.1", + "@rollup/rollup-darwin-arm64": "4.61.1", + "@rollup/rollup-darwin-x64": "4.61.1", + "@rollup/rollup-freebsd-arm64": "4.61.1", + "@rollup/rollup-freebsd-x64": "4.61.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.61.1", + "@rollup/rollup-linux-arm-musleabihf": "4.61.1", + "@rollup/rollup-linux-arm64-gnu": "4.61.1", + "@rollup/rollup-linux-arm64-musl": "4.61.1", + "@rollup/rollup-linux-loong64-gnu": "4.61.1", + "@rollup/rollup-linux-loong64-musl": "4.61.1", + "@rollup/rollup-linux-ppc64-gnu": "4.61.1", + "@rollup/rollup-linux-ppc64-musl": "4.61.1", + "@rollup/rollup-linux-riscv64-gnu": "4.61.1", + "@rollup/rollup-linux-riscv64-musl": "4.61.1", + "@rollup/rollup-linux-s390x-gnu": "4.61.1", + "@rollup/rollup-linux-x64-gnu": "4.61.1", + "@rollup/rollup-linux-x64-musl": "4.61.1", + "@rollup/rollup-openbsd-x64": "4.61.1", + "@rollup/rollup-openharmony-arm64": "4.61.1", + "@rollup/rollup-win32-arm64-msvc": "4.61.1", + "@rollup/rollup-win32-ia32-msvc": "4.61.1", + "@rollup/rollup-win32-x64-gnu": "4.61.1", + "@rollup/rollup-win32-x64-msvc": "4.61.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", + "license": "MIT", + "peer": true + }, + "node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-to-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.2.tgz", + "integrity": "sha512-owllqNuDDEimQat7EPG0tH7JjO090xKNzUtYz6X+Sk2BXDnOCilDdNLwjWeFywG9xkJul1ULvtUQa9O4pUaY0w==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "license": "MIT" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snappyjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", + "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==", + "license": "MIT" + }, + "node_modules/sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", + "license": "MIT", + "dependencies": { + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sortablejs": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.7.tgz", + "integrity": "sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==", + "license": "MIT", + "peer": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/splaytree": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz", + "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==", + "license": "MIT" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", + "engines": { + "node": "*" + } + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", + "license": "MIT" + }, + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "license": "MIT", + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/string-split-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", + "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", + "license": "MIT", + "dependencies": { + "parenthesis": "^3.1.5" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.4.0.tgz", + "integrity": "sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "anynum": "^1.0.0" + } + }, + "node_modules/strongly-connected-components": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", + "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==", + "license": "MIT" + }, + "node_modules/style-observer": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/style-observer/-/style-observer-0.0.8.tgz", + "integrity": "sha512-UaIPn33Sx4BJ+goia51Q++VFWoplWK1995VdxQYzwwbFa+FUNLKlG+aiIdG2Vw7VyzIUBi8tqu8mTyg0Ppu6Yg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/LeaVerou" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/leaverou" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/survey-core": { + "version": "1.12.36", + "resolved": "https://registry.npmjs.org/survey-core/-/survey-core-1.12.36.tgz", + "integrity": "sha512-p66/zATTdDtaBJTJPPKfxwVfTqKa/SLFPfTmkC5dvKh72hYi4dfRuTr6XyR2IxoKKeYXVxXwuz2ObnfG77LyQA==", + "license": "MIT", + "peer": true + }, + "node_modules/survey-creator-core": { + "version": "1.12.36", + "resolved": "https://registry.npmjs.org/survey-creator-core/-/survey-creator-core-1.12.36.tgz", + "integrity": "sha512-DYF+xCj/bHdb+4z986pWs3+H+OKPtwMcZAQCf66kyvm0xxFDEc9h0+OvmD3jpZ9NWWjhMD7E8GYS4kuXHdBOPg==", + "license": "https://surveyjs.io/Licenses#SurveyCreator", + "peer": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "ace-builds": "^1.4.12", + "survey-core": "1.12.36" + }, + "peerDependenciesMeta": { + "ace-builds": { + "optional": true + } + } + }, + "node_modules/survey-creator-react": { + "version": "1.12.36", + "resolved": "https://registry.npmjs.org/survey-creator-react/-/survey-creator-react-1.12.36.tgz", + "integrity": "sha512-iF6ID5THswWLZXnYRu6K32CncrLMl5dtexWUcoUP7ilnv78schHKPXS7evahamv7+x5zK2JWtLmvDruAEpBkEw==", + "license": "https://surveyjs.io/Licenses#SurveyCreator", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "ace-builds": "^1.4.12", + "react": "^16.5.0 || ^17.0.1 || ^18.1.0 || ^19.0.0", + "react-dom": "^16.5.0 || ^17.0.1 || ^18.1.0 || ^19.0.0", + "survey-core": "1.12.36", + "survey-creator-core": "1.12.36", + "survey-react-ui": "1.12.36" + }, + "peerDependenciesMeta": { + "ace-builds": { + "optional": true + } + } + }, + "node_modules/survey-react-ui": { + "version": "1.12.36", + "resolved": "https://registry.npmjs.org/survey-react-ui/-/survey-react-ui-1.12.36.tgz", + "integrity": "sha512-/QEZGUKeBaGjwfz6xHr1saIw/F9wjXwP/jjssZnNCL6AyoEklXHHpu8O6zDAOzFCGZMveHulNIIjZKLVDz/hWg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "react": "^16.5.0 || ^17.0.1 || ^18.2.0 || ^19.0.0", + "react-dom": "^16.5.0 || ^17.0.1 || ^18.2.0 || ^19.0.0", + "survey-core": "1.12.36" + } + }, + "node_modules/svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==", + "license": "ISC" + }, + "node_modules/svg-path-bounds": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", + "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", + "license": "MIT", + "dependencies": { + "abs-svg-path": "^0.1.1", + "is-svg-path": "^1.0.1", + "normalize-svg-path": "^1.0.0", + "parse-svg-path": "^0.1.2" + } + }, + "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "license": "MIT", + "dependencies": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + }, + "node_modules/svg-path-sdf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", + "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", + "license": "MIT", + "dependencies": { + "bitmap-sdf": "^1.0.0", + "draw-svg-path": "^1.0.0", + "is-svg-path": "^1.0.1", + "parse-svg-path": "^0.1.2", + "svg-path-bounds": "^1.0.1" + } + }, + "node_modules/swr": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.4.1.tgz", + "integrity": "sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT", + "peer": true + }, + "node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/terser": { + "version": "5.39.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", + "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/texture-compressor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", + "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.10", + "image-size": "^0.7.4" + }, + "bin": { + "texture-compressor": "bin/texture-compressor.js" + } + }, + "node_modules/texture-compressor/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timezone-groups": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/timezone-groups/-/timezone-groups-0.10.4.tgz", + "integrity": "sha512-AnkJYrbb7uPkDCEqGeVJiawZNiwVlSkkeX4jZg1gTEguClhyX+/Ezn07KB6DT29tG3UN418ldmS/W6KqGOTDjg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT", + "peer": true + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/to-float32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", + "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==", + "license": "MIT" + }, + "node_modules/to-px": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", + "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", + "license": "MIT", + "dependencies": { + "parse-unit": "^1.0.1" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/typedarray-pool": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", + "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", + "license": "MIT", + "dependencies": { + "bit-twiddle": "^1.0.0", + "dup": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.0.tgz", + "integrity": "sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.61.0", + "@typescript-eslint/parser": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/utils": "8.61.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2.0" + } + }, + "node_modules/typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==", + "license": "MIT" + }, + "node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "license": "MIT", + "peer": true, + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT", + "peer": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/update-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", + "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", + "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/weak-map": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", + "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==", + "license": "Apache-2.0" + }, + "node_modules/webgl-context": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", + "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", + "license": "MIT", + "dependencies": { + "get-canvas-context": "^1.0.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.1.tgz", + "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/world-calendars": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.4.tgz", + "integrity": "sha512-VGRnLJS+xJmGDPodgJRnGIDwGu0s+Cr9V2HB3EzlDZ5n0qb8h5SJtGUEkjrphZYAglEiXZ6kiXdmk0H/h/uu/w==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xml-naming": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", + "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/xmldoc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-2.0.3.tgz", + "integrity": "sha512-6gRk4NY/Jvg67xn7OzJuxLRsGgiXBaPUQplVJ/9l99uIugxh4FTOewYz5ic8WScj7Xx/2WvhENiQKwkK9RpE4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "sax": "^1.4.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/xss": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", + "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zstd-codec": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/zstd-codec/-/zstd-codec-0.1.5.tgz", + "integrity": "sha512-v3fyjpK8S/dpY/X5WxqTK3IoCnp/ZOLxn144GZVlNUjtwAchzrVo03h+oMATFhCIiJ5KTr4V3vDQQYz4RU684g==", + "license": "MIT", + "optional": true + } + } +} diff --git a/agentsociety/frontend/package.json b/agentsociety/frontend/package.json new file mode 100644 index 0000000..2a61464 --- /dev/null +++ b/agentsociety/frontend/package.json @@ -0,0 +1,59 @@ +{ + "name": "agentsociety-ui", + "private": true, + "version": "0.2.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@ant-design/icons": "^5.5.2", + "@ant-design/pro-components": "^2.8.10", + "@ant-design/x": "^1.0.3", + "@monaco-editor/react": "^4.7.0", + "@types/react-plotly.js": "^2.6.3", + "@types/react-resizable": "^3.0.8", + "antd": "^5.22.5", + "casdoor-js-sdk": "^0.16.0", + "casdoor-react-sdk": "^1.2.0", + "dayjs": "^1.11.13", + "deck.gl": "^9.3.3", + "i18next": "^25.0.1", + "i18next-browser-languagedetector": "^8.0.5", + "jwt-decode": "^4.0.0", + "mapbox-gl": "^3.9.0", + "mobx": "^6.13.5", + "mobx-react-lite": "^4.1.0", + "phaser": "^3.90.0", + "plotly.js": "^3.6.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^15.4.1", + "react-map-gl": "^7.1.7", + "react-plotly.js": "^2.6.0", + "react-resizable": "^3.0.5", + "react-router-dom": "^7.17.0", + "survey-creator-react": "^1.12.15", + "tinycolor2": "^1.6.0" + }, + "overrides": { + "path-to-regexp": "8.4.2", + "protocol-buffers-schema": "3.6.1" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react-swc": "^3.11.0", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.26", + "globals": "^15.12.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.61.0", + "vite": "^6.4.3" + } +} diff --git a/agentsociety/frontend/public/favicon.png b/agentsociety/frontend/public/favicon.png new file mode 100644 index 0000000..420480e Binary files /dev/null and b/agentsociety/frontend/public/favicon.png differ diff --git a/agentsociety/frontend/public/icon/agent.png b/agentsociety/frontend/public/icon/agent.png new file mode 100644 index 0000000..98b9f3a Binary files /dev/null and b/agentsociety/frontend/public/icon/agent.png differ diff --git a/agentsociety/frontend/public/icon/agent.svg b/agentsociety/frontend/public/icon/agent.svg new file mode 100644 index 0000000..ac49185 --- /dev/null +++ b/agentsociety/frontend/public/icon/agent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/agentsociety/frontend/public/icon/boy1.png b/agentsociety/frontend/public/icon/boy1.png new file mode 100644 index 0000000..a6cbe10 Binary files /dev/null and b/agentsociety/frontend/public/icon/boy1.png differ diff --git a/agentsociety/frontend/public/icon/boy2.png b/agentsociety/frontend/public/icon/boy2.png new file mode 100644 index 0000000..fe174a4 Binary files /dev/null and b/agentsociety/frontend/public/icon/boy2.png differ diff --git a/agentsociety/frontend/public/icon/boy3.png b/agentsociety/frontend/public/icon/boy3.png new file mode 100644 index 0000000..546b760 Binary files /dev/null and b/agentsociety/frontend/public/icon/boy3.png differ diff --git a/agentsociety/frontend/public/icon/girl1.png b/agentsociety/frontend/public/icon/girl1.png new file mode 100644 index 0000000..48052dc Binary files /dev/null and b/agentsociety/frontend/public/icon/girl1.png differ diff --git a/agentsociety/frontend/public/icon/girl2.png b/agentsociety/frontend/public/icon/girl2.png new file mode 100644 index 0000000..182db49 Binary files /dev/null and b/agentsociety/frontend/public/icon/girl2.png differ diff --git a/agentsociety/frontend/public/icon/girl3.png b/agentsociety/frontend/public/icon/girl3.png new file mode 100644 index 0000000..eb21c1b Binary files /dev/null and b/agentsociety/frontend/public/icon/girl3.png differ diff --git a/agentsociety/frontend/public/icon/history.png b/agentsociety/frontend/public/icon/history.png new file mode 100644 index 0000000..2ece12e Binary files /dev/null and b/agentsociety/frontend/public/icon/history.png differ diff --git a/agentsociety/frontend/public/icon/info.png b/agentsociety/frontend/public/icon/info.png new file mode 100644 index 0000000..e72e53a Binary files /dev/null and b/agentsociety/frontend/public/icon/info.png differ diff --git a/agentsociety/frontend/public/icon/status.png b/agentsociety/frontend/public/icon/status.png new file mode 100644 index 0000000..0191f38 Binary files /dev/null and b/agentsociety/frontend/public/icon/status.png differ diff --git a/agentsociety/frontend/public/logo.png b/agentsociety/frontend/public/logo.png new file mode 100644 index 0000000..d61fa7e Binary files /dev/null and b/agentsociety/frontend/public/logo.png differ diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf b/agentsociety/frontend/public/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf new file mode 100644 index 0000000..373f406 Binary files /dev/null and b/agentsociety/frontend/public/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf differ diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.de.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.de.js new file mode 100644 index 0000000..3631fd3 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.de.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.de",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["Array","Boolescher Wert","Klasse","Konstante","Konstruktor","Enumeration","Enumerationsmember","Ereignis","Feld","Datei","Funktion","Schnittstelle","Schl\xFCssel","Methode","Modul","Namespace","NULL","Zahl","Objekt","Operator","Paket","Eigenschaft","Zeichenfolge","Struktur","Typparameter","Variable","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.de.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.es.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.es.js new file mode 100644 index 0000000..394f815 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.es.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.es",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["matriz","booleano","clase","constante","constructor","enumeraci\xF3n","miembro de la enumeraci\xF3n","evento","campo","archivo","funci\xF3n","interfaz","clave","m\xE9todo","m\xF3dulo","espacio de nombres","NULL","n\xFAmero","objeto","operador","paquete","propiedad","cadena","estructura","par\xE1metro de tipo","variable","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.es.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.fr.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.fr.js new file mode 100644 index 0000000..909c6a1 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.fr.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.fr",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["tableau","bool\xE9en","classe","constante","constructeur","\xE9num\xE9ration","membre d'\xE9num\xE9ration","\xE9v\xE9nement","champ","fichier","fonction","interface","cl\xE9","m\xE9thode","module","espace de noms","NULL","nombre","objet","op\xE9rateur","package","propri\xE9t\xE9","cha\xEEne","struct","param\xE8tre de type","variable","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.fr.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.it.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.it.js new file mode 100644 index 0000000..7617976 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.it.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.it",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["matrice","valore booleano","classe","costante","costruttore","enumerazione","membro di enumerazione","evento","campo","file","funzione","interfaccia","chiave","metodo","modulo","spazio dei nomi","Null","numero","oggetto","operatore","pacchetto","propriet\xE0","stringa","struct","parametro di tipo","variabile","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.it.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ja.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ja.js new file mode 100644 index 0000000..a21db5b --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ja.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.ja",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["\u914D\u5217","\u30D6\u30FC\u30EB\u5024","\u30AF\u30E9\u30B9","\u5B9A\u6570","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC","\u5217\u6319\u578B","\u5217\u6319\u578B\u30E1\u30F3\u30D0\u30FC","\u30A4\u30D9\u30F3\u30C8","\u30D5\u30A3\u30FC\u30EB\u30C9","\u30D5\u30A1\u30A4\u30EB","\u95A2\u6570","\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9","\u30AD\u30FC","\u30E1\u30BD\u30C3\u30C9","\u30E2\u30B8\u30E5\u30FC\u30EB","\u540D\u524D\u7A7A\u9593","NULL","\u6570\u5024","\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8","\u6F14\u7B97\u5B50","\u30D1\u30C3\u30B1\u30FC\u30B8","\u30D7\u30ED\u30D1\u30C6\u30A3","\u6587\u5B57\u5217","\u69CB\u9020\u4F53","\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC","\u5909\u6570","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.ja.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.js new file mode 100644 index 0000000..ad2f974 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["array","boolean","class","constant","constructor","enumeration","enumeration member","event","field","file","function","interface","key","method","module","namespace","null","number","object","operator","package","property","string","struct","type parameter","variable","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ko.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ko.js new file mode 100644 index 0000000..3fc46dd --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ko.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.ko",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["\uBC30\uC5F4","\uBD80\uC6B8","\uD074\uB798\uC2A4","\uC0C1\uC218","\uC0DD\uC131\uC790","\uC5F4\uAC70\uD615","\uC5F4\uAC70\uD615 \uBA64\uBC84","\uC774\uBCA4\uD2B8","\uD544\uB4DC","\uD30C\uC77C","\uD568\uC218","\uC778\uD130\uD398\uC774\uC2A4","\uD0A4","\uBA54\uC11C\uB4DC","\uBAA8\uB4C8","\uB124\uC784\uC2A4\uD398\uC774\uC2A4","Null","\uC22B\uC790","\uAC1C\uCCB4","\uC5F0\uC0B0\uC790","\uD328\uD0A4\uC9C0","\uC18D\uC131","\uBB38\uC790\uC5F4","\uAD6C\uC870\uCCB4","\uD615\uC2DD \uB9E4\uAC1C \uBCC0\uC218","\uBCC0\uC218","{0}({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.ko.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ru.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ru.js new file mode 100644 index 0000000..11f8658 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.ru.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.ru",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["\u043C\u0430\u0441\u0441\u0438\u0432","\u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435","\u043A\u043B\u0430\u0441\u0441","\u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430","\u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440","\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435","\u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F","\u0441\u043E\u0431\u044B\u0442\u0438\u0435","\u043F\u043E\u043B\u0435","\u0444\u0430\u0439\u043B","\u0444\u0443\u043D\u043A\u0446\u0438\u044F","\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441","\u043A\u043B\u044E\u0447","\u043C\u0435\u0442\u043E\u0434","\u043C\u043E\u0434\u0443\u043B\u044C","\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0438\u043C\u0435\u043D","NULL","\u0447\u0438\u0441\u043B\u043E","\u043E\u0431\u044A\u0435\u043A\u0442","\u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440","\u043F\u0430\u043A\u0435\u0442","\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E","\u0441\u0442\u0440\u043E\u043A\u0430","\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430","\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0442\u0438\u043F\u0430","\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.ru.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-cn.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-cn.js new file mode 100644 index 0000000..970b796 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-cn.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.zh-cn",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["\u6570\u7EC4","\u5E03\u5C14\u503C","\u7C7B","\u5E38\u6570","\u6784\u9020\u51FD\u6570","\u679A\u4E3E","\u679A\u4E3E\u6210\u5458","\u4E8B\u4EF6","\u5B57\u6BB5","\u6587\u4EF6","\u51FD\u6570","\u63A5\u53E3","\u952E","\u65B9\u6CD5","\u6A21\u5757","\u547D\u540D\u7A7A\u95F4","Null","\u6570\u5B57","\u5BF9\u8C61","\u8FD0\u7B97\u7B26","\u5305","\u5C5E\u6027","\u5B57\u7B26\u4E32","\u7ED3\u6784","\u7C7B\u578B\u53C2\u6570","\u53D8\u91CF","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.zh-cn.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-tw.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-tw.js new file mode 100644 index 0000000..6263f15 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/common/worker/simpleWorker.nls.zh-tw.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/base/common/worker/simpleWorker.nls.zh-tw",{"vs/base/common/platform":["_"],"vs/editor/common/languages":["\u9663\u5217","\u5E03\u6797\u503C","\u985E\u5225","\u5E38\u6578","\u5EFA\u69CB\u51FD\u5F0F","\u5217\u8209","\u5217\u8209\u6210\u54E1","\u4E8B\u4EF6","\u6B04\u4F4D","\u6A94\u6848","\u51FD\u5F0F","\u4ECB\u9762","\u7D22\u5F15\u9375","\u65B9\u6CD5","\u6A21\u7D44","\u547D\u540D\u7A7A\u9593","null","\u6578\u5B57","\u7269\u4EF6","\u904B\u7B97\u5B50","\u5957\u4EF6","\u5C6C\u6027","\u5B57\u4E32","\u7D50\u69CB","\u578B\u5225\u53C3\u6578","\u8B8A\u6578","{0} ({1})"]}); + +//# sourceMappingURL=../../../../../min-maps/vs/base/common/worker/simpleWorker.nls.zh-tw.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/base/worker/workerMain.js b/agentsociety/frontend/public/monaco-editor/min/vs/base/worker/workerMain.js new file mode 100644 index 0000000..5a91cc1 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/base/worker/workerMain.js @@ -0,0 +1,26 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/(function(){var J=["require","exports","vs/editor/common/core/range","vs/editor/common/core/offsetRange","vs/editor/common/core/position","vs/base/common/errors","vs/base/common/strings","vs/base/common/arrays","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm","vs/base/common/event","vs/editor/common/core/lineRange","vs/base/common/arraysFind","vs/base/common/assert","vs/base/common/lifecycle","vs/base/common/objects","vs/editor/common/diff/defaultLinesDiffComputer/utils","vs/editor/common/diff/rangeMapping","vs/base/common/platform","vs/base/common/uri","vs/nls","vs/base/common/functional","vs/base/common/iterator","vs/base/common/linkedList","vs/base/common/stopwatch","vs/base/common/diff/diff","vs/base/common/types","vs/base/common/uint","vs/editor/common/core/characterClassifier","vs/editor/common/core/wordHelper","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm","vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence","vs/editor/common/diff/linesDiffComputer","vs/base/common/cache","vs/base/common/color","vs/base/common/diff/diffChange","vs/base/common/keyCodes","vs/base/common/lazy","vs/base/common/map","vs/base/common/cancellation","vs/base/common/hash","vs/base/common/codicons","vs/editor/common/core/selection","vs/editor/common/core/wordCharacterClassifier","vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations","vs/editor/common/diff/defaultLinesDiffComputer/lineSequence","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing","vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines","vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer","vs/editor/common/diff/legacyLinesDiffComputer","vs/editor/common/diff/linesDiffComputers","vs/editor/common/languages/defaultDocumentColorsComputer","vs/editor/common/languages/linkComputer","vs/editor/common/languages/supports/inplaceReplaceSupport","vs/editor/common/model","vs/editor/common/model/prefixSumComputer","vs/editor/common/model/mirrorTextModel","vs/editor/common/model/textModelSearch","vs/editor/common/services/unicodeTextModelHighlighter","vs/editor/common/standalone/standaloneEnums","vs/editor/common/tokenizationRegistry","vs/nls!vs/base/common/platform","vs/nls!vs/base/common/worker/simpleWorker","vs/base/common/process","vs/base/common/path","vs/nls!vs/editor/common/languages","vs/editor/common/languages","vs/editor/common/services/editorBaseApi","vs/base/common/worker/simpleWorker","vs/editor/common/services/editorSimpleWorker"],Z=function(q){for(var t=[],M=0,R=q.length;M=0?!0:typeof process<"u"?process.platform==="win32":!1}}q.Environment=t})(ce||(ce={}));var ce;(function(q){class t{constructor(d,_,p){this.type=d,this.detail=_,this.timestamp=p}}q.LoaderEvent=t;class M{constructor(d){this._events=[new t(1,"",d)]}record(d,_){this._events.push(new t(d,_,q.Utilities.getHighPerformanceTimestamp()))}getEvents(){return this._events}}q.LoaderEventRecorder=M;class R{record(d,_){}getEvents(){return[]}}R.INSTANCE=new R,q.NullLoaderEventRecorder=R})(ce||(ce={}));var ce;(function(q){class t{static fileUriToFilePath(R,i){if(i=decodeURI(i).replace(/%23/g,"#"),R){if(/^file:\/\/\//.test(i))return i.substr(8);if(/^file:\/\//.test(i))return i.substr(5)}else if(/^file:\/\//.test(i))return i.substr(7);return i}static startsWith(R,i){return R.length>=i.length&&R.substr(0,i.length)===i}static endsWith(R,i){return R.length>=i.length&&R.substr(R.length-i.length)===i}static containsQueryString(R){return/^[^\#]*\?/gi.test(R)}static isAbsolutePath(R){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(R)}static forEachProperty(R,i){if(R){let d;for(d in R)R.hasOwnProperty(d)&&i(d,R[d])}}static isEmpty(R){let i=!0;return t.forEachProperty(R,()=>{i=!1}),i}static recursiveClone(R){if(!R||typeof R!="object"||R instanceof RegExp||!Array.isArray(R)&&Object.getPrototypeOf(R)!==Object.prototype)return R;let i=Array.isArray(R)?[]:{};return t.forEachProperty(R,(d,_)=>{_&&typeof _=="object"?i[d]=t.recursiveClone(_):i[d]=_}),i}static generateAnonymousModule(){return"===anonymous"+t.NEXT_ANONYMOUS_ID+++"==="}static isAnonymousModule(R){return t.startsWith(R,"===anonymous")}static getHighPerformanceTimestamp(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=q.global.performance&&typeof q.global.performance.now=="function"),this.HAS_PERFORMANCE_NOW?q.global.performance.now():Date.now()}}t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,q.Utilities=t})(ce||(ce={}));var ce;(function(q){function t(i){if(i instanceof Error)return i;const d=new Error(i.message||String(i)||"Unknown Error");return i.stack&&(d.stack=i.stack),d}q.ensureError=t;class M{static validateConfigurationOptions(d){function _(p){if(p.phase==="loading"){console.error('Loading "'+p.moduleId+'" failed'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}if(p.phase==="factory"){console.error('The factory function of "'+p.moduleId+'" has thrown an exception'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}}if(d=d||{},typeof d.baseUrl!="string"&&(d.baseUrl=""),typeof d.isBuild!="boolean"&&(d.isBuild=!1),typeof d.paths!="object"&&(d.paths={}),typeof d.config!="object"&&(d.config={}),typeof d.catchError>"u"&&(d.catchError=!1),typeof d.recordStats>"u"&&(d.recordStats=!1),typeof d.urlArgs!="string"&&(d.urlArgs=""),typeof d.onError!="function"&&(d.onError=_),Array.isArray(d.ignoreDuplicateModules)||(d.ignoreDuplicateModules=[]),d.baseUrl.length>0&&(q.Utilities.endsWith(d.baseUrl,"/")||(d.baseUrl+="/")),typeof d.cspNonce!="string"&&(d.cspNonce=""),typeof d.preferScriptTags>"u"&&(d.preferScriptTags=!1),d.nodeCachedData&&typeof d.nodeCachedData=="object"&&(typeof d.nodeCachedData.seed!="string"&&(d.nodeCachedData.seed="seed"),(typeof d.nodeCachedData.writeDelay!="number"||d.nodeCachedData.writeDelay<0)&&(d.nodeCachedData.writeDelay=1e3*7),!d.nodeCachedData.path||typeof d.nodeCachedData.path!="string")){const p=t(new Error("INVALID cached data configuration, 'path' MUST be set"));p.phase="configuration",d.onError(p),d.nodeCachedData=void 0}return d}static mergeConfigurationOptions(d=null,_=null){let p=q.Utilities.recursiveClone(_||{});return q.Utilities.forEachProperty(d,(c,o)=>{c==="ignoreDuplicateModules"&&typeof p.ignoreDuplicateModules<"u"?p.ignoreDuplicateModules=p.ignoreDuplicateModules.concat(o):c==="paths"&&typeof p.paths<"u"?q.Utilities.forEachProperty(o,(L,e)=>p.paths[L]=e):c==="config"&&typeof p.config<"u"?q.Utilities.forEachProperty(o,(L,e)=>p.config[L]=e):p[c]=q.Utilities.recursiveClone(o)}),M.validateConfigurationOptions(p)}}q.ConfigurationOptionsUtil=M;class R{constructor(d,_){if(this._env=d,this.options=M.mergeConfigurationOptions(_),this._createIgnoreDuplicateModulesMap(),this._createSortedPathsRules(),this.options.baseUrl===""&&this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){let p=this.options.nodeRequire.main.filename,c=Math.max(p.lastIndexOf("/"),p.lastIndexOf("\\"));this.options.baseUrl=p.substring(0,c+1)}}_createIgnoreDuplicateModulesMap(){this.ignoreDuplicateModulesMap={};for(let d=0;d{Array.isArray(_)?this.sortedPathsRules.push({from:d,to:_}):this.sortedPathsRules.push({from:d,to:[_]})}),this.sortedPathsRules.sort((d,_)=>_.from.length-d.from.length)}cloneAndMerge(d){return new R(this._env,M.mergeConfigurationOptions(d,this.options))}getOptionsLiteral(){return this.options}_applyPaths(d){let _;for(let p=0,c=this.sortedPathsRules.length;pthis.triggerCallback(L),u=>this.triggerErrorback(L,u))}triggerCallback(o){let L=this._callbackMap[o];delete this._callbackMap[o];for(let e=0;e{o.removeEventListener("load",l),o.removeEventListener("error",u)},l=b=>{s(),L()},u=b=>{s(),e(b)};o.addEventListener("load",l),o.addEventListener("error",u)}load(o,L,e,s){if(/^node\|/.test(L)){let l=o.getConfig().getOptionsLiteral(),u=_(o.getRecorder(),l.nodeRequire||q.global.nodeRequire),b=L.split("|"),f=null;try{f=u(b[1])}catch(y){s(y);return}o.enqueueDefineAnonymousModule([],()=>f),e()}else{let l=document.createElement("script");l.setAttribute("async","async"),l.setAttribute("type","text/javascript"),this.attachListeners(l,e,s);const{trustedTypesPolicy:u}=o.getConfig().getOptionsLiteral();u&&(L=u.createScriptURL(L)),l.setAttribute("src",L);const{cspNonce:b}=o.getConfig().getOptionsLiteral();b&&l.setAttribute("nonce",b),document.getElementsByTagName("head")[0].appendChild(l)}}}function R(c){const{trustedTypesPolicy:o}=c.getConfig().getOptionsLiteral();try{return(o?self.eval(o.createScript("","true")):new Function("true")).call(self),!0}catch{return!1}}class i{constructor(){this._cachedCanUseEval=null}_canUseEval(o){return this._cachedCanUseEval===null&&(this._cachedCanUseEval=R(o)),this._cachedCanUseEval}load(o,L,e,s){if(/^node\|/.test(L)){const l=o.getConfig().getOptionsLiteral(),u=_(o.getRecorder(),l.nodeRequire||q.global.nodeRequire),b=L.split("|");let f=null;try{f=u(b[1])}catch(y){s(y);return}o.enqueueDefineAnonymousModule([],function(){return f}),e()}else{const{trustedTypesPolicy:l}=o.getConfig().getOptionsLiteral();if(!(/^((http:)|(https:)|(file:))/.test(L)&&L.substring(0,self.origin.length)!==self.origin)&&this._canUseEval(o)){fetch(L).then(b=>{if(b.status!==200)throw new Error(b.statusText);return b.text()}).then(b=>{b=`${b} +//# sourceURL=${L}`,(l?self.eval(l.createScript("",b)):new Function(b)).call(self),e()}).then(void 0,s);return}try{l&&(L=l.createScriptURL(L)),importScripts(L),e()}catch(b){s(b)}}}}class d{constructor(o){this._env=o,this._didInitialize=!1,this._didPatchNodeRequire=!1}_init(o){this._didInitialize||(this._didInitialize=!0,this._fs=o("fs"),this._vm=o("vm"),this._path=o("path"),this._crypto=o("crypto"))}_initNodeRequire(o,L){const{nodeCachedData:e}=L.getConfig().getOptionsLiteral();if(!e||this._didPatchNodeRequire)return;this._didPatchNodeRequire=!0;const s=this,l=o("module");function u(b){const f=b.constructor;let y=function(E){try{return b.require(E)}finally{}};return y.resolve=function(E,S){return f._resolveFilename(E,b,!1,S)},y.resolve.paths=function(E){return f._resolveLookupPaths(E,b)},y.main=process.mainModule,y.extensions=f._extensions,y.cache=f._cache,y}l.prototype._compile=function(b,f){const y=l.wrap(b.replace(/^#!.*/,"")),w=L.getRecorder(),E=s._getCachedDataPath(e,f),S={filename:f};let C;try{const N=s._fs.readFileSync(E);C=N.slice(0,16),S.cachedData=N.slice(16),w.record(60,E)}catch{w.record(61,E)}const r=new s._vm.Script(y,S),a=r.runInThisContext(S),g=s._path.dirname(f),m=u(this),h=[this.exports,m,this,f,g,process,Re,Buffer],v=a.apply(this.exports,h);return s._handleCachedData(r,y,E,!S.cachedData,L),s._verifyCachedData(r,y,E,C,L),v}}load(o,L,e,s){const l=o.getConfig().getOptionsLiteral(),u=_(o.getRecorder(),l.nodeRequire||q.global.nodeRequire),b=l.nodeInstrumenter||function(y){return y};this._init(u),this._initNodeRequire(u,o);let f=o.getRecorder();if(/^node\|/.test(L)){let y=L.split("|"),w=null;try{w=u(y[1])}catch(E){s(E);return}o.enqueueDefineAnonymousModule([],()=>w),e()}else{L=q.Utilities.fileUriToFilePath(this._env.isWindows,L);const y=this._path.normalize(L),w=this._getElectronRendererScriptPathOrUri(y),E=!!l.nodeCachedData,S=E?this._getCachedDataPath(l.nodeCachedData,L):void 0;this._readSourceAndCachedData(y,S,f,(C,r,a,g)=>{if(C){s(C);return}let m;r.charCodeAt(0)===d._BOM?m=d._PREFIX+r.substring(1)+d._SUFFIX:m=d._PREFIX+r+d._SUFFIX,m=b(m,y);const h={filename:w,cachedData:a},v=this._createAndEvalScript(o,m,h,e,s);this._handleCachedData(v,m,S,E&&!a,o),this._verifyCachedData(v,m,S,g,o)})}}_createAndEvalScript(o,L,e,s,l){const u=o.getRecorder();u.record(31,e.filename);const b=new this._vm.Script(L,e),f=b.runInThisContext(e),y=o.getGlobalAMDDefineFunc();let w=!1;const E=function(){return w=!0,y.apply(null,arguments)};return E.amd=y.amd,f.call(q.global,o.getGlobalAMDRequireFunc(),E,e.filename,this._path.dirname(e.filename)),u.record(32,e.filename),w?s():l(new Error(`Didn't receive define call in ${e.filename}!`)),b}_getElectronRendererScriptPathOrUri(o){if(!this._env.isElectronRenderer)return o;let L=o.match(/^([a-z])\:(.*)/i);return L?`file:///${(L[1].toUpperCase()+":"+L[2]).replace(/\\/g,"/")}`:`file://${o}`}_getCachedDataPath(o,L){const e=this._crypto.createHash("md5").update(L,"utf8").update(o.seed,"utf8").update(process.arch,"").digest("hex"),s=this._path.basename(L).replace(/\.js$/,"");return this._path.join(o.path,`${s}-${e}.code`)}_handleCachedData(o,L,e,s,l){o.cachedDataRejected?this._fs.unlink(e,u=>{l.getRecorder().record(62,e),this._createAndWriteCachedData(o,L,e,l),u&&l.getConfig().onError(u)}):s&&this._createAndWriteCachedData(o,L,e,l)}_createAndWriteCachedData(o,L,e,s){let l=Math.ceil(s.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),u=-1,b=0,f;const y=()=>{setTimeout(()=>{f||(f=this._crypto.createHash("md5").update(L,"utf8").digest());const w=o.createCachedData();if(!(w.length===0||w.length===u||b>=5)){if(w.length{E&&s.getConfig().onError(E),s.getRecorder().record(63,e),y()})}},l*Math.pow(4,b++))};y()}_readSourceAndCachedData(o,L,e,s){if(!L)this._fs.readFile(o,{encoding:"utf8"},s);else{let l,u,b,f=2;const y=w=>{w?s(w):--f===0&&s(void 0,l,u,b)};this._fs.readFile(o,{encoding:"utf8"},(w,E)=>{l=E,y(w)}),this._fs.readFile(L,(w,E)=>{!w&&E&&E.length>0?(b=E.slice(0,16),u=E.slice(16),e.record(60,L)):e.record(61,L),y()})}}_verifyCachedData(o,L,e,s,l){s&&(o.cachedDataRejected||setTimeout(()=>{const u=this._crypto.createHash("md5").update(L,"utf8").digest();s.equals(u)||(l.getConfig().onError(new Error(`FAILED TO VERIFY CACHED DATA, deleting stale '${e}' now, but a RESTART IS REQUIRED`)),this._fs.unlink(e,b=>{b&&l.getConfig().onError(b)}))},Math.ceil(5e3*(1+Math.random()))))}}d._BOM=65279,d._PREFIX="(function (require, define, __filename, __dirname) { ",d._SUFFIX=` +});`;function _(c,o){if(o.__$__isRecorded)return o;const L=function(s){c.record(33,s);try{return o(s)}finally{c.record(34,s)}};return L.__$__isRecorded=!0,L}q.ensureRecordedNodeRequire=_;function p(c){return new t(c)}q.createScriptLoader=p})(ce||(ce={}));var ce;(function(q){class t{constructor(c){let o=c.lastIndexOf("/");o!==-1?this.fromModulePath=c.substr(0,o+1):this.fromModulePath=""}static _normalizeModuleId(c){let o=c,L;for(L=/\/\.\//;L.test(o);)o=o.replace(L,"/");for(o=o.replace(/^\.\//g,""),L=/\/(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//;L.test(o);)o=o.replace(L,"/");return o=o.replace(/^(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//,""),o}resolveModule(c){let o=c;return q.Utilities.isAbsolutePath(o)||(q.Utilities.startsWith(o,"./")||q.Utilities.startsWith(o,"../"))&&(o=t._normalizeModuleId(this.fromModulePath+o)),o}}t.ROOT=new t(""),q.ModuleIdResolver=t;class M{constructor(c,o,L,e,s,l){this.id=c,this.strId=o,this.dependencies=L,this._callback=e,this._errorback=s,this.moduleIdResolver=l,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}static _safeInvokeFunction(c,o){try{return{returnedValue:c.apply(q.global,o),producedError:null}}catch(L){return{returnedValue:null,producedError:L}}}static _invokeFactory(c,o,L,e){return c.shouldInvokeFactory(o)?c.shouldCatchError()?this._safeInvokeFunction(L,e):{returnedValue:L.apply(q.global,e),producedError:null}:{returnedValue:null,producedError:null}}complete(c,o,L,e){this._isComplete=!0;let s=null;if(this._callback)if(typeof this._callback=="function"){c.record(21,this.strId);let l=M._invokeFactory(o,this.strId,this._callback,L);s=l.producedError,c.record(22,this.strId),!s&&typeof l.returnedValue<"u"&&(!this.exportsPassedIn||q.Utilities.isEmpty(this.exports))&&(this.exports=l.returnedValue)}else this.exports=this._callback;if(s){let l=q.ensureError(s);l.phase="factory",l.moduleId=this.strId,l.neededBy=e(this.id),this.error=l,o.onError(l)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null}onDependencyError(c){return this._isComplete=!0,this.error=c,this._errorback?(this._errorback(c),!0):!1}isComplete(){return this._isComplete}}q.Module=M;class R{constructor(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId("exports"),this.getModuleId("module"),this.getModuleId("require")}getMaxModuleId(){return this._nextId}getModuleId(c){let o=this._strModuleIdToIntModuleId.get(c);return typeof o>"u"&&(o=this._nextId++,this._strModuleIdToIntModuleId.set(c,o),this._intModuleIdToStrModuleId[o]=c),o}getStrModuleId(c){return this._intModuleIdToStrModuleId[c]}}class i{constructor(c){this.id=c}}i.EXPORTS=new i(0),i.MODULE=new i(1),i.REQUIRE=new i(2),q.RegularDependency=i;class d{constructor(c,o,L){this.id=c,this.pluginId=o,this.pluginParam=L}}q.PluginDependency=d;class _{constructor(c,o,L,e,s=0){this._env=c,this._scriptLoader=o,this._loaderAvailableTimestamp=s,this._defineFunc=L,this._requireFunc=e,this._moduleIdProvider=new R,this._config=new q.Configuration(this._env),this._hasDependencyCycle=!1,this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[],this._requireFunc.moduleManager=this}reset(){return new _(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)}getGlobalAMDDefineFunc(){return this._defineFunc}getGlobalAMDRequireFunc(){return this._requireFunc}static _findRelevantLocationInStack(c,o){let L=l=>l.replace(/\\/g,"/"),e=L(c),s=o.split(/\n/);for(let l=0;lthis._moduleIdProvider.getStrModuleId(f.id))),this._resolve(b)}_normalizeDependency(c,o){if(c==="exports")return i.EXPORTS;if(c==="module")return i.MODULE;if(c==="require")return i.REQUIRE;let L=c.indexOf("!");if(L>=0){let e=o.resolveModule(c.substr(0,L)),s=o.resolveModule(c.substr(L+1)),l=this._moduleIdProvider.getModuleId(e+"!"+s),u=this._moduleIdProvider.getModuleId(e);return new d(l,u,s)}return new i(this._moduleIdProvider.getModuleId(o.resolveModule(c)))}_normalizeDependencies(c,o){let L=[],e=0;for(let s=0,l=c.length;sthis._moduleIdProvider.getStrModuleId(l));const s=q.ensureError(o);return s.phase="loading",s.moduleId=L,s.neededBy=e,s}_onLoadError(c,o){const L=this._createLoadError(c,o);this._modules2[c]||(this._modules2[c]=new M(c,this._moduleIdProvider.getStrModuleId(c),[],()=>{},null,null));let e=[];for(let u=0,b=this._moduleIdProvider.getMaxModuleId();u0;){let u=l.shift(),b=this._modules2[u];b&&(s=b.onDependencyError(L)||s);let f=this._inverseDependencies2[u];if(f)for(let y=0,w=f.length;y0;){let u=s.shift().dependencies;if(u)for(let b=0,f=u.length;bthis._relativeRequire(c,L,e,s);return o.toUrl=L=>this._config.requireToUrl(c.resolveModule(L)),o.getStats=()=>this.getLoaderEvents(),o.hasDependencyCycle=()=>this._hasDependencyCycle,o.config=(L,e=!1)=>{this.configure(L,e)},o.__$__nodeRequire=q.global.nodeRequire,o}_loadModule(c){if(this._modules2[c]||this._knownModules2[c])return;this._knownModules2[c]=!0;let o=this._moduleIdProvider.getStrModuleId(c),L=this._config.moduleIdToPaths(o),e=/^@[^\/]+\/[^\/]+$/;this._env.isNode&&(o.indexOf("/")===-1||e.test(o))&&L.push("node|"+o);let s=-1,l=u=>{if(s++,s>=L.length)this._onLoadError(c,u);else{let b=L[s],f=this.getRecorder();if(this._config.isBuild()&&b==="empty:"){this._buildInfoPath[c]=b,this.defineModule(this._moduleIdProvider.getStrModuleId(c),[],null,null,null),this._onLoad(c);return}f.record(10,b),this._scriptLoader.load(this,b,()=>{this._config.isBuild()&&(this._buildInfoPath[c]=b),f.record(11,b),this._onLoad(c)},y=>{f.record(12,b),l(y)})}};l(null)}_loadPluginDependency(c,o){if(this._modules2[o.id]||this._knownModules2[o.id])return;this._knownModules2[o.id]=!0;let L=e=>{this.defineModule(this._moduleIdProvider.getStrModuleId(o.id),[],e,null,null)};L.error=e=>{this._config.onError(this._createLoadError(o.id,e))},c.load(o.pluginParam,this._createRequire(t.ROOT),L,this._config.getOptionsLiteral())}_resolve(c){let o=c.dependencies;if(o)for(let L=0,e=o.length;Lthis._moduleIdProvider.getStrModuleId(b)).join(` => +`)),c.unresolvedDependenciesCount--;continue}if(this._inverseDependencies2[s.id]=this._inverseDependencies2[s.id]||[],this._inverseDependencies2[s.id].push(c.id),s instanceof d){let u=this._modules2[s.pluginId];if(u&&u.isComplete()){this._loadPluginDependency(u.exports,s);continue}let b=this._inversePluginDependencies2.get(s.pluginId);b||(b=[],this._inversePluginDependencies2.set(s.pluginId,b)),b.push(s),this._loadModule(s.pluginId);continue}this._loadModule(s.id)}c.unresolvedDependenciesCount===0&&this._onModuleComplete(c)}_onModuleComplete(c){let o=this.getRecorder();if(c.isComplete())return;let L=c.dependencies,e=[];if(L)for(let b=0,f=L.length;bthis._config.getConfigForModule(c.strId)};continue}if(y===i.REQUIRE){e[b]=this._createRequire(c.moduleIdResolver);continue}let w=this._modules2[y.id];if(w){e[b]=w.exports;continue}e[b]=null}const s=b=>(this._inverseDependencies2[b]||[]).map(f=>this._moduleIdProvider.getStrModuleId(f));c.complete(o,this._config,e,s);let l=this._inverseDependencies2[c.id];if(this._inverseDependencies2[c.id]=null,l)for(let b=0,f=l.length;b"u"&&_())})(ce||(ce={})),X(J[19],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.load=t.create=t.setPseudoTranslation=t.getConfiguredDefaultLocale=t.localize2=t.localize=void 0;let M=typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;const R="i-default";function i(f,y){let w;return y.length===0?w=f:w=f.replace(/\{(\d+)\}/g,(E,S)=>{const C=S[0],r=y[C];let a=E;return typeof r=="string"?a=r:(typeof r=="number"||typeof r=="boolean"||r===void 0||r===null)&&(a=String(r)),a}),M&&(w="\uFF3B"+w.replace(/[aouei]/g,"$&$&")+"\uFF3D"),w}function d(f,y){let w=f[y];return w||(w=f["*"],w)?w:null}function _(f){return f.charAt(f.length-1)==="/"?f:f+"/"}async function p(f,y,w){const E=_(f)+_(y)+"vscode/"+_(w),S=await fetch(E);if(S.ok)return await S.json();throw new Error(`${S.status} - ${S.statusText}`)}function c(f){return function(y,w){const E=Array.prototype.slice.call(arguments,2);return i(f[y],E)}}function o(f){return(y,w,...E)=>({value:i(f[y],E),original:i(w,E)})}function L(f,y,...w){return i(y,w)}t.localize=L;function e(f,y,...w){const E=i(y,w);return{value:E,original:E}}t.localize2=e;function s(f){}t.getConfiguredDefaultLocale=s;function l(f){M=f}t.setPseudoTranslation=l;function u(f,y){var w;return{localize:c(y[f]),localize2:o(y[f]),getConfiguredDefaultLocale:(w=y.getConfiguredDefaultLocale)!==null&&w!==void 0?w:E=>{}}}t.create=u;function b(f,y,w,E){var S;const C=(S=E["vs/nls"])!==null&&S!==void 0?S:{};if(!f||f.length===0)return w({localize:L,localize2:e,getConfiguredDefaultLocale:()=>{var h;return(h=C.availableLanguages)===null||h===void 0?void 0:h["*"]}});const r=C.availableLanguages?d(C.availableLanguages,f):null,a=r===null||r===R;let g=".nls";a||(g=g+"."+r);const m=h=>{Array.isArray(h)?(h.localize=c(h),h.localize2=o(h)):(h.localize=c(h[f]),h.localize2=o(h[f])),h.getConfiguredDefaultLocale=()=>{var v;return(v=C.availableLanguages)===null||v===void 0?void 0:v["*"]},w(h)};typeof C.loadBundle=="function"?C.loadBundle(f,r,(h,v)=>{h?y([f+".nls"],m):m(v)}):C.translationServiceUrl&&!a?(async()=>{var h;try{const v=await p(C.translationServiceUrl,r,f);return m(v)}catch(v){if(!r.includes("-"))return console.error(v),y([f+".nls"],m);try{const N=r.split("-")[0],A=await p(C.translationServiceUrl,N,f);return(h=C.availableLanguages)!==null&&h!==void 0||(C.availableLanguages={}),C.availableLanguages["*"]=N,m(A)}catch(N){return console.error(N),y([f+".nls"],m)}}})():y([f+g],m,h=>{if(g===".nls"){console.error("Failed trying to load default language strings",h);return}console.error(`Failed to load message bundle for language ${r}. Falling back to the default language:`,h),y([f+".nls"],m)})}t.load=b}),function(){const q=globalThis.MonacoEnvironment,t=q&&q.baseUrl?q.baseUrl:"../../../";function M(L,e){var s;if(q?.createTrustedTypesPolicy)try{return q.createTrustedTypesPolicy(L,e)}catch(l){console.warn(l);return}try{return(s=self.trustedTypes)===null||s===void 0?void 0:s.createPolicy(L,e)}catch(l){console.warn(l);return}}const R=M("amdLoader",{createScriptURL:L=>L,createScript:(L,...e)=>{const s=e.slice(0,-1).join(","),l=e.pop().toString();return`(function anonymous(${s}) { ${l} +})`}});function i(){try{return(R?globalThis.eval(R.createScript("","true")):new Function("true")).call(globalThis),!0}catch{return!1}}function d(){return new Promise((L,e)=>{if(typeof globalThis.define=="function"&&globalThis.define.amd)return L();const s=t+"vs/loader.js";if(!(/^((http:)|(https:)|(file:))/.test(s)&&s.substring(0,globalThis.origin.length)!==globalThis.origin)&&i()){fetch(s).then(u=>{if(u.status!==200)throw new Error(u.statusText);return u.text()}).then(u=>{u=`${u} +//# sourceURL=${s}`,(R?globalThis.eval(R.createScript("",u)):new Function(u)).call(globalThis),L()}).then(void 0,e);return}R?importScripts(R.createScriptURL(s)):importScripts(s),L()})}function _(){require.config({baseUrl:t,catchError:!0,trustedTypesPolicy:R,amdModulesPattern:/^vs\//})}function p(L){d().then(()=>{_(),require([L],function(e){setTimeout(function(){const s=e.create((l,u)=>{globalThis.postMessage(l,u)},null);for(globalThis.onmessage=l=>s.onmessage(l.data,l.ports);o.length>0;){const l=o.shift();s.onmessage(l.data,l.ports)}},0)})})}typeof globalThis.define=="function"&&globalThis.define.amd&&_();let c=!0;const o=[];globalThis.onmessage=L=>{if(!c){o.push(L);return}c=!1,p(L.data)}}(),X(J[7],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CallbackIterable=t.ArrayQueue=t.reverseOrder=t.booleanComparator=t.numberComparator=t.tieBreakComparators=t.compareBy=t.CompareResult=t.splice=t.insertInto=t.asArray=t.pushMany=t.pushToEnd=t.pushToStart=t.arrayInsert=t.range=t.firstOrDefault=t.distinct=t.isNonEmptyArray=t.isFalsyOrEmpty=t.coalesceInPlace=t.coalesce=t.forEachWithNeighbors=t.forEachAdjacent=t.groupAdjacentBy=t.groupBy=t.quickSelect=t.binarySearch2=t.binarySearch=t.removeFastWithoutKeepingOrder=t.equals=t.tail2=t.tail=void 0;function M(x,O=0){return x[x.length-(1+O)]}t.tail=M;function R(x){if(x.length===0)throw new Error("Invalid tail call");return[x.slice(0,x.length-1),x[x.length-1]]}t.tail2=R;function i(x,O,F=(W,H)=>W===H){if(x===O)return!0;if(!x||!O||x.length!==O.length)return!1;for(let W=0,H=x.length;WF(x[W],O))}t.binarySearch=_;function p(x,O){let F=0,W=x-1;for(;F<=W;){const H=(F+W)/2|0,G=O(H);if(G<0)F=H+1;else if(G>0)W=H-1;else return H}return-(F+1)}t.binarySearch2=p;function c(x,O,F){if(x=x|0,x>=O.length)throw new TypeError("invalid index");const W=O[Math.floor(O.length*Math.random())],H=[],G=[],ne=[];for(const se of O){const n=F(se,W);n<0?H.push(se):n>0?G.push(se):ne.push(se)}return x!!O)}t.coalesce=l;function u(x){let O=0;for(let F=0;F0}t.isNonEmptyArray=f;function y(x,O=F=>F){const F=new Set;return x.filter(W=>{const H=O(W);return F.has(H)?!1:(F.add(H),!0)})}t.distinct=y;function w(x,O){return x.length>0?x[0]:O}t.firstOrDefault=w;function E(x,O){let F=typeof O=="number"?x:0;typeof O=="number"?F=x:(F=0,O=x);const W=[];if(F<=O)for(let H=F;HO;H--)W.push(H);return W}t.range=E;function S(x,O,F){const W=x.slice(0,O),H=x.slice(O);return W.concat(F,H)}t.arrayInsert=S;function C(x,O){const F=x.indexOf(O);F>-1&&(x.splice(F,1),x.unshift(O))}t.pushToStart=C;function r(x,O){const F=x.indexOf(O);F>-1&&(x.splice(F,1),x.push(O))}t.pushToEnd=r;function a(x,O){for(const F of O)x.push(F)}t.pushMany=a;function g(x){return Array.isArray(x)?x:[x]}t.asArray=g;function m(x,O,F){const W=v(x,O),H=x.length,G=F.length;x.length=H+G;for(let ne=H-1;ne>=W;ne--)x[ne+G]=x[ne];for(let ne=0;ne0}x.isGreaterThan=W;function H(G){return G===0}x.isNeitherLessOrGreaterThan=H,x.greaterThan=1,x.lessThan=-1,x.neitherLessOrGreaterThan=0})(N||(t.CompareResult=N={}));function A(x,O){return(F,W)=>O(x(F),x(W))}t.compareBy=A;function D(...x){return(O,F)=>{for(const W of x){const H=W(O,F);if(!N.isNeitherLessOrGreaterThan(H))return H}return N.neitherLessOrGreaterThan}}t.tieBreakComparators=D;const P=(x,O)=>x-O;t.numberComparator=P;const T=(x,O)=>(0,t.numberComparator)(x?1:0,O?1:0);t.booleanComparator=T;function I(x){return(O,F)=>-x(O,F)}t.reverseOrder=I;class B{constructor(O){this.items=O,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(O){let F=this.firstIdx;for(;F=0&&O(this.items[F]);)F--;const W=F===this.lastIdx?null:this.items.slice(F+1,this.lastIdx+1);return this.lastIdx=F,W}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const O=this.items[this.firstIdx];return this.firstIdx++,O}takeCount(O){const F=this.items.slice(this.firstIdx,this.firstIdx+O);return this.firstIdx+=O,F}}t.ArrayQueue=B;class z{constructor(O){this.iterate=O}toArray(){const O=[];return this.iterate(F=>(O.push(F),!0)),O}filter(O){return new z(F=>this.iterate(W=>O(W)?F(W):!0))}map(O){return new z(F=>this.iterate(W=>F(O(W))))}findLast(O){let F;return this.iterate(W=>(O(W)&&(F=W),!0)),F}findLastMaxBy(O){let F,W=!0;return this.iterate(H=>((W||N.isGreaterThan(O(H,F)))&&(W=!1,F=H),!0)),F}}t.CallbackIterable=z,z.empty=new z(x=>{})}),X(J[11],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mapFindFirst=t.findMaxIdxBy=t.findFirstMinBy=t.findLastMaxBy=t.findFirstMaxBy=t.MonotonousArray=t.findFirstIdxMonotonousOrArrLen=t.findFirstMonotonous=t.findLastIdxMonotonous=t.findLastMonotonous=t.findLastIdx=t.findLast=void 0;function M(u,b,f){const y=R(u,b);if(y!==-1)return u[y]}t.findLast=M;function R(u,b,f=u.length-1){for(let y=f;y>=0;y--){const w=u[y];if(b(w))return y}return-1}t.findLastIdx=R;function i(u,b){const f=d(u,b);return f===-1?void 0:u[f]}t.findLastMonotonous=i;function d(u,b,f=0,y=u.length){let w=f,E=y;for(;w0&&(f=w)}return f}t.findFirstMaxBy=o;function L(u,b){if(u.length===0)return;let f=u[0];for(let y=1;y=0&&(f=w)}return f}t.findLastMaxBy=L;function e(u,b){return o(u,(f,y)=>-b(f,y))}t.findFirstMinBy=e;function s(u,b){if(u.length===0)return-1;let f=0;for(let y=1;y0&&(f=y)}return f}t.findMaxIdxBy=s;function l(u,b){for(const f of u){const y=b(f);if(y!==void 0)return y}}t.mapFindFirst=l}),X(J[32],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CachedFunction=t.LRUCachedFunction=void 0;class M{constructor(d){this.fn=d,this.lastCache=void 0,this.lastArgKey=void 0}get(d){const _=JSON.stringify(d);return this.lastArgKey!==_&&(this.lastArgKey=_,this.lastCache=this.fn(d)),this.lastCache}}t.LRUCachedFunction=M;class R{get cachedValues(){return this._map}constructor(d){this.fn=d,this._map=new Map}get(d){if(this._map.has(d))return this._map.get(d);const _=this.fn(d);return this._map.set(d,_),_}}t.CachedFunction=R}),X(J[33],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Color=t.HSVA=t.HSLA=t.RGBA=void 0;function M(p,c){const o=Math.pow(10,c);return Math.round(p*o)/o}class R{constructor(c,o,L,e=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,c))|0,this.g=Math.min(255,Math.max(0,o))|0,this.b=Math.min(255,Math.max(0,L))|0,this.a=M(Math.max(Math.min(1,e),0),3)}static equals(c,o){return c.r===o.r&&c.g===o.g&&c.b===o.b&&c.a===o.a}}t.RGBA=R;class i{constructor(c,o,L,e){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=M(Math.max(Math.min(1,o),0),3),this.l=M(Math.max(Math.min(1,L),0),3),this.a=M(Math.max(Math.min(1,e),0),3)}static equals(c,o){return c.h===o.h&&c.s===o.s&&c.l===o.l&&c.a===o.a}static fromRGBA(c){const o=c.r/255,L=c.g/255,e=c.b/255,s=c.a,l=Math.max(o,L,e),u=Math.min(o,L,e);let b=0,f=0;const y=(u+l)/2,w=l-u;if(w>0){switch(f=Math.min(y<=.5?w/(2*y):w/(2-2*y),1),l){case o:b=(L-e)/w+(L1&&(L-=1),L<1/6?c+(o-c)*6*L:L<1/2?o:L<2/3?c+(o-c)*(2/3-L)*6:c}static toRGBA(c){const o=c.h/360,{s:L,l:e,a:s}=c;let l,u,b;if(L===0)l=u=b=e;else{const f=e<.5?e*(1+L):e+L-e*L,y=2*e-f;l=i._hue2rgb(y,f,o+1/3),u=i._hue2rgb(y,f,o),b=i._hue2rgb(y,f,o-1/3)}return new R(Math.round(l*255),Math.round(u*255),Math.round(b*255),s)}}t.HSLA=i;class d{constructor(c,o,L,e){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=M(Math.max(Math.min(1,o),0),3),this.v=M(Math.max(Math.min(1,L),0),3),this.a=M(Math.max(Math.min(1,e),0),3)}static equals(c,o){return c.h===o.h&&c.s===o.s&&c.v===o.v&&c.a===o.a}static fromRGBA(c){const o=c.r/255,L=c.g/255,e=c.b/255,s=Math.max(o,L,e),l=Math.min(o,L,e),u=s-l,b=s===0?0:u/s;let f;return u===0?f=0:s===o?f=((L-e)/u%6+6)%6:s===L?f=(e-o)/u+2:f=(o-L)/u+4,new d(Math.round(f*60),b,s,c.a)}static toRGBA(c){const{h:o,s:L,v:e,a:s}=c,l=e*L,u=l*(1-Math.abs(o/60%2-1)),b=e-l;let[f,y,w]=[0,0,0];return o<60?(f=l,y=u):o<120?(f=u,y=l):o<180?(y=l,w=u):o<240?(y=u,w=l):o<300?(f=u,w=l):o<=360&&(f=l,w=u),f=Math.round((f+b)*255),y=Math.round((y+b)*255),w=Math.round((w+b)*255),new R(f,y,w,s)}}t.HSVA=d;class _{static fromHex(c){return _.Format.CSS.parseHex(c)||_.red}static equals(c,o){return!c&&!o?!0:!c||!o?!1:c.equals(o)}get hsla(){return this._hsla?this._hsla:i.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:d.fromRGBA(this.rgba)}constructor(c){if(c)if(c instanceof R)this.rgba=c;else if(c instanceof i)this._hsla=c,this.rgba=i.toRGBA(c);else if(c instanceof d)this._hsva=c,this.rgba=d.toRGBA(c);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(c){return!!c&&R.equals(this.rgba,c.rgba)&&i.equals(this.hsla,c.hsla)&&d.equals(this.hsva,c.hsva)}getRelativeLuminance(){const c=_._relativeLuminanceForComponent(this.rgba.r),o=_._relativeLuminanceForComponent(this.rgba.g),L=_._relativeLuminanceForComponent(this.rgba.b),e=.2126*c+.7152*o+.0722*L;return M(e,4)}static _relativeLuminanceForComponent(c){const o=c/255;return o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(c){const o=this.getRelativeLuminance(),L=c.getRelativeLuminance();return o>L}isDarkerThan(c){const o=this.getRelativeLuminance(),L=c.getRelativeLuminance();return o{throw f.stack?l.isErrorNoTelemetry(f)?new l(f.message+` + +`+f.stack):new Error(f.message+` + +`+f.stack):f},0)}}emit(f){this.listeners.forEach(y=>{y(f)})}onUnexpectedError(f){this.unexpectedErrorHandler(f),this.emit(f)}onUnexpectedExternalError(f){this.unexpectedErrorHandler(f)}}t.ErrorHandler=M,t.errorHandler=new M;function R(b){p(b)||t.errorHandler.onUnexpectedError(b)}t.onUnexpectedError=R;function i(b){p(b)||t.errorHandler.onUnexpectedExternalError(b)}t.onUnexpectedExternalError=i;function d(b){if(b instanceof Error){const{name:f,message:y}=b,w=b.stacktrace||b.stack;return{$isError:!0,name:f,message:y,stack:w,noTelemetry:l.isErrorNoTelemetry(b)}}return b}t.transformErrorForSerialization=d;const _="Canceled";function p(b){return b instanceof c?!0:b instanceof Error&&b.name===_&&b.message===_}t.isCancellationError=p;class c extends Error{constructor(){super(_),this.name=this.message}}t.CancellationError=c;function o(){const b=new Error(_);return b.name=b.message,b}t.canceled=o;function L(b){return b?new Error(`Illegal argument: ${b}`):new Error("Illegal argument")}t.illegalArgument=L;function e(b){return b?new Error(`Illegal state: ${b}`):new Error("Illegal state")}t.illegalState=e;class s extends Error{constructor(f){super("NotSupported"),f&&(this.message=f)}}t.NotSupportedError=s;class l extends Error{constructor(f){super(f),this.name="CodeExpectedError"}static fromError(f){if(f instanceof l)return f;const y=new l;return y.message=f.message,y.stack=f.stack,y}static isErrorNoTelemetry(f){return f.name==="CodeExpectedError"}}t.ErrorNoTelemetry=l;class u extends Error{constructor(f){super(f||"An unexpected bug occurred."),Object.setPrototypeOf(this,u.prototype)}}t.BugIndicatingError=u}),X(J[12],Z([0,1,5]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkAdjacentItems=t.assertFn=t.softAssert=t.assertNever=t.ok=void 0;function R(c,o){if(!c)throw new Error(o?`Assertion failed (${o})`:"Assertion Failed")}t.ok=R;function i(c,o="Unreachable"){throw new Error(o)}t.assertNever=i;function d(c){c||(0,M.onUnexpectedError)(new M.BugIndicatingError("Soft Assertion Failed"))}t.softAssert=d;function _(c){if(!c()){debugger;c(),(0,M.onUnexpectedError)(new M.BugIndicatingError("Assertion Failed"))}}t.assertFn=_;function p(c,o){let L=0;for(;L=0;a--)yield r[a]}R.reverse=L;function e(r){return!r||r[Symbol.iterator]().next().done===!0}R.isEmpty=e;function s(r){return r[Symbol.iterator]().next().value}R.first=s;function l(r,a){for(const g of r)if(a(g))return!0;return!1}R.some=l;function u(r,a){for(const g of r)if(a(g))return g}R.find=u;function*b(r,a){for(const g of r)a(g)&&(yield g)}R.filter=b;function*f(r,a){let g=0;for(const m of r)yield a(m,g++)}R.map=f;function*y(...r){for(const a of r)yield*a}R.concat=y;function w(r,a,g){let m=g;for(const h of r)m=a(m,h);return m}R.reduce=w;function*E(r,a,g=r.length){for(a<0&&(a+=r.length),g<0?g+=r.length:g>r.length&&(g=r.length);a=98&&w<=113)return null;switch(w){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return R.keyCodeToStr(w)}e.toElectronAccelerator=y})(o||(t.KeyCodeUtils=o={}));function L(e,s){const l=(s&65535)<<16>>>0;return(e|l)>>>0}t.KeyChord=L}),X(J[36],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Lazy=void 0;class M{constructor(i){this.executor=i,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(i){this._error=i}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}t.Lazy=M}),X(J[13],Z([0,1,20,21]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DisposableMap=t.ImmortalReference=t.RefCountedDisposable=t.MutableDisposable=t.Disposable=t.DisposableStore=t.toDisposable=t.combinedDisposable=t.dispose=t.isDisposable=t.markAsSingleton=t.markAsDisposed=t.trackDisposable=t.setDisposableTracker=void 0;const i=!1;let d=null;function _(r){d=r}if(t.setDisposableTracker=_,i){const r="__is_disposable_tracked__";_(new class{trackDisposable(a){const g=new Error("Potentially leaked disposable").stack;setTimeout(()=>{a[r]||console.log(g)},3e3)}setParent(a,g){if(a&&a!==y.None)try{a[r]=!0}catch{}}markAsDisposed(a){if(a&&a!==y.None)try{a[r]=!0}catch{}}markAsSingleton(a){}})}function p(r){return d?.trackDisposable(r),r}t.trackDisposable=p;function c(r){d?.markAsDisposed(r)}t.markAsDisposed=c;function o(r,a){d?.setParent(r,a)}function L(r,a){if(d)for(const g of r)d.setParent(g,a)}function e(r){return d?.markAsSingleton(r),r}t.markAsSingleton=e;function s(r){return typeof r.dispose=="function"&&r.dispose.length===0}t.isDisposable=s;function l(r){if(R.Iterable.is(r)){const a=[];for(const g of r)if(g)try{g.dispose()}catch(m){a.push(m)}if(a.length===1)throw a[0];if(a.length>1)throw new AggregateError(a,"Encountered errors while disposing of store");return Array.isArray(r)?[]:r}else if(r)return r.dispose(),r}t.dispose=l;function u(...r){const a=b(()=>l(r));return L(r,a),a}t.combinedDisposable=u;function b(r){const a=p({dispose:(0,M.createSingleCallFunction)(()=>{c(a),r()})});return a}t.toDisposable=b;class f{constructor(){this._toDispose=new Set,this._isDisposed=!1,p(this)}dispose(){this._isDisposed||(c(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{l(this._toDispose)}finally{this._toDispose.clear()}}add(a){if(!a)return a;if(a===this)throw new Error("Cannot register a disposable on itself!");return o(a,this),this._isDisposed?f.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(a),a}deleteAndLeak(a){a&&this._toDispose.has(a)&&(this._toDispose.delete(a),o(a,null))}}t.DisposableStore=f,f.DISABLE_DISPOSED_WARNING=!1;class y{constructor(){this._store=new f,p(this),o(this._store,this)}dispose(){c(this),this._store.dispose()}_register(a){if(a===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(a)}}t.Disposable=y,y.None=Object.freeze({dispose(){}});class w{constructor(){this._isDisposed=!1,p(this)}get value(){return this._isDisposed?void 0:this._value}set value(a){var g;this._isDisposed||a===this._value||((g=this._value)===null||g===void 0||g.dispose(),a&&o(a,this),this._value=a)}clear(){this.value=void 0}dispose(){var a;this._isDisposed=!0,c(this),(a=this._value)===null||a===void 0||a.dispose(),this._value=void 0}}t.MutableDisposable=w;class E{constructor(a){this._disposable=a,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}t.RefCountedDisposable=E;class S{constructor(a){this.object=a}dispose(){}}t.ImmortalReference=S;class C{constructor(){this._store=new Map,this._isDisposed=!1,p(this)}dispose(){c(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{l(this._store.values())}finally{this._store.clear()}}get(a){return this._store.get(a)}set(a,g,m=!1){var h;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),m||(h=this._store.get(a))===null||h===void 0||h.dispose(),this._store.set(a,g)}deleteAndDispose(a){var g;(g=this._store.get(a))===null||g===void 0||g.dispose(),this._store.delete(a)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}t.DisposableMap=C}),X(J[22],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedList=void 0;class M{constructor(d){this.element=d,this.next=M.Undefined,this.prev=M.Undefined}}M.Undefined=new M(void 0);class R{constructor(){this._first=M.Undefined,this._last=M.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===M.Undefined}clear(){let d=this._first;for(;d!==M.Undefined;){const _=d.next;d.prev=M.Undefined,d.next=M.Undefined,d=_}this._first=M.Undefined,this._last=M.Undefined,this._size=0}unshift(d){return this._insert(d,!1)}push(d){return this._insert(d,!0)}_insert(d,_){const p=new M(d);if(this._first===M.Undefined)this._first=p,this._last=p;else if(_){const o=this._last;this._last=p,p.prev=o,o.next=p}else{const o=this._first;this._first=p,p.next=o,o.prev=p}this._size+=1;let c=!1;return()=>{c||(c=!0,this._remove(p))}}shift(){if(this._first!==M.Undefined){const d=this._first.element;return this._remove(this._first),d}}pop(){if(this._last!==M.Undefined){const d=this._last.element;return this._remove(this._last),d}}_remove(d){if(d.prev!==M.Undefined&&d.next!==M.Undefined){const _=d.prev;_.next=d.next,d.next.prev=_}else d.prev===M.Undefined&&d.next===M.Undefined?(this._first=M.Undefined,this._last=M.Undefined):d.next===M.Undefined?(this._last=this._last.prev,this._last.next=M.Undefined):d.prev===M.Undefined&&(this._first=this._first.next,this._first.prev=M.Undefined);this._size-=1}*[Symbol.iterator](){let d=this._first;for(;d!==M.Undefined;)yield d.element,d=d.next}}t.LinkedList=R}),X(J[37],Z([0,1]),function(q,t){"use strict";var M,R;Object.defineProperty(t,"__esModule",{value:!0}),t.SetMap=t.BidirectionalMap=t.LRUCache=t.LinkedMap=t.ResourceMap=void 0;class i{constructor(s,l){this.uri=s,this.value=l}}function d(e){return Array.isArray(e)}class _{constructor(s,l){if(this[M]="ResourceMap",s instanceof _)this.map=new Map(s.map),this.toKey=l??_.defaultToKey;else if(d(s)){this.map=new Map,this.toKey=l??_.defaultToKey;for(const[u,b]of s)this.set(u,b)}else this.map=new Map,this.toKey=s??_.defaultToKey}set(s,l){return this.map.set(this.toKey(s),new i(s,l)),this}get(s){var l;return(l=this.map.get(this.toKey(s)))===null||l===void 0?void 0:l.value}has(s){return this.map.has(this.toKey(s))}get size(){return this.map.size}clear(){this.map.clear()}delete(s){return this.map.delete(this.toKey(s))}forEach(s,l){typeof l<"u"&&(s=s.bind(l));for(const[u,b]of this.map)s(b.value,b.uri,this)}*values(){for(const s of this.map.values())yield s.value}*keys(){for(const s of this.map.values())yield s.uri}*entries(){for(const s of this.map.values())yield[s.uri,s.value]}*[(M=Symbol.toStringTag,Symbol.iterator)](){for(const[,s]of this.map)yield[s.uri,s.value]}}t.ResourceMap=_,_.defaultToKey=e=>e.toString();class p{constructor(){this[R]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var s;return(s=this._head)===null||s===void 0?void 0:s.value}get last(){var s;return(s=this._tail)===null||s===void 0?void 0:s.value}has(s){return this._map.has(s)}get(s,l=0){const u=this._map.get(s);if(u)return l!==0&&this.touch(u,l),u.value}set(s,l,u=0){let b=this._map.get(s);if(b)b.value=l,u!==0&&this.touch(b,u);else{switch(b={key:s,value:l,next:void 0,previous:void 0},u){case 0:this.addItemLast(b);break;case 1:this.addItemFirst(b);break;case 2:this.addItemLast(b);break;default:this.addItemLast(b);break}this._map.set(s,b),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const l=this._map.get(s);if(l)return this._map.delete(s),this.removeItem(l),this._size--,l.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,l){const u=this._state;let b=this._head;for(;b;){if(l?s.bind(l)(b.value,b.key,this):s(b.value,b.key,this),this._state!==u)throw new Error("LinkedMap got modified during iteration.");b=b.next}}keys(){const s=this,l=this._state;let u=this._head;const b={[Symbol.iterator](){return b},next(){if(s._state!==l)throw new Error("LinkedMap got modified during iteration.");if(u){const f={value:u.key,done:!1};return u=u.next,f}else return{value:void 0,done:!0}}};return b}values(){const s=this,l=this._state;let u=this._head;const b={[Symbol.iterator](){return b},next(){if(s._state!==l)throw new Error("LinkedMap got modified during iteration.");if(u){const f={value:u.value,done:!1};return u=u.next,f}else return{value:void 0,done:!0}}};return b}entries(){const s=this,l=this._state;let u=this._head;const b={[Symbol.iterator](){return b},next(){if(s._state!==l)throw new Error("LinkedMap got modified during iteration.");if(u){const f={value:[u.key,u.value],done:!1};return u=u.next,f}else return{value:void 0,done:!0}}};return b}[(R=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let l=this._head,u=this.size;for(;l&&u>s;)this._map.delete(l.key),l=l.next,u--;this._head=l,this._size=u,l&&(l.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const l=s.next,u=s.previous;if(!l||!u)throw new Error("Invalid list");l.previous=u,u.next=l}s.next=void 0,s.previous=void 0,this._state++}touch(s,l){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(l!==1&&l!==2)){if(l===1){if(s===this._head)return;const u=s.next,b=s.previous;s===this._tail?(b.next=void 0,this._tail=b):(u.previous=b,b.next=u),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(l===2){if(s===this._tail)return;const u=s.next,b=s.previous;s===this._head?(u.previous=void 0,this._head=u):(u.previous=b,b.next=u),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((l,u)=>{s.push([u,l])}),s}fromJSON(s){this.clear();for(const[l,u]of s)this.set(l,u)}}t.LinkedMap=p;class c extends p{constructor(s,l=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,l),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get(s,l=2){return super.get(s,l)}peek(s){return super.get(s,0)}set(s,l){return super.set(s,l,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}t.LRUCache=c;class o{constructor(s){if(this._m1=new Map,this._m2=new Map,s)for(const[l,u]of s)this.set(l,u)}clear(){this._m1.clear(),this._m2.clear()}set(s,l){this._m1.set(s,l),this._m2.set(l,s)}get(s){return this._m1.get(s)}getKey(s){return this._m2.get(s)}delete(s){const l=this._m1.get(s);return l===void 0?!1:(this._m1.delete(s),this._m2.delete(l),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}t.BidirectionalMap=o;class L{constructor(){this.map=new Map}add(s,l){let u=this.map.get(s);u||(u=new Set,this.map.set(s,u)),u.add(l)}delete(s,l){const u=this.map.get(s);u&&(u.delete(l),u.size===0&&this.map.delete(s))}forEach(s,l){const u=this.map.get(s);u&&u.forEach(l)}get(s){const l=this.map.get(s);return l||new Set}}t.SetMap=L}),X(J[23],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StopWatch=void 0;const M=globalThis.performance&&typeof globalThis.performance.now=="function";class R{static create(d){return new R(d)}constructor(d){this._now=M&&d===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}t.StopWatch=R}),X(J[9],Z([0,1,5,20,13,22,23]),function(q,t,M,R,i,d,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Relay=t.EventBufferer=t.EventMultiplexer=t.MicrotaskEmitter=t.DebounceEmitter=t.PauseableEmitter=t.createEventDeliveryQueue=t.Emitter=t.EventProfiling=t.Event=void 0;const p=!1,c=!1;var o;(function(h){h.None=()=>i.Disposable.None;function v(K){if(c){const{onDidAddListener:j}=K,Q=l.create();let Y=0;K.onDidAddListener=()=>{++Y===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),Q.print()),j?.()}}}function N(K,j){return F(K,()=>{},0,void 0,!0,void 0,j)}h.defer=N;function A(K){return(j,Q=null,Y)=>{let te=!1,ie;return ie=K(re=>{if(!te)return ie?ie.dispose():te=!0,j.call(Q,re)},null,Y),te&&ie.dispose(),ie}}h.once=A;function D(K,j,Q){return x((Y,te=null,ie)=>K(re=>Y.call(te,j(re)),null,ie),Q)}h.map=D;function P(K,j,Q){return x((Y,te=null,ie)=>K(re=>{j(re),Y.call(te,re)},null,ie),Q)}h.forEach=P;function T(K,j,Q){return x((Y,te=null,ie)=>K(re=>j(re)&&Y.call(te,re),null,ie),Q)}h.filter=T;function I(K){return K}h.signal=I;function B(...K){return(j,Q=null,Y)=>{const te=(0,i.combinedDisposable)(...K.map(ie=>ie(re=>j.call(Q,re))));return O(te,Y)}}h.any=B;function z(K,j,Q,Y){let te=Q;return D(K,ie=>(te=j(te,ie),te),Y)}h.reduce=z;function x(K,j){let Q;const Y={onWillAddFirstListener(){Q=K(te.fire,te)},onDidRemoveLastListener(){Q?.dispose()}};j||v(Y);const te=new y(Y);return j?.add(te),te.event}function O(K,j){return j instanceof Array?j.push(K):j&&j.add(K),K}function F(K,j,Q=100,Y=!1,te=!1,ie,re){let oe,le,k,U=0,V;const $={leakWarningThreshold:ie,onWillAddFirstListener(){oe=K(ae=>{U++,le=j(le,ae),Y&&!k&&(ee.fire(le),le=void 0),V=()=>{const he=le;le=void 0,k=void 0,(!Y||U>1)&&ee.fire(he),U=0},typeof Q=="number"?(clearTimeout(k),k=setTimeout(V,Q)):k===void 0&&(k=0,queueMicrotask(V))})},onWillRemoveListener(){te&&U>0&&V?.()},onDidRemoveLastListener(){V=void 0,oe.dispose()}};re||v($);const ee=new y($);return re?.add(ee),ee.event}h.debounce=F;function W(K,j=0,Q){return h.debounce(K,(Y,te)=>Y?(Y.push(te),Y):[te],j,void 0,!0,void 0,Q)}h.accumulate=W;function H(K,j=(Y,te)=>Y===te,Q){let Y=!0,te;return T(K,ie=>{const re=Y||!j(ie,te);return Y=!1,te=ie,re},Q)}h.latch=H;function G(K,j,Q){return[h.filter(K,j,Q),h.filter(K,Y=>!j(Y),Q)]}h.split=G;function ne(K,j=!1,Q=[],Y){let te=Q.slice(),ie=K(le=>{te?te.push(le):oe.fire(le)});Y&&Y.add(ie);const re=()=>{te?.forEach(le=>oe.fire(le)),te=null},oe=new y({onWillAddFirstListener(){ie||(ie=K(le=>oe.fire(le)),Y&&Y.add(ie))},onDidAddFirstListener(){te&&(j?setTimeout(re):re())},onDidRemoveLastListener(){ie&&ie.dispose(),ie=null}});return Y&&Y.add(oe),oe.event}h.buffer=ne;function se(K,j){return(Y,te,ie)=>{const re=j(new be);return K(function(oe){const le=re.evaluate(oe);le!==n&&Y.call(te,le)},void 0,ie)}}h.chain=se;const n=Symbol("HaltChainable");class be{constructor(){this.steps=[]}map(j){return this.steps.push(j),this}forEach(j){return this.steps.push(Q=>(j(Q),Q)),this}filter(j){return this.steps.push(Q=>j(Q)?Q:n),this}reduce(j,Q){let Y=Q;return this.steps.push(te=>(Y=j(Y,te),Y)),this}latch(j=(Q,Y)=>Q===Y){let Q=!0,Y;return this.steps.push(te=>{const ie=Q||!j(te,Y);return Q=!1,Y=te,ie?te:n}),this}evaluate(j){for(const Q of this.steps)if(j=Q(j),j===n)break;return j}}function pe(K,j,Q=Y=>Y){const Y=(...oe)=>re.fire(Q(...oe)),te=()=>K.on(j,Y),ie=()=>K.removeListener(j,Y),re=new y({onWillAddFirstListener:te,onDidRemoveLastListener:ie});return re.event}h.fromNodeEventEmitter=pe;function Le(K,j,Q=Y=>Y){const Y=(...oe)=>re.fire(Q(...oe)),te=()=>K.addEventListener(j,Y),ie=()=>K.removeEventListener(j,Y),re=new y({onWillAddFirstListener:te,onDidRemoveLastListener:ie});return re.event}h.fromDOMEventEmitter=Le;function we(K){return new Promise(j=>A(K)(j))}h.toPromise=we;function Ce(K){const j=new y;return K.then(Q=>{j.fire(Q)},()=>{j.fire(void 0)}).finally(()=>{j.dispose()}),j.event}h.fromPromise=Ce;function Se(K,j,Q){return j(Q),K(Y=>j(Y))}h.runAndSubscribe=Se;class _e{constructor(j,Q){this._observable=j,this._counter=0,this._hasChanged=!1;const Y={onWillAddFirstListener:()=>{j.addObserver(this)},onDidRemoveLastListener:()=>{j.removeObserver(this)}};Q||v(Y),this.emitter=new y(Y),Q&&Q.add(this.emitter)}beginUpdate(j){this._counter++}handlePossibleChange(j){}handleChange(j,Q){this._hasChanged=!0}endUpdate(j){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ye(K,j){return new _e(K,j).emitter.event}h.fromObservable=ye;function Ee(K){return(j,Q,Y)=>{let te=0,ie=!1;const re={beginUpdate(){te++},endUpdate(){te--,te===0&&(K.reportChanges(),ie&&(ie=!1,j.call(Q)))},handlePossibleChange(){},handleChange(){ie=!0}};K.addObserver(re),K.reportChanges();const oe={dispose(){K.removeObserver(re)}};return Y instanceof i.DisposableStore?Y.add(oe):Array.isArray(Y)&&Y.push(oe),oe}}h.fromObservableLight=Ee})(o||(t.Event=o={}));class L{constructor(v){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${v}_${L._idPool++}`,L.all.add(this)}start(v){this._stopWatch=new _.StopWatch,this.listenerCount=v}stop(){if(this._stopWatch){const v=this._stopWatch.elapsed();this.durations.push(v),this.elapsedOverall+=v,this.invocationCount+=1,this._stopWatch=void 0}}}t.EventProfiling=L,L.all=new Set,L._idPool=0;let e=-1;class s{constructor(v,N=Math.random().toString(18).slice(2,5)){this.threshold=v,this.name=N,this._warnCountdown=0}dispose(){var v;(v=this._stacks)===null||v===void 0||v.clear()}check(v,N){const A=this.threshold;if(A<=0||N{const P=this._stacks.get(v.value)||0;this._stacks.set(v.value,P-1)}}}class l{static create(){var v;return new l((v=new Error().stack)!==null&&v!==void 0?v:"")}constructor(v){this.value=v}print(){console.warn(this.value.split(` +`).slice(2).join(` +`))}}class u{constructor(v){this.value=v}}const b=2,f=(h,v)=>{if(h instanceof u)v(h);else for(let N=0;N0||!((N=this._options)===null||N===void 0)&&N.leakWarningThreshold?new s((D=(A=this._options)===null||A===void 0?void 0:A.leakWarningThreshold)!==null&&D!==void 0?D:e):void 0,this._perfMon=!((P=this._options)===null||P===void 0)&&P._profName?new L(this._options._profName):void 0,this._deliveryQueue=(T=this._options)===null||T===void 0?void 0:T.deliveryQueue}dispose(){var v,N,A,D;if(!this._disposed){if(this._disposed=!0,((v=this._deliveryQueue)===null||v===void 0?void 0:v.current)===this&&this._deliveryQueue.reset(),this._listeners){if(p){const P=this._listeners;queueMicrotask(()=>{f(P,T=>{var I;return(I=T.stack)===null||I===void 0?void 0:I.print()})})}this._listeners=void 0,this._size=0}(A=(N=this._options)===null||N===void 0?void 0:N.onDidRemoveLastListener)===null||A===void 0||A.call(N),(D=this._leakageMon)===null||D===void 0||D.dispose()}}get event(){var v;return(v=this._event)!==null&&v!==void 0||(this._event=(N,A,D)=>{var P,T,I,B,z;if(this._leakageMon&&this._size>this._leakageMon.threshold*3)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),i.Disposable.None;if(this._disposed)return i.Disposable.None;A&&(N=N.bind(A));const x=new u(N);let O,F;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(x.stack=l.create(),O=this._leakageMon.check(x.stack,this._size+1)),p&&(x.stack=F??l.create()),this._listeners?this._listeners instanceof u?((z=this._deliveryQueue)!==null&&z!==void 0||(this._deliveryQueue=new E),this._listeners=[this._listeners,x]):this._listeners.push(x):((T=(P=this._options)===null||P===void 0?void 0:P.onWillAddFirstListener)===null||T===void 0||T.call(P,this),this._listeners=x,(B=(I=this._options)===null||I===void 0?void 0:I.onDidAddFirstListener)===null||B===void 0||B.call(I,this)),this._size++;const W=(0,i.toDisposable)(()=>{O?.(),this._removeListener(x)});return D instanceof i.DisposableStore?D.add(W):Array.isArray(D)&&D.push(W),W}),this._event}_removeListener(v){var N,A,D,P;if((A=(N=this._options)===null||N===void 0?void 0:N.onWillRemoveListener)===null||A===void 0||A.call(N,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(P=(D=this._options)===null||D===void 0?void 0:D.onDidRemoveLastListener)===null||P===void 0||P.call(D,this),this._size=0;return}const T=this._listeners,I=T.indexOf(v);if(I===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,T[I]=void 0;const B=this._deliveryQueue.current===this;if(this._size*b<=T.length){let z=0;for(let x=0;x0}}t.Emitter=y;const w=()=>new E;t.createEventDeliveryQueue=w;class E{constructor(){this.i=-1,this.end=0}enqueue(v,N,A){this.i=0,this.end=A,this.current=v,this.value=N}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class S extends y{constructor(v){super(v),this._isPaused=0,this._eventQueue=new d.LinkedList,this._mergeFn=v?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const v=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(v))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(v){this._size&&(this._isPaused!==0?this._eventQueue.push(v):super.fire(v))}}t.PauseableEmitter=S;class C extends S{constructor(v){var N;super(v),this._delay=(N=v.delay)!==null&&N!==void 0?N:100}fire(v){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(v)}}t.DebounceEmitter=C;class r extends y{constructor(v){super(v),this._queuedEvents=[],this._mergeFn=v?.merge}fire(v){this.hasListeners()&&(this._queuedEvents.push(v),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(N=>super.fire(N)),this._queuedEvents=[]}))}}t.MicrotaskEmitter=r;class a{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new y({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(v){const N={event:v,listener:null};this.events.push(N),this.hasListeners&&this.hook(N);const A=()=>{this.hasListeners&&this.unhook(N);const D=this.events.indexOf(N);this.events.splice(D,1)};return(0,i.toDisposable)((0,R.createSingleCallFunction)(A))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(v=>this.hook(v))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(v=>this.unhook(v))}hook(v){v.listener=v.event(N=>this.emitter.fire(N))}unhook(v){var N;(N=v.listener)===null||N===void 0||N.dispose(),v.listener=null}dispose(){var v;this.emitter.dispose();for(const N of this.events)(v=N.listener)===null||v===void 0||v.dispose();this.events=[]}}t.EventMultiplexer=a;class g{constructor(){this.buffers=[]}wrapEvent(v){return(N,A,D)=>v(P=>{const T=this.buffers[this.buffers.length-1];T?T.push(()=>N.call(A,P)):N.call(A,P)},void 0,D)}bufferEvents(v){const N=[];this.buffers.push(N);const A=v();return this.buffers.pop(),N.forEach(D=>D()),A}}t.EventBufferer=g;class m{constructor(){this.listening=!1,this.inputEvent=o.None,this.inputEventListener=i.Disposable.None,this.emitter=new y({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(v){this.inputEvent=v,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=v(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}t.Relay=m}),X(J[38],Z([0,1,9]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;const R=Object.freeze(function(p,c){const o=setTimeout(p.bind(c),0);return{dispose(){clearTimeout(o)}}});var i;(function(p){function c(o){return o===p.None||o===p.Cancelled||o instanceof d?!0:!o||typeof o!="object"?!1:typeof o.isCancellationRequested=="boolean"&&typeof o.onCancellationRequested=="function"}p.isCancellationToken=c,p.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:M.Event.None}),p.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:R})})(i||(t.CancellationToken=i={}));class d{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?R:(this._emitter||(this._emitter=new M.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class _{constructor(c){this._token=void 0,this._parentListener=void 0,this._parentListener=c&&c.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new d),this._token}cancel(){this._token?this._token instanceof d&&this._token.cancel():this._token=i.Cancelled}dispose(c=!1){var o;c&&this.cancel(),(o=this._parentListener)===null||o===void 0||o.dispose(),this._token?this._token instanceof d&&this._token.dispose():this._token=i.None}}t.CancellationTokenSource=_}),X(J[6],Z([0,1,32,36]),function(q,t,M,R){"use strict";var i;Object.defineProperty(t,"__esModule",{value:!0}),t.InvisibleCharacters=t.AmbiguousCharacters=t.noBreakWhitespace=t.getLeftDeleteOffset=t.singleLetterHash=t.containsUppercaseCharacter=t.startsWithUTF8BOM=t.UTF8_BOM_CHARACTER=t.isEmojiImprecise=t.isFullWidthCharacter=t.containsUnusualLineTerminators=t.UNUSUAL_LINE_TERMINATORS=t.isBasicASCII=t.containsRTL=t.getCharContainingOffset=t.prevCharLength=t.nextCharLength=t.GraphemeIterator=t.CodePointIterator=t.getNextCodePoint=t.computeCodePoint=t.isLowSurrogate=t.isHighSurrogate=t.commonSuffixLength=t.commonPrefixLength=t.startsWithIgnoreCase=t.equalsIgnoreCase=t.isUpperAsciiLetter=t.isLowerAsciiLetter=t.isAsciiDigit=t.compareSubstringIgnoreCase=t.compareIgnoreCase=t.compareSubstring=t.compare=t.lastNonWhitespaceIndex=t.getLeadingWhitespace=t.firstNonWhitespaceIndex=t.splitLinesIncludeSeparators=t.splitLines=t.regExpLeadsToEndlessLoop=t.createRegExp=t.stripWildcards=t.convertSimple2RegExpPattern=t.rtrim=t.ltrim=t.trim=t.escapeRegExpCharacters=t.escape=t.htmlAttributeEncodeValue=t.format=t.isFalsyOrWhitespace=void 0;function d(k){return!k||typeof k!="string"?!0:k.trim().length===0}t.isFalsyOrWhitespace=d;const _=/{(\d+)}/g;function p(k,...U){return U.length===0?k:k.replace(_,function(V,$){const ee=parseInt($,10);return isNaN(ee)||ee<0||ee>=U.length?V:U[ee]})}t.format=p;function c(k){return k.replace(/[<>"'&]/g,U=>{switch(U){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return U})}t.htmlAttributeEncodeValue=c;function o(k){return k.replace(/[<>&]/g,function(U){switch(U){case"<":return"<";case">":return">";case"&":return"&";default:return U}})}t.escape=o;function L(k){return k.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}t.escapeRegExpCharacters=L;function e(k,U=" "){const V=s(k,U);return l(V,U)}t.trim=e;function s(k,U){if(!k||!U)return k;const V=U.length;if(V===0||k.length===0)return k;let $=0;for(;k.indexOf(U,$)===$;)$=$+V;return k.substring($)}t.ltrim=s;function l(k,U){if(!k||!U)return k;const V=U.length,$=k.length;if(V===0||$===0)return k;let ee=$,ae=-1;for(;ae=k.lastIndexOf(U,ee-1),!(ae===-1||ae+V!==ee);){if(ae===0)return"";ee=ae}return k.substring(0,ee)}t.rtrim=l;function u(k){return k.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}t.convertSimple2RegExpPattern=u;function b(k){return k.replace(/\*/g,"")}t.stripWildcards=b;function f(k,U,V={}){if(!k)throw new Error("Cannot create regex from empty string");U||(k=L(k)),V.wholeWord&&(/\B/.test(k.charAt(0))||(k="\\b"+k),/\B/.test(k.charAt(k.length-1))||(k=k+"\\b"));let $="";return V.global&&($+="g"),V.matchCase||($+="i"),V.multiline&&($+="m"),V.unicode&&($+="u"),new RegExp(k,$)}t.createRegExp=f;function y(k){return k.source==="^"||k.source==="^$"||k.source==="$"||k.source==="^\\s*$"?!1:!!(k.exec("")&&k.lastIndex===0)}t.regExpLeadsToEndlessLoop=y;function w(k){return k.split(/\r\n|\r|\n/)}t.splitLines=w;function E(k){var U;const V=[],$=k.split(/(\r\n|\r|\n)/);for(let ee=0;ee=0;V--){const $=k.charCodeAt(V);if($!==32&&$!==9)return V}return-1}t.lastNonWhitespaceIndex=r;function a(k,U){return kU?1:0}t.compare=a;function g(k,U,V=0,$=k.length,ee=0,ae=U.length){for(;V<$&&eeue)return 1}const he=$-V,me=ae-ee;return heme?1:0}t.compareSubstring=g;function m(k,U){return h(k,U,0,k.length,0,U.length)}t.compareIgnoreCase=m;function h(k,U,V=0,$=k.length,ee=0,ae=U.length){for(;V<$&&ee=128||ue>=128)return g(k.toLowerCase(),U.toLowerCase(),V,$,ee,ae);N(de)&&(de-=32),N(ue)&&(ue-=32);const fe=de-ue;if(fe!==0)return fe}const he=$-V,me=ae-ee;return heme?1:0}t.compareSubstringIgnoreCase=h;function v(k){return k>=48&&k<=57}t.isAsciiDigit=v;function N(k){return k>=97&&k<=122}t.isLowerAsciiLetter=N;function A(k){return k>=65&&k<=90}t.isUpperAsciiLetter=A;function D(k,U){return k.length===U.length&&h(k,U)===0}t.equalsIgnoreCase=D;function P(k,U){const V=U.length;return U.length>k.length?!1:h(k,U,0,V)===0}t.startsWithIgnoreCase=P;function T(k,U){const V=Math.min(k.length,U.length);let $;for($=0;$1){const $=k.charCodeAt(U-2);if(B($))return x($,V)}return V}class W{get offset(){return this._offset}constructor(U,V=0){this._str=U,this._len=U.length,this._offset=V}setOffset(U){this._offset=U}prevCodePoint(){const U=F(this._str,this._offset);return this._offset-=U>=65536?2:1,U}nextCodePoint(){const U=O(this._str,this._len,this._offset);return this._offset+=U>=65536?2:1,U}eol(){return this._offset>=this._len}}t.CodePointIterator=W;class H{get offset(){return this._iterator.offset}constructor(U,V=0){this._iterator=new W(U,V)}nextGraphemeLength(){const U=Q.getInstance(),V=this._iterator,$=V.offset;let ee=U.getGraphemeBreakType(V.nextCodePoint());for(;!V.eol();){const ae=V.offset,he=U.getGraphemeBreakType(V.nextCodePoint());if(j(ee,he)){V.setOffset(ae);break}ee=he}return V.offset-$}prevGraphemeLength(){const U=Q.getInstance(),V=this._iterator,$=V.offset;let ee=U.getGraphemeBreakType(V.prevCodePoint());for(;V.offset>0;){const ae=V.offset,he=U.getGraphemeBreakType(V.prevCodePoint());if(j(he,ee)){V.setOffset(ae);break}ee=he}return $-V.offset}eol(){return this._iterator.eol()}}t.GraphemeIterator=H;function G(k,U){return new H(k,U).nextGraphemeLength()}t.nextCharLength=G;function ne(k,U){return new H(k,U).prevGraphemeLength()}t.prevCharLength=ne;function se(k,U){U>0&&z(k.charCodeAt(U))&&U--;const V=U+G(k,U);return[V-ne(k,V),V]}t.getCharContainingOffset=se;let n;function be(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function pe(k){return n||(n=be()),n.test(k)}t.containsRTL=pe;const Le=/^[\t\n\r\x20-\x7E]*$/;function we(k){return Le.test(k)}t.isBasicASCII=we,t.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function Ce(k){return t.UNUSUAL_LINE_TERMINATORS.test(k)}t.containsUnusualLineTerminators=Ce;function Se(k){return k>=11904&&k<=55215||k>=63744&&k<=64255||k>=65281&&k<=65374}t.isFullWidthCharacter=Se;function _e(k){return k>=127462&&k<=127487||k===8986||k===8987||k===9200||k===9203||k>=9728&&k<=10175||k===11088||k===11093||k>=127744&&k<=128591||k>=128640&&k<=128764||k>=128992&&k<=129008||k>=129280&&k<=129535||k>=129648&&k<=129782}t.isEmojiImprecise=_e,t.UTF8_BOM_CHARACTER="\uFEFF";function ye(k){return!!(k&&k.length>0&&k.charCodeAt(0)===65279)}t.startsWithUTF8BOM=ye;function Ee(k,U=!1){return k?(U&&(k=k.replace(/\\./g,"")),k.toLowerCase()!==k):!1}t.containsUppercaseCharacter=Ee;function K(k){return k=k%(2*26),k<26?String.fromCharCode(97+k):String.fromCharCode(65+k-26)}t.singleLetterHash=K;function j(k,U){return k===0?U!==5&&U!==7:k===2&&U===3?!1:k===4||k===2||k===3||U===4||U===2||U===3?!0:!(k===8&&(U===8||U===9||U===11||U===12)||(k===11||k===9)&&(U===9||U===10)||(k===12||k===10)&&U===10||U===5||U===13||U===7||k===1||k===13&&U===14||k===6&&U===6)}class Q{static getInstance(){return Q._INSTANCE||(Q._INSTANCE=new Q),Q._INSTANCE}constructor(){this._data=Y()}getGraphemeBreakType(U){if(U<32)return U===10?3:U===13?2:4;if(U<127)return 0;const V=this._data,$=V.length/3;let ee=1;for(;ee<=$;)if(UV[3*ee+1])ee=2*ee+1;else return V[3*ee+2];return 0}}Q._INSTANCE=null;function Y(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function te(k,U){if(k===0)return 0;const V=ie(k,U);if(V!==void 0)return V;const $=new W(U,k);return $.prevCodePoint(),$.offset}t.getLeftDeleteOffset=te;function ie(k,U){const V=new W(U,k);let $=V.prevCodePoint();for(;re($)||$===65039||$===8419;){if(V.offset===0)return;$=V.prevCodePoint()}if(!_e($))return;let ee=V.offset;return ee>0&&V.prevCodePoint()===8205&&(ee=V.offset),ee}function re(k){return 127995<=k&&k<=127999}t.noBreakWhitespace="\xA0";class oe{static getInstance(U){return i.cache.get(Array.from(U))}static getLocales(){return i._locales.value}constructor(U){this.confusableDictionary=U}isAmbiguous(U){return this.confusableDictionary.has(U)}getPrimaryConfusable(U){return this.confusableDictionary.get(U)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}t.AmbiguousCharacters=oe,i=oe,oe.ambiguousCharacterData=new R.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}')),oe.cache=new M.LRUCachedFunction(k=>{function U(ue){const fe=new Map;for(let ge=0;ge!ue.startsWith("_")&&ue in ee);ae.length===0&&(ae=["_default"]);let he;for(const ue of ae){const fe=U(ee[ue]);he=$(he,fe)}const me=U(ee._common),de=V(me,he);return new i(de)}),oe._locales=new R.Lazy(()=>Object.keys(i.ambiguousCharacterData.value).filter(k=>!k.startsWith("_")));class le{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(le.getRawData())),this._data}static isInvisibleCharacter(U){return le.getData().has(U)}static get codePoints(){return le.getData()}}t.InvisibleCharacters=le,le._data=void 0}),X(J[39],Z([0,1,6]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringSHA1=t.toHexString=t.stringHash=t.numberHash=t.doHash=t.hash=void 0;function R(b){return i(b,0)}t.hash=R;function i(b,f){switch(typeof b){case"object":return b===null?d(349,f):Array.isArray(b)?c(b,f):o(b,f);case"string":return p(b,f);case"boolean":return _(b,f);case"number":return d(b,f);case"undefined":return d(937,f);default:return d(617,f)}}t.doHash=i;function d(b,f){return(f<<5)-f+b|0}t.numberHash=d;function _(b,f){return d(b?433:863,f)}function p(b,f){f=d(149417,f);for(let y=0,w=b.length;yi(w,y),f)}function o(b,f){return f=d(181387,f),Object.keys(b).sort().reduce((y,w)=>(y=p(w,y),i(b[w],y)),f)}function L(b,f,y=32){const w=y-f,E=~((1<>>w)>>>0}function e(b,f=0,y=b.byteLength,w=0){for(let E=0;Ey.toString(16).padStart(2,"0")).join(""):s((b>>>0).toString(16),f/4)}t.toHexString=l;class u{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(f){const y=f.length;if(y===0)return;const w=this._buff;let E=this._buffLen,S=this._leftoverHighSurrogate,C,r;for(S!==0?(C=S,r=-1,S=0):(C=f.charCodeAt(0),r=0);;){let a=C;if(M.isHighSurrogate(C))if(r+1>>6,f[y++]=128|(w&63)>>>0):w<65536?(f[y++]=224|(w&61440)>>>12,f[y++]=128|(w&4032)>>>6,f[y++]=128|(w&63)>>>0):(f[y++]=240|(w&1835008)>>>18,f[y++]=128|(w&258048)>>>12,f[y++]=128|(w&4032)>>>6,f[y++]=128|(w&63)>>>0),y>=64&&(this._step(),y-=64,this._totalLen+=64,f[0]=f[64],f[1]=f[65],f[2]=f[66]),y}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),l(this._h0)+l(this._h1)+l(this._h2)+l(this._h3)+l(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,e(this._buff,this._buffLen),this._buffLen>56&&(this._step(),e(this._buff));const f=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(f/4294967296),!1),this._buffDV.setUint32(60,f%4294967296,!1),this._step()}_step(){const f=u._bigBlock32,y=this._buffDV;for(let h=0;h<64;h+=4)f.setUint32(h,y.getUint32(h,!1),!1);for(let h=64;h<320;h+=4)f.setUint32(h,L(f.getUint32(h-12,!1)^f.getUint32(h-32,!1)^f.getUint32(h-56,!1)^f.getUint32(h-64,!1),1),!1);let w=this._h0,E=this._h1,S=this._h2,C=this._h3,r=this._h4,a,g,m;for(let h=0;h<80;h++)h<20?(a=E&S|~E&C,g=1518500249):h<40?(a=E^S^C,g=1859775393):h<60?(a=E&S|E&C|S&C,g=2400959708):(a=E^S^C,g=3395469782),m=L(w,5)+a+r+g+f.getUint32(h*4,!1)&4294967295,r=C,C=S,S=L(E,30),E=w,w=m;this._h0=this._h0+w&4294967295,this._h1=this._h1+E&4294967295,this._h2=this._h2+S&4294967295,this._h3=this._h3+C&4294967295,this._h4=this._h4+r&4294967295}}t.StringSHA1=u,u._bigBlock32=new DataView(new ArrayBuffer(320))}),X(J[24],Z([0,1,34,39]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LcsDiff=t.stringDiff=t.StringDiffSequence=void 0;class i{constructor(e){this.source=e}getElements(){const e=this.source,s=new Int32Array(e.length);for(let l=0,u=e.length;l0||this.m_modifiedCount>0)&&this.m_changes.push(new M.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,s){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,s),this.m_originalCount++}AddModifiedElement(e,s){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,s),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class o{constructor(e,s,l=null){this.ContinueProcessingPredicate=l,this._originalSequence=e,this._modifiedSequence=s;const[u,b,f]=o._getElements(e),[y,w,E]=o._getElements(s);this._hasStrings=f&&E,this._originalStringElements=u,this._originalElementsOrHash=b,this._modifiedStringElements=y,this._modifiedElementsOrHash=w,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const s=e.getElements();if(o._isStringArray(s)){const l=new Int32Array(s.length);for(let u=0,b=s.length;u=e&&u>=l&&this.ElementsAreEqual(s,u);)s--,u--;if(e>s||l>u){let C;return l<=u?(_.Assert(e===s+1,"originalStart should only be one more than originalEnd"),C=[new M.DiffChange(e,0,l,u-l+1)]):e<=s?(_.Assert(l===u+1,"modifiedStart should only be one more than modifiedEnd"),C=[new M.DiffChange(e,s-e+1,l,0)]):(_.Assert(e===s+1,"originalStart should only be one more than originalEnd"),_.Assert(l===u+1,"modifiedStart should only be one more than modifiedEnd"),C=[]),C}const f=[0],y=[0],w=this.ComputeRecursionPoint(e,s,l,u,f,y,b),E=f[0],S=y[0];if(w!==null)return w;if(!b[0]){const C=this.ComputeDiffRecursive(e,E,l,S,b);let r=[];return b[0]?r=[new M.DiffChange(E+1,s-(E+1)+1,S+1,u-(S+1)+1)]:r=this.ComputeDiffRecursive(E+1,s,S+1,u,b),this.ConcatenateChanges(C,r)}return[new M.DiffChange(e,s-e+1,l,u-l+1)]}WALKTRACE(e,s,l,u,b,f,y,w,E,S,C,r,a,g,m,h,v,N){let A=null,D=null,P=new c,T=s,I=l,B=a[0]-h[0]-u,z=-1073741824,x=this.m_forwardHistory.length-1;do{const O=B+e;O===T||O=0&&(E=this.m_forwardHistory[x],e=E[0],T=1,I=E.length-1)}while(--x>=-1);if(A=P.getReverseChanges(),N[0]){let O=a[0]+1,F=h[0]+1;if(A!==null&&A.length>0){const W=A[A.length-1];O=Math.max(O,W.getOriginalEnd()),F=Math.max(F,W.getModifiedEnd())}D=[new M.DiffChange(O,r-O+1,F,m-F+1)]}else{P=new c,T=f,I=y,B=a[0]-h[0]-w,z=1073741824,x=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const O=B+b;O===T||O=S[O+1]?(C=S[O+1]-1,g=C-B-w,C>z&&P.MarkNextChange(),z=C+1,P.AddOriginalElement(C+1,g+1),B=O+1-b):(C=S[O-1],g=C-B-w,C>z&&P.MarkNextChange(),z=C,P.AddModifiedElement(C+1,g+1),B=O-1-b),x>=0&&(S=this.m_reverseHistory[x],b=S[0],T=1,I=S.length-1)}while(--x>=-1);D=P.getChanges()}return this.ConcatenateChanges(A,D)}ComputeRecursionPoint(e,s,l,u,b,f,y){let w=0,E=0,S=0,C=0,r=0,a=0;e--,l--,b[0]=0,f[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const g=s-e+(u-l),m=g+1,h=new Int32Array(m),v=new Int32Array(m),N=u-l,A=s-e,D=e-l,P=s-u,I=(A-N)%2===0;h[N]=e,v[A]=s,y[0]=!1;for(let B=1;B<=g/2+1;B++){let z=0,x=0;S=this.ClipDiagonalBound(N-B,B,N,m),C=this.ClipDiagonalBound(N+B,B,N,m);for(let F=S;F<=C;F+=2){F===S||Fz+x&&(z=w,x=E),!I&&Math.abs(F-A)<=B-1&&w>=v[F])return b[0]=w,f[0]=E,W<=v[F]&&1447>0&&B<=1448?this.WALKTRACE(N,S,C,D,A,r,a,P,h,v,w,s,b,E,u,f,I,y):null}const O=(z-e+(x-l)-B)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(z,O))return y[0]=!0,b[0]=z,f[0]=x,O>0&&1447>0&&B<=1448?this.WALKTRACE(N,S,C,D,A,r,a,P,h,v,w,s,b,E,u,f,I,y):(e++,l++,[new M.DiffChange(e,s-e+1,l,u-l+1)]);r=this.ClipDiagonalBound(A-B,B,A,m),a=this.ClipDiagonalBound(A+B,B,A,m);for(let F=r;F<=a;F+=2){F===r||F=v[F+1]?w=v[F+1]-1:w=v[F-1],E=w-(F-A)-P;const W=w;for(;w>e&&E>l&&this.ElementsAreEqual(w,E);)w--,E--;if(v[F]=w,I&&Math.abs(F-N)<=B&&w<=h[F])return b[0]=w,f[0]=E,W>=h[F]&&1447>0&&B<=1448?this.WALKTRACE(N,S,C,D,A,r,a,P,h,v,w,s,b,E,u,f,I,y):null}if(B<=1447){let F=new Int32Array(C-S+2);F[0]=N-S+1,p.Copy2(h,S,F,1,C-S+1),this.m_forwardHistory.push(F),F=new Int32Array(a-r+2),F[0]=A-r+1,p.Copy2(v,r,F,1,a-r+1),this.m_reverseHistory.push(F)}}return this.WALKTRACE(N,S,C,D,A,r,a,P,h,v,w,s,b,E,u,f,I,y)}PrettifyChanges(e){for(let s=0;s0,y=l.modifiedLength>0;for(;l.originalStart+l.originalLength=0;s--){const l=e[s];let u=0,b=0;if(s>0){const C=e[s-1];u=C.originalStart+C.originalLength,b=C.modifiedStart+C.modifiedLength}const f=l.originalLength>0,y=l.modifiedLength>0;let w=0,E=this._boundaryScore(l.originalStart,l.originalLength,l.modifiedStart,l.modifiedLength);for(let C=1;;C++){const r=l.originalStart-C,a=l.modifiedStart-C;if(rE&&(E=m,w=C)}l.originalStart-=w,l.modifiedStart-=w;const S=[null];if(s>0&&this.ChangesOverlap(e[s-1],e[s],S)){e[s-1]=S[0],e.splice(s,1),s++;continue}}if(this._hasStrings)for(let s=1,l=e.length;s0&&a>w&&(w=a,E=C,S=r)}return w>0?[E,S]:null}_contiguousSequenceScore(e,s,l){let u=0;for(let b=0;b=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,s){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(s>0){const l=e+s;if(this._OriginalIsBoundary(l-1)||this._OriginalIsBoundary(l))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,s){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(s>0){const l=e+s;if(this._ModifiedIsBoundary(l-1)||this._ModifiedIsBoundary(l))return!0}return!1}_boundaryScore(e,s,l,u){const b=this._OriginalRegionIsBoundary(e,s)?1:0,f=this._ModifiedRegionIsBoundary(l,u)?1:0;return b+f}ConcatenateChanges(e,s){const l=[];if(e.length===0||s.length===0)return s.length>0?s:e;if(this.ChangesOverlap(e[e.length-1],s[0],l)){const u=new Array(e.length+s.length-1);return p.Copy(e,0,u,0,e.length-1),u[e.length-1]=l[0],p.Copy(s,1,u,e.length,s.length-1),u}else{const u=new Array(e.length+s.length);return p.Copy(e,0,u,0,e.length),p.Copy(s,0,u,e.length,s.length),u}}ChangesOverlap(e,s,l){if(_.Assert(e.originalStart<=s.originalStart,"Left change is not less than or equal to right change"),_.Assert(e.modifiedStart<=s.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=s.originalStart||e.modifiedStart+e.modifiedLength>=s.modifiedStart){const u=e.originalStart;let b=e.originalLength;const f=e.modifiedStart;let y=e.modifiedLength;return e.originalStart+e.originalLength>=s.originalStart&&(b=s.originalStart+s.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=s.modifiedStart&&(y=s.modifiedStart+s.modifiedLength-e.modifiedStart),l[0]=new M.DiffChange(u,b,f,y),!0}else return l[0]=null,!1}ClipDiagonalBound(e,s,l,u){if(e>=0&&e"u"}t.isUndefined=c;function o(f){return!L(f)}t.isDefined=o;function L(f){return c(f)||f===null}t.isUndefinedOrNull=L;function e(f,y){if(!f)throw new Error(y?`Unexpected type, expected '${y}'`:"Unexpected type")}t.assertType=e;function s(f){if(L(f))throw new Error("Assertion Failed: argument is undefined or null");return f}t.assertIsDefined=s;function l(f){return typeof f=="function"}t.isFunction=l;function u(f,y){const w=Math.min(f.length,y.length);for(let E=0;E{u[b]=f&&typeof f=="object"?R(f):f}),u}t.deepClone=R;function i(l){if(!l||typeof l!="object")return l;const u=[l];for(;u.length>0;){const b=u.shift();Object.freeze(b);for(const f in b)if(d.call(b,f)){const y=b[f];typeof y=="object"&&!Object.isFrozen(y)&&!(0,M.isTypedArray)(y)&&u.push(y)}}return l}t.deepFreeze=i;const d=Object.prototype.hasOwnProperty;function _(l,u){return p(l,u,new Set)}t.cloneAndChange=_;function p(l,u,b){if((0,M.isUndefinedOrNull)(l))return l;const f=u(l);if(typeof f<"u")return f;if(Array.isArray(l)){const y=[];for(const w of l)y.push(p(w,u,b));return y}if((0,M.isObject)(l)){if(b.has(l))throw new Error("Cannot clone recursive data-structure");b.add(l);const y={};for(const w in l)d.call(l,w)&&(y[w]=p(l[w],u,b));return b.delete(l),y}return l}function c(l,u,b=!0){return(0,M.isObject)(l)?((0,M.isObject)(u)&&Object.keys(u).forEach(f=>{f in l?b&&((0,M.isObject)(l[f])&&(0,M.isObject)(u[f])?c(l[f],u[f],b):l[f]=u[f]):l[f]=u[f]}),l):u}t.mixin=c;function o(l,u){if(l===u)return!0;if(l==null||u===null||u===void 0||typeof l!=typeof u||typeof l!="object"||Array.isArray(l)!==Array.isArray(u))return!1;let b,f;if(Array.isArray(l)){if(l.length!==u.length)return!1;for(b=0;bfunction(){const w=Array.prototype.slice.call(arguments,0);return u(y,w)},f={};for(const y of l)f[y]=b(y);return f}t.createProxyObject=s}),X(J[26],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUint32=t.toUint8=void 0;function M(i){return i<0?0:i>255?255:i|0}t.toUint8=M;function R(i){return i<0?0:i>4294967295?4294967295:i|0}t.toUint32=R}),X(J[27],Z([0,1,26]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterSet=t.CharacterClassifier=void 0;class R{constructor(_){const p=(0,M.toUint8)(_);this._defaultValue=p,this._asciiMap=R._createAsciiMap(p),this._map=new Map}static _createAsciiMap(_){const p=new Uint8Array(256);return p.fill(_),p}set(_,p){const c=(0,M.toUint8)(p);_>=0&&_<256?this._asciiMap[_]=c:this._map.set(_,c)}get(_){return _>=0&&_<256?this._asciiMap[_]:this._map.get(_)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}t.CharacterClassifier=R;class i{constructor(){this._actual=new R(0)}add(_){this._actual.set(_,1)}has(_){return this._actual.get(_)===1}clear(){return this._actual.clear()}}t.CharacterSet=i}),X(J[3],Z([0,1,5]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OffsetRangeSet=t.OffsetRange=void 0;class R{static addRange(_,p){let c=0;for(;cp)throw new M.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(_){return new R(this.start+_,this.endExclusive+_)}deltaStart(_){return new R(this.start+_,this.endExclusive)}deltaEnd(_){return new R(this.start,this.endExclusive+_)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(_){return this.start<=_&&_=_.endExclusive}slice(_){return _.slice(this.start,this.endExclusive)}clip(_){if(this.isEmpty)throw new M.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,_))}clipCyclic(_){if(this.isEmpty)throw new M.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return _=this.endExclusive?this.start+(_-this.start)%this.length:_}forEach(_){for(let p=this.start;p_.toString()).join(", ")}intersectsStrict(_){let p=0;for(;p_+p.length,0)}}t.OffsetRangeSet=i}),X(J[4],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Position=void 0;class M{constructor(i,d){this.lineNumber=i,this.column=d}with(i=this.lineNumber,d=this.column){return i===this.lineNumber&&d===this.column?this:new M(i,d)}delta(i=0,d=0){return this.with(this.lineNumber+i,this.column+d)}equals(i){return M.equals(this,i)}static equals(i,d){return!i&&!d?!0:!!i&&!!d&&i.lineNumber===d.lineNumber&&i.column===d.column}isBefore(i){return M.isBefore(this,i)}static isBefore(i,d){return i.lineNumberp||d===p&&_>c?(this.startLineNumber=p,this.startColumn=c,this.endLineNumber=d,this.endColumn=_):(this.startLineNumber=d,this.startColumn=_,this.endLineNumber=p,this.endColumn=c)}isEmpty(){return R.isEmpty(this)}static isEmpty(d){return d.startLineNumber===d.endLineNumber&&d.startColumn===d.endColumn}containsPosition(d){return R.containsPosition(this,d)}static containsPosition(d,_){return!(_.lineNumberd.endLineNumber||_.lineNumber===d.startLineNumber&&_.columnd.endColumn)}static strictContainsPosition(d,_){return!(_.lineNumberd.endLineNumber||_.lineNumber===d.startLineNumber&&_.column<=d.startColumn||_.lineNumber===d.endLineNumber&&_.column>=d.endColumn)}containsRange(d){return R.containsRange(this,d)}static containsRange(d,_){return!(_.startLineNumberd.endLineNumber||_.endLineNumber>d.endLineNumber||_.startLineNumber===d.startLineNumber&&_.startColumnd.endColumn)}strictContainsRange(d){return R.strictContainsRange(this,d)}static strictContainsRange(d,_){return!(_.startLineNumberd.endLineNumber||_.endLineNumber>d.endLineNumber||_.startLineNumber===d.startLineNumber&&_.startColumn<=d.startColumn||_.endLineNumber===d.endLineNumber&&_.endColumn>=d.endColumn)}plusRange(d){return R.plusRange(this,d)}static plusRange(d,_){let p,c,o,L;return _.startLineNumberd.endLineNumber?(o=_.endLineNumber,L=_.endColumn):_.endLineNumber===d.endLineNumber?(o=_.endLineNumber,L=Math.max(_.endColumn,d.endColumn)):(o=d.endLineNumber,L=d.endColumn),new R(p,c,o,L)}intersectRanges(d){return R.intersectRanges(this,d)}static intersectRanges(d,_){let p=d.startLineNumber,c=d.startColumn,o=d.endLineNumber,L=d.endColumn;const e=_.startLineNumber,s=_.startColumn,l=_.endLineNumber,u=_.endColumn;return pl?(o=l,L=u):o===l&&(L=Math.min(L,u)),p>o||p===o&&c>L?null:new R(p,c,o,L)}equalsRange(d){return R.equalsRange(this,d)}static equalsRange(d,_){return!d&&!_?!0:!!d&&!!_&&d.startLineNumber===_.startLineNumber&&d.startColumn===_.startColumn&&d.endLineNumber===_.endLineNumber&&d.endColumn===_.endColumn}getEndPosition(){return R.getEndPosition(this)}static getEndPosition(d){return new M.Position(d.endLineNumber,d.endColumn)}getStartPosition(){return R.getStartPosition(this)}static getStartPosition(d){return new M.Position(d.startLineNumber,d.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(d,_){return new R(this.startLineNumber,this.startColumn,d,_)}setStartPosition(d,_){return new R(d,_,this.endLineNumber,this.endColumn)}collapseToStart(){return R.collapseToStart(this)}static collapseToStart(d){return new R(d.startLineNumber,d.startColumn,d.startLineNumber,d.startColumn)}collapseToEnd(){return R.collapseToEnd(this)}static collapseToEnd(d){return new R(d.endLineNumber,d.endColumn,d.endLineNumber,d.endColumn)}delta(d){return new R(this.startLineNumber+d,this.startColumn,this.endLineNumber+d,this.endColumn)}static fromPositions(d,_=d){return new R(d.lineNumber,d.column,_.lineNumber,_.column)}static lift(d){return d?new R(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn):null}static isIRange(d){return d&&typeof d.startLineNumber=="number"&&typeof d.startColumn=="number"&&typeof d.endLineNumber=="number"&&typeof d.endColumn=="number"}static areIntersectingOrTouching(d,_){return!(d.endLineNumber<_.startLineNumber||d.endLineNumber===_.startLineNumber&&d.endColumn<_.startColumn||_.endLineNumberd.startLineNumber}toJSON(){return this}}t.Range=R}),X(J[10],Z([0,1,5,3,2,11]),function(q,t,M,R,i,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineRangeSet=t.LineRange=void 0;class _{static fromRangeInclusive(o){return new _(o.startLineNumber,o.endLineNumber+1)}static joinMany(o){if(o.length===0)return[];let L=new p(o[0].slice());for(let e=1;eL)throw new M.BugIndicatingError(`startLineNumber ${o} cannot be after endLineNumberExclusive ${L}`);this.startLineNumber=o,this.endLineNumberExclusive=L}contains(o){return this.startLineNumber<=o&&os.endLineNumberExclusive>=o.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,s=>s.startLineNumber<=o.endLineNumberExclusive)+1;if(L===e)this._normalizedRanges.splice(L,0,o);else if(L===e-1){const s=this._normalizedRanges[L];this._normalizedRanges[L]=s.join(o)}else{const s=this._normalizedRanges[L].join(this._normalizedRanges[e-1]).join(o);this._normalizedRanges.splice(L,e-L,s)}}contains(o){const L=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumber<=o);return!!L&&L.endLineNumberExclusive>o}intersects(o){const L=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumbero.startLineNumber}getUnion(o){if(this._normalizedRanges.length===0)return o;if(o._normalizedRanges.length===0)return this;const L=[];let e=0,s=0,l=null;for(;e=u.startLineNumber?l=new _(l.startLineNumber,Math.max(l.endLineNumberExclusive,u.endLineNumberExclusive)):(L.push(l),l=u)}return l!==null&&L.push(l),new p(L)}subtractFrom(o){const L=(0,d.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,u=>u.endLineNumberExclusive>=o.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,u=>u.startLineNumber<=o.endLineNumberExclusive)+1;if(L===e)return new p([o]);const s=[];let l=o.startLineNumber;for(let u=L;ul&&s.push(new _(l,b.startLineNumber)),l=b.endLineNumberExclusive}return lo.toString()).join(", ")}getIntersection(o){const L=[];let e=0,s=0;for(;eL.delta(o)))}}t.LineRangeSet=p}),X(J[41],Z([0,1,4,2]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Selection=void 0;class i extends R.Range{constructor(_,p,c,o){super(_,p,c,o),this.selectionStartLineNumber=_,this.selectionStartColumn=p,this.positionLineNumber=c,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(_){return i.selectionsEqual(this,_)}static selectionsEqual(_,p){return _.selectionStartLineNumber===p.selectionStartLineNumber&&_.selectionStartColumn===p.selectionStartColumn&&_.positionLineNumber===p.positionLineNumber&&_.positionColumn===p.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(_,p){return this.getDirection()===0?new i(this.startLineNumber,this.startColumn,_,p):new i(_,p,this.startLineNumber,this.startColumn)}getPosition(){return new M.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new M.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(_,p){return this.getDirection()===0?new i(_,p,this.endLineNumber,this.endColumn):new i(this.endLineNumber,this.endColumn,_,p)}static fromPositions(_,p=_){return new i(_.lineNumber,_.column,p.lineNumber,p.column)}static fromRange(_,p){return p===0?new i(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn):new i(_.endLineNumber,_.endColumn,_.startLineNumber,_.startColumn)}static liftSelection(_){return new i(_.selectionStartLineNumber,_.selectionStartColumn,_.positionLineNumber,_.positionColumn)}static selectionsArrEqual(_,p){if(_&&!p||!_&&p)return!1;if(!_&&!p)return!0;if(_.length!==p.length)return!1;for(let c=0,o=_.length;c(_.hasOwnProperty(p)||(_[p]=d(p)),_[p])}t.getMapForWordSeparators=i(d=>new R(d))}),X(J[28],Z([0,1,21,22]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getWordAtText=t.ensureValidWordDefinition=t.DEFAULT_WORD_REGEXP=t.USUAL_WORD_SEPARATORS=void 0,t.USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function i(o=""){let L="(-?\\d*\\.\\d\\w*)|([^";for(const e of t.USUAL_WORD_SEPARATORS)o.indexOf(e)>=0||(L+="\\"+e);return L+="\\s]+)",new RegExp(L,"g")}t.DEFAULT_WORD_REGEXP=i();function d(o){let L=t.DEFAULT_WORD_REGEXP;if(o&&o instanceof RegExp)if(o.global)L=o;else{let e="g";o.ignoreCase&&(e+="i"),o.multiline&&(e+="m"),o.unicode&&(e+="u"),L=new RegExp(o.source,e)}return L.lastIndex=0,L}t.ensureValidWordDefinition=d;const _=new R.LinkedList;_.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function p(o,L,e,s,l){if(L=d(L),l||(l=M.Iterable.first(_)),e.length>l.maxLen){let w=o-l.maxLen/2;return w<0?w=0:s+=w,e=e.substring(w,o+l.maxLen/2),p(o,L,e,s,l)}const u=Date.now(),b=o-1-s;let f=-1,y=null;for(let w=1;!(Date.now()-u>=l.timeBudget);w++){const E=b-l.windowSize*w;L.lastIndex=Math.max(0,E);const S=c(L,e,b,f);if(!S&&y||(y=S,E<=0))break;f=E}if(y){const w={word:y[0],startColumn:s+1+y.index,endColumn:s+1+y.index+y[0].length};return L.lastIndex=0,w}return null}t.getWordAtText=p;function c(o,L,e,s){let l;for(;l=o.exec(L);){const u=l.index||0;if(u<=e&&o.lastIndex>=e)return l;if(s>0&&u>s)return null}return null}}),X(J[8],Z([0,1,7,5,3]),function(q,t,M,R,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimeout=t.InfiniteTimeout=t.OffsetPair=t.SequenceDiff=t.DiffAlgorithmResult=void 0;class d{static trivial(e,s){return new d([new _(i.OffsetRange.ofLength(e.length),i.OffsetRange.ofLength(s.length))],!1)}static trivialTimedOut(e,s){return new d([new _(i.OffsetRange.ofLength(e.length),i.OffsetRange.ofLength(s.length))],!0)}constructor(e,s){this.diffs=e,this.hitTimeout=s}}t.DiffAlgorithmResult=d;class _{static invert(e,s){const l=[];return(0,M.forEachAdjacent)(e,(u,b)=>{l.push(_.fromOffsetPairs(u?u.getEndExclusives():p.zero,b?b.getStarts():new p(s,(u?u.seq2Range.endExclusive-u.seq1Range.endExclusive:0)+s)))}),l}static fromOffsetPairs(e,s){return new _(new i.OffsetRange(e.offset1,s.offset1),new i.OffsetRange(e.offset2,s.offset2))}constructor(e,s){this.seq1Range=e,this.seq2Range=s}swap(){return new _(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new _(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new _(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new _(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new _(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const s=this.seq1Range.intersect(e.seq1Range),l=this.seq2Range.intersect(e.seq2Range);if(!(!s||!l))return new _(s,l)}getStarts(){return new p(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new p(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}t.SequenceDiff=_;class p{constructor(e,s){this.offset1=e,this.offset2=s}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new p(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}t.OffsetPair=p,p.zero=new p(0,0),p.max=new p(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class c{isValid(){return!0}}t.InfiniteTimeout=c,c.instance=new c;class o{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new R.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimes.length||A>l.length)continue;const D=u(N,A);f.set(w,D);const P=N===h?y.get(w+1):y.get(w-1);if(y.set(w,D!==N?new d(P,N,A,D-N):P),f.get(w)===s.length&&f.get(w)-w===l.length)break e}}let E=y.get(w);const S=[];let C=s.length,r=l.length;for(;;){const a=E?E.x+E.length:0,g=E?E.y+E.length:0;if((a!==C||g!==r)&&S.push(new R.SequenceDiff(new M.OffsetRange(a,C),new M.OffsetRange(g,r))),!E)break;C=E.x,r=E.y,E=E.prev}return S.reverse(),new R.DiffAlgorithmResult(S,!1)}}t.MyersDiffAlgorithm=i;class d{constructor(o,L,e,s){this.prev=o,this.x=L,this.y=e,this.length=s}}class _{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(o){return o<0?(o=-o-1,this.negativeArr[o]):this.positiveArr[o]}set(o,L){if(o<0){if(o=-o-1,o>=this.negativeArr.length){const e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[o]=L}else{if(o>=this.positiveArr.length){const e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[o]=L}}}class p{constructor(){this.positiveArr=[],this.negativeArr=[]}get(o){return o<0?(o=-o-1,this.negativeArr[o]):this.positiveArr[o]}set(o,L){o<0?(o=-o-1,this.negativeArr[o]=L):this.positiveArr[o]=L}}}),X(J[43],Z([0,1,7,3,8]),function(q,t,M,R,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeVeryShortMatchingTextBetweenLongDiffs=t.removeVeryShortMatchingLinesBetweenDiffs=t.extendDiffsToEntireWordIfAppropriate=t.removeShortMatches=t.optimizeSequenceDiffs=void 0;function d(u,b,f){let y=f;return y=_(u,b,y),y=_(u,b,y),y=p(u,b,y),y}t.optimizeSequenceDiffs=d;function _(u,b,f){if(f.length===0)return f;const y=[];y.push(f[0]);for(let E=1;E0&&(C=C.delta(a))}w.push(C)}return y.length>0&&w.push(y[y.length-1]),w}function p(u,b,f){if(!u.getBoundaryScore||!b.getBoundaryScore)return f;for(let y=0;y0?f[y-1]:void 0,E=f[y],S=y+1=y.start&&u.seq2Range.start-S>=w.start&&f.isStronglyEqual(u.seq2Range.start-S,u.seq2Range.endExclusive-S)&&S<100;)S++;S--;let C=0;for(;u.seq1Range.start+Ca&&(a=N,r=g)}return u.delta(r)}function o(u,b,f){const y=[];for(const w of f){const E=y[y.length-1];if(!E){y.push(w);continue}w.seq1Range.start-E.seq1Range.endExclusive<=2||w.seq2Range.start-E.seq2Range.endExclusive<=2?y[y.length-1]=new i.SequenceDiff(E.seq1Range.join(w.seq1Range),E.seq2Range.join(w.seq2Range)):y.push(w)}return y}t.removeShortMatches=o;function L(u,b,f){const y=i.SequenceDiff.invert(f,u.length),w=[];let E=new i.OffsetPair(0,0);function S(r,a){if(r.offset10;){const D=y[0];if(!(D.seq1Range.intersects(g)||D.seq2Range.intersects(m)))break;const T=u.findWordContaining(D.seq1Range.start),I=b.findWordContaining(D.seq2Range.start),B=new i.SequenceDiff(T,I),z=B.intersect(D);if(N+=z.seq1Range.length,A+=z.seq2Range.length,h=h.join(B),h.seq1Range.endExclusive>=D.seq1Range.endExclusive)y.shift();else break}N+A<(h.seq1Range.length+h.seq2Range.length)*2/3&&w.push(h),E=h.getEndExclusives()}for(;y.length>0;){const r=y.shift();r.seq1Range.isEmpty||(S(r.getStarts(),r),S(r.getEndExclusives().delta(-1),r))}return e(f,w)}t.extendDiffsToEntireWordIfAppropriate=L;function e(u,b){const f=[];for(;u.length>0||b.length>0;){const y=u[0],w=b[0];let E;y&&(!w||y.seq1Range.start0&&f[f.length-1].seq1Range.endExclusive>=E.seq1Range.start?f[f.length-1]=f[f.length-1].join(E):f.push(E)}return f}function s(u,b,f){let y=f;if(y.length===0)return y;let w=0,E;do{E=!1;const S=[y[0]];for(let C=1;C5||v.seq1Range.length+v.seq2Range.length>5)};const r=y[C],a=S[S.length-1];g(a,r)?(E=!0,S[S.length-1]=S[S.length-1].join(r)):S.push(r)}y=S}while(w++<10&&E);return y}t.removeVeryShortMatchingLinesBetweenDiffs=s;function l(u,b,f){let y=f;if(y.length===0)return y;let w=0,E;do{E=!1;const C=[y[0]];for(let r=1;r5||A.length>500)return!1;const P=u.getText(A).trim();if(P.length>20||P.split(/\r\n|\r|\n/).length>1)return!1;const T=u.countLinesIn(v.seq1Range),I=v.seq1Range.length,B=b.countLinesIn(v.seq2Range),z=v.seq2Range.length,x=u.countLinesIn(N.seq1Range),O=N.seq1Range.length,F=b.countLinesIn(N.seq2Range),W=N.seq2Range.length,H=2*40+50;function G(ne){return Math.min(ne,H)}return Math.pow(Math.pow(G(T*40+I),1.5)+Math.pow(G(B*40+z),1.5),1.5)+Math.pow(Math.pow(G(x*40+O),1.5)+Math.pow(G(F*40+W),1.5),1.5)>(H**1.5)**1.5*1.3};const a=y[r],g=C[C.length-1];m(g,a)?(E=!0,C[C.length-1]=C[C.length-1].join(a)):C.push(a)}y=C}while(w++<10&&E);const S=[];return(0,M.forEachWithNeighbors)(y,(C,r,a)=>{let g=r;function m(P){return P.length>0&&P.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}const h=u.extendToFullLines(r.seq1Range),v=u.getText(new R.OffsetRange(h.start,r.seq1Range.start));m(v)&&(g=g.deltaStart(-v.length));const N=u.getText(new R.OffsetRange(r.seq1Range.endExclusive,h.endExclusive));m(N)&&(g=g.deltaEnd(N.length));const A=i.SequenceDiff.fromOffsetPairs(C?C.getEndExclusives():i.OffsetPair.zero,a?a.getStarts():i.OffsetPair.max),D=g.intersect(A);S.length>0&&D.getStarts().equals(S[S.length-1].getEndExclusives())?S[S.length-1]=S[S.length-1].join(D):S.push(D)}),S}t.removeVeryShortMatchingTextBetweenLongDiffs=l}),X(J[44],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineSequence=void 0;class M{constructor(d,_){this.trimmedHash=d,this.lines=_}getElement(d){return this.trimmedHash[d]}get length(){return this.trimmedHash.length}getBoundaryScore(d){const _=d===0?0:R(this.lines[d-1]),p=d===this.lines.length?0:R(this.lines[d]);return 1e3-(_+p)}getText(d){return this.lines.slice(d.start,d.endExclusive).join(` +`)}isStronglyEqual(d,_){return this.lines[d]===this.lines[_]}}t.LineSequence=M;function R(i){let d=0;for(;d0&&C>0&&s.get(S-1,C-1)===3&&(g+=l.get(S-1,C-1)),g+=L?L(S,C):1):g=-1;const m=Math.max(r,a,g);if(m===g){const h=S>0&&C>0?l.get(S-1,C-1):0;l.set(S,C,h+1),s.set(S,C,3)}else m===r?(l.set(S,C,0),s.set(S,C,1)):m===a&&(l.set(S,C,0),s.set(S,C,2));e.set(S,C,m)}const u=[];let b=p.length,f=c.length;function y(S,C){(S+1!==b||C+1!==f)&&u.push(new R.SequenceDiff(new M.OffsetRange(S+1,b),new M.OffsetRange(C+1,f))),b=S,f=C}let w=p.length-1,E=c.length-1;for(;w>=0&&E>=0;)s.get(w,E)===3?(y(w,E),w--,E--):s.get(w,E)===1?w--:E--;return y(-1,-1),u.reverse(),new R.DiffAlgorithmResult(u,!1)}}t.DynamicProgrammingDiffing=d}),X(J[30],Z([0,1,11,3,4,2,15]),function(q,t,M,R,i,d,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinesSliceCharSequence=void 0;class p{constructor(l,u,b){this.lines=l,this.considerWhitespaceChanges=b,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let f=!1;u.start>0&&u.endExclusive>=l.length&&(u=new R.OffsetRange(u.start-1,u.endExclusive),f=!0),this.lineRange=u,this.firstCharOffsetByLine[0]=0;for(let y=this.lineRange.start;yString.fromCharCode(u)).join("")}getElement(l){return this.elements[l]}get length(){return this.elements.length}getBoundaryScore(l){const u=e(l>0?this.elements[l-1]:-1),b=e(lb<=l);return new i.Position(this.lineRange.start+u+1,l-this.firstCharOffsetByLine[u]+this.additionalOffsetByLine[u]+1)}translateRange(l){return d.Range.fromPositions(this.translateOffset(l.start),this.translateOffset(l.endExclusive))}findWordContaining(l){if(l<0||l>=this.elements.length||!c(this.elements[l]))return;let u=l;for(;u>0&&c(this.elements[u-1]);)u--;let b=l;for(;bw<=l.start))!==null&&u!==void 0?u:0,y=(b=(0,M.findFirstMonotonous)(this.firstCharOffsetByLine,w=>l.endExclusive<=w))!==null&&b!==void 0?b:this.elements.length;return new R.OffsetRange(f,y)}}t.LinesSliceCharSequence=p;function c(s){return s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57}const o={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function L(s){return o[s]}function e(s){return s===10?8:s===13?7:(0,_.isSpace)(s)?6:s>=97&&s<=122?0:s>=65&&s<=90?1:s>=48&&s<=57?2:s===-1?3:s===44||s===59?5:4}}),X(J[31],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MovedText=t.LinesDiff=void 0;class M{constructor(d,_,p){this.changes=d,this.moves=_,this.hitTimeout=p}}t.LinesDiff=M;class R{constructor(d,_){this.lineRangeMapping=d,this.changes=_}}t.MovedText=R}),X(J[16],Z([0,1,10]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RangeMapping=t.DetailedLineRangeMapping=t.LineRangeMapping=void 0;class R{static inverse(p,c,o){const L=[];let e=1,s=1;for(const u of p){const b=new R(new M.LineRange(e,u.original.startLineNumber),new M.LineRange(s,u.modified.startLineNumber));b.modified.isEmpty||L.push(b),e=u.original.endLineNumberExclusive,s=u.modified.endLineNumberExclusive}const l=new R(new M.LineRange(e,c+1),new M.LineRange(s,o+1));return l.modified.isEmpty||L.push(l),L}static clip(p,c,o){const L=[];for(const e of p){const s=e.original.intersect(c),l=e.modified.intersect(o);s&&!s.isEmpty&&l&&!l.isEmpty&&L.push(new R(s,l))}return L}constructor(p,c){this.original=p,this.modified=c}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new R(this.modified,this.original)}join(p){return new R(this.original.join(p.original),this.modified.join(p.modified))}}t.LineRangeMapping=R;class i extends R{constructor(p,c,o){super(p,c),this.innerChanges=o}flip(){var p;return new i(this.modified,this.original,(p=this.innerChanges)===null||p===void 0?void 0:p.map(c=>c.flip()))}}t.DetailedLineRangeMapping=i;class d{constructor(p,c){this.originalRange=p,this.modifiedRange=c}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new d(this.modifiedRange,this.originalRange)}}t.RangeMapping=d}),X(J[46],Z([0,1,8,16,7,11,37,10,3,30,15,29]),function(q,t,M,R,i,d,_,p,c,o,L,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeMovedLines=void 0;function s(E,S,C,r,a,g){let{moves:m,excludedChanges:h}=u(E,S,C,g);if(!g.isValid())return[];const v=E.filter(A=>!h.has(A)),N=b(v,r,a,S,C,g);return(0,i.pushMany)(m,N),m=y(m),m=m.filter(A=>{const D=A.original.toOffsetRange().slice(S).map(T=>T.trim());return D.join(` +`).length>=15&&l(D,T=>T.length>=2)>=2}),m=w(E,m),m}t.computeMovedLines=s;function l(E,S){let C=0;for(const r of E)S(r)&&C++;return C}function u(E,S,C,r){const a=[],g=E.filter(v=>v.modified.isEmpty&&v.original.length>=3).map(v=>new L.LineRangeFragment(v.original,S,v)),m=new Set(E.filter(v=>v.original.isEmpty&&v.modified.length>=3).map(v=>new L.LineRangeFragment(v.modified,C,v))),h=new Set;for(const v of g){let N=-1,A;for(const D of m){const P=v.computeSimilarity(D);P>N&&(N=P,A=D)}if(N>.9&&A&&(m.delete(A),a.push(new R.LineRangeMapping(v.range,A.range)),h.add(v.source),h.add(A.source)),!r.isValid())return{moves:a,excludedChanges:h}}return{moves:a,excludedChanges:h}}function b(E,S,C,r,a,g){const m=[],h=new _.SetMap;for(const P of E)for(let T=P.original.startLineNumber;TP.modified.startLineNumber,i.numberComparator));for(const P of E){let T=[];for(let I=P.modified.startLineNumber;I{for(const W of T)if(W.originalLineRange.endLineNumberExclusive+1===O.endLineNumberExclusive&&W.modifiedLineRange.endLineNumberExclusive+1===z.endLineNumberExclusive){W.originalLineRange=new p.LineRange(W.originalLineRange.startLineNumber,O.endLineNumberExclusive),W.modifiedLineRange=new p.LineRange(W.modifiedLineRange.startLineNumber,z.endLineNumberExclusive),x.push(W);return}const F={modifiedLineRange:z,originalLineRange:O};v.push(F),x.push(F)}),T=x}if(!g.isValid())return[]}v.sort((0,i.reverseOrder)((0,i.compareBy)(P=>P.modifiedLineRange.length,i.numberComparator)));const N=new p.LineRangeSet,A=new p.LineRangeSet;for(const P of v){const T=P.modifiedLineRange.startLineNumber-P.originalLineRange.startLineNumber,I=N.subtractFrom(P.modifiedLineRange),B=A.subtractFrom(P.originalLineRange).getWithDelta(T),z=I.getIntersection(B);for(const x of z.ranges){if(x.length<3)continue;const O=x,F=x.delta(-T);m.push(new R.LineRangeMapping(F,O)),N.addRange(O),A.addRange(F)}}m.sort((0,i.compareBy)(P=>P.original.startLineNumber,i.numberComparator));const D=new d.MonotonousArray(E);for(let P=0;PG.original.startLineNumber<=T.original.startLineNumber),B=(0,d.findLastMonotonous)(E,G=>G.modified.startLineNumber<=T.modified.startLineNumber),z=Math.max(T.original.startLineNumber-I.original.startLineNumber,T.modified.startLineNumber-B.modified.startLineNumber),x=D.findLastMonotonous(G=>G.original.startLineNumberG.modified.startLineNumberr.length||ne>a.length||N.contains(ne)||A.contains(G)||!f(r[G-1],a[ne-1],g))break}W>0&&(A.addRange(new p.LineRange(T.original.startLineNumber-W,T.original.startLineNumber)),N.addRange(new p.LineRange(T.modified.startLineNumber-W,T.modified.startLineNumber)));let H;for(H=0;Hr.length||ne>a.length||N.contains(ne)||A.contains(G)||!f(r[G-1],a[ne-1],g))break}H>0&&(A.addRange(new p.LineRange(T.original.endLineNumberExclusive,T.original.endLineNumberExclusive+H)),N.addRange(new p.LineRange(T.modified.endLineNumberExclusive,T.modified.endLineNumberExclusive+H))),(W>0||H>0)&&(m[P]=new R.LineRangeMapping(new p.LineRange(T.original.startLineNumber-W,T.original.endLineNumberExclusive+H),new p.LineRange(T.modified.startLineNumber-W,T.modified.endLineNumberExclusive+H)))}return m}function f(E,S,C){if(E.trim()===S.trim())return!0;if(E.length>300&&S.length>300)return!1;const a=new e.MyersDiffAlgorithm().compute(new o.LinesSliceCharSequence([E],new c.OffsetRange(0,1),!1),new o.LinesSliceCharSequence([S],new c.OffsetRange(0,1),!1),C);let g=0;const m=M.SequenceDiff.invert(a.diffs,E.length);for(const A of m)A.seq1Range.forEach(D=>{(0,L.isSpace)(E.charCodeAt(D))||g++});function h(A){let D=0;for(let P=0;PS.length?E:S);return g/v>.6&&v>10}function y(E){if(E.length===0)return E;E.sort((0,i.compareBy)(C=>C.original.startLineNumber,i.numberComparator));const S=[E[0]];for(let C=1;C=0&&m>=0&&g+m<=2){S[S.length-1]=r.join(a);continue}S.push(a)}return S}function w(E,S){const C=new d.MonotonousArray(E);return S=S.filter(r=>{const a=C.findLastMonotonous(h=>h.original.startLineNumberh.modified.startLineNumberH===G))return new s.LinesDiff([],[],!1);if(S.length===1&&S[0].length===0||C.length===1&&C[0].length===0)return new s.LinesDiff([new l.DetailedLineRangeMapping(new i.LineRange(1,S.length+1),new i.LineRange(1,C.length+1),[new l.RangeMapping(new _.Range(1,1,S.length,S[0].length+1),new _.Range(1,1,C.length,C[0].length+1))])],[],!1);const a=r.maxComputationTimeMs===0?p.InfiniteTimeout.instance:new p.DateTimeout(r.maxComputationTimeMs),g=!r.ignoreTrimWhitespace,m=new Map;function h(H){let G=m.get(H);return G===void 0&&(G=m.size,m.set(H,G)),G}const v=S.map(H=>h(H.trim())),N=C.map(H=>h(H.trim())),A=new b.LineSequence(v,S),D=new b.LineSequence(N,C),P=A.length+D.length<1700?this.dynamicProgrammingDiffing.compute(A,D,a,(H,G)=>S[H]===C[G]?C[G].length===0?.1:1+Math.log(1+C[G].length):.99):this.myersDiffingAlgorithm.compute(A,D);let T=P.diffs,I=P.hitTimeout;T=(0,e.optimizeSequenceDiffs)(A,D,T),T=(0,e.removeVeryShortMatchingLinesBetweenDiffs)(A,D,T);const B=[],z=H=>{if(g)for(let G=0;GH.seq1Range.start-x===H.seq2Range.start-O);const G=H.seq1Range.start-x;z(G),x=H.seq1Range.endExclusive,O=H.seq2Range.endExclusive;const ne=this.refineDiff(S,C,H,a,g);ne.hitTimeout&&(I=!0);for(const se of ne.mappings)B.push(se)}z(S.length-x);const F=y(B,S,C);let W=[];return r.computeMoves&&(W=this.computeMoves(F,S,C,v,N,a,g)),(0,R.assertFn)(()=>{function H(ne,se){if(ne.lineNumber<1||ne.lineNumber>se.length)return!1;const n=se[ne.lineNumber-1];return!(ne.column<1||ne.column>n.length+1)}function G(ne,se){return!(ne.startLineNumber<1||ne.startLineNumber>se.length+1||ne.endLineNumberExclusive<1||ne.endLineNumberExclusive>se.length+1)}for(const ne of F){if(!ne.innerChanges)return!1;for(const se of ne.innerChanges)if(!(H(se.modifiedRange.getStartPosition(),C)&&H(se.modifiedRange.getEndPosition(),C)&&H(se.originalRange.getStartPosition(),S)&&H(se.originalRange.getEndPosition(),S)))return!1;if(!G(ne.modified,C)||!G(ne.original,S))return!1}return!0}),new s.LinesDiff(F,W,I)}computeMoves(S,C,r,a,g,m,h){return(0,L.computeMovedLines)(S,C,r,a,g,m).map(A=>{const D=this.refineDiff(C,r,new p.SequenceDiff(A.original.toOffsetRange(),A.modified.toOffsetRange()),m,h),P=y(D.mappings,C,r,!0);return new s.MovedText(A,P)})}refineDiff(S,C,r,a,g){const m=new u.LinesSliceCharSequence(S,r.seq1Range,g),h=new u.LinesSliceCharSequence(C,r.seq2Range,g),v=m.length+h.length<500?this.dynamicProgrammingDiffing.compute(m,h,a):this.myersDiffingAlgorithm.compute(m,h,a);let N=v.diffs;return N=(0,e.optimizeSequenceDiffs)(m,h,N),N=(0,e.extendDiffsToEntireWordIfAppropriate)(m,h,N),N=(0,e.removeShortMatches)(m,h,N),N=(0,e.removeVeryShortMatchingTextBetweenLongDiffs)(m,h,N),{mappings:N.map(D=>new l.RangeMapping(m.translateRange(D.seq1Range),h.translateRange(D.seq2Range))),hitTimeout:v.hitTimeout}}}t.DefaultLinesDiffComputer=f;function y(E,S,C,r=!1){const a=[];for(const g of(0,M.groupAdjacentBy)(E.map(m=>w(m,S,C)),(m,h)=>m.original.overlapOrTouch(h.original)||m.modified.overlapOrTouch(h.modified))){const m=g[0],h=g[g.length-1];a.push(new l.DetailedLineRangeMapping(m.original.join(h.original),m.modified.join(h.modified),g.map(v=>v.innerChanges[0])))}return(0,R.assertFn)(()=>!r&&a.length>0&&a[0].original.startLineNumber!==a[0].modified.startLineNumber?!1:(0,R.checkAdjacentItems)(a,(g,m)=>m.original.startLineNumber-g.original.endLineNumberExclusive===m.modified.startLineNumber-g.modified.endLineNumberExclusive&&g.original.endLineNumberExclusive=C[E.modifiedRange.startLineNumber-1].length&&E.originalRange.startColumn-1>=S[E.originalRange.startLineNumber-1].length&&E.originalRange.startLineNumber<=E.originalRange.endLineNumber+a&&E.modifiedRange.startLineNumber<=E.modifiedRange.endLineNumber+a&&(r=1);const g=new i.LineRange(E.originalRange.startLineNumber+r,E.originalRange.endLineNumber+1+a),m=new i.LineRange(E.modifiedRange.startLineNumber+r,E.modifiedRange.endLineNumber+1+a);return new l.DetailedLineRangeMapping(g,m,[E])}t.getLineRangeMapping=w}),X(J[48],Z([0,1,24,31,16,6,2,12,10]),function(q,t,M,R,i,d,_,p,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiffComputer=t.LegacyLinesDiffComputer=void 0;const o=3;class L{computeDiff(r,a,g){var m;const v=new y(r,a,{maxComputationTime:g.maxComputationTimeMs,shouldIgnoreTrimWhitespace:g.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),N=[];let A=null;for(const D of v.changes){let P;D.originalEndLineNumber===0?P=new c.LineRange(D.originalStartLineNumber+1,D.originalStartLineNumber+1):P=new c.LineRange(D.originalStartLineNumber,D.originalEndLineNumber+1);let T;D.modifiedEndLineNumber===0?T=new c.LineRange(D.modifiedStartLineNumber+1,D.modifiedStartLineNumber+1):T=new c.LineRange(D.modifiedStartLineNumber,D.modifiedEndLineNumber+1);let I=new i.DetailedLineRangeMapping(P,T,(m=D.charChanges)===null||m===void 0?void 0:m.map(B=>new i.RangeMapping(new _.Range(B.originalStartLineNumber,B.originalStartColumn,B.originalEndLineNumber,B.originalEndColumn),new _.Range(B.modifiedStartLineNumber,B.modifiedStartColumn,B.modifiedEndLineNumber,B.modifiedEndColumn))));A&&(A.modified.endLineNumberExclusive===I.modified.startLineNumber||A.original.endLineNumberExclusive===I.original.startLineNumber)&&(I=new i.DetailedLineRangeMapping(A.original.join(I.original),A.modified.join(I.modified),A.innerChanges&&I.innerChanges?A.innerChanges.concat(I.innerChanges):void 0),N.pop()),N.push(I),A=I}return(0,p.assertFn)(()=>(0,p.checkAdjacentItems)(N,(D,P)=>P.original.startLineNumber-D.original.endLineNumberExclusive===P.modified.startLineNumber-D.modified.endLineNumberExclusive&&D.original.endLineNumberExclusive(r===10?"\\n":String.fromCharCode(r))+`-(${this._lineNumbers[a]},${this._columns[a]})`).join(", ")+"]"}_assertIndex(r,a){if(r<0||r>=a.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(r){return r>0&&r===this._lineNumbers.length?this.getEndLineNumber(r-1):(this._assertIndex(r,this._lineNumbers),this._lineNumbers[r])}getEndLineNumber(r){return r===-1?this.getStartLineNumber(r+1):(this._assertIndex(r,this._lineNumbers),this._charCodes[r]===10?this._lineNumbers[r]+1:this._lineNumbers[r])}getStartColumn(r){return r>0&&r===this._columns.length?this.getEndColumn(r-1):(this._assertIndex(r,this._columns),this._columns[r])}getEndColumn(r){return r===-1?this.getStartColumn(r+1):(this._assertIndex(r,this._columns),this._charCodes[r]===10?1:this._columns[r]+1)}}class u{constructor(r,a,g,m,h,v,N,A){this.originalStartLineNumber=r,this.originalStartColumn=a,this.originalEndLineNumber=g,this.originalEndColumn=m,this.modifiedStartLineNumber=h,this.modifiedStartColumn=v,this.modifiedEndLineNumber=N,this.modifiedEndColumn=A}static createFromDiffChange(r,a,g){const m=a.getStartLineNumber(r.originalStart),h=a.getStartColumn(r.originalStart),v=a.getEndLineNumber(r.originalStart+r.originalLength-1),N=a.getEndColumn(r.originalStart+r.originalLength-1),A=g.getStartLineNumber(r.modifiedStart),D=g.getStartColumn(r.modifiedStart),P=g.getEndLineNumber(r.modifiedStart+r.modifiedLength-1),T=g.getEndColumn(r.modifiedStart+r.modifiedLength-1);return new u(m,h,v,N,A,D,P,T)}}function b(C){if(C.length<=1)return C;const r=[C[0]];let a=r[0];for(let g=1,m=C.length;g0&&a.originalLength<20&&a.modifiedLength>0&&a.modifiedLength<20&&h()){const B=g.createCharSequence(r,a.originalStart,a.originalStart+a.originalLength-1),z=m.createCharSequence(r,a.modifiedStart,a.modifiedStart+a.modifiedLength-1);if(B.getElements().length>0&&z.getElements().length>0){let x=e(B,z,h,!0).changes;N&&(x=b(x)),I=[];for(let O=0,F=x.length;O1&&x>1;){const O=I.charCodeAt(z-2),F=B.charCodeAt(x-2);if(O!==F)break;z--,x--}(z>1||x>1)&&this._pushTrimWhitespaceCharChange(m,h+1,1,z,v+1,1,x)}{let z=E(I,1),x=E(B,1);const O=I.length+1,F=B.length+1;for(;z!0;const r=Date.now();return()=>Date.now()-rnew M.LegacyLinesDiffComputer,getDefault:()=>new R.DefaultLinesDiffComputer}}),X(J[50],Z([0,1,33]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeDefaultDocumentColors=void 0;function R(s){const l=[];for(const u of s){const b=Number(u);(b||b===0&&u.replace(/\s/g,"")!=="")&&l.push(b)}return l}function i(s,l,u,b){return{red:s/255,blue:u/255,green:l/255,alpha:b}}function d(s,l){const u=l.index,b=l[0].length;if(!u)return;const f=s.positionAt(u);return{startLineNumber:f.lineNumber,startColumn:f.column,endLineNumber:f.lineNumber,endColumn:f.column+b}}function _(s,l){if(!s)return;const u=M.Color.Format.CSS.parseHex(l);if(u)return{range:s,color:i(u.rgba.r,u.rgba.g,u.rgba.b,u.rgba.a)}}function p(s,l,u){if(!s||l.length!==1)return;const f=l[0].values(),y=R(f);return{range:s,color:i(y[0],y[1],y[2],u?y[3]:1)}}function c(s,l,u){if(!s||l.length!==1)return;const f=l[0].values(),y=R(f),w=new M.Color(new M.HSLA(y[0],y[1]/100,y[2]/100,u?y[3]:1));return{range:s,color:i(w.rgba.r,w.rgba.g,w.rgba.b,w.rgba.a)}}function o(s,l){return typeof s=="string"?[...s.matchAll(l)]:s.findMatches(l)}function L(s){const l=[],b=o(s,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(b.length>0)for(const f of b){const y=f.filter(C=>C!==void 0),w=y[1],E=y[2];if(!E)continue;let S;if(w==="rgb"){const C=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;S=p(d(s,f),o(E,C),!1)}else if(w==="rgba"){const C=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;S=p(d(s,f),o(E,C),!0)}else if(w==="hsl"){const C=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;S=c(d(s,f),o(E,C),!1)}else if(w==="hsla"){const C=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;S=c(d(s,f),o(E,C),!0)}else w==="#"&&(S=_(d(s,f),w+E));S&&l.push(S)}return l}function e(s){return!s||typeof s.getValue!="function"||typeof s.positionAt!="function"?[]:L(s)}t.computeDefaultDocumentColors=e}),X(J[51],Z([0,1,27]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeLinks=t.LinkComputer=t.StateMachine=void 0;class R{constructor(s,l,u){const b=new Uint8Array(s*l);for(let f=0,y=s*l;fl&&(l=E),w>u&&(u=w),S>u&&(u=S)}l++,u++;const b=new R(u,l,0);for(let f=0,y=s.length;f=this._maxCharCode?0:this._states.get(s,l)}}t.StateMachine=i;let d=null;function _(){return d===null&&(d=new i([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),d}let p=null;function c(){if(p===null){p=new M.CharacterClassifier(0);const e=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let l=0;lb);if(b>0){const w=l.charCodeAt(b-1),E=l.charCodeAt(y);(w===40&&E===41||w===91&&E===93||w===123&&E===125)&&y--}return{range:{startLineNumber:u,startColumn:b+1,endLineNumber:u,endColumn:y+2},url:l.substring(b,y+1)}}static computeLinks(s,l=_()){const u=c(),b=[];for(let f=1,y=s.getLineCount();f<=y;f++){const w=s.getLineContent(f),E=w.length;let S=0,C=0,r=0,a=1,g=!1,m=!1,h=!1,v=!1;for(;S=0?(p+=_?1:-1,p<0?p=i.length-1:p%=i.length,i[p]):null}}t.BasicInplaceReplace=M,M.INSTANCE=new M}),X(J[53],Z([0,1,14]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldSynchronizeModel=t.ApplyEditsResult=t.SearchData=t.ValidAnnotatedEditOperation=t.isITextSnapshot=t.FindMatch=t.TextModelResolvedOptions=t.InjectedTextCursorStops=t.MinimapPosition=t.GlyphMarginLane=t.OverviewRulerLane=void 0;var R;(function(u){u[u.Left=1]="Left",u[u.Center=2]="Center",u[u.Right=4]="Right",u[u.Full=7]="Full"})(R||(t.OverviewRulerLane=R={}));var i;(function(u){u[u.Left=1]="Left",u[u.Center=2]="Center",u[u.Right=3]="Right"})(i||(t.GlyphMarginLane=i={}));var d;(function(u){u[u.Inline=1]="Inline",u[u.Gutter=2]="Gutter"})(d||(t.MinimapPosition=d={}));var _;(function(u){u[u.Both=0]="Both",u[u.Right=1]="Right",u[u.Left=2]="Left",u[u.None=3]="None"})(_||(t.InjectedTextCursorStops=_={}));class p{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(b){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,b.tabSize|0),b.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,b.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!b.insertSpaces,this.defaultEOL=b.defaultEOL|0,this.trimAutoWhitespace=!!b.trimAutoWhitespace,this.bracketPairColorizationOptions=b.bracketPairColorizationOptions}equals(b){return this.tabSize===b.tabSize&&this._indentSizeIsTabSize===b._indentSizeIsTabSize&&this.indentSize===b.indentSize&&this.insertSpaces===b.insertSpaces&&this.defaultEOL===b.defaultEOL&&this.trimAutoWhitespace===b.trimAutoWhitespace&&(0,M.equals)(this.bracketPairColorizationOptions,b.bracketPairColorizationOptions)}createChangeEvent(b){return{tabSize:this.tabSize!==b.tabSize,indentSize:this.indentSize!==b.indentSize,insertSpaces:this.insertSpaces!==b.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==b.trimAutoWhitespace}}}t.TextModelResolvedOptions=p;class c{constructor(b,f){this._findMatchBrand=void 0,this.range=b,this.matches=f}}t.FindMatch=c;function o(u){return u&&typeof u.read=="function"}t.isITextSnapshot=o;class L{constructor(b,f,y,w,E,S){this.identifier=b,this.range=f,this.text=y,this.forceMoveMarkers=w,this.isAutoWhitespaceEdit=E,this._isTracked=S}}t.ValidAnnotatedEditOperation=L;class e{constructor(b,f,y){this.regex=b,this.wordSeparators=f,this.simpleSearch=y}}t.SearchData=e;class s{constructor(b,f,y){this.reverseEdits=b,this.changes=f,this.trimAutoWhitespaceLineNumbers=y}}t.ApplyEditsResult=s;function l(u){return!u.isTooLargeForSyncing()&&!u.isForSimpleWidget}t.shouldSynchronizeModel=l}),X(J[54],Z([0,1,7,26]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PrefixSumIndexOfResult=t.ConstantTimePrefixSumComputer=t.PrefixSumComputer=void 0;class i{constructor(c){this.values=c,this.prefixSum=new Uint32Array(c.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(c,o){c=(0,R.toUint32)(c);const L=this.values,e=this.prefixSum,s=o.length;return s===0?!1:(this.values=new Uint32Array(L.length+s),this.values.set(L.subarray(0,c),0),this.values.set(L.subarray(c),c+s),this.values.set(o,c),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(c,o){return c=(0,R.toUint32)(c),o=(0,R.toUint32)(o),this.values[c]===o?!1:(this.values[c]=o,c-1=L.length)return!1;const s=L.length-c;return o>=s&&(o=s),o===0?!1:(this.values=new Uint32Array(L.length-o),this.values.set(L.subarray(0,c),0),this.values.set(L.subarray(c+o),c),this.prefixSum=new Uint32Array(this.values.length),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(c){return c<0?0:(c=(0,R.toUint32)(c),this._getPrefixSum(c))}_getPrefixSum(c){if(c<=this.prefixSumValidIndex[0])return this.prefixSum[c];let o=this.prefixSumValidIndex[0]+1;o===0&&(this.prefixSum[0]=this.values[0],o++),c>=this.values.length&&(c=this.values.length-1);for(let L=o;L<=c;L++)this.prefixSum[L]=this.prefixSum[L-1]+this.values[L];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],c),this.prefixSum[c]}getIndexOf(c){c=Math.floor(c),this.getTotalSum();let o=0,L=this.values.length-1,e=0,s=0,l=0;for(;o<=L;)if(e=o+(L-o)/2|0,s=this.prefixSum[e],l=s-this.values[e],c=s)o=e+1;else break;return new _(e,c-l)}}t.PrefixSumComputer=i;class d{constructor(c){this._values=c,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(c){return this._ensureValid(),c===0?0:this._prefixSum[c-1]}getIndexOf(c){this._ensureValid();const o=this._indexBySum[c],L=o>0?this._prefixSum[o-1]:0;return new _(o,c-L)}removeValues(c,o){this._values.splice(c,o),this._invalidate(c)}insertValues(c,o){this._values=(0,M.arrayInsert)(this._values,c,o),this._invalidate(c)}_invalidate(c){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,c-1)}_ensureValid(){if(!this._isValid){for(let c=this._validEndIndex+1,o=this._values.length;c0?this._prefixSum[c-1]:0;this._prefixSum[c]=e+L;for(let s=0;s=0;let E=null;try{E=M.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:w,global:!0,unicode:!0})}catch{return null}if(!E)return null;let S=!this.isRegex&&!w;return S&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(S=this.matchCase),new _.SearchData(E,this.wordSeparators?(0,R.getMapForWordSeparators)(this.wordSeparators):null,S?this.searchString:null)}}t.SearchParams=c;function o(y){if(!y||y.length===0)return!1;for(let w=0,E=y.length;w=E)break;const C=y.charCodeAt(w);if(C===110||C===114||C===87)return!0}}return!1}t.isMultilineRegexSource=o;function L(y,w,E){if(!E)return new _.FindMatch(y,null);const S=[];for(let C=0,r=w.length;C>0);E[r]>=w?C=r-1:E[r+1]>=w?(S=r,C=r):S=r+1}return S+1}}class s{static findMatches(w,E,S,C,r){const a=E.parseSearchRequest();return a?a.regex.multiline?this._doFindMatchesMultiline(w,S,new f(a.wordSeparators,a.regex),C,r):this._doFindMatchesLineByLine(w,S,a,C,r):[]}static _getMultilineMatchRange(w,E,S,C,r,a){let g,m=0;C?(m=C.findLineFeedCountBeforeOffset(r),g=E+r+m):g=E+r;let h;if(C){const D=C.findLineFeedCountBeforeOffset(r+a.length)-m;h=g+a.length+D}else h=g+a.length;const v=w.getPositionAt(g),N=w.getPositionAt(h);return new d.Range(v.lineNumber,v.column,N.lineNumber,N.column)}static _doFindMatchesMultiline(w,E,S,C,r){const a=w.getOffsetAt(E.getStartPosition()),g=w.getValueInRange(E,1),m=w.getEOL()===`\r +`?new e(g):null,h=[];let v=0,N;for(S.reset(0);N=S.next(g);)if(h[v++]=L(this._getMultilineMatchRange(w,a,g,m,N.index,N[0]),N,C),v>=r)return h;return h}static _doFindMatchesLineByLine(w,E,S,C,r){const a=[];let g=0;if(E.startLineNumber===E.endLineNumber){const h=w.getLineContent(E.startLineNumber).substring(E.startColumn-1,E.endColumn-1);return g=this._findMatchesInLine(S,h,E.startLineNumber,E.startColumn-1,g,a,C,r),a}const m=w.getLineContent(E.startLineNumber).substring(E.startColumn-1);g=this._findMatchesInLine(S,m,E.startLineNumber,E.startColumn-1,g,a,C,r);for(let h=E.startLineNumber+1;h=m))return r;return r}const v=new f(w.wordSeparators,w.regex);let N;v.reset(0);do if(N=v.next(E),N&&(a[r++]=L(new d.Range(S,N.index+1+C,S,N.index+1+N[0].length+C),N,g),r>=m))return r;while(N);return r}static findNextMatch(w,E,S,C){const r=E.parseSearchRequest();if(!r)return null;const a=new f(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(w,S,a,C):this._doFindNextMatchLineByLine(w,S,a,C)}static _doFindNextMatchMultiline(w,E,S,C){const r=new i.Position(E.lineNumber,1),a=w.getOffsetAt(r),g=w.getLineCount(),m=w.getValueInRange(new d.Range(r.lineNumber,r.column,g,w.getLineMaxColumn(g)),1),h=w.getEOL()===`\r +`?new e(m):null;S.reset(E.column-1);const v=S.next(m);return v?L(this._getMultilineMatchRange(w,a,m,h,v.index,v[0]),v,C):E.lineNumber!==1||E.column!==1?this._doFindNextMatchMultiline(w,new i.Position(1,1),S,C):null}static _doFindNextMatchLineByLine(w,E,S,C){const r=w.getLineCount(),a=E.lineNumber,g=w.getLineContent(a),m=this._findFirstMatchInLine(S,g,a,E.column,C);if(m)return m;for(let h=1;h<=r;h++){const v=(a+h-1)%r,N=w.getLineContent(v+1),A=this._findFirstMatchInLine(S,N,v+1,1,C);if(A)return A}return null}static _findFirstMatchInLine(w,E,S,C,r){w.reset(C-1);const a=w.next(E);return a?L(new d.Range(S,a.index+1,S,a.index+1+a[0].length),a,r):null}static findPreviousMatch(w,E,S,C){const r=E.parseSearchRequest();if(!r)return null;const a=new f(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(w,S,a,C):this._doFindPreviousMatchLineByLine(w,S,a,C)}static _doFindPreviousMatchMultiline(w,E,S,C){const r=this._doFindMatchesMultiline(w,new d.Range(1,1,E.lineNumber,E.column),S,C,10*p);if(r.length>0)return r[r.length-1];const a=w.getLineCount();return E.lineNumber!==a||E.column!==w.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(w,new i.Position(a,w.getLineMaxColumn(a)),S,C):null}static _doFindPreviousMatchLineByLine(w,E,S,C){const r=w.getLineCount(),a=E.lineNumber,g=w.getLineContent(a).substring(0,E.column-1),m=this._findLastMatchInLine(S,g,a,C);if(m)return m;for(let h=1;h<=r;h++){const v=(r+a-h-1)%r,N=w.getLineContent(v+1),A=this._findLastMatchInLine(S,N,v+1,C);if(A)return A}return null}static _findLastMatchInLine(w,E,S,C){let r=null,a;for(w.reset(0);a=w.next(E);)r=L(new d.Range(S,a.index+1,S,a.index+1+a[0].length),a,C);return r}}t.TextModelSearch=s;function l(y,w,E,S,C){if(S===0)return!0;const r=w.charCodeAt(S-1);if(y.get(r)!==0||r===13||r===10)return!0;if(C>0){const a=w.charCodeAt(S);if(y.get(a)!==0)return!0}return!1}function u(y,w,E,S,C){if(S+C===E)return!0;const r=w.charCodeAt(S+C);if(y.get(r)!==0||r===13||r===10)return!0;if(C>0){const a=w.charCodeAt(S+C-1);if(y.get(a)!==0)return!0}return!1}function b(y,w,E,S,C){return l(y,w,E,S,C)&&u(y,w,E,S,C)}t.isValidMatch=b;class f{constructor(w,E){this._wordSeparators=w,this._searchRegex=E,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(w){this._searchRegex.lastIndex=w,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(w){const E=w.length;let S;do{if(this._prevMatchStartIndex+this._prevMatchLength===E||(S=this._searchRegex.exec(w),!S))return null;const C=S.index,r=S[0].length;if(C===this._prevMatchStartIndex&&r===this._prevMatchLength){if(r===0){M.getNextCodePoint(w,E,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=C,this._prevMatchLength=r,!this._wordSeparators||b(this._wordSeparators,w,E,C,r))return S}while(S);return null}}t.Searcher=f}),X(J[57],Z([0,1,2,56,6,12,28]),function(q,t,M,R,i,d,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeTextModelHighlighter=void 0;class p{static computeUnicodeHighlights(s,l,u){const b=u?u.startLineNumber:1,f=u?u.endLineNumber:s.getLineCount(),y=new o(l),w=y.getCandidateCodePoints();let E;w==="allNonBasicAscii"?E=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):E=new RegExp(`${c(Array.from(w))}`,"g");const S=new R.Searcher(null,E),C=[];let r=!1,a,g=0,m=0,h=0;e:for(let v=b,N=f;v<=N;v++){const A=s.getLineContent(v),D=A.length;S.reset(0);do if(a=S.next(A),a){let P=a.index,T=a.index+a[0].length;if(P>0){const x=A.charCodeAt(P-1);i.isHighSurrogate(x)&&P--}if(T+1=1e3){r=!0;break e}C.push(new M.Range(v,P+1,v,T+1))}}while(a)}return{ranges:C,hasMore:r,ambiguousCharacterCount:g,invisibleCharacterCount:m,nonBasicAsciiCharacterCount:h}}static computeUnicodeHighlightReason(s,l){const u=new o(l);switch(u.shouldHighlightNonBasicASCII(s,null)){case 0:return null;case 2:return{kind:1};case 3:{const f=s.codePointAt(0),y=u.ambiguousCharacters.getPrimaryConfusable(f),w=i.AmbiguousCharacters.getLocales().filter(E=>!i.AmbiguousCharacters.getInstance(new Set([...l.allowedLocales,E])).isAmbiguous(f));return{kind:0,confusableWith:String.fromCodePoint(y),notAmbiguousInLocales:w}}case 1:return{kind:2}}}}t.UnicodeTextModelHighlighter=p;function c(e,s){return`[${i.escapeRegExpCharacters(e.map(u=>String.fromCodePoint(u)).join(""))}]`}class o{constructor(s){this.options=s,this.allowedCodePoints=new Set(s.allowedCodePoints),this.ambiguousCharacters=i.AmbiguousCharacters.getInstance(new Set(s.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const s=new Set;if(this.options.invisibleCharacters)for(const l of i.InvisibleCharacters.codePoints)L(String.fromCodePoint(l))||s.add(l);if(this.options.ambiguousCharacters)for(const l of this.ambiguousCharacters.getConfusableCodePoints())s.add(l);for(const l of this.allowedCodePoints)s.delete(l);return s}shouldHighlightNonBasicASCII(s,l){const u=s.codePointAt(0);if(this.allowedCodePoints.has(u))return 0;if(this.options.nonBasicASCII)return 1;let b=!1,f=!1;if(l)for(const y of l){const w=y.codePointAt(0),E=i.isBasicASCII(y);b=b||E,!E&&!this.ambiguousCharacters.isAmbiguous(w)&&!i.InvisibleCharacters.isInvisibleCharacter(w)&&(f=!0)}return!b&&f?0:this.options.invisibleCharacters&&!L(s)&&i.InvisibleCharacters.isInvisibleCharacter(u)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(u)?3:0}}function L(e){return e===" "||e===` +`||e===" "}}),X(J[58],Z([0,1]),function(q,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WrappingIndent=t.TrackedRangeStickiness=t.TextEditorCursorStyle=t.TextEditorCursorBlinkingStyle=t.SymbolTag=t.SymbolKind=t.SignatureHelpTriggerKind=t.ShowLightbulbIconMode=t.SelectionDirection=t.ScrollbarVisibility=t.ScrollType=t.RenderMinimap=t.RenderLineNumbersType=t.PositionAffinity=t.OverviewRulerLane=t.OverlayWidgetPositionPreference=t.NewSymbolNameTag=t.MouseTargetType=t.MinimapPosition=t.MarkerTag=t.MarkerSeverity=t.KeyCode=t.InlineEditTriggerKind=t.InlineCompletionTriggerKind=t.InlayHintKind=t.InjectedTextCursorStops=t.IndentAction=t.GlyphMarginLane=t.EndOfLineSequence=t.EndOfLinePreference=t.EditorOption=t.EditorAutoIndentStrategy=t.DocumentHighlightKind=t.DefaultEndOfLine=t.CursorChangeReason=t.ContentWidgetPositionPreference=t.CompletionTriggerKind=t.CompletionItemTag=t.CompletionItemKind=t.CompletionItemInsertTextRule=t.CodeActionTriggerType=t.AccessibilitySupport=void 0;var M;(function(n){n[n.Unknown=0]="Unknown",n[n.Disabled=1]="Disabled",n[n.Enabled=2]="Enabled"})(M||(t.AccessibilitySupport=M={}));var R;(function(n){n[n.Invoke=1]="Invoke",n[n.Auto=2]="Auto"})(R||(t.CodeActionTriggerType=R={}));var i;(function(n){n[n.None=0]="None",n[n.KeepWhitespace=1]="KeepWhitespace",n[n.InsertAsSnippet=4]="InsertAsSnippet"})(i||(t.CompletionItemInsertTextRule=i={}));var d;(function(n){n[n.Method=0]="Method",n[n.Function=1]="Function",n[n.Constructor=2]="Constructor",n[n.Field=3]="Field",n[n.Variable=4]="Variable",n[n.Class=5]="Class",n[n.Struct=6]="Struct",n[n.Interface=7]="Interface",n[n.Module=8]="Module",n[n.Property=9]="Property",n[n.Event=10]="Event",n[n.Operator=11]="Operator",n[n.Unit=12]="Unit",n[n.Value=13]="Value",n[n.Constant=14]="Constant",n[n.Enum=15]="Enum",n[n.EnumMember=16]="EnumMember",n[n.Keyword=17]="Keyword",n[n.Text=18]="Text",n[n.Color=19]="Color",n[n.File=20]="File",n[n.Reference=21]="Reference",n[n.Customcolor=22]="Customcolor",n[n.Folder=23]="Folder",n[n.TypeParameter=24]="TypeParameter",n[n.User=25]="User",n[n.Issue=26]="Issue",n[n.Snippet=27]="Snippet"})(d||(t.CompletionItemKind=d={}));var _;(function(n){n[n.Deprecated=1]="Deprecated"})(_||(t.CompletionItemTag=_={}));var p;(function(n){n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(p||(t.CompletionTriggerKind=p={}));var c;(function(n){n[n.EXACT=0]="EXACT",n[n.ABOVE=1]="ABOVE",n[n.BELOW=2]="BELOW"})(c||(t.ContentWidgetPositionPreference=c={}));var o;(function(n){n[n.NotSet=0]="NotSet",n[n.ContentFlush=1]="ContentFlush",n[n.RecoverFromMarkers=2]="RecoverFromMarkers",n[n.Explicit=3]="Explicit",n[n.Paste=4]="Paste",n[n.Undo=5]="Undo",n[n.Redo=6]="Redo"})(o||(t.CursorChangeReason=o={}));var L;(function(n){n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(L||(t.DefaultEndOfLine=L={}));var e;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(e||(t.DocumentHighlightKind=e={}));var s;(function(n){n[n.None=0]="None",n[n.Keep=1]="Keep",n[n.Brackets=2]="Brackets",n[n.Advanced=3]="Advanced",n[n.Full=4]="Full"})(s||(t.EditorAutoIndentStrategy=s={}));var l;(function(n){n[n.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",n[n.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",n[n.accessibilitySupport=2]="accessibilitySupport",n[n.accessibilityPageSize=3]="accessibilityPageSize",n[n.ariaLabel=4]="ariaLabel",n[n.ariaRequired=5]="ariaRequired",n[n.autoClosingBrackets=6]="autoClosingBrackets",n[n.autoClosingComments=7]="autoClosingComments",n[n.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",n[n.autoClosingDelete=9]="autoClosingDelete",n[n.autoClosingOvertype=10]="autoClosingOvertype",n[n.autoClosingQuotes=11]="autoClosingQuotes",n[n.autoIndent=12]="autoIndent",n[n.automaticLayout=13]="automaticLayout",n[n.autoSurround=14]="autoSurround",n[n.bracketPairColorization=15]="bracketPairColorization",n[n.guides=16]="guides",n[n.codeLens=17]="codeLens",n[n.codeLensFontFamily=18]="codeLensFontFamily",n[n.codeLensFontSize=19]="codeLensFontSize",n[n.colorDecorators=20]="colorDecorators",n[n.colorDecoratorsLimit=21]="colorDecoratorsLimit",n[n.columnSelection=22]="columnSelection",n[n.comments=23]="comments",n[n.contextmenu=24]="contextmenu",n[n.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",n[n.cursorBlinking=26]="cursorBlinking",n[n.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",n[n.cursorStyle=28]="cursorStyle",n[n.cursorSurroundingLines=29]="cursorSurroundingLines",n[n.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",n[n.cursorWidth=31]="cursorWidth",n[n.disableLayerHinting=32]="disableLayerHinting",n[n.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",n[n.domReadOnly=34]="domReadOnly",n[n.dragAndDrop=35]="dragAndDrop",n[n.dropIntoEditor=36]="dropIntoEditor",n[n.emptySelectionClipboard=37]="emptySelectionClipboard",n[n.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",n[n.extraEditorClassName=39]="extraEditorClassName",n[n.fastScrollSensitivity=40]="fastScrollSensitivity",n[n.find=41]="find",n[n.fixedOverflowWidgets=42]="fixedOverflowWidgets",n[n.folding=43]="folding",n[n.foldingStrategy=44]="foldingStrategy",n[n.foldingHighlight=45]="foldingHighlight",n[n.foldingImportsByDefault=46]="foldingImportsByDefault",n[n.foldingMaximumRegions=47]="foldingMaximumRegions",n[n.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",n[n.fontFamily=49]="fontFamily",n[n.fontInfo=50]="fontInfo",n[n.fontLigatures=51]="fontLigatures",n[n.fontSize=52]="fontSize",n[n.fontWeight=53]="fontWeight",n[n.fontVariations=54]="fontVariations",n[n.formatOnPaste=55]="formatOnPaste",n[n.formatOnType=56]="formatOnType",n[n.glyphMargin=57]="glyphMargin",n[n.gotoLocation=58]="gotoLocation",n[n.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",n[n.hover=60]="hover",n[n.inDiffEditor=61]="inDiffEditor",n[n.inlineSuggest=62]="inlineSuggest",n[n.inlineEdit=63]="inlineEdit",n[n.letterSpacing=64]="letterSpacing",n[n.lightbulb=65]="lightbulb",n[n.lineDecorationsWidth=66]="lineDecorationsWidth",n[n.lineHeight=67]="lineHeight",n[n.lineNumbers=68]="lineNumbers",n[n.lineNumbersMinChars=69]="lineNumbersMinChars",n[n.linkedEditing=70]="linkedEditing",n[n.links=71]="links",n[n.matchBrackets=72]="matchBrackets",n[n.minimap=73]="minimap",n[n.mouseStyle=74]="mouseStyle",n[n.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",n[n.mouseWheelZoom=76]="mouseWheelZoom",n[n.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",n[n.multiCursorModifier=78]="multiCursorModifier",n[n.multiCursorPaste=79]="multiCursorPaste",n[n.multiCursorLimit=80]="multiCursorLimit",n[n.occurrencesHighlight=81]="occurrencesHighlight",n[n.overviewRulerBorder=82]="overviewRulerBorder",n[n.overviewRulerLanes=83]="overviewRulerLanes",n[n.padding=84]="padding",n[n.pasteAs=85]="pasteAs",n[n.parameterHints=86]="parameterHints",n[n.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",n[n.definitionLinkOpensInPeek=88]="definitionLinkOpensInPeek",n[n.quickSuggestions=89]="quickSuggestions",n[n.quickSuggestionsDelay=90]="quickSuggestionsDelay",n[n.readOnly=91]="readOnly",n[n.readOnlyMessage=92]="readOnlyMessage",n[n.renameOnType=93]="renameOnType",n[n.renderControlCharacters=94]="renderControlCharacters",n[n.renderFinalNewline=95]="renderFinalNewline",n[n.renderLineHighlight=96]="renderLineHighlight",n[n.renderLineHighlightOnlyWhenFocus=97]="renderLineHighlightOnlyWhenFocus",n[n.renderValidationDecorations=98]="renderValidationDecorations",n[n.renderWhitespace=99]="renderWhitespace",n[n.revealHorizontalRightPadding=100]="revealHorizontalRightPadding",n[n.roundedSelection=101]="roundedSelection",n[n.rulers=102]="rulers",n[n.scrollbar=103]="scrollbar",n[n.scrollBeyondLastColumn=104]="scrollBeyondLastColumn",n[n.scrollBeyondLastLine=105]="scrollBeyondLastLine",n[n.scrollPredominantAxis=106]="scrollPredominantAxis",n[n.selectionClipboard=107]="selectionClipboard",n[n.selectionHighlight=108]="selectionHighlight",n[n.selectOnLineNumbers=109]="selectOnLineNumbers",n[n.showFoldingControls=110]="showFoldingControls",n[n.showUnused=111]="showUnused",n[n.snippetSuggestions=112]="snippetSuggestions",n[n.smartSelect=113]="smartSelect",n[n.smoothScrolling=114]="smoothScrolling",n[n.stickyScroll=115]="stickyScroll",n[n.stickyTabStops=116]="stickyTabStops",n[n.stopRenderingLineAfter=117]="stopRenderingLineAfter",n[n.suggest=118]="suggest",n[n.suggestFontSize=119]="suggestFontSize",n[n.suggestLineHeight=120]="suggestLineHeight",n[n.suggestOnTriggerCharacters=121]="suggestOnTriggerCharacters",n[n.suggestSelection=122]="suggestSelection",n[n.tabCompletion=123]="tabCompletion",n[n.tabIndex=124]="tabIndex",n[n.unicodeHighlighting=125]="unicodeHighlighting",n[n.unusualLineTerminators=126]="unusualLineTerminators",n[n.useShadowDOM=127]="useShadowDOM",n[n.useTabStops=128]="useTabStops",n[n.wordBreak=129]="wordBreak",n[n.wordSeparators=130]="wordSeparators",n[n.wordWrap=131]="wordWrap",n[n.wordWrapBreakAfterCharacters=132]="wordWrapBreakAfterCharacters",n[n.wordWrapBreakBeforeCharacters=133]="wordWrapBreakBeforeCharacters",n[n.wordWrapColumn=134]="wordWrapColumn",n[n.wordWrapOverride1=135]="wordWrapOverride1",n[n.wordWrapOverride2=136]="wordWrapOverride2",n[n.wrappingIndent=137]="wrappingIndent",n[n.wrappingStrategy=138]="wrappingStrategy",n[n.showDeprecated=139]="showDeprecated",n[n.inlayHints=140]="inlayHints",n[n.editorClassName=141]="editorClassName",n[n.pixelRatio=142]="pixelRatio",n[n.tabFocusMode=143]="tabFocusMode",n[n.layoutInfo=144]="layoutInfo",n[n.wrappingInfo=145]="wrappingInfo",n[n.defaultColorDecorators=146]="defaultColorDecorators",n[n.colorDecoratorsActivatedOn=147]="colorDecoratorsActivatedOn",n[n.inlineCompletionsAccessibilityVerbose=148]="inlineCompletionsAccessibilityVerbose"})(l||(t.EditorOption=l={}));var u;(function(n){n[n.TextDefined=0]="TextDefined",n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(u||(t.EndOfLinePreference=u={}));var b;(function(n){n[n.LF=0]="LF",n[n.CRLF=1]="CRLF"})(b||(t.EndOfLineSequence=b={}));var f;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(f||(t.GlyphMarginLane=f={}));var y;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(y||(t.IndentAction=y={}));var w;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(w||(t.InjectedTextCursorStops=w={}));var E;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(E||(t.InlayHintKind=E={}));var S;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(S||(t.InlineCompletionTriggerKind=S={}));var C;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(C||(t.InlineEditTriggerKind=C={}));var r;(function(n){n[n.DependsOnKbLayout=-1]="DependsOnKbLayout",n[n.Unknown=0]="Unknown",n[n.Backspace=1]="Backspace",n[n.Tab=2]="Tab",n[n.Enter=3]="Enter",n[n.Shift=4]="Shift",n[n.Ctrl=5]="Ctrl",n[n.Alt=6]="Alt",n[n.PauseBreak=7]="PauseBreak",n[n.CapsLock=8]="CapsLock",n[n.Escape=9]="Escape",n[n.Space=10]="Space",n[n.PageUp=11]="PageUp",n[n.PageDown=12]="PageDown",n[n.End=13]="End",n[n.Home=14]="Home",n[n.LeftArrow=15]="LeftArrow",n[n.UpArrow=16]="UpArrow",n[n.RightArrow=17]="RightArrow",n[n.DownArrow=18]="DownArrow",n[n.Insert=19]="Insert",n[n.Delete=20]="Delete",n[n.Digit0=21]="Digit0",n[n.Digit1=22]="Digit1",n[n.Digit2=23]="Digit2",n[n.Digit3=24]="Digit3",n[n.Digit4=25]="Digit4",n[n.Digit5=26]="Digit5",n[n.Digit6=27]="Digit6",n[n.Digit7=28]="Digit7",n[n.Digit8=29]="Digit8",n[n.Digit9=30]="Digit9",n[n.KeyA=31]="KeyA",n[n.KeyB=32]="KeyB",n[n.KeyC=33]="KeyC",n[n.KeyD=34]="KeyD",n[n.KeyE=35]="KeyE",n[n.KeyF=36]="KeyF",n[n.KeyG=37]="KeyG",n[n.KeyH=38]="KeyH",n[n.KeyI=39]="KeyI",n[n.KeyJ=40]="KeyJ",n[n.KeyK=41]="KeyK",n[n.KeyL=42]="KeyL",n[n.KeyM=43]="KeyM",n[n.KeyN=44]="KeyN",n[n.KeyO=45]="KeyO",n[n.KeyP=46]="KeyP",n[n.KeyQ=47]="KeyQ",n[n.KeyR=48]="KeyR",n[n.KeyS=49]="KeyS",n[n.KeyT=50]="KeyT",n[n.KeyU=51]="KeyU",n[n.KeyV=52]="KeyV",n[n.KeyW=53]="KeyW",n[n.KeyX=54]="KeyX",n[n.KeyY=55]="KeyY",n[n.KeyZ=56]="KeyZ",n[n.Meta=57]="Meta",n[n.ContextMenu=58]="ContextMenu",n[n.F1=59]="F1",n[n.F2=60]="F2",n[n.F3=61]="F3",n[n.F4=62]="F4",n[n.F5=63]="F5",n[n.F6=64]="F6",n[n.F7=65]="F7",n[n.F8=66]="F8",n[n.F9=67]="F9",n[n.F10=68]="F10",n[n.F11=69]="F11",n[n.F12=70]="F12",n[n.F13=71]="F13",n[n.F14=72]="F14",n[n.F15=73]="F15",n[n.F16=74]="F16",n[n.F17=75]="F17",n[n.F18=76]="F18",n[n.F19=77]="F19",n[n.F20=78]="F20",n[n.F21=79]="F21",n[n.F22=80]="F22",n[n.F23=81]="F23",n[n.F24=82]="F24",n[n.NumLock=83]="NumLock",n[n.ScrollLock=84]="ScrollLock",n[n.Semicolon=85]="Semicolon",n[n.Equal=86]="Equal",n[n.Comma=87]="Comma",n[n.Minus=88]="Minus",n[n.Period=89]="Period",n[n.Slash=90]="Slash",n[n.Backquote=91]="Backquote",n[n.BracketLeft=92]="BracketLeft",n[n.Backslash=93]="Backslash",n[n.BracketRight=94]="BracketRight",n[n.Quote=95]="Quote",n[n.OEM_8=96]="OEM_8",n[n.IntlBackslash=97]="IntlBackslash",n[n.Numpad0=98]="Numpad0",n[n.Numpad1=99]="Numpad1",n[n.Numpad2=100]="Numpad2",n[n.Numpad3=101]="Numpad3",n[n.Numpad4=102]="Numpad4",n[n.Numpad5=103]="Numpad5",n[n.Numpad6=104]="Numpad6",n[n.Numpad7=105]="Numpad7",n[n.Numpad8=106]="Numpad8",n[n.Numpad9=107]="Numpad9",n[n.NumpadMultiply=108]="NumpadMultiply",n[n.NumpadAdd=109]="NumpadAdd",n[n.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",n[n.NumpadSubtract=111]="NumpadSubtract",n[n.NumpadDecimal=112]="NumpadDecimal",n[n.NumpadDivide=113]="NumpadDivide",n[n.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",n[n.ABNT_C1=115]="ABNT_C1",n[n.ABNT_C2=116]="ABNT_C2",n[n.AudioVolumeMute=117]="AudioVolumeMute",n[n.AudioVolumeUp=118]="AudioVolumeUp",n[n.AudioVolumeDown=119]="AudioVolumeDown",n[n.BrowserSearch=120]="BrowserSearch",n[n.BrowserHome=121]="BrowserHome",n[n.BrowserBack=122]="BrowserBack",n[n.BrowserForward=123]="BrowserForward",n[n.MediaTrackNext=124]="MediaTrackNext",n[n.MediaTrackPrevious=125]="MediaTrackPrevious",n[n.MediaStop=126]="MediaStop",n[n.MediaPlayPause=127]="MediaPlayPause",n[n.LaunchMediaPlayer=128]="LaunchMediaPlayer",n[n.LaunchMail=129]="LaunchMail",n[n.LaunchApp2=130]="LaunchApp2",n[n.Clear=131]="Clear",n[n.MAX_VALUE=132]="MAX_VALUE"})(r||(t.KeyCode=r={}));var a;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(a||(t.MarkerSeverity=a={}));var g;(function(n){n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated"})(g||(t.MarkerTag=g={}));var m;(function(n){n[n.Inline=1]="Inline",n[n.Gutter=2]="Gutter"})(m||(t.MinimapPosition=m={}));var h;(function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.TEXTAREA=1]="TEXTAREA",n[n.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",n[n.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",n[n.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",n[n.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",n[n.CONTENT_TEXT=6]="CONTENT_TEXT",n[n.CONTENT_EMPTY=7]="CONTENT_EMPTY",n[n.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",n[n.CONTENT_WIDGET=9]="CONTENT_WIDGET",n[n.OVERVIEW_RULER=10]="OVERVIEW_RULER",n[n.SCROLLBAR=11]="SCROLLBAR",n[n.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",n[n.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(h||(t.MouseTargetType=h={}));var v;(function(n){n[n.AIGenerated=1]="AIGenerated"})(v||(t.NewSymbolNameTag=v={}));var N;(function(n){n[n.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",n[n.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",n[n.TOP_CENTER=2]="TOP_CENTER"})(N||(t.OverlayWidgetPositionPreference=N={}));var A;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(A||(t.OverviewRulerLane=A={}));var D;(function(n){n[n.Left=0]="Left",n[n.Right=1]="Right",n[n.None=2]="None",n[n.LeftOfInjectedText=3]="LeftOfInjectedText",n[n.RightOfInjectedText=4]="RightOfInjectedText"})(D||(t.PositionAffinity=D={}));var P;(function(n){n[n.Off=0]="Off",n[n.On=1]="On",n[n.Relative=2]="Relative",n[n.Interval=3]="Interval",n[n.Custom=4]="Custom"})(P||(t.RenderLineNumbersType=P={}));var T;(function(n){n[n.None=0]="None",n[n.Text=1]="Text",n[n.Blocks=2]="Blocks"})(T||(t.RenderMinimap=T={}));var I;(function(n){n[n.Smooth=0]="Smooth",n[n.Immediate=1]="Immediate"})(I||(t.ScrollType=I={}));var B;(function(n){n[n.Auto=1]="Auto",n[n.Hidden=2]="Hidden",n[n.Visible=3]="Visible"})(B||(t.ScrollbarVisibility=B={}));var z;(function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"})(z||(t.SelectionDirection=z={}));var x;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(x||(t.ShowLightbulbIconMode=x={}));var O;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(O||(t.SignatureHelpTriggerKind=O={}));var F;(function(n){n[n.File=0]="File",n[n.Module=1]="Module",n[n.Namespace=2]="Namespace",n[n.Package=3]="Package",n[n.Class=4]="Class",n[n.Method=5]="Method",n[n.Property=6]="Property",n[n.Field=7]="Field",n[n.Constructor=8]="Constructor",n[n.Enum=9]="Enum",n[n.Interface=10]="Interface",n[n.Function=11]="Function",n[n.Variable=12]="Variable",n[n.Constant=13]="Constant",n[n.String=14]="String",n[n.Number=15]="Number",n[n.Boolean=16]="Boolean",n[n.Array=17]="Array",n[n.Object=18]="Object",n[n.Key=19]="Key",n[n.Null=20]="Null",n[n.EnumMember=21]="EnumMember",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter"})(F||(t.SymbolKind=F={}));var W;(function(n){n[n.Deprecated=1]="Deprecated"})(W||(t.SymbolTag=W={}));var H;(function(n){n[n.Hidden=0]="Hidden",n[n.Blink=1]="Blink",n[n.Smooth=2]="Smooth",n[n.Phase=3]="Phase",n[n.Expand=4]="Expand",n[n.Solid=5]="Solid"})(H||(t.TextEditorCursorBlinkingStyle=H={}));var G;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(G||(t.TextEditorCursorStyle=G={}));var ne;(function(n){n[n.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",n[n.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",n[n.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",n[n.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(ne||(t.TrackedRangeStickiness=ne={}));var se;(function(n){n[n.None=0]="None",n[n.Same=1]="Same",n[n.Indent=2]="Indent",n[n.DeepIndent=3]="DeepIndent"})(se||(t.WrappingIndent=se={}))}),X(J[59],Z([0,1,9,13]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenizationRegistry=void 0;class i{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new M.Emitter,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(p){this._onDidChange.fire({changedLanguages:p,changedColorMap:!1})}register(p,c){return this._tokenizationSupports.set(p,c),this.handleChange([p]),(0,R.toDisposable)(()=>{this._tokenizationSupports.get(p)===c&&(this._tokenizationSupports.delete(p),this.handleChange([p]))})}get(p){return this._tokenizationSupports.get(p)||null}registerFactory(p,c){var o;(o=this._factories.get(p))===null||o===void 0||o.dispose();const L=new d(this,p,c);return this._factories.set(p,L),(0,R.toDisposable)(()=>{const e=this._factories.get(p);!e||e!==L||(this._factories.delete(p),e.dispose())})}async getOrCreate(p){const c=this.get(p);if(c)return c;const o=this._factories.get(p);return!o||o.isResolved?null:(await o.resolve(),this.get(p))}isResolved(p){if(this.get(p))return!0;const o=this._factories.get(p);return!!(!o||o.isResolved)}setColorMap(p){this._colorMap=p,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}t.TokenizationRegistry=i;class d extends R.Disposable{get isResolved(){return this._isResolved}constructor(p,c,o){super(),this._registry=p,this._languageId=c,this._factory=o,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const p=await this._factory.tokenizationSupport;this._isResolved=!0,p&&!this._isDisposed&&this._register(this._registry.register(this._languageId,p))}}}),X(J[60],Z([19,61]),function(q,t){return q.create("vs/base/common/platform",t)}),X(J[17],Z([0,1,60]),function(q,t,M){"use strict";var R;Object.defineProperty(t,"__esModule",{value:!0}),t.isAndroid=t.isEdge=t.isSafari=t.isFirefox=t.isChrome=t.isLittleEndian=t.OS=t.setTimeout0=t.setTimeout0IsFaster=t.language=t.userAgent=t.isMobile=t.isIOS=t.webWorkerOrigin=t.isWebWorker=t.isWeb=t.isNative=t.isLinux=t.isMacintosh=t.isWindows=t.LANGUAGE_DEFAULT=void 0,t.LANGUAGE_DEFAULT="en";let i=!1,d=!1,_=!1,p=!1,c=!1,o=!1,L=!1,e=!1,s=!1,l=!1,u,b=t.LANGUAGE_DEFAULT,f=t.LANGUAGE_DEFAULT,y,w;const E=globalThis;let S;typeof E.vscode<"u"&&typeof E.vscode.process<"u"?S=E.vscode.process:typeof process<"u"&&(S=process);const C=typeof((R=S?.versions)===null||R===void 0?void 0:R.electron)=="string",r=C&&S?.type==="renderer";if(typeof S=="object"){i=S.platform==="win32",d=S.platform==="darwin",_=S.platform==="linux",p=_&&!!S.env.SNAP&&!!S.env.SNAP_REVISION,L=C,s=!!S.env.CI||!!S.env.BUILD_ARTIFACTSTAGINGDIRECTORY,u=t.LANGUAGE_DEFAULT,b=t.LANGUAGE_DEFAULT;const v=S.env.VSCODE_NLS_CONFIG;if(v)try{const N=JSON.parse(v),A=N.availableLanguages["*"];u=N.locale,f=N.osLocale,b=A||t.LANGUAGE_DEFAULT,y=N._translationsConfigFile}catch{}c=!0}else typeof navigator=="object"&&!r?(w=navigator.userAgent,i=w.indexOf("Windows")>=0,d=w.indexOf("Macintosh")>=0,e=(w.indexOf("Macintosh")>=0||w.indexOf("iPad")>=0||w.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,_=w.indexOf("Linux")>=0,l=w?.indexOf("Mobi")>=0,o=!0,u=M.getConfiguredDefaultLocale(M.localize(0,null))||t.LANGUAGE_DEFAULT,b=u,f=navigator.language):console.error("Unable to resolve platform.");let a=0;d?a=1:i?a=3:_&&(a=2),t.isWindows=i,t.isMacintosh=d,t.isLinux=_,t.isNative=c,t.isWeb=o,t.isWebWorker=o&&typeof E.importScripts=="function",t.webWorkerOrigin=t.isWebWorker?E.origin:void 0,t.isIOS=e,t.isMobile=l,t.userAgent=w,t.language=b,t.setTimeout0IsFaster=typeof E.postMessage=="function"&&!E.importScripts,t.setTimeout0=(()=>{if(t.setTimeout0IsFaster){const v=[];E.addEventListener("message",A=>{if(A.data&&A.data.vscodeScheduleAsyncWork)for(let D=0,P=v.length;D{const D=++N;v.push({id:D,callback:A}),E.postMessage({vscodeScheduleAsyncWork:D},"*")}}return v=>setTimeout(v)})(),t.OS=d||e?2:i?1:3;let g=!0,m=!1;function h(){if(!m){m=!0;const v=new Uint8Array(2);v[0]=1,v[1]=2,g=new Uint16Array(v.buffer)[0]===513}return g}t.isLittleEndian=h,t.isChrome=!!(t.userAgent&&t.userAgent.indexOf("Chrome")>=0),t.isFirefox=!!(t.userAgent&&t.userAgent.indexOf("Firefox")>=0),t.isSafari=!!(!t.isChrome&&t.userAgent&&t.userAgent.indexOf("Safari")>=0),t.isEdge=!!(t.userAgent&&t.userAgent.indexOf("Edg/")>=0),t.isAndroid=!!(t.userAgent&&t.userAgent.indexOf("Android")>=0)}),X(J[62],Z([0,1,17]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.platform=t.env=t.cwd=void 0;let R;const i=globalThis.vscode;if(typeof i<"u"&&typeof i.process<"u"){const d=i.process;R={get platform(){return d.platform},get arch(){return d.arch},get env(){return d.env},cwd(){return d.cwd()}}}else typeof process<"u"?R={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:R={get platform(){return M.isWindows?"win32":M.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};t.cwd=R.cwd,t.env=R.env,t.platform=R.platform}),X(J[63],Z([0,1,62]),function(q,t,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sep=t.extname=t.basename=t.dirname=t.relative=t.resolve=t.normalize=t.posix=t.win32=void 0;const R=65,i=97,d=90,_=122,p=46,c=47,o=92,L=58,e=63;class s extends Error{constructor(a,g,m){let h;typeof g=="string"&&g.indexOf("not ")===0?(h="must not be",g=g.replace(/^not /,"")):h="must be";const v=a.indexOf(".")!==-1?"property":"argument";let N=`The "${a}" ${v} ${h} of type ${g}`;N+=`. Received type ${typeof m}`,super(N),this.code="ERR_INVALID_ARG_TYPE"}}function l(r,a){if(r===null||typeof r!="object")throw new s(a,"Object",r)}function u(r,a){if(typeof r!="string")throw new s(a,"string",r)}const b=M.platform==="win32";function f(r){return r===c||r===o}function y(r){return r===c}function w(r){return r>=R&&r<=d||r>=i&&r<=_}function E(r,a,g,m){let h="",v=0,N=-1,A=0,D=0;for(let P=0;P<=r.length;++P){if(P2){const T=h.lastIndexOf(g);T===-1?(h="",v=0):(h=h.slice(0,T),v=h.length-1-h.lastIndexOf(g)),N=P,A=0;continue}else if(h.length!==0){h="",v=0,N=P,A=0;continue}}a&&(h+=h.length>0?`${g}..`:"..",v=2)}else h.length>0?h+=`${g}${r.slice(N+1,P)}`:h=r.slice(N+1,P),v=P-N-1;N=P,A=0}else D===p&&A!==-1?++A:A=-1}return h}function S(r,a){l(a,"pathObject");const g=a.dir||a.root,m=a.base||`${a.name||""}${a.ext||""}`;return g?g===a.root?`${g}${m}`:`${g}${r}${m}`:m}t.win32={resolve(...r){let a="",g="",m=!1;for(let h=r.length-1;h>=-1;h--){let v;if(h>=0){if(v=r[h],u(v,"path"),v.length===0)continue}else a.length===0?v=M.cwd():(v=M.env[`=${a}`]||M.cwd(),(v===void 0||v.slice(0,2).toLowerCase()!==a.toLowerCase()&&v.charCodeAt(2)===o)&&(v=`${a}\\`));const N=v.length;let A=0,D="",P=!1;const T=v.charCodeAt(0);if(N===1)f(T)&&(A=1,P=!0);else if(f(T))if(P=!0,f(v.charCodeAt(1))){let I=2,B=I;for(;I2&&f(v.charCodeAt(2))&&(P=!0,A=3));if(D.length>0)if(a.length>0){if(D.toLowerCase()!==a.toLowerCase())continue}else a=D;if(m){if(a.length>0)break}else if(g=`${v.slice(A)}\\${g}`,m=P,P&&a.length>0)break}return g=E(g,!m,"\\",f),m?`${a}\\${g}`:`${a}${g}`||"."},normalize(r){u(r,"path");const a=r.length;if(a===0)return".";let g=0,m,h=!1;const v=r.charCodeAt(0);if(a===1)return y(v)?"\\":r;if(f(v))if(h=!0,f(r.charCodeAt(1))){let A=2,D=A;for(;A2&&f(r.charCodeAt(2))&&(h=!0,g=3));let N=g0&&f(r.charCodeAt(a-1))&&(N+="\\"),m===void 0?h?`\\${N}`:N:h?`${m}\\${N}`:`${m}${N}`},isAbsolute(r){u(r,"path");const a=r.length;if(a===0)return!1;const g=r.charCodeAt(0);return f(g)||a>2&&w(g)&&r.charCodeAt(1)===L&&f(r.charCodeAt(2))},join(...r){if(r.length===0)return".";let a,g;for(let v=0;v0&&(a===void 0?a=g=N:a+=`\\${N}`)}if(a===void 0)return".";let m=!0,h=0;if(typeof g=="string"&&f(g.charCodeAt(0))){++h;const v=g.length;v>1&&f(g.charCodeAt(1))&&(++h,v>2&&(f(g.charCodeAt(2))?++h:m=!1))}if(m){for(;h=2&&(a=`\\${a.slice(h)}`)}return t.win32.normalize(a)},relative(r,a){if(u(r,"from"),u(a,"to"),r===a)return"";const g=t.win32.resolve(r),m=t.win32.resolve(a);if(g===m||(r=g.toLowerCase(),a=m.toLowerCase(),r===a))return"";let h=0;for(;hh&&r.charCodeAt(v-1)===o;)v--;const N=v-h;let A=0;for(;AA&&a.charCodeAt(D-1)===o;)D--;const P=D-A,T=NT){if(a.charCodeAt(A+B)===o)return m.slice(A+B+1);if(B===2)return m.slice(A+B)}N>T&&(r.charCodeAt(h+B)===o?I=B:B===2&&(I=3)),I===-1&&(I=0)}let z="";for(B=h+I+1;B<=v;++B)(B===v||r.charCodeAt(B)===o)&&(z+=z.length===0?"..":"\\..");return A+=I,z.length>0?`${z}${m.slice(A,D)}`:(m.charCodeAt(A)===o&&++A,m.slice(A,D))},toNamespacedPath(r){if(typeof r!="string"||r.length===0)return r;const a=t.win32.resolve(r);if(a.length<=2)return r;if(a.charCodeAt(0)===o){if(a.charCodeAt(1)===o){const g=a.charCodeAt(2);if(g!==e&&g!==p)return`\\\\?\\UNC\\${a.slice(2)}`}}else if(w(a.charCodeAt(0))&&a.charCodeAt(1)===L&&a.charCodeAt(2)===o)return`\\\\?\\${a}`;return r},dirname(r){u(r,"path");const a=r.length;if(a===0)return".";let g=-1,m=0;const h=r.charCodeAt(0);if(a===1)return f(h)?r:".";if(f(h)){if(g=m=1,f(r.charCodeAt(1))){let A=2,D=A;for(;A2&&f(r.charCodeAt(2))?3:2,m=g);let v=-1,N=!0;for(let A=a-1;A>=m;--A)if(f(r.charCodeAt(A))){if(!N){v=A;break}}else N=!1;if(v===-1){if(g===-1)return".";v=g}return r.slice(0,v)},basename(r,a){a!==void 0&&u(a,"ext"),u(r,"path");let g=0,m=-1,h=!0,v;if(r.length>=2&&w(r.charCodeAt(0))&&r.charCodeAt(1)===L&&(g=2),a!==void 0&&a.length>0&&a.length<=r.length){if(a===r)return"";let N=a.length-1,A=-1;for(v=r.length-1;v>=g;--v){const D=r.charCodeAt(v);if(f(D)){if(!h){g=v+1;break}}else A===-1&&(h=!1,A=v+1),N>=0&&(D===a.charCodeAt(N)?--N===-1&&(m=v):(N=-1,m=A))}return g===m?m=A:m===-1&&(m=r.length),r.slice(g,m)}for(v=r.length-1;v>=g;--v)if(f(r.charCodeAt(v))){if(!h){g=v+1;break}}else m===-1&&(h=!1,m=v+1);return m===-1?"":r.slice(g,m)},extname(r){u(r,"path");let a=0,g=-1,m=0,h=-1,v=!0,N=0;r.length>=2&&r.charCodeAt(1)===L&&w(r.charCodeAt(0))&&(a=m=2);for(let A=r.length-1;A>=a;--A){const D=r.charCodeAt(A);if(f(D)){if(!v){m=A+1;break}continue}h===-1&&(v=!1,h=A+1),D===p?g===-1?g=A:N!==1&&(N=1):g!==-1&&(N=-1)}return g===-1||h===-1||N===0||N===1&&g===h-1&&g===m+1?"":r.slice(g,h)},format:S.bind(null,"\\"),parse(r){u(r,"path");const a={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return a;const g=r.length;let m=0,h=r.charCodeAt(0);if(g===1)return f(h)?(a.root=a.dir=r,a):(a.base=a.name=r,a);if(f(h)){if(m=1,f(r.charCodeAt(1))){let I=2,B=I;for(;I0&&(a.root=r.slice(0,m));let v=-1,N=m,A=-1,D=!0,P=r.length-1,T=0;for(;P>=m;--P){if(h=r.charCodeAt(P),f(h)){if(!D){N=P+1;break}continue}A===-1&&(D=!1,A=P+1),h===p?v===-1?v=P:T!==1&&(T=1):v!==-1&&(T=-1)}return A!==-1&&(v===-1||T===0||T===1&&v===A-1&&v===N+1?a.base=a.name=r.slice(N,A):(a.name=r.slice(N,v),a.base=r.slice(N,A),a.ext=r.slice(v,A))),N>0&&N!==m?a.dir=r.slice(0,N-1):a.dir=a.root,a},sep:"\\",delimiter:";",win32:null,posix:null};const C=(()=>{if(b){const r=/\\/g;return()=>{const a=M.cwd().replace(r,"/");return a.slice(a.indexOf("/"))}}return()=>M.cwd()})();t.posix={resolve(...r){let a="",g=!1;for(let m=r.length-1;m>=-1&&!g;m--){const h=m>=0?r[m]:C();u(h,"path"),h.length!==0&&(a=`${h}/${a}`,g=h.charCodeAt(0)===c)}return a=E(a,!g,"/",y),g?`/${a}`:a.length>0?a:"."},normalize(r){if(u(r,"path"),r.length===0)return".";const a=r.charCodeAt(0)===c,g=r.charCodeAt(r.length-1)===c;return r=E(r,!a,"/",y),r.length===0?a?"/":g?"./":".":(g&&(r+="/"),a?`/${r}`:r)},isAbsolute(r){return u(r,"path"),r.length>0&&r.charCodeAt(0)===c},join(...r){if(r.length===0)return".";let a;for(let g=0;g0&&(a===void 0?a=m:a+=`/${m}`)}return a===void 0?".":t.posix.normalize(a)},relative(r,a){if(u(r,"from"),u(a,"to"),r===a||(r=t.posix.resolve(r),a=t.posix.resolve(a),r===a))return"";const g=1,m=r.length,h=m-g,v=1,N=a.length-v,A=hA){if(a.charCodeAt(v+P)===c)return a.slice(v+P+1);if(P===0)return a.slice(v+P)}else h>A&&(r.charCodeAt(g+P)===c?D=P:P===0&&(D=0));let T="";for(P=g+D+1;P<=m;++P)(P===m||r.charCodeAt(P)===c)&&(T+=T.length===0?"..":"/..");return`${T}${a.slice(v+D)}`},toNamespacedPath(r){return r},dirname(r){if(u(r,"path"),r.length===0)return".";const a=r.charCodeAt(0)===c;let g=-1,m=!0;for(let h=r.length-1;h>=1;--h)if(r.charCodeAt(h)===c){if(!m){g=h;break}}else m=!1;return g===-1?a?"/":".":a&&g===1?"//":r.slice(0,g)},basename(r,a){a!==void 0&&u(a,"ext"),u(r,"path");let g=0,m=-1,h=!0,v;if(a!==void 0&&a.length>0&&a.length<=r.length){if(a===r)return"";let N=a.length-1,A=-1;for(v=r.length-1;v>=0;--v){const D=r.charCodeAt(v);if(D===c){if(!h){g=v+1;break}}else A===-1&&(h=!1,A=v+1),N>=0&&(D===a.charCodeAt(N)?--N===-1&&(m=v):(N=-1,m=A))}return g===m?m=A:m===-1&&(m=r.length),r.slice(g,m)}for(v=r.length-1;v>=0;--v)if(r.charCodeAt(v)===c){if(!h){g=v+1;break}}else m===-1&&(h=!1,m=v+1);return m===-1?"":r.slice(g,m)},extname(r){u(r,"path");let a=-1,g=0,m=-1,h=!0,v=0;for(let N=r.length-1;N>=0;--N){const A=r.charCodeAt(N);if(A===c){if(!h){g=N+1;break}continue}m===-1&&(h=!1,m=N+1),A===p?a===-1?a=N:v!==1&&(v=1):a!==-1&&(v=-1)}return a===-1||m===-1||v===0||v===1&&a===m-1&&a===g+1?"":r.slice(a,m)},format:S.bind(null,"/"),parse(r){u(r,"path");const a={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return a;const g=r.charCodeAt(0)===c;let m;g?(a.root="/",m=1):m=0;let h=-1,v=0,N=-1,A=!0,D=r.length-1,P=0;for(;D>=m;--D){const T=r.charCodeAt(D);if(T===c){if(!A){v=D+1;break}continue}N===-1&&(A=!1,N=D+1),T===p?h===-1?h=D:P!==1&&(P=1):h!==-1&&(P=-1)}if(N!==-1){const T=v===0&&g?1:v;h===-1||P===0||P===1&&h===N-1&&h===v+1?a.base=a.name=r.slice(T,N):(a.name=r.slice(T,h),a.base=r.slice(T,N),a.ext=r.slice(h,N))}return v>0?a.dir=r.slice(0,v-1):g&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null},t.posix.win32=t.win32.win32=t.win32,t.posix.posix=t.win32.posix=t.posix,t.normalize=b?t.win32.normalize:t.posix.normalize,t.resolve=b?t.win32.resolve:t.posix.resolve,t.relative=b?t.win32.relative:t.posix.relative,t.dirname=b?t.win32.dirname:t.posix.dirname,t.basename=b?t.win32.basename:t.posix.basename,t.extname=b?t.win32.extname:t.posix.extname,t.sep=b?t.win32.sep:t.posix.sep}),X(J[18],Z([0,1,63,17]),function(q,t,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uriToFsPath=t.URI=void 0;const i=/^\w[\w\d+.-]*$/,d=/^\//,_=/^\/\//;function p(g,m){if(!g.scheme&&m)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${g.authority}", path: "${g.path}", query: "${g.query}", fragment: "${g.fragment}"}`);if(g.scheme&&!i.test(g.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(g.path){if(g.authority){if(!d.test(g.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(_.test(g.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function c(g,m){return!g&&!m?"file":g}function o(g,m){switch(g){case"https":case"http":case"file":m?m[0]!==e&&(m=e+m):m=e;break}return m}const L="",e="/",s=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class l{static isUri(m){return m instanceof l?!0:m?typeof m.authority=="string"&&typeof m.fragment=="string"&&typeof m.path=="string"&&typeof m.query=="string"&&typeof m.scheme=="string"&&typeof m.fsPath=="string"&&typeof m.with=="function"&&typeof m.toString=="function":!1}constructor(m,h,v,N,A,D=!1){typeof m=="object"?(this.scheme=m.scheme||L,this.authority=m.authority||L,this.path=m.path||L,this.query=m.query||L,this.fragment=m.fragment||L):(this.scheme=c(m,D),this.authority=h||L,this.path=o(this.scheme,v||L),this.query=N||L,this.fragment=A||L,p(this,D))}get fsPath(){return E(this,!1)}with(m){if(!m)return this;let{scheme:h,authority:v,path:N,query:A,fragment:D}=m;return h===void 0?h=this.scheme:h===null&&(h=L),v===void 0?v=this.authority:v===null&&(v=L),N===void 0?N=this.path:N===null&&(N=L),A===void 0?A=this.query:A===null&&(A=L),D===void 0?D=this.fragment:D===null&&(D=L),h===this.scheme&&v===this.authority&&N===this.path&&A===this.query&&D===this.fragment?this:new b(h,v,N,A,D)}static parse(m,h=!1){const v=s.exec(m);return v?new b(v[2]||L,a(v[4]||L),a(v[5]||L),a(v[7]||L),a(v[9]||L),h):new b(L,L,L,L,L)}static file(m){let h=L;if(R.isWindows&&(m=m.replace(/\\/g,e)),m[0]===e&&m[1]===e){const v=m.indexOf(e,2);v===-1?(h=m.substring(2),m=e):(h=m.substring(2,v),m=m.substring(v)||e)}return new b("file",h,m,L,L)}static from(m,h){return new b(m.scheme,m.authority,m.path,m.query,m.fragment,h)}static joinPath(m,...h){if(!m.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let v;return R.isWindows&&m.scheme==="file"?v=l.file(M.win32.join(E(m,!0),...h)).path:v=M.posix.join(m.path,...h),m.with({path:v})}toString(m=!1){return S(this,m)}toJSON(){return this}static revive(m){var h,v;if(m){if(m instanceof l)return m;{const N=new b(m);return N._formatted=(h=m.external)!==null&&h!==void 0?h:null,N._fsPath=m._sep===u&&(v=m.fsPath)!==null&&v!==void 0?v:null,N}}else return m}}t.URI=l;const u=R.isWindows?1:void 0;class b extends l{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(m=!1){return m?S(this,!0):(this._formatted||(this._formatted=S(this,!1)),this._formatted)}toJSON(){const m={$mid:1};return this._fsPath&&(m.fsPath=this._fsPath,m._sep=u),this._formatted&&(m.external=this._formatted),this.path&&(m.path=this.path),this.scheme&&(m.scheme=this.scheme),this.authority&&(m.authority=this.authority),this.query&&(m.query=this.query),this.fragment&&(m.fragment=this.fragment),m}}const f={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function y(g,m,h){let v,N=-1;for(let A=0;A=97&&D<=122||D>=65&&D<=90||D>=48&&D<=57||D===45||D===46||D===95||D===126||m&&D===47||h&&D===91||h&&D===93||h&&D===58)N!==-1&&(v+=encodeURIComponent(g.substring(N,A)),N=-1),v!==void 0&&(v+=g.charAt(A));else{v===void 0&&(v=g.substr(0,A));const P=f[D];P!==void 0?(N!==-1&&(v+=encodeURIComponent(g.substring(N,A)),N=-1),v+=P):N===-1&&(N=A)}}return N!==-1&&(v+=encodeURIComponent(g.substring(N))),v!==void 0?v:g}function w(g){let m;for(let h=0;h1&&g.scheme==="file"?h=`//${g.authority}${g.path}`:g.path.charCodeAt(0)===47&&(g.path.charCodeAt(1)>=65&&g.path.charCodeAt(1)<=90||g.path.charCodeAt(1)>=97&&g.path.charCodeAt(1)<=122)&&g.path.charCodeAt(2)===58?m?h=g.path.substr(1):h=g.path[1].toLowerCase()+g.path.substr(2):h=g.path,R.isWindows&&(h=h.replace(/\//g,"\\")),h}t.uriToFsPath=E;function S(g,m){const h=m?w:y;let v="",{scheme:N,authority:A,path:D,query:P,fragment:T}=g;if(N&&(v+=N,v+=":"),(A||N==="file")&&(v+=e,v+=e),A){let I=A.indexOf("@");if(I!==-1){const B=A.substr(0,I);A=A.substr(I+1),I=B.lastIndexOf(":"),I===-1?v+=h(B,!1,!1):(v+=h(B.substr(0,I),!1,!1),v+=":",v+=h(B.substr(I+1),!1,!0)),v+="@"}A=A.toLowerCase(),I=A.lastIndexOf(":"),I===-1?v+=h(A,!1,!0):(v+=h(A.substr(0,I),!1,!0),v+=A.substr(I))}if(D){if(D.length>=3&&D.charCodeAt(0)===47&&D.charCodeAt(2)===58){const I=D.charCodeAt(1);I>=65&&I<=90&&(D=`/${String.fromCharCode(I+32)}:${D.substr(3)}`)}else if(D.length>=2&&D.charCodeAt(1)===58){const I=D.charCodeAt(0);I>=65&&I<=90&&(D=`${String.fromCharCode(I+32)}:${D.substr(2)}`)}v+=h(D,!0,!1)}return P&&(v+="?",v+=h(P,!1,!1)),T&&(v+="#",v+=m?T:y(T,!1,!1)),v}function C(g){try{return decodeURIComponent(g)}catch{return g.length>3?g.substr(0,3)+C(g.substr(3)):g}}const r=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function a(g){return g.match(r)?g.replace(r,m=>C(m)):g}}),X(J[67],Z([0,1,5,9,13,14,17,6]),function(q,t,M,R,i,d,_,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.SimpleWorkerServer=t.SimpleWorkerClient=t.logOnceWebWorkerWarning=void 0;const c="$initialize";let o=!1;function L(a){_.isWeb&&(o||(o=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(a.message))}t.logOnceWebWorkerWarning=L;class e{constructor(g,m,h,v){this.vsWorker=g,this.req=m,this.method=h,this.args=v,this.type=0}}class s{constructor(g,m,h,v){this.vsWorker=g,this.seq=m,this.res=h,this.err=v,this.type=1}}class l{constructor(g,m,h,v){this.vsWorker=g,this.req=m,this.eventName=h,this.arg=v,this.type=2}}class u{constructor(g,m,h){this.vsWorker=g,this.req=m,this.event=h,this.type=3}}class b{constructor(g,m){this.vsWorker=g,this.req=m,this.type=4}}class f{constructor(g){this._workerId=-1,this._handler=g,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(g){this._workerId=g}sendMessage(g,m){const h=String(++this._lastSentReq);return new Promise((v,N)=>{this._pendingReplies[h]={resolve:v,reject:N},this._send(new e(this._workerId,h,g,m))})}listen(g,m){let h=null;const v=new R.Emitter({onWillAddFirstListener:()=>{h=String(++this._lastSentReq),this._pendingEmitters.set(h,v),this._send(new l(this._workerId,h,g,m))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(h),this._send(new b(this._workerId,h)),h=null}});return v.event}handleMessage(g){!g||!g.vsWorker||this._workerId!==-1&&g.vsWorker!==this._workerId||this._handleMessage(g)}_handleMessage(g){switch(g.type){case 1:return this._handleReplyMessage(g);case 0:return this._handleRequestMessage(g);case 2:return this._handleSubscribeEventMessage(g);case 3:return this._handleEventMessage(g);case 4:return this._handleUnsubscribeEventMessage(g)}}_handleReplyMessage(g){if(!this._pendingReplies[g.seq]){console.warn("Got reply to unknown seq");return}const m=this._pendingReplies[g.seq];if(delete this._pendingReplies[g.seq],g.err){let h=g.err;g.err.$isError&&(h=new Error,h.name=g.err.name,h.message=g.err.message,h.stack=g.err.stack),m.reject(h);return}m.resolve(g.res)}_handleRequestMessage(g){const m=g.req;this._handler.handleMessage(g.method,g.args).then(v=>{this._send(new s(this._workerId,m,v,void 0))},v=>{v.detail instanceof Error&&(v.detail=(0,M.transformErrorForSerialization)(v.detail)),this._send(new s(this._workerId,m,void 0,(0,M.transformErrorForSerialization)(v)))})}_handleSubscribeEventMessage(g){const m=g.req,h=this._handler.handleEvent(g.eventName,g.arg)(v=>{this._send(new u(this._workerId,m,v))});this._pendingEvents.set(m,h)}_handleEventMessage(g){if(!this._pendingEmitters.has(g.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(g.req).fire(g.event)}_handleUnsubscribeEventMessage(g){if(!this._pendingEvents.has(g.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(g.req).dispose(),this._pendingEvents.delete(g.req)}_send(g){const m=[];if(g.type===0)for(let h=0;h{this._protocol.handleMessage(I)},I=>{v?.(I)})),this._protocol=new f({sendMessage:(I,B)=>{this._worker.postMessage(I,B)},handleMessage:(I,B)=>{if(typeof h[I]!="function")return Promise.reject(new Error("Missing method "+I+" on main thread host."));try{return Promise.resolve(h[I].apply(h,B))}catch(z){return Promise.reject(z)}},handleEvent:(I,B)=>{if(E(I)){const z=h[I].call(h,B);if(typeof z!="function")throw new Error(`Missing dynamic event ${I} on main thread host.`);return z}if(w(I)){const z=h[I];if(typeof z!="function")throw new Error(`Missing event ${I} on main thread host.`);return z}throw new Error(`Malformed event name ${I}`)}}),this._protocol.setWorkerId(this._worker.getId());let N=null;const A=globalThis.require;typeof A<"u"&&typeof A.getConfig=="function"?N=A.getConfig():typeof globalThis.requirejs<"u"&&(N=globalThis.requirejs.s.contexts._.config);const D=(0,d.getAllMethodNames)(h);this._onModuleLoaded=this._protocol.sendMessage(c,[this._worker.getId(),JSON.parse(JSON.stringify(N)),m,D]);const P=(I,B)=>this._request(I,B),T=(I,B)=>this._protocol.listen(I,B);this._lazyProxy=new Promise((I,B)=>{v=B,this._onModuleLoaded.then(z=>{I(S(z,P,T))},z=>{B(z),this._onError("Worker failed to load "+m,z)})})}getProxyObject(){return this._lazyProxy}_request(g,m){return new Promise((h,v)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(g,m).then(h,v)},v)})}_onError(g,m){console.error(g),console.info(m)}}t.SimpleWorkerClient=y;function w(a){return a[0]==="o"&&a[1]==="n"&&p.isUpperAsciiLetter(a.charCodeAt(2))}function E(a){return/^onDynamic/.test(a)&&p.isUpperAsciiLetter(a.charCodeAt(9))}function S(a,g,m){const h=A=>function(){const D=Array.prototype.slice.call(arguments,0);return g(A,D)},v=A=>function(D){return m(A,D)},N={};for(const A of a){if(E(A)){N[A]=v(A);continue}if(w(A)){N[A]=m(A,void 0);continue}N[A]=h(A)}return N}class C{constructor(g,m){this._requestHandlerFactory=m,this._requestHandler=null,this._protocol=new f({sendMessage:(h,v)=>{g(h,v)},handleMessage:(h,v)=>this._handleMessage(h,v),handleEvent:(h,v)=>this._handleEvent(h,v)})}onmessage(g){this._protocol.handleMessage(g)}_handleMessage(g,m){if(g===c)return this.initialize(m[0],m[1],m[2],m[3]);if(!this._requestHandler||typeof this._requestHandler[g]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+g));try{return Promise.resolve(this._requestHandler[g].apply(this._requestHandler,m))}catch(h){return Promise.reject(h)}}_handleEvent(g,m){if(!this._requestHandler)throw new Error("Missing requestHandler");if(E(g)){const h=this._requestHandler[g].call(this._requestHandler,m);if(typeof h!="function")throw new Error(`Missing dynamic event ${g} on request handler.`);return h}if(w(g)){const h=this._requestHandler[g];if(typeof h!="function")throw new Error(`Missing event ${g} on request handler.`);return h}throw new Error(`Malformed event name ${g}`)}initialize(g,m,h,v){this._protocol.setWorkerId(g);const D=S(v,(P,T)=>this._protocol.sendMessage(P,T),(P,T)=>this._protocol.listen(P,T));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(D),Promise.resolve((0,d.getAllMethodNames)(this._requestHandler))):(m&&(typeof m.baseUrl<"u"&&delete m.baseUrl,typeof m.paths<"u"&&typeof m.paths.vs<"u"&&delete m.paths.vs,typeof m.trustedTypesPolicy<"u"&&delete m.trustedTypesPolicy,m.catchError=!0,globalThis.require.config(m)),new Promise((P,T)=>{(globalThis.require||q)([h],B=>{if(this._requestHandler=B.create(D),!this._requestHandler){T(new Error("No RequestHandler!"));return}P((0,d.getAllMethodNames)(this._requestHandler))},T)}))}}t.SimpleWorkerServer=C;function r(a){return new C(a,null)}t.create=r}),X(J[64],Z([19,61]),function(q,t){return q.create("vs/editor/common/languages",t)}),X(J[65],Z([0,1,40,18,2,59,64]),function(q,t,M,R,i,d,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineEditTriggerKind=t.TokenizationRegistry=t.LazyTokenizationSupport=t.InlayHintKind=t.Command=t.NewSymbolNameTag=t.FoldingRangeKind=t.TextEdit=t.SymbolKinds=t.getAriaLabelForSymbol=t.symbolKindNames=t.isLocationLink=t.DocumentHighlightKind=t.SignatureHelpTriggerKind=t.SelectedSuggestionInfo=t.InlineCompletionTriggerKind=t.CompletionItemKinds=t.EncodedTokenizationResult=t.TokenizationResult=t.Token=void 0;class p{constructor(h,v,N){this.offset=h,this.type=v,this.language=N,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}t.Token=p;class c{constructor(h,v){this.tokens=h,this.endState=v,this._tokenizationResultBrand=void 0}}t.TokenizationResult=c;class o{constructor(h,v){this.tokens=h,this.endState=v,this._encodedTokenizationResultBrand=void 0}}t.EncodedTokenizationResult=o;var L;(function(m){const h=new Map;h.set(0,M.Codicon.symbolMethod),h.set(1,M.Codicon.symbolFunction),h.set(2,M.Codicon.symbolConstructor),h.set(3,M.Codicon.symbolField),h.set(4,M.Codicon.symbolVariable),h.set(5,M.Codicon.symbolClass),h.set(6,M.Codicon.symbolStruct),h.set(7,M.Codicon.symbolInterface),h.set(8,M.Codicon.symbolModule),h.set(9,M.Codicon.symbolProperty),h.set(10,M.Codicon.symbolEvent),h.set(11,M.Codicon.symbolOperator),h.set(12,M.Codicon.symbolUnit),h.set(13,M.Codicon.symbolValue),h.set(15,M.Codicon.symbolEnum),h.set(14,M.Codicon.symbolConstant),h.set(15,M.Codicon.symbolEnum),h.set(16,M.Codicon.symbolEnumMember),h.set(17,M.Codicon.symbolKeyword),h.set(27,M.Codicon.symbolSnippet),h.set(18,M.Codicon.symbolText),h.set(19,M.Codicon.symbolColor),h.set(20,M.Codicon.symbolFile),h.set(21,M.Codicon.symbolReference),h.set(22,M.Codicon.symbolCustomColor),h.set(23,M.Codicon.symbolFolder),h.set(24,M.Codicon.symbolTypeParameter),h.set(25,M.Codicon.account),h.set(26,M.Codicon.issues);function v(D){let P=h.get(D);return P||(console.info("No codicon found for CompletionItemKind "+D),P=M.Codicon.symbolProperty),P}m.toIcon=v;const N=new Map;N.set("method",0),N.set("function",1),N.set("constructor",2),N.set("field",3),N.set("variable",4),N.set("class",5),N.set("struct",6),N.set("interface",7),N.set("module",8),N.set("property",9),N.set("event",10),N.set("operator",11),N.set("unit",12),N.set("value",13),N.set("constant",14),N.set("enum",15),N.set("enum-member",16),N.set("enumMember",16),N.set("keyword",17),N.set("snippet",27),N.set("text",18),N.set("color",19),N.set("file",20),N.set("reference",21),N.set("customcolor",22),N.set("folder",23),N.set("type-parameter",24),N.set("typeParameter",24),N.set("account",25),N.set("issue",26);function A(D,P){let T=N.get(D);return typeof T>"u"&&!P&&(T=9),T}m.fromString=A})(L||(t.CompletionItemKinds=L={}));var e;(function(m){m[m.Automatic=0]="Automatic",m[m.Explicit=1]="Explicit"})(e||(t.InlineCompletionTriggerKind=e={}));class s{constructor(h,v,N,A){this.range=h,this.text=v,this.completionKind=N,this.isSnippetText=A}equals(h){return i.Range.lift(this.range).equalsRange(h.range)&&this.text===h.text&&this.completionKind===h.completionKind&&this.isSnippetText===h.isSnippetText}}t.SelectedSuggestionInfo=s;var l;(function(m){m[m.Invoke=1]="Invoke",m[m.TriggerCharacter=2]="TriggerCharacter",m[m.ContentChange=3]="ContentChange"})(l||(t.SignatureHelpTriggerKind=l={}));var u;(function(m){m[m.Text=0]="Text",m[m.Read=1]="Read",m[m.Write=2]="Write"})(u||(t.DocumentHighlightKind=u={}));function b(m){return m&&R.URI.isUri(m.uri)&&i.Range.isIRange(m.range)&&(i.Range.isIRange(m.originSelectionRange)||i.Range.isIRange(m.targetSelectionRange))}t.isLocationLink=b,t.symbolKindNames={17:(0,_.localize)(0,null),16:(0,_.localize)(1,null),4:(0,_.localize)(2,null),13:(0,_.localize)(3,null),8:(0,_.localize)(4,null),9:(0,_.localize)(5,null),21:(0,_.localize)(6,null),23:(0,_.localize)(7,null),7:(0,_.localize)(8,null),0:(0,_.localize)(9,null),11:(0,_.localize)(10,null),10:(0,_.localize)(11,null),19:(0,_.localize)(12,null),5:(0,_.localize)(13,null),1:(0,_.localize)(14,null),2:(0,_.localize)(15,null),20:(0,_.localize)(16,null),15:(0,_.localize)(17,null),18:(0,_.localize)(18,null),24:(0,_.localize)(19,null),3:(0,_.localize)(20,null),6:(0,_.localize)(21,null),14:(0,_.localize)(22,null),22:(0,_.localize)(23,null),25:(0,_.localize)(24,null),12:(0,_.localize)(25,null)};function f(m,h){return(0,_.localize)(26,null,m,t.symbolKindNames[h])}t.getAriaLabelForSymbol=f;var y;(function(m){const h=new Map;h.set(0,M.Codicon.symbolFile),h.set(1,M.Codicon.symbolModule),h.set(2,M.Codicon.symbolNamespace),h.set(3,M.Codicon.symbolPackage),h.set(4,M.Codicon.symbolClass),h.set(5,M.Codicon.symbolMethod),h.set(6,M.Codicon.symbolProperty),h.set(7,M.Codicon.symbolField),h.set(8,M.Codicon.symbolConstructor),h.set(9,M.Codicon.symbolEnum),h.set(10,M.Codicon.symbolInterface),h.set(11,M.Codicon.symbolFunction),h.set(12,M.Codicon.symbolVariable),h.set(13,M.Codicon.symbolConstant),h.set(14,M.Codicon.symbolString),h.set(15,M.Codicon.symbolNumber),h.set(16,M.Codicon.symbolBoolean),h.set(17,M.Codicon.symbolArray),h.set(18,M.Codicon.symbolObject),h.set(19,M.Codicon.symbolKey),h.set(20,M.Codicon.symbolNull),h.set(21,M.Codicon.symbolEnumMember),h.set(22,M.Codicon.symbolStruct),h.set(23,M.Codicon.symbolEvent),h.set(24,M.Codicon.symbolOperator),h.set(25,M.Codicon.symbolTypeParameter);function v(N){let A=h.get(N);return A||(console.info("No codicon found for SymbolKind "+N),A=M.Codicon.symbolProperty),A}m.toIcon=v})(y||(t.SymbolKinds=y={}));class w{}t.TextEdit=w;class E{static fromValue(h){switch(h){case"comment":return E.Comment;case"imports":return E.Imports;case"region":return E.Region}return new E(h)}constructor(h){this.value=h}}t.FoldingRangeKind=E,E.Comment=new E("comment"),E.Imports=new E("imports"),E.Region=new E("region");var S;(function(m){m[m.AIGenerated=1]="AIGenerated"})(S||(t.NewSymbolNameTag=S={}));var C;(function(m){function h(v){return!v||typeof v!="object"?!1:typeof v.id=="string"&&typeof v.title=="string"}m.is=h})(C||(t.Command=C={}));var r;(function(m){m[m.Type=1]="Type",m[m.Parameter=2]="Parameter"})(r||(t.InlayHintKind=r={}));class a{constructor(h){this.createSupport=h,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(h=>{h&&h.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}t.LazyTokenizationSupport=a,t.TokenizationRegistry=new d.TokenizationRegistry;var g;(function(m){m[m.Invoke=0]="Invoke",m[m.Automatic=1]="Automatic"})(g||(t.InlineEditTriggerKind=g={}))}),X(J[66],Z([0,1,38,9,35,18,4,2,41,65,58]),function(q,t,M,R,i,d,_,p,c,o,L){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMonacoBaseAPI=t.KeyMod=void 0;class e{static chord(u,b){return(0,i.KeyChord)(u,b)}}t.KeyMod=e,e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256;function s(){return{editor:void 0,languages:void 0,CancellationTokenSource:M.CancellationTokenSource,Emitter:R.Emitter,KeyCode:L.KeyCode,KeyMod:e,Position:_.Position,Range:p.Range,Selection:c.Selection,SelectionDirection:L.SelectionDirection,MarkerSeverity:L.MarkerSeverity,MarkerTag:L.MarkerTag,Uri:d.URI,Token:o.Token}}t.createMonacoBaseAPI=s}),X(J[68],Z([0,1,24,18,4,2,55,28,51,52,66,23,57,49,14,50]),function(q,t,M,R,i,d,_,p,c,o,L,e,s,l,u,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.EditorSimpleWorker=void 0;class f extends _.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(S){const C=[];for(let r=0;rthis._lines.length)C=this._lines.length,r=this._lines[C-1].length+1,a=!0;else{const g=this._lines[C-1].length+1;r<1?(r=1,a=!0):r>g&&(r=g,a=!0)}return a?{lineNumber:C,column:r}:S}}class y{constructor(S,C){this._host=S,this._models=Object.create(null),this._foreignModuleFactory=C,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(S){return this._models[S]}_getModels(){const S=[];return Object.keys(this._models).forEach(C=>S.push(this._models[C])),S}acceptNewModel(S){this._models[S.url]=new f(R.URI.parse(S.url),S.lines,S.EOL,S.versionId)}acceptModelChanged(S,C){if(!this._models[S])return;this._models[S].onEvents(C)}acceptRemovedModel(S){this._models[S]&&delete this._models[S]}async computeUnicodeHighlights(S,C,r){const a=this._getModel(S);return a?s.UnicodeTextModelHighlighter.computeUnicodeHighlights(a,C,r):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async computeDiff(S,C,r,a){const g=this._getModel(S),m=this._getModel(C);return!g||!m?null:y.computeDiff(g,m,r,a)}static computeDiff(S,C,r,a){const g=a==="advanced"?l.linesDiffComputers.getDefault():l.linesDiffComputers.getLegacy(),m=S.getLinesContent(),h=C.getLinesContent(),v=g.computeDiff(m,h,r),N=v.changes.length>0?!1:this._modelsAreIdentical(S,C);function A(D){return D.map(P=>{var T;return[P.original.startLineNumber,P.original.endLineNumberExclusive,P.modified.startLineNumber,P.modified.endLineNumberExclusive,(T=P.innerChanges)===null||T===void 0?void 0:T.map(I=>[I.originalRange.startLineNumber,I.originalRange.startColumn,I.originalRange.endLineNumber,I.originalRange.endColumn,I.modifiedRange.startLineNumber,I.modifiedRange.startColumn,I.modifiedRange.endLineNumber,I.modifiedRange.endColumn])]})}return{identical:N,quitEarly:v.hitTimeout,changes:A(v.changes),moves:v.moves.map(D=>[D.lineRangeMapping.original.startLineNumber,D.lineRangeMapping.original.endLineNumberExclusive,D.lineRangeMapping.modified.startLineNumber,D.lineRangeMapping.modified.endLineNumberExclusive,A(D.changes)])}}static _modelsAreIdentical(S,C){const r=S.getLineCount(),a=C.getLineCount();if(r!==a)return!1;for(let g=1;g<=r;g++){const m=S.getLineContent(g),h=C.getLineContent(g);if(m!==h)return!1}return!0}async computeMoreMinimalEdits(S,C,r){const a=this._getModel(S);if(!a)return C;const g=[];let m;C=C.slice(0).sort((v,N)=>{if(v.range&&N.range)return d.Range.compareRangesUsingStarts(v.range,N.range);const A=v.range?0:1,D=N.range?0:1;return A-D});let h=0;for(let v=1;vy._diffLimit){g.push({range:v,text:N});continue}const P=(0,M.stringDiff)(D,N,r),T=a.offsetAt(d.Range.lift(v).getStartPosition());for(const I of P){const B=a.positionAt(T+I.originalStart),z=a.positionAt(T+I.originalStart+I.originalLength),x={text:N.substr(I.modifiedStart,I.modifiedLength),range:{startLineNumber:B.lineNumber,startColumn:B.column,endLineNumber:z.lineNumber,endColumn:z.column}};a.getValueInRange(x.range)!==x.text&&g.push(x)}}return typeof m=="number"&&g.push({eol:m,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),g}async computeLinks(S){const C=this._getModel(S);return C?(0,c.computeLinks)(C):null}async computeDefaultDocumentColors(S){const C=this._getModel(S);return C?(0,b.computeDefaultDocumentColors)(C):null}async textualSuggest(S,C,r,a){const g=new e.StopWatch,m=new RegExp(r,a),h=new Set;e:for(const v of S){const N=this._getModel(v);if(N){for(const A of N.words(m))if(!(A===C||!isNaN(Number(A)))&&(h.add(A),h.size>y._suggestionsLimit))break e}}return{words:Array.from(h),duration:g.elapsed()}}async computeWordRanges(S,C,r,a){const g=this._getModel(S);if(!g)return Object.create(null);const m=new RegExp(r,a),h=Object.create(null);for(let v=C.startLineNumber;vthis._host.fhr(h,v),m={host:(0,u.createProxyObject)(r,a),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(m,C),Promise.resolve((0,u.getAllMethodNames)(this._foreignModule))):new Promise((h,v)=>{q([S],N=>{this._foreignModule=N.create(m,C),h((0,u.getAllMethodNames)(this._foreignModule))},v)})}fmr(S,C){if(!this._foreignModule||typeof this._foreignModule[S]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+S));try{return Promise.resolve(this._foreignModule[S].apply(this._foreignModule,C))}catch(r){return Promise.reject(r)}}}t.EditorSimpleWorker=y,y._diffLimit=1e5,y._suggestionsLimit=1e4;function w(E){return new y(E,null)}t.create=w,typeof importScripts=="function"&&(globalThis.monaco=(0,L.createMonacoBaseAPI)())})}).call(this); + +//# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/abap/abap.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/abap/abap.js new file mode 100644 index 0000000..3343569 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/abap/abap.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/abap/abap", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var i in e)s(t,i,{get:e[i],enumerable:!0})},d=(t,e,i,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!c.call(t,n)&&n!==i&&s(t,n,{get:()=>e[n],enumerable:!(a=o(e,n))||a.enumerable});return t};var p=t=>d(s({},"__esModule",{value:!0}),t);var g={};l(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},u={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}};return p(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/apex/apex.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/apex/apex.js new file mode 100644 index 0000000..ae5ac92 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/apex/apex.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/apex/apex", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(e,t)=>{for(var s in t)i(e,s,{get:t[s],enumerable:!0})},g=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of c(t))!l.call(e,o)&&o!==s&&i(e,o,{get:()=>t[o],enumerable:!(a=r(t,o))||a.enumerable});return e};var p=e=>g(i({},"__esModule",{value:!0}),e);var h={};d(h,{conf:()=>m,language:()=>b});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},u=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],f=e=>e.charAt(0).toUpperCase()+e.substr(1),n=[];u.forEach(e=>{n.push(e),n.push(e.toUpperCase()),n.push(f(e))});var b={defaultToken:"",tokenPostfix:".apex",keywords:n,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};return p(h);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/azcli/azcli.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/azcli/azcli.js new file mode 100644 index 0000000..c0ea384 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/azcli/azcli.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/azcli/azcli", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},k=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!l.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(a=i(e,n))||a.enumerable});return t};var p=t=>k(s({},"__esModule",{value:!0}),t);var d={};c(d,{conf:()=>f,language:()=>g});var f={comments:{lineComment:"#"}},g={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}};return p(d);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/bat/bat.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/bat/bat.js new file mode 100644 index 0000000..9600640 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/bat/bat.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/bat/bat", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var g=(o,e)=>{for(var t in e)n(o,t,{get:e[t],enumerable:!0})},c=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!i.call(o,s)&&s!==t&&n(o,s,{get:()=>e[s],enumerable:!(a=r(e,s))||a.enumerable});return o};var p=o=>c(n({},"__esModule",{value:!0}),o);var k={};g(k,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var g=(e,n)=>{for(var o in n)r(e,o,{get:n[o],enumerable:!0})},l=(e,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of c(n))!a.call(e,t)&&t!==o&&r(e,t,{get:()=>n[t],enumerable:!(i=s(n,t))||i.enumerable});return e};var m=e=>l(r({},"__esModule",{value:!0}),e);var y={};g(y,{conf:()=>$,language:()=>w});var p=e=>`\\b${e}\\b`,k="[_a-zA-Z]",x="[_a-zA-Z0-9]",u=p(`${k}${x}*`),d=["targetScope","resource","module","param","var","output","for","in","if","existing"],b=["true","false","null"],f="[ \\t\\r\\n]",C="[0-9]+",$={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:`:.,=}])' + `,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},w={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},m=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(o,t)&&t!==n&&s(o,t,{get:()=>e[t],enumerable:!(r=i(e,t))||r.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},g={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/clojure/clojure.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/clojure/clojure.js new file mode 100644 index 0000000..32886e0 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/clojure/clojure.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/clojure/clojure", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},l=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!c.call(t,n)&&n!==r&&a(t,n,{get:()=>e[n],enumerable:!(s=o(e,n))||s.enumerable});return t};var p=t=>l(a({},"__esModule",{value:!0}),t);var h={};d(h,{conf:()=>u,language:()=>m});var u={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}};return p(h);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/coffee/coffee.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/coffee/coffee.js new file mode 100644 index 0000000..8f35c19 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/coffee/coffee.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/coffee/coffee", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},p=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of g(e))!a.call(n,r)&&r!==t&&s(n,r,{get:()=>e[r],enumerable:!(o=i(e,r))||o.enumerable});return n};var c=n=>p(s({},"__esModule",{value:!0}),n);var m={};l(m,{conf:()=>d,language:()=>x});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},x={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var i in e)r(n,i,{get:e[i],enumerable:!0})},l=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of _(e))!s.call(n,t)&&t!==i&&r(n,t,{get:()=>e[t],enumerable:!(o=a(e,t))||o.enumerable});return n};var d=n=>l(r({},"__esModule",{value:!0}),n);var g={};c(g,{conf:()=>p,language:()=>m});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},m={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m512","__m512d","__m512i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>="],symbols:/[=>\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}};return d(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csharp/csharp.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csharp/csharp.js new file mode 100644 index 0000000..ba743da --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csharp/csharp.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/csharp/csharp", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return t};var g=t=>p(s({},"__esModule",{value:!0}),t);var u={};l(u,{conf:()=>d,language:()=>m});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return g(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csp/csp.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csp/csp.js new file mode 100644 index 0000000..ace112e --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/csp/csp.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/csp/csp", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var a=(r,t)=>{for(var s in t)o(r,s,{get:t[s],enumerable:!0})},c=(r,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of u(t))!g.call(r,e)&&e!==s&&o(r,e,{get:()=>t[e],enumerable:!(n=i(t,e))||n.enumerable});return r};var q=r=>c(o({},"__esModule",{value:!0}),r);var p={};a(p,{conf:()=>f,language:()=>l});var f={brackets:[],autoClosingPairs:[],surroundingPairs:[]},l={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!l.call(t,n)&&n!==o&&r(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var d=t=>c(r({},"__esModule",{value:!0}),t);var k={};m(k,{conf:()=>u,language:()=>p});var u={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},p={defaultToken:"",tokenPostfix:".css",ws:`[ +\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r +]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};return d(k);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/cypher/cypher.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/cypher/cypher.js new file mode 100644 index 0000000..88259f7 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/cypher/cypher.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/cypher/cypher", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(i,e)=>{for(var n in e)s(i,n,{get:e[n],enumerable:!0})},g=(i,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(i,t)&&t!==n&&s(i,t,{get:()=>e[t],enumerable:!(o=r(e,t))||o.enumerable});return i};var p=i=>g(s({},"__esModule",{value:!0}),i);var u={};c(u,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},m={defaultToken:"",tokenPostfix:".cypher",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","AND","AS","ASC","ASCENDING","BY","CALL","CASE","CONTAINS","CREATE","DELETE","DESC","DESCENDING","DETACH","DISTINCT","ELSE","END","ENDS","EXISTS","IN","IS","LIMIT","MANDATORY","MATCH","MERGE","NOT","ON","ON","OPTIONAL","OR","ORDER","REMOVE","RETURN","SET","SKIP","STARTS","THEN","UNION","UNWIND","WHEN","WHERE","WITH","XOR","YIELD"],builtinLiterals:["true","TRUE","false","FALSE","null","NULL"],builtinFunctions:["abs","acos","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endNode","exists","exp","floor","head","id","keys","labels","last","left","length","log","log10","lTrim","max","min","nodes","percentileCont","percentileDisc","pi","properties","radians","rand","range","relationships","replace","reverse","right","round","rTrim","sign","sin","size","split","sqrt","startNode","stDev","stDevP","substring","sum","tail","tan","timestamp","toBoolean","toFloat","toInteger","toLower","toString","toUpper","trim","type"],operators:["+","-","*","/","%","^","=","<>","<",">","<=",">=","->","<-","-->","<--"],escapes:/\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+/,octaldigits:/[0-7]+/,hexdigits:/[0-9a-fA-F]+/,tokenizer:{root:[[/[{}[\]()]/,"@brackets"],{include:"common"}],common:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/:[a-zA-Z_][\w]*/,"type.identifier"],[/[a-zA-Z_][\w]*(?=\()/,{cases:{"@builtinFunctions":"predefined.function"}}],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":"keyword","@builtinLiterals":"predefined.literal","@default":"identifier"}}],[/`/,"identifier.escape","@identifierBacktick"],[/[;,.:|]/,"delimiter"],[/[<>=%+\-*/^]+/,{cases:{"@operators":"delimiter","@default":""}}]],numbers:[[/-?(@digits)[eE](-?(@digits))?/,"number.float"],[/-?(@digits)?\.(@digits)([eE]-?(@digits))?/,"number.float"],[/-?0x(@hexdigits)/,"number.hex"],[/-?0(@octaldigits)/,"number.octal"],[/-?(@digits)/,"number"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@stringDouble"],[/'/,"string","@stringSingle"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/\/\/.*/,"comment"],[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],stringDouble:[[/[^\\"]+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/"/,"string","@pop"]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/'/,"string","@pop"]],identifierBacktick:[[/[^\\`]+/,"identifier.escape"],[/@escapes/,"identifier.escape"],[/\\./,"identifier.escape.invalid"],[/`/,"identifier.escape","@pop"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dart/dart.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dart/dart.js new file mode 100644 index 0000000..aa14c4c --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dart/dart.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/dart/dart", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var p=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!a.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(s=i(e,o))||s.enumerable});return n};var l=n=>g(r({},"__esModule",{value:!0}),n);var x={};p(x,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},m={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}};return l(x);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js new file mode 100644 index 0000000..01d9fff --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/dockerfile/dockerfile", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(o,e)=>{for(var s in e)a(o,s,{get:e[s],enumerable:!0})},g=(o,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!i.call(o,n)&&n!==s&&a(o,n,{get:()=>e[n],enumerable:!(t=l(e,n))||t.enumerable});return o};var c=o=>g(a({},"__esModule",{value:!0}),o);var k={};p(k,{conf:()=>u,language:()=>d});var u={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}};return c(k);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ecl/ecl.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ecl/ecl.js new file mode 100644 index 0000000..bd75df3 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ecl/ecl.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/ecl/ecl", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)r(o,t,{get:e[t],enumerable:!0})},d=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!l.call(o,n)&&n!==t&&r(o,n,{get:()=>e[n],enumerable:!(a=i(e,n))||a.enumerable});return o};var p=o=>d(r({},"__esModule",{value:!0}),o);var g={};c(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},u={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}};return p(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/elixir/elixir.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/elixir/elixir.js new file mode 100644 index 0000000..6a43287 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/elixir/elixir.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/elixir/elixir", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var i in e)o(t,i,{get:e[i],enumerable:!0})},c=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!a.call(t,n)&&n!==i&&o(t,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return t};var m=t=>c(o({},"__esModule",{value:!0}),t);var p={};d(p,{conf:()=>u,language:()=>g});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},g={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)(\s+)/,["constant","constant.punctuation","white"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-z]|[A-Z]+)\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-z]|[A-Z]+)\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-z]|[A-Z]+)\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-z]|[A-Z]+)\"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?'''/,{token:"comment.block.documentation",next:"@singleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc (~[sS])?'/,{token:"comment.block.documentation",next:"@singleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedHeredocDocstring:[[/'''/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedStringDocstring:[[/'/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}};return m(p);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/flow9/flow9.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/flow9/flow9.js new file mode 100644 index 0000000..10a37dc --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/flow9/flow9.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/flow9/flow9", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>g,language:()=>f});var g={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},f={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js new file mode 100644 index 0000000..ea81056 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js @@ -0,0 +1,12 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/freemarker2/freemarker2", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var B=Object.create;var d=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var h=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),S=(t,n)=>{for(var i in n)d(t,i,{get:n[i],enumerable:!0})},s=(t,n,i,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of D(n))!v.call(t,o)&&o!==i&&d(t,o,{get:()=>n[o],enumerable:!(e=C(n,o))||e.enumerable});return t},m=(t,n,i)=>(s(t,n,"default"),i&&s(i,n,"default")),x=(t,n,i)=>(i=t!=null?B(T(t)):{},s(n||!t||!t.__esModule?d(i,"default",{value:t,enumerable:!0}):i,t)),I=t=>s(d({},"__esModule",{value:!0}),t);var F=h((q,f)=>{var y=x(w("vs/editor/editor.api"));f.exports=y});var M={};S(M,{TagAngleInterpolationBracket:()=>L,TagAngleInterpolationDollar:()=>R,TagAutoInterpolationBracket:()=>j,TagAutoInterpolationDollar:()=>Z,TagBracketInterpolationBracket:()=>O,TagBracketInterpolationDollar:()=>z});var _={};m(_,x(F()));var l=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],k=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],r={close:">",id:"angle",open:"<"},u={close:"\\]",id:"bracket",open:"\\["},P={close:"[>\\]]",id:"auto",open:"[<\\[]"},g={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},A={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function p(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:` +\r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${t.open}#(?:${k.join("|")})([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),end:new RegExp(`${t.open}/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${t.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),afterText:new RegExp(`^${t.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${t.close}$`),action:{indentAction:_.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${t.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),action:{indentAction:_.languages.IndentAction.Indent}}]}}function b(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:` +\r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${k.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:_.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:_.languages.IndentAction.Indent}}]}}function a(t,n){let i=`_${t.id}_${n.id}`,e=c=>c.replace(/__id__/g,i),o=c=>{let E=c.source.replace(/__id__/g,i);return new RegExp(E,c.flags)};return{unicode:!0,includeLF:!1,start:e("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[e("open__id__")]:new RegExp(t.open),[e("close__id__")]:new RegExp(t.close),[e("iOpen1__id__")]:new RegExp(n.open1),[e("iOpen2__id__")]:new RegExp(n.open2),[e("iClose__id__")]:new RegExp(n.close),[e("startTag__id__")]:o(/(@open__id__)(#)/),[e("endTag__id__")]:o(/(@open__id__)(\/#)/),[e("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[e("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[e("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[e("default__id__")]:[{include:e("@directive_token__id__")},{include:e("@interpolation_and_text_token__id__")}],[e("fmExpression__id__.directive")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("fmExpression__id__.interpolation")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("inParen__id__.plain")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("inParen__id__.gt")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("noSpaceExpression__id__")]:[{include:e("@no_space_expression_end_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("unifiedCall__id__")]:[{include:e("@unified_call_token__id__")}],[e("singleString__id__")]:[{include:e("@string_single_token__id__")}],[e("doubleString__id__")]:[{include:e("@string_double_token__id__")}],[e("rawSingleString__id__")]:[{include:e("@string_single_raw_token__id__")}],[e("rawDoubleString__id__")]:[{include:e("@string_double_raw_token__id__")}],[e("expressionComment__id__")]:[{include:e("@expression_comment_token__id__")}],[e("noParse__id__")]:[{include:e("@no_parse_token__id__")}],[e("terseComment__id__")]:[{include:e("@terse_comment_token__id__")}],[e("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:e("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:e("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:{token:"comment",next:e("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:e("@fmExpression__id__.directive")}]]],[e("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:n.id==="bracket"?"@brackets.interpolation":"delimiter.interpolation"},{token:n.id==="bracket"?"delimiter.interpolation":"@brackets.interpolation",next:e("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[e("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[e("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[e("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[e("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[e("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:e("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:e("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:e("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:e("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\]":{cases:{...n.id==="bracket"?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},...t.id==="bracket"?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:e("@inParen__id__.gt")},"\\)":{cases:{[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\}":{cases:{...n.id==="bracket"?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[e("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:e("@expressionComment__id__")}]],[e("directive_end_token__id__")]:[[/>/,t.id==="bracket"?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[e("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[e("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:e("@fmExpression__id__.directive")}]],[e("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:e("@noSpaceExpression__id__")}]],[e("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[e("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[e("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function $(t){let n=a(r,t),i=a(u,t),e=a(P,t);return{...n,...i,...e,unicode:!0,includeLF:!1,start:`default_auto_${t.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...n.tokenizer,...i.tokenizer,...e.tokenizer}}}var R={conf:p(r),language:a(r,g)},z={conf:p(u),language:a(u,g)},L={conf:p(r),language:a(r,A)},O={conf:p(u),language:a(u,A)},Z={conf:b(),language:$(g)},j={conf:b(),language:$(A)};return I(M);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js new file mode 100644 index 0000000..8d06485 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/fsharp/fsharp", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var o in e)s(n,o,{get:e[o],enumerable:!0})},g=(n,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(n,t)&&t!==o&&s(n,t,{get:()=>e[t],enumerable:!(i=r(e,t))||i.enumerable});return n};var f=n=>g(s({},"__esModule",{value:!0}),n);var d={};c(d,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},u={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}};return f(d);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/go/go.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/go/go.js new file mode 100644 index 0000000..4c887c2 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/go/go.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/go/go", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var m=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!c.call(n,o)&&o!==t&&s(n,o,{get:()=>e[o],enumerable:!(r=i(e,o))||r.enumerable});return n};var g=n=>l(s({},"__esModule",{value:!0}),n);var d={};m(d,{conf:()=>p,language:()=>u});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},u={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}};return g(d);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/graphql/graphql.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/graphql/graphql.js new file mode 100644 index 0000000..2a222b6 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/graphql/graphql.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/graphql/graphql", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},d=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!l.call(n,o)&&o!==t&&s(n,o,{get:()=>e[o],enumerable:!(r=a(e,o))||r.enumerable});return n};var p=n=>d(s({},"__esModule",{value:!0}),n);var u={};c(u,{conf:()=>g,language:()=>I});var g={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},I={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js new file mode 100644 index 0000000..b0daf94 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/handlebars/handlebars", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var h=Object.create;var i=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),S=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},m=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of u(t))!k.call(e,r)&&r!==n&&i(e,r,{get:()=>t[r],enumerable:!(o=b(t,r))||o.enumerable});return e},l=(e,t,n)=>(m(e,t,"default"),n&&m(n,t,"default")),s=(e,t,n)=>(n=e!=null?h(x(e)):{},m(t||!e||!e.__esModule?i(n,"default",{value:e,enumerable:!0}):n,e)),E=e=>m(i({},"__esModule",{value:!0}),e);var c=T((I,d)=>{var w=s(y("vs/editor/editor.api"));d.exports=w});var f={};S(f,{conf:()=>g,language:()=>$});var a={};l(a,s(c()));var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],g={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:a.languages.IndentAction.Indent}}]},$={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};return E(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/hcl/hcl.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/hcl/hcl.js new file mode 100644 index 0000000..c4d60d9 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/hcl/hcl.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/hcl/hcl", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of i(e))!c.call(t,s)&&s!==o&&r(t,s,{get:()=>e[s],enumerable:!(n=a(e,s))||n.enumerable});return t};var m=t=>d(r({},"__esModule",{value:!0}),t);var f={};l(f,{conf:()=>p,language:()=>g});var p={comments:{lineComment:"#",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},g={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}};return m(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/html/html.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/html/html.js new file mode 100644 index 0000000..64f3199 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/html/html.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/html/html", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var u=Object.create;var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var k=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),T=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},o=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of x(t))!g.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(s=b(t,r))||s.enumerable});return e},d=(e,t,n)=>(o(e,t,"default"),n&&o(n,t,"default")),m=(e,t,n)=>(n=e!=null?u(y(e)):{},o(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),w=e=>o(a({},"__esModule",{value:!0}),e);var l=E((A,p)=>{var h=m(k("vs/editor/editor.api"));p.exports=h});var $={};T($,{conf:()=>v,language:()=>f});var i={};d(i,m(l()));var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],v={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${c.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:i.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${c.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:i.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},f={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};return w($);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ini/ini.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ini/ini.js new file mode 100644 index 0000000..214e3bc --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ini/ini.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/ini/ini", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var s in e)t(n,s,{get:e[s],enumerable:!0})},l=(n,e,s,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of r(e))!g.call(n,o)&&o!==s&&t(n,o,{get:()=>e[o],enumerable:!(a=i(e,o))||a.enumerable});return n};var p=n=>l(t({},"__esModule",{value:!0}),n);var f={};c(f,{conf:()=>u,language:()=>m});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},m={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};return p(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/java/java.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/java/java.js new file mode 100644 index 0000000..c1e56dc --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/java/java.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/java/java", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var g=t=>d(s({},"__esModule",{value:!0}),t);var f={};l(f,{conf:()=>m,language:()=>p});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},p={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};return g(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/javascript/javascript.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/javascript/javascript.js new file mode 100644 index 0000000..effcf7a --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/javascript/javascript.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/javascript/javascript", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var x=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),h=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},s=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of f(t))!k.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(c=u(t,r))||c.enumerable});return e},g=(e,t,n)=>(s(e,t,"default"),n&&s(n,t,"default")),p=(e,t,n)=>(n=e!=null?x(b(e)):{},s(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),v=e=>s(a({},"__esModule",{value:!0}),e);var d=w((C,l)=>{var A=p(y("vs/editor/editor.api"));l.exports=A});var _={};h(_,{conf:()=>$,language:()=>T});var i={};g(i,p(d()));var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:i.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:i.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:i.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:i.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},o={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};var $=m,T={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.operators,symbols:o.symbols,escapes:o.escapes,digits:o.digits,octaldigits:o.octaldigits,binarydigits:o.binarydigits,hexdigits:o.hexdigits,regexpctl:o.regexpctl,regexpesc:o.regexpesc,tokenizer:o.tokenizer};return v(_);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/julia/julia.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/julia/julia.js new file mode 100644 index 0000000..e365e55 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/julia/julia.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/julia/julia", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})},l=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!p.call(t,r)&&r!==n&&o(t,r,{get:()=>e[r],enumerable:!(a=i(e,r))||a.enumerable});return t};var d=t=>l(o({},"__esModule",{value:!0}),t);var u={};c(u,{conf:()=>g,language:()=>m});var g={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},m={tokenPostfix:".julia",keywords:["begin","while","if","for","try","return","break","continue","function","macro","quote","let","local","global","const","do","struct","module","baremodule","using","import","export","end","else","elseif","catch","finally","mutable","primitive","abstract","type","in","isa","where","new"],types:["LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","AbstractArray","UndefKeywordError","AbstractChannel","UndefRefError","AbstractChar","UndefVarError","AbstractDict","Union","AbstractDisplay","UnionAll","AbstractFloat","UnitRange","AbstractIrrational","Unsigned","AbstractMatrix","AbstractRange","Val","AbstractSet","Vararg","AbstractString","VecElement","AbstractUnitRange","VecOrMat","AbstractVecOrMat","Vector","AbstractVector","VersionNumber","Any","WeakKeyDict","ArgumentError","WeakRef","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError"],keywordops:["<:",">:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","\u03C0","\u212F","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","\xF7","\u2208","\u2209","\u220B","\u220C","\u2218","\u221A","\u221B","\u2229","\u222A","\u2248","\u2249","\u2260","\u2261","\u2262","\u2264","\u2265","\u2286","\u2287","\u2288","\u2289","\u228A","\u228B","\u22BB"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/π|ℯ|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}};return d(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js new file mode 100644 index 0000000..ed622b8 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/kotlin/kotlin", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var i in e)o(n,i,{get:e[i],enumerable:!0})},d=(n,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of r(e))!c.call(n,t)&&t!==i&&o(n,t,{get:()=>e[t],enumerable:!(s=a(e,t))||s.enumerable});return n};var g=n=>d(o({},"__esModule",{value:!0}),n);var f={};l(f,{conf:()=>m,language:()=>p});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},p={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};return g(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/less/less.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/less/less.js new file mode 100644 index 0000000..0044c16 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/less/less.js @@ -0,0 +1,11 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/less/less", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var i in e)r(t,i,{get:e[i],enumerable:!0})},u=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(t,n)&&n!==i&&r(t,n,{get:()=>e[n],enumerable:!(o=s(e,n))||o.enumerable});return t};var c=t=>u(r({},"__esModule",{value:!0}),t);var p={};d(p,{conf:()=>m,language:()=>g});var m={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},g={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},[`[^)\r +]+`,"string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}};return c(p);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lexon/lexon.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lexon/lexon.js new file mode 100644 index 0000000..06f8fc5 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lexon/lexon.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/lexon/lexon", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var i in e)n(t,i,{get:e[i],enumerable:!0})},p=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!a.call(t,o)&&o!==i&&n(t,o,{get:()=>e[o],enumerable:!(r=s(e,o))||r.enumerable});return t};var c=t=>p(n({},"__esModule",{value:!0}),t);var k={};l(k,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"COMMENT"},brackets:[["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:":",close:"."}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},u={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}};return c(k);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/liquid/liquid.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/liquid/liquid.js new file mode 100644 index 0000000..abe7caf --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/liquid/liquid.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/liquid/liquid", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var p=Object.create;var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),T=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},r=(e,t,i,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of w(t))!q.call(e,o)&&o!==i&&a(e,o,{get:()=>t[o],enumerable:!(l=g(t,o))||l.enumerable});return e},d=(e,t,i)=>(r(e,t,"default"),i&&r(i,t,"default")),s=(e,t,i)=>(i=e!=null?p(h(e)):{},r(t||!e||!e.__esModule?a(i,"default",{value:e,enumerable:!0}):i,e)),k=e=>r(a({},"__esModule",{value:!0}),e);var c=b((y,u)=>{var _=s(f("vs/editor/editor.api"));u.exports=_});var $={};T($,{conf:()=>x,language:()=>S});var n={};d(n,s(c()));var m=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],x={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[""],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:n.languages.IndentAction.Indent}}]},S={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}};return k($);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lua/lua.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lua/lua.js new file mode 100644 index 0000000..854d46f --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/lua/lua.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/lua/lua", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},g={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var R=(o,e)=>{for(var s in e)r(o,s,{get:e[s],enumerable:!0})},c=(o,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!i.call(o,t)&&t!==s&&r(o,t,{get:()=>e[t],enumerable:!(n=E(e,t))||n.enumerable});return o};var m=o=>c(r({},"__esModule",{value:!0}),o);var N={};R(N,{conf:()=>A,language:()=>p});var A={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},p={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}};return m(N);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/markdown/markdown.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/markdown/markdown.js new file mode 100644 index 0000000..774b0a0 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/markdown/markdown.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/markdown/markdown", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!i.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(a=r(e,n))||a.enumerable});return t};var d=t=>m(s({},"__esModule",{value:!0}),t);var b={};l(b,{conf:()=>p,language:()=>g});var p={comments:{blockComment:[""]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},g={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)(\-|\w)*/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)(\-|\w)*\s*>/,{token:"tag"}],[//,"comment","@pop"],[//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};return l(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pla/pla.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pla/pla.js new file mode 100644 index 0000000..f4af55d --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pla/pla.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/pla/pla", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var l=(o,e)=>{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},c=(o,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of r(e))!p.call(o,t)&&t!==n&&s(o,t,{get:()=>e[t],enumerable:!(i=a(e,t))||i.enumerable});return o};var d=o=>c(s({},"__esModule",{value:!0}),o);var u={};l(u,{conf:()=>k,language:()=>m});var k={comments:{lineComment:"#"},brackets:[["[","]"],["<",">"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},m={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}};return d(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/postiats/postiats.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/postiats/postiats.js new file mode 100644 index 0000000..e92a12c --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/postiats/postiats.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/postiats/postiats", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},l=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!c.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return t};var d=t=>l(i({},"__esModule",{value:!0}),t);var g={};p(g,{conf:()=>m,language:()=>x});var m={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},x={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}};return d(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js new file mode 100644 index 0000000..56fd602 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/powerquery/powerquery", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)i(t,n,{get:e[n],enumerable:!0})},m=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of s(e))!l.call(t,a)&&a!==n&&i(t,a,{get:()=>e[a],enumerable:!(o=r(e,a))||o.enumerable});return t};var u=t=>m(i({},"__esModule",{value:!0}),t);var b={};T(b,{conf:()=>d,language:()=>c});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},c={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}};return u(b);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powershell/powershell.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powershell/powershell.js new file mode 100644 index 0000000..ea31dbd --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/powershell/powershell.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/powershell/powershell", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of i(e))!l.call(n,s)&&s!==t&&o(n,s,{get:()=>e[s],enumerable:!(a=r(e,s))||a.enumerable});return n};var p=n=>g(o({},"__esModule",{value:!0}),n);var u={};c(u,{conf:()=>d,language:()=>m});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js new file mode 100644 index 0000000..3049240 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js @@ -0,0 +1,11 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/protobuf/protobuf", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var i in e)o(t,i,{get:e[i],enumerable:!0})},d=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!a.call(t,n)&&n!==i&&o(t,n,{get:()=>e[n],enumerable:!(s=r(e,n))||s.enumerable});return t};var l=t=>d(o({},"__esModule",{value:!0}),t);var m={};p(m,{conf:()=>u,language:()=>f});var k=["true","false"],u={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:`.,=}])>' + `,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},f={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}};return l(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pug/pug.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pug/pug.js new file mode 100644 index 0000000..465d307 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/pug/pug.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/pug/pug", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!r.call(t,n)&&n!==o&&a(t,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return t};var d=t=>c(a({},"__esModule",{value:!0}),t);var g={};p(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},u={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:o.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:o.languages.IndentAction.Indent}}]},E={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};return g(z);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redis/redis.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redis/redis.js new file mode 100644 index 0000000..8ce659c --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redis/redis.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/redis/redis", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var R=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var A=(S,E)=>{for(var T in E)R(S,T,{get:E[T],enumerable:!0})},O=(S,E,T,o)=>{if(E&&typeof E=="object"||typeof E=="function")for(let e of N(E))!s.call(S,e)&&e!==T&&R(S,e,{get:()=>E[e],enumerable:!(o=n(E,e))||o.enumerable});return S};var L=S=>O(R({},"__esModule",{value:!0}),S);var r={};A(r,{conf:()=>I,language:()=>i});var I={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}};return L(r);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redshift/redshift.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redshift/redshift.js new file mode 100644 index 0000000..abd023d --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/redshift/redshift.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/redshift/redshift", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var p=(_,e)=>{for(var r in e)i(_,r,{get:e[r],enumerable:!0})},l=(_,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of o(e))!n.call(_,t)&&t!==r&&i(_,t,{get:()=>e[t],enumerable:!(a=s(e,t))||a.enumerable});return _};var g=_=>l(i({},"__esModule",{value:!0}),_);var m={};p(m,{conf:()=>c,language:()=>d});var c={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","AZ64","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LANGUAGE","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY16","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};return g(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js new file mode 100644 index 0000000..06c255f --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/restructuredtext/restructuredtext", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var k=(n,e)=>{for(var i in e)t(n,i,{get:e[i],enumerable:!0})},c=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!r.call(n,s)&&s!==i&&t(n,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return n};var p=n=>c(t({},"__esModule",{value:!0}),n);var g={};k(g,{conf:()=>u,language:()=>m});var u={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},m={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}};return p(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ruby/ruby.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ruby/ruby.js new file mode 100644 index 0000000..15b7828 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/ruby/ruby.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/ruby/ruby", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},l=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!d.call(t,n)&&n!==r&&o(t,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return t};var a=t=>l(o({},"__esModule",{value:!0}),t);var m={};p(m,{conf:()=>g,language:()=>x});var g={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},x={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}};return a(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/rust/rust.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/rust/rust.js new file mode 100644 index 0000000..e949ac0 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/rust/rust.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/rust/rust", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var _=(t,e)=>{for(var n in e)r(t,n,{get:e[n],enumerable:!0})},u=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!c.call(t,o)&&o!==n&&r(t,o,{get:()=>e[o],enumerable:!(s=i(e,o))||s.enumerable});return t};var l=t=>u(r({},"__esModule",{value:!0}),t);var m={};_(m,{conf:()=>f,language:()=>p});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},p={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}};return l(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sb/sb.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sb/sb.js new file mode 100644 index 0000000..ee4c055 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sb/sb.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sb/sb", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(o,e)=>{for(var t in e)r(o,t,{get:e[t],enumerable:!0})},c=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(o,n)&&n!==t&&r(o,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return o};var g=o=>c(r({},"__esModule",{value:!0}),o);var m={};d(m,{conf:()=>p,language:()=>f});var p={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},f={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}};return g(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scala/scala.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scala/scala.js new file mode 100644 index 0000000..37ef732 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scala/scala.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scala/scala", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!d.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(a=s(e,o))||a.enumerable});return t};var g=t=>c(n({},"__esModule",{value:!0}),t);var m={};l(m,{conf:()=>p,language:()=>w});var p={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},w={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return g(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scheme/scheme.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scheme/scheme.js new file mode 100644 index 0000000..470a4aa --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scheme/scheme.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scheme/scheme", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(a=r(e,n))||a.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},g={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}};return p(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scss/scss.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scss/scss.js new file mode 100644 index 0000000..2ecd2f8 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/scss/scss.js @@ -0,0 +1,12 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scss/scss", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!d.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return t};var s=t=>m(i({},"__esModule",{value:!0}),t);var k={};c(k,{conf:()=>u,language:()=>p});var u={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},p={defaultToken:"",tokenPostfix:".scss",ws:`[ +\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},[`[^)\r +]+`,"string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}};return s(k);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/shell/shell.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/shell/shell.js new file mode 100644 index 0000000..441d605 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/shell/shell.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/shell/shell", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(r,e)=>{for(var i in e)a(r,i,{get:e[i],enumerable:!0})},d=(r,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!l.call(r,t)&&t!==i&&a(r,t,{get:()=>e[t],enumerable:!(o=s(e,t))||o.enumerable});return r};var p=r=>d(a({},"__esModule",{value:!0}),r);var g={};c(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},u={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],startingWithDash:/\-+\w+/,identifiersWithDashes:/[a-zA-Z]\w+(?:@startingWithDash)+/,symbols:/[=>{ +"use strict";var moduleExports=(()=>{var f=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var o=(e,x)=>{for(var d in x)f(e,d,{get:x[d],enumerable:!0})},r=(e,x,d,u)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of n(x))!s.call(e,i)&&i!==d&&f(e,i,{get:()=>x[i],enumerable:!(u=t(x,i))||u.enumerable});return e};var a=e=>r(f({},"__esModule",{value:!0}),e);var l={};o(l,{conf:()=>c,language:()=>m});var c={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},m={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return a(l);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sophia/sophia.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sophia/sophia.js new file mode 100644 index 0000000..509e2af --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sophia/sophia.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sophia/sophia", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(r=i(e,n))||r.enumerable});return t};var d=t=>m(s({},"__esModule",{value:!0}),t);var u={};l(u,{conf:()=>f,language:()=>g});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},g={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return d(u);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sparql/sparql.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sparql/sparql.js new file mode 100644 index 0000000..dd4d9ad --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sparql/sparql.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sparql/sparql", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(s,e)=>{for(var n in e)o(s,n,{get:e[n],enumerable:!0})},c=(s,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(s,t)&&t!==n&&o(s,t,{get:()=>e[t],enumerable:!(r=i(e,t))||r.enumerable});return s};var g=s=>c(o({},"__esModule",{value:!0}),s);var m={};d(m,{conf:()=>u,language:()=>p});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},p={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}};return g(m);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sql/sql.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sql/sql.js new file mode 100644 index 0000000..94ed061 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/sql/sql.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sql/sql", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var I=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var L=(T,E)=>{for(var A in E)I(T,A,{get:E[A],enumerable:!0})},e=(T,E,A,N)=>{if(E&&typeof E=="object"||typeof E=="function")for(let R of O(E))!C.call(T,R)&&R!==A&&I(T,R,{get:()=>E[R],enumerable:!(N=S(E,R))||N.enumerable});return T};var P=T=>e(I({},"__esModule",{value:!0}),T);var M={};L(M,{conf:()=>D,language:()=>U});var D={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},U={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}};return P(M);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/st/st.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/st/st.js new file mode 100644 index 0000000..66f2a46 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/st/st.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/st/st", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!i.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(a=s(e,o))||a.enumerable});return n};var _=n=>l(r({},"__esModule",{value:!0}),n);var m={};d(m,{conf:()=>p,language:()=>u});var p={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},u={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends","implements"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var n in e)i(o,n,{get:e[n],enumerable:!0})},u=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!l.call(o,t)&&t!==n&&i(o,t,{get:()=>e[t],enumerable:!(r=a(e,t))||r.enumerable});return o};var d=o=>u(i({},"__esModule",{value:!0}),o);var f={};c(f,{conf:()=>p,language:()=>m});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},m={defaultToken:"",tokenPostfix:".swift",identifier:/[a-zA-Z_][\w$]*/,attributes:["@GKInspectable","@IBAction","@IBDesignable","@IBInspectable","@IBOutlet","@IBSegueAction","@NSApplicationMain","@NSCopying","@NSManaged","@Sendable","@UIApplicationMain","@autoclosure","@actorIndependent","@asyncHandler","@available","@convention","@derivative","@differentiable","@discardableResult","@dynamicCallable","@dynamicMemberLookup","@escaping","@frozen","@globalActor","@inlinable","@inline","@main","@noDerivative","@nonobjc","@noreturn","@objc","@objcMembers","@preconcurrency","@propertyWrapper","@requires_stored_property_inits","@resultBuilder","@testable","@unchecked","@unknown","@usableFromInline","@warn_unqualified_access"],accessmodifiers:["open","public","internal","fileprivate","private"],keywords:["#available","#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning","Any","Protocol","Self","Type","actor","as","assignment","associatedtype","associativity","async","await","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","dynamicType","else","enum","extension","fallthrough","false","fileprivate","final","for","func","get","guard","higherThan","if","import","in","indirect","infix","init","inout","internal","is","isolated","lazy","left","let","lowerThan","mutating","nil","none","nonisolated","nonmutating","open","operator","optional","override","postfix","precedence","precedencegroup","prefix","private","protocol","public","repeat","required","rethrows","return","right","safe","self","set","some","static","struct","subscript","super","switch","throw","throws","true","try","typealias","unowned","unsafe","var","weak","where","while","willSet","__consuming","__owned"],symbols:/[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}};return d(f);})(); +/*!--------------------------------------------------------------------------------------------- + * Copyright (C) David Owens II, owensd.io. All rights reserved. + *--------------------------------------------------------------------------------------------*/ +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js new file mode 100644 index 0000000..8d174f5 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/systemverilog/systemverilog", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of a(e))!c.call(n,i)&&i!==t&&r(n,i,{get:()=>e[i],enumerable:!(o=s(e,i))||o.enumerable});return n};var p=n=>l(r({},"__esModule",{value:!0}),n);var f={};d(f,{conf:()=>u,language:()=>m});var u={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},m={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}};return p(f);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/tcl/tcl.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/tcl/tcl.js new file mode 100644 index 0000000..c142839 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/tcl/tcl.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/tcl/tcl", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return t};var u=t=>p(s({},"__esModule",{value:!0}),t);var g={};c(g,{conf:()=>k,language:()=>d});var k={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var m=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var s=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},d=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of n(t))!a.call(e,i)&&i!==r&&m(e,i,{get:()=>t[i],enumerable:!(o=l(t,i))||o.enumerable});return e};var p=e=>d(m({},"__esModule",{value:!0}),e);var g={};s(g,{conf:()=>h,language:()=>c});var h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],[""],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},c={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};return p(g);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/typescript/typescript.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/typescript/typescript.js new file mode 100644 index 0000000..7fd5dc8 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/typescript/typescript.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/typescript/typescript", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var l=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),y=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of x(t))!u.call(e,r)&&r!==n&&s(e,r,{get:()=>t[r],enumerable:!(c=m(t,r))||c.enumerable});return e},a=(e,t,n)=>(i(e,t,"default"),n&&i(n,t,"default")),p=(e,t,n)=>(n=e!=null?l(b(e)):{},i(t||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e)),w=e=>i(s({},"__esModule",{value:!0}),e);var d=k((T,g)=>{var A=p(f("vs/editor/editor.api"));g.exports=A});var h={};y(h,{conf:()=>v,language:()=>$});var o={};a(o,p(d()));var v={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:o.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:o.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:o.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:o.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},$={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};return w(h);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/vb/vb.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/vb/vb.js new file mode 100644 index 0000000..84bf662 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/vb/vb.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/vb/vb", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var i=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},c=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!l.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(s=a(e,o))||s.enumerable});return n};var u=n=>c(r({},"__esModule",{value:!0}),n);var k={};i(k,{conf:()=>g,language:()=>p});var g={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},p={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var a in e)s(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of l(e))!u.call(t,i)&&i!==a&&s(t,i,{get:()=>e[i],enumerable:!(o=m(e,i))||o.enumerable});return t};var x=t=>d(s({},"__esModule",{value:!0}),t);var F={};p(F,{conf:()=>f,language:()=>L});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function r(t){let e=[],a=t.split(/\t+|\r+|\n+| +/);for(let o=0;o0&&e.push(a[o]);return e}var g=r("true false"),_=r(` + alias + break + case + const + const_assert + continue + continuing + default + diagnostic + discard + else + enable + fn + for + if + let + loop + override + requires + return + struct + switch + var + while + `),h=r(` + NULL + Self + abstract + active + alignas + alignof + as + asm + asm_fragment + async + attribute + auto + await + become + binding_array + cast + catch + class + co_await + co_return + co_yield + coherent + column_major + common + compile + compile_fragment + concept + const_cast + consteval + constexpr + constinit + crate + debugger + decltype + delete + demote + demote_to_helper + do + dynamic_cast + enum + explicit + export + extends + extern + external + fallthrough + filter + final + finally + friend + from + fxgroup + get + goto + groupshared + highp + impl + implements + import + inline + instanceof + interface + layout + lowp + macro + macro_rules + match + mediump + meta + mod + module + move + mut + mutable + namespace + new + nil + noexcept + noinline + nointerpolation + noperspective + null + nullptr + of + operator + package + packoffset + partition + pass + patch + pixelfragment + precise + precision + premerge + priv + protected + pub + public + readonly + ref + regardless + register + reinterpret_cast + require + resource + restrict + self + set + shared + sizeof + smooth + snorm + static + static_assert + static_cast + std + subroutine + super + target + template + this + thread_local + throw + trait + try + type + typedef + typeid + typename + typeof + union + unless + unorm + unsafe + unsized + use + using + varying + virtual + volatile + wgsl + where + with + writeonly + yield + `),b=r(` + read write read_write + function private workgroup uniform storage + perspective linear flat + center centroid sample + vertex_index instance_index position front_facing frag_depth + local_invocation_id local_invocation_index + global_invocation_id workgroup_id num_workgroups + sample_index sample_mask + rgba8unorm + rgba8snorm + rgba8uint + rgba8sint + rgba16uint + rgba16sint + rgba16float + r32uint + r32sint + r32float + rg32uint + rg32sint + rg32float + rgba32uint + rgba32sint + rgba32float + bgra8unorm +`),v=r(` + bool + f16 + f32 + i32 + sampler sampler_comparison + texture_depth_2d + texture_depth_2d_array + texture_depth_cube + texture_depth_cube_array + texture_depth_multisampled_2d + texture_external + texture_external + u32 + `),y=r(` + array + atomic + mat2x2 + mat2x3 + mat2x4 + mat3x2 + mat3x3 + mat3x4 + mat4x2 + mat4x3 + mat4x4 + ptr + texture_1d + texture_2d + texture_2d_array + texture_3d + texture_cube + texture_cube_array + texture_multisampled_2d + texture_storage_1d + texture_storage_2d + texture_storage_2d_array + texture_storage_3d + vec2 + vec3 + vec4 + `),k=r(` + vec2i vec3i vec4i + vec2u vec3u vec4u + vec2f vec3f vec4f + vec2h vec3h vec4h + mat2x2f mat2x3f mat2x4f + mat3x2f mat3x3f mat3x4f + mat4x2f mat4x3f mat4x4f + mat2x2h mat2x3h mat2x4h + mat3x2h mat3x3h mat3x4h + mat4x2h mat4x3h mat4x4h + `),w=r(` + bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2 + ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross + degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit + firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length + log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract + reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose + trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine + textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers + textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare + textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge + textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin + atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm + pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm + unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier + workgroupUniformLoad +`),S=r(` + & + && + -> + / + = + == + != + > + >= + < + <= + % + - + -- + + + ++ + | + || + * + << + >> + += + -= + *= + /= + %= + &= + |= + ^= + >>= + <<= + `),C=/enable|requires|diagnostic/,c=/[_\p{XID_Start}]\p{XID_Continue}*/u,n="variable.predefined",L={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:g,keywords:_,reserved:h,predeclared_enums:b,predeclared_types:v,predeclared_type_generators:y,predeclared_type_aliases:k,predeclared_intrinsics:w,operators:S,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[C,"keyword","@directive"],[c,{cases:{"@atoms":n,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":n,"@predeclared_types":n,"@predeclared_type_generators":n,"@predeclared_type_aliases":n,"@predeclared_intrinsics":n,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[c,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};return x(F);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/xml/xml.js b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/xml/xml.js new file mode 100644 index 0000000..4cbf7ce --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/basic-languages/xml/xml.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/xml/xml", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var u=Object.create;var m=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),b=(e,t)=>{for(var n in t)m(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!x.call(e,o)&&o!==n&&m(e,o,{get:()=>t[o],enumerable:!(r=g(t,o))||r.enumerable});return e},l=(e,t,n)=>(i(e,t,"default"),n&&i(n,t,"default")),c=(e,t,n)=>(n=e!=null?u(k(e)):{},i(t||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),q=e=>i(m({},"__esModule",{value:!0}),e);var s=w((v,d)=>{var N=c(f("vs/editor/editor.api"));d.exports=N});var I={};b(I,{conf:()=>A,language:()=>C});var a={};l(a,c(s()));var A={comments:{blockComment:[""]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:a.languages.IndentAction.Indent}}]},C={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"),typeof ke!="string"&&!ut(ke))if(typeof ke.toString=="function"){if(ke=ke.toString(),typeof ke!="string")throw It("dirty is not a string, aborting")}else throw It("toString is not a function");if(!e.isSupported)return ke;if(X||be(Ee),e.removed=[],typeof ke=="string"&&(H=!1),H){if(ke.nodeName){const $e=We(ke.nodeName);if(!P[$e]||V[$e])throw It("root node is forbidden and cannot be sanitized in-place")}}else if(ke instanceof p)Re=nt(""),Pe=Re.ownerDocument.importNode(ke,!0),Pe.nodeType===1&&Pe.nodeName==="BODY"||Pe.nodeName==="HTML"?Re=Pe:Re.appendChild(Pe);else{if(!le&&!ie&&!J&&ke.indexOf("<")===-1)return d&&ge?d.createHTML(ke):ke;if(Re=nt(ke),!Re)return le?null:ge?s:""}Re&&Y&&Xe(Re.firstChild);const Ze=rt(H?ke:Re);for(;He=Ze.nextNode();)vt(He)||(He.content instanceof D&&Te(He.content),we(He));if(H)return ke;if(le){if(de)for(Ue=h.call(Re.ownerDocument);Re.firstChild;)Ue.appendChild(Re.firstChild);else Ue=Re;return(O.shadowroot||O.shadowrootmode)&&(Ue=f.call(L,Ue,!0)),Ue}let Ye=J?Re.outerHTML:Re.innerHTML;return J&&P["!doctype"]&&Re.ownerDocument&&Re.ownerDocument.doctype&&Re.ownerDocument.doctype.name&&pt(jt,Re.ownerDocument.doctype.name)&&(Ye=" +`+Ye),ie&&(Ye=_t(Ye,_," "),Ye=_t(Ye,E," "),Ye=_t(Ye,I," ")),d&&ge?d.createHTML(Ye):Ye},e.setConfig=function(ke){be(ke),X=!0},e.clearConfig=function(){ye=null,X=!1},e.isValidAttribute=function(ke,Ee,Re){ye||be({});const Pe=We(ke),He=We(Ee);return mt(Pe,He,Re)},e.addHook=function(ke,Ee){typeof Ee=="function"&&(C[ke]=C[ke]||[],Dt(C[ke],Ee))},e.removeHook=function(ke){if(C[ke])return Vt(C[ke])},e.removeHooks=function(ke){C[ke]&&(C[ke]=[])},e.removeAllHooks=function(){C={}},e}var mi=$t();define("vs/base/browser/dompurify/dompurify",function(){return mi}),define(ne[41],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createFastDomNode=e.FastDomNode=void 0;class L{constructor(S){this.domNode=S,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(S){const p=k(S);this._maxWidth!==p&&(this._maxWidth=p,this.domNode.style.maxWidth=this._maxWidth)}setWidth(S){const p=k(S);this._width!==p&&(this._width=p,this.domNode.style.width=this._width)}setHeight(S){const p=k(S);this._height!==p&&(this._height=p,this.domNode.style.height=this._height)}setTop(S){const p=k(S);this._top!==p&&(this._top=p,this.domNode.style.top=this._top)}setLeft(S){const p=k(S);this._left!==p&&(this._left=p,this.domNode.style.left=this._left)}setBottom(S){const p=k(S);this._bottom!==p&&(this._bottom=p,this.domNode.style.bottom=this._bottom)}setRight(S){const p=k(S);this._right!==p&&(this._right=p,this.domNode.style.right=this._right)}setPaddingLeft(S){const p=k(S);this._paddingLeft!==p&&(this._paddingLeft=p,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(S){this._fontFamily!==S&&(this._fontFamily=S,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(S){this._fontWeight!==S&&(this._fontWeight=S,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(S){const p=k(S);this._fontSize!==p&&(this._fontSize=p,this.domNode.style.fontSize=this._fontSize)}setFontStyle(S){this._fontStyle!==S&&(this._fontStyle=S,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(S){this._fontFeatureSettings!==S&&(this._fontFeatureSettings=S,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(S){this._fontVariationSettings!==S&&(this._fontVariationSettings=S,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(S){this._textDecoration!==S&&(this._textDecoration=S,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(S){const p=k(S);this._lineHeight!==p&&(this._lineHeight=p,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(S){const p=k(S);this._letterSpacing!==p&&(this._letterSpacing=p,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(S){this._className!==S&&(this._className=S,this.domNode.className=this._className)}toggleClassName(S,p){this.domNode.classList.toggle(S,p),this._className=this.domNode.className}setDisplay(S){this._display!==S&&(this._display=S,this.domNode.style.display=this._display)}setPosition(S){this._position!==S&&(this._position=S,this.domNode.style.position=this._position)}setVisibility(S){this._visibility!==S&&(this._visibility=S,this.domNode.style.visibility=this._visibility)}setColor(S){this._color!==S&&(this._color=S,this.domNode.style.color=this._color)}setBackgroundColor(S){this._backgroundColor!==S&&(this._backgroundColor=S,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(S){this._layerHint!==S&&(this._layerHint=S,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(S){this._boxShadow!==S&&(this._boxShadow=S,this.domNode.style.boxShadow=S)}setContain(S){this._contain!==S&&(this._contain=S,this.domNode.style.contain=this._contain)}setAttribute(S,p){this.domNode.setAttribute(S,p)}removeAttribute(S){this.domNode.removeAttribute(S)}appendChild(S){this.domNode.appendChild(S.domNode)}removeChild(S){this.domNode.removeChild(S.domNode)}}e.FastDomNode=L;function k(D){return typeof D=="number"?`${D}px`:D}function y(D){return new L(D)}e.createFastDomNode=y}),define(ne[401],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IframeUtils=void 0;const L=new WeakMap;function k(D){if(!D.parent||D.parent===D)return null;try{const S=D.location,p=D.parent.location;if(S.origin!=="null"&&p.origin!=="null"&&S.origin!==p.origin)return null}catch{return null}return D.parent}class y{static getSameOriginWindowChain(S){let p=L.get(S);if(!p){p=[],L.set(S,p);let w=S,v;do v=k(w),v?p.push({window:new WeakRef(w),iframeElement:w.frameElement||null}):p.push({window:new WeakRef(w),iframeElement:null}),w=v;while(w)}return p.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(S,p){var w,v;if(!p||S===p)return{top:0,left:0};let b=0,a=0;const n=this.getSameOriginWindowChain(S);for(const i of n){const t=i.window.deref();if(b+=(w=t?.scrollY)!==null&&w!==void 0?w:0,a+=(v=t?.scrollX)!==null&&v!==void 0?v:0,t===p||!i.iframeElement)break;const o=i.iframeElement.getBoundingClientRect();b+=o.top,a+=o.left}return{top:b,left:a}}}e.IframeUtils=y}),define(ne[273],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inputLatency=void 0;var L;(function(k){const y={total:0,min:Number.MAX_VALUE,max:0},D={...y},S={...y},p={...y};let w=0;const v={keydown:0,input:0,render:0};function b(){s(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),v.keydown=1,queueMicrotask(a)}k.onKeyDown=b;function a(){v.keydown===1&&(performance.mark("keydown/end"),v.keydown=2)}function n(){performance.mark("input/start"),v.input=1,d()}k.onBeforeInput=n;function i(){v.input===0&&n(),queueMicrotask(t)}k.onInput=i;function t(){v.input===1&&(performance.mark("input/end"),v.input=2)}function o(){s()}k.onKeyUp=o;function g(){s()}k.onSelectionChange=g;function m(){v.keydown===2&&v.input===2&&v.render===0&&(performance.mark("render/start"),v.render=1,queueMicrotask(c),d())}k.onRenderStart=m;function c(){v.render===1&&(performance.mark("render/end"),v.render=2)}function d(){setTimeout(s)}function s(){v.keydown===2&&v.input===2&&v.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),l("keydown",y),l("input",D),l("render",S),l("inputlatency",p),w++,r())}function l(C,_){const E=performance.getEntriesByName(C)[0].duration;_.total+=E,_.min=Math.min(_.min,E),_.max=Math.max(_.max,E)}function r(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),v.keydown=0,v.input=0,v.render=0}function h(){if(w===0)return;const C={keydown:u(y),input:u(D),render:u(S),total:u(p),sampleCount:w};return f(y),f(D),f(S),f(p),w=0,C}k.getAndClearMeasurements=h;function u(C){return{average:C.total/w,max:C.max,min:C.min}}function f(C){C.total=0,C.min=Number.MAX_VALUE,C.max=0}})(L||(e.inputLatency=L={}))}),define(ne[402],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListError=void 0;class L extends Error{constructor(y,D){super(`ListError [${y}] ${D}`)}}e.ListError=L}),define(ne[403],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CombinedSpliceable=void 0;class L{constructor(y){this.spliceables=y}splice(y,D,S){this.spliceables.forEach(p=>p.splice(y,D,S))}}e.CombinedSpliceable=L}),define(ne[203],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarState=void 0;const L=20;class k{constructor(D,S,p,w,v,b){this._scrollbarSize=Math.round(S),this._oppositeScrollbarSize=Math.round(p),this._arrowSize=Math.round(D),this._visibleSize=w,this._scrollSize=v,this._scrollPosition=b,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new k(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(D){const S=Math.round(D);return this._visibleSize!==S?(this._visibleSize=S,this._refreshComputedValues(),!0):!1}setScrollSize(D){const S=Math.round(D);return this._scrollSize!==S?(this._scrollSize=S,this._refreshComputedValues(),!0):!1}setScrollPosition(D){const S=Math.round(D);return this._scrollPosition!==S?(this._scrollPosition=S,this._refreshComputedValues(),!0):!1}setScrollbarSize(D){this._scrollbarSize=Math.round(D)}setOppositeScrollbarSize(D){this._oppositeScrollbarSize=Math.round(D)}static _computeValues(D,S,p,w,v){const b=Math.max(0,p-D),a=Math.max(0,b-2*S),n=w>0&&w>p;if(!n)return{computedAvailableSize:Math.round(b),computedIsNeeded:n,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const i=Math.round(Math.max(L,Math.floor(p*a/w))),t=(a-i)/(w-p),o=v*t;return{computedAvailableSize:Math.round(b),computedIsNeeded:n,computedSliderSize:Math.round(i),computedSliderRatio:t,computedSliderPosition:Math.round(o)}}_refreshComputedValues(){const D=k._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=D.computedAvailableSize,this._computedIsNeeded=D.computedIsNeeded,this._computedSliderSize=D.computedSliderSize,this._computedSliderRatio=D.computedSliderRatio,this._computedSliderPosition=D.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(D){if(!this._computedIsNeeded)return 0;const S=D-this._arrowSize-this._computedSliderSize/2;return Math.round(S/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(D){if(!this._computedIsNeeded)return 0;const S=D-this._arrowSize;let p=this._scrollPosition;return Sy})}e.ensureCodeWindow=L,e.mainWindow=window,e.$window=e.mainWindow}),define(ne[59],se([1,0,50]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isStandalone=e.isAndroid=e.isElectron=e.isWebkitWebView=e.isSafari=e.isChrome=e.isWebKit=e.isFirefox=e.getZoomFactor=e.addMatchMediaChangeListener=void 0;class k{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(b){var a;return(a=this.mapWindowIdToZoomFactor.get(this.getWindowId(b)))!==null&&a!==void 0?a:1}getWindowId(b){return b.vscodeWindowId}}k.INSTANCE=new k;function y(v,b,a){typeof b=="string"&&(b=v.matchMedia(b)),b.addEventListener("change",a)}e.addMatchMediaChangeListener=y;function D(v){return k.INSTANCE.getZoomFactor(v)}e.getZoomFactor=D;const S=navigator.userAgent;e.isFirefox=S.indexOf("Firefox")>=0,e.isWebKit=S.indexOf("AppleWebKit")>=0,e.isChrome=S.indexOf("Chrome")>=0,e.isSafari=!e.isChrome&&S.indexOf("Safari")>=0,e.isWebkitWebView=!e.isChrome&&!e.isSafari&&e.isWebKit,e.isElectron=S.indexOf("Electron/")>=0,e.isAndroid=S.indexOf("Android")>=0;let p=!1;if(typeof L.mainWindow.matchMedia=="function"){const v=L.mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),b=L.mainWindow.matchMedia("(display-mode: fullscreen)");p=v.matches,y(L.mainWindow,v,({matches:a})=>{p&&b.matches||(p=a)})}function w(){return p}e.isStandalone=w}),define(ne[13],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CallbackIterable=e.ArrayQueue=e.reverseOrder=e.booleanComparator=e.numberComparator=e.tieBreakComparators=e.compareBy=e.CompareResult=e.splice=e.insertInto=e.asArray=e.pushMany=e.pushToEnd=e.pushToStart=e.arrayInsert=e.range=e.firstOrDefault=e.distinct=e.isNonEmptyArray=e.isFalsyOrEmpty=e.coalesceInPlace=e.coalesce=e.forEachWithNeighbors=e.forEachAdjacent=e.groupAdjacentBy=e.groupBy=e.quickSelect=e.binarySearch2=e.binarySearch=e.removeFastWithoutKeepingOrder=e.equals=e.tail2=e.tail=void 0;function L(F,O=0){return F[F.length-(1+O)]}e.tail=L;function k(F){if(F.length===0)throw new Error("Invalid tail call");return[F.slice(0,F.length-1),F[F.length-1]]}e.tail2=k;function y(F,O,B=(W,V)=>W===V){if(F===O)return!0;if(!F||!O||F.length!==O.length)return!1;for(let W=0,V=F.length;WB(F[W],O))}e.binarySearch=S;function p(F,O){let B=0,W=F-1;for(;B<=W;){const V=(B+W)/2|0,z=O(V);if(z<0)B=V+1;else if(z>0)W=V-1;else return V}return-(B+1)}e.binarySearch2=p;function w(F,O,B){if(F=F|0,F>=O.length)throw new TypeError("invalid index");const W=O[Math.floor(O.length*Math.random())],V=[],z=[],K=[];for(const j of O){const x=B(j,W);x<0?V.push(j):x>0?z.push(j):K.push(j)}return F!!O)}e.coalesce=i;function t(F){let O=0;for(let B=0;B0}e.isNonEmptyArray=g;function m(F,O=B=>B){const B=new Set;return F.filter(W=>{const V=O(W);return B.has(V)?!1:(B.add(V),!0)})}e.distinct=m;function c(F,O){return F.length>0?F[0]:O}e.firstOrDefault=c;function d(F,O){let B=typeof O=="number"?F:0;typeof O=="number"?B=F:(B=0,O=F);const W=[];if(B<=O)for(let V=B;VO;V--)W.push(V);return W}e.range=d;function s(F,O,B){const W=F.slice(0,O),V=F.slice(O);return W.concat(B,V)}e.arrayInsert=s;function l(F,O){const B=F.indexOf(O);B>-1&&(F.splice(B,1),F.unshift(O))}e.pushToStart=l;function r(F,O){const B=F.indexOf(O);B>-1&&(F.splice(B,1),F.push(O))}e.pushToEnd=r;function h(F,O){for(const B of O)F.push(B)}e.pushMany=h;function u(F){return Array.isArray(F)?F:[F]}e.asArray=u;function f(F,O,B){const W=_(F,O),V=F.length,z=B.length;F.length=V+z;for(let K=V-1;K>=W;K--)F[K+z]=F[K];for(let K=0;K0}F.isGreaterThan=W;function V(z){return z===0}F.isNeitherLessOrGreaterThan=V,F.greaterThan=1,F.lessThan=-1,F.neitherLessOrGreaterThan=0})(E||(e.CompareResult=E={}));function I(F,O){return(B,W)=>O(F(B),F(W))}e.compareBy=I;function T(...F){return(O,B)=>{for(const W of F){const V=W(O,B);if(!E.isNeitherLessOrGreaterThan(V))return V}return E.neitherLessOrGreaterThan}}e.tieBreakComparators=T;const A=(F,O)=>F-O;e.numberComparator=A;const R=(F,O)=>(0,e.numberComparator)(F?1:0,O?1:0);e.booleanComparator=R;function M(F){return(O,B)=>-F(O,B)}e.reverseOrder=M;class N{constructor(O){this.items=O,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(O){let B=this.firstIdx;for(;B=0&&O(this.items[B]);)B--;const W=B===this.lastIdx?null:this.items.slice(B+1,this.lastIdx+1);return this.lastIdx=B,W}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const O=this.items[this.firstIdx];return this.firstIdx++,O}takeCount(O){const B=this.items.slice(this.firstIdx,this.firstIdx+O);return this.firstIdx+=O,B}}e.ArrayQueue=N;class P{constructor(O){this.iterate=O}toArray(){const O=[];return this.iterate(B=>(O.push(B),!0)),O}filter(O){return new P(B=>this.iterate(W=>O(W)?B(W):!0))}map(O){return new P(B=>this.iterate(W=>B(O(W))))}findLast(O){let B;return this.iterate(W=>(O(W)&&(B=W),!0)),B}findLastMaxBy(O){let B,W=!0;return this.iterate(V=>((W||E.isGreaterThan(O(V,B)))&&(W=!1,B=V),!0)),B}}e.CallbackIterable=P,P.empty=new P(F=>{})}),define(ne[62],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mapFindFirst=e.findMaxIdxBy=e.findFirstMinBy=e.findLastMaxBy=e.findFirstMaxBy=e.MonotonousArray=e.findFirstIdxMonotonousOrArrLen=e.findFirstMonotonous=e.findLastIdxMonotonous=e.findLastMonotonous=e.findLastIdx=e.findLast=void 0;function L(t,o,g){const m=k(t,o);if(m!==-1)return t[m]}e.findLast=L;function k(t,o,g=t.length-1){for(let m=g;m>=0;m--){const c=t[m];if(o(c))return m}return-1}e.findLastIdx=k;function y(t,o){const g=D(t,o);return g===-1?void 0:t[g]}e.findLastMonotonous=y;function D(t,o,g=0,m=t.length){let c=g,d=m;for(;c0&&(g=c)}return g}e.findFirstMaxBy=v;function b(t,o){if(t.length===0)return;let g=t[0];for(let m=1;m=0&&(g=c)}return g}e.findLastMaxBy=b;function a(t,o){return v(t,(g,m)=>-o(g,m))}e.findFirstMinBy=a;function n(t,o){if(t.length===0)return-1;let g=0;for(let m=1;m0&&(g=m)}return g}e.findMaxIdxBy=n;function i(t,o){for(const g of t){const m=o(g);if(m!==void 0)return m}}e.mapFindFirst=i}),define(ne[274],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CachedFunction=e.LRUCachedFunction=void 0;class L{constructor(D){this.fn=D,this.lastCache=void 0,this.lastArgKey=void 0}get(D){const S=JSON.stringify(D);return this.lastArgKey!==S&&(this.lastArgKey=S,this.lastCache=this.fn(D)),this.lastCache}}e.LRUCachedFunction=L;class k{get cachedValues(){return this._map}constructor(D){this.fn=D,this._map=new Map}get(D){if(this._map.has(D))return this._map.get(D);const S=this.fn(D);return this._map.set(D,S),S}}e.CachedFunction=k}),define(ne[275],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.intersection=e.diffSets=void 0;function L(y,D){const S=[],p=[];for(const w of y)D.has(w)||S.push(w);for(const w of D)y.has(w)||p.push(w);return{removed:S,added:p}}e.diffSets=L;function k(y,D){const S=new Set;for(const p of D)y.has(p)&&S.add(p);return S}e.intersection=k}),define(ne[39],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Color=e.HSVA=e.HSLA=e.RGBA=void 0;function L(p,w){const v=Math.pow(10,w);return Math.round(p*v)/v}class k{constructor(w,v,b,a=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,w))|0,this.g=Math.min(255,Math.max(0,v))|0,this.b=Math.min(255,Math.max(0,b))|0,this.a=L(Math.max(Math.min(1,a),0),3)}static equals(w,v){return w.r===v.r&&w.g===v.g&&w.b===v.b&&w.a===v.a}}e.RGBA=k;class y{constructor(w,v,b,a){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,w),0)|0,this.s=L(Math.max(Math.min(1,v),0),3),this.l=L(Math.max(Math.min(1,b),0),3),this.a=L(Math.max(Math.min(1,a),0),3)}static equals(w,v){return w.h===v.h&&w.s===v.s&&w.l===v.l&&w.a===v.a}static fromRGBA(w){const v=w.r/255,b=w.g/255,a=w.b/255,n=w.a,i=Math.max(v,b,a),t=Math.min(v,b,a);let o=0,g=0;const m=(t+i)/2,c=i-t;if(c>0){switch(g=Math.min(m<=.5?c/(2*m):c/(2-2*m),1),i){case v:o=(b-a)/c+(b1&&(b-=1),b<1/6?w+(v-w)*6*b:b<1/2?v:b<2/3?w+(v-w)*(2/3-b)*6:w}static toRGBA(w){const v=w.h/360,{s:b,l:a,a:n}=w;let i,t,o;if(b===0)i=t=o=a;else{const g=a<.5?a*(1+b):a+b-a*b,m=2*a-g;i=y._hue2rgb(m,g,v+1/3),t=y._hue2rgb(m,g,v),o=y._hue2rgb(m,g,v-1/3)}return new k(Math.round(i*255),Math.round(t*255),Math.round(o*255),n)}}e.HSLA=y;class D{constructor(w,v,b,a){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,w),0)|0,this.s=L(Math.max(Math.min(1,v),0),3),this.v=L(Math.max(Math.min(1,b),0),3),this.a=L(Math.max(Math.min(1,a),0),3)}static equals(w,v){return w.h===v.h&&w.s===v.s&&w.v===v.v&&w.a===v.a}static fromRGBA(w){const v=w.r/255,b=w.g/255,a=w.b/255,n=Math.max(v,b,a),i=Math.min(v,b,a),t=n-i,o=n===0?0:t/n;let g;return t===0?g=0:n===v?g=((b-a)/t%6+6)%6:n===b?g=(a-v)/t+2:g=(v-b)/t+4,new D(Math.round(g*60),o,n,w.a)}static toRGBA(w){const{h:v,s:b,v:a,a:n}=w,i=a*b,t=i*(1-Math.abs(v/60%2-1)),o=a-i;let[g,m,c]=[0,0,0];return v<60?(g=i,m=t):v<120?(g=t,m=i):v<180?(m=i,c=t):v<240?(m=t,c=i):v<300?(g=t,c=i):v<=360&&(g=i,c=t),g=Math.round((g+o)*255),m=Math.round((m+o)*255),c=Math.round((c+o)*255),new k(g,m,c,n)}}e.HSVA=D;class S{static fromHex(w){return S.Format.CSS.parseHex(w)||S.red}static equals(w,v){return!w&&!v?!0:!w||!v?!1:w.equals(v)}get hsla(){return this._hsla?this._hsla:y.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:D.fromRGBA(this.rgba)}constructor(w){if(w)if(w instanceof k)this.rgba=w;else if(w instanceof y)this._hsla=w,this.rgba=y.toRGBA(w);else if(w instanceof D)this._hsva=w,this.rgba=D.toRGBA(w);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(w){return!!w&&k.equals(this.rgba,w.rgba)&&y.equals(this.hsla,w.hsla)&&D.equals(this.hsva,w.hsva)}getRelativeLuminance(){const w=S._relativeLuminanceForComponent(this.rgba.r),v=S._relativeLuminanceForComponent(this.rgba.g),b=S._relativeLuminanceForComponent(this.rgba.b),a=.2126*w+.7152*v+.0722*b;return L(a,4)}static _relativeLuminanceForComponent(w){const v=w/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(w){const v=this.getRelativeLuminance(),b=w.getRelativeLuminance();return v>b}isDarkerThan(w){const v=this.getRelativeLuminance(),b=w.getRelativeLuminance();return v{throw g.stack?i.isErrorNoTelemetry(g)?new i(g.message+` + +`+g.stack):new Error(g.message+` + +`+g.stack):g},0)}}emit(g){this.listeners.forEach(m=>{m(g)})}onUnexpectedError(g){this.unexpectedErrorHandler(g),this.emit(g)}onUnexpectedExternalError(g){this.unexpectedErrorHandler(g)}}e.ErrorHandler=L,e.errorHandler=new L;function k(o){p(o)||e.errorHandler.onUnexpectedError(o)}e.onUnexpectedError=k;function y(o){p(o)||e.errorHandler.onUnexpectedExternalError(o)}e.onUnexpectedExternalError=y;function D(o){if(o instanceof Error){const{name:g,message:m}=o,c=o.stacktrace||o.stack;return{$isError:!0,name:g,message:m,stack:c,noTelemetry:i.isErrorNoTelemetry(o)}}return o}e.transformErrorForSerialization=D;const S="Canceled";function p(o){return o instanceof w?!0:o instanceof Error&&o.name===S&&o.message===S}e.isCancellationError=p;class w extends Error{constructor(){super(S),this.name=this.message}}e.CancellationError=w;function v(){const o=new Error(S);return o.name=o.message,o}e.canceled=v;function b(o){return o?new Error(`Illegal argument: ${o}`):new Error("Illegal argument")}e.illegalArgument=b;function a(o){return o?new Error(`Illegal state: ${o}`):new Error("Illegal state")}e.illegalState=a;class n extends Error{constructor(g){super("NotSupported"),g&&(this.message=g)}}e.NotSupportedError=n;class i extends Error{constructor(g){super(g),this.name="CodeExpectedError"}static fromError(g){if(g instanceof i)return g;const m=new i;return m.message=g.message,m.stack=g.stack,m}static isErrorNoTelemetry(g){return g.name==="CodeExpectedError"}}e.ErrorNoTelemetry=i;class t extends Error{constructor(g){super(g||"An unexpected bug occurred."),Object.setPrototypeOf(this,t.prototype)}}e.BugIndicatingError=t}),define(ne[95],se([1,0,50,12]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTrustedTypesPolicy=void 0;function y(D,S){var p;const w=globalThis.MonacoEnvironment;if(w?.createTrustedTypesPolicy)try{return w.createTrustedTypesPolicy(D,S)}catch(v){(0,k.onUnexpectedError)(v);return}try{return(p=L.mainWindow.trustedTypes)===null||p===void 0?void 0:p.createPolicy(D,S)}catch(v){(0,k.onUnexpectedError)(v);return}}e.createTrustedTypesPolicy=y}),define(ne[90],se([1,0,12]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.checkAdjacentItems=e.assertFn=e.softAssert=e.assertNever=e.ok=void 0;function k(w,v){if(!w)throw new Error(v?`Assertion failed (${v})`:"Assertion Failed")}e.ok=k;function y(w,v="Unreachable"){throw new Error(v)}e.assertNever=y;function D(w){w||(0,L.onUnexpectedError)(new L.BugIndicatingError("Soft Assertion Failed"))}e.softAssert=D;function S(w){if(!w()){debugger;w(),(0,L.onUnexpectedError)(new L.BugIndicatingError("Assertion Failed"))}}e.assertFn=S;function p(w,v){let b=0;for(;b=0;h--)yield r[h]}k.reverse=b;function a(r){return!r||r[Symbol.iterator]().next().done===!0}k.isEmpty=a;function n(r){return r[Symbol.iterator]().next().value}k.first=n;function i(r,h){for(const u of r)if(h(u))return!0;return!1}k.some=i;function t(r,h){for(const u of r)if(h(u))return u}k.find=t;function*o(r,h){for(const u of r)h(u)&&(yield u)}k.filter=o;function*g(r,h){let u=0;for(const f of r)yield h(f,u++)}k.map=g;function*m(...r){for(const h of r)yield*h}k.concat=m;function c(r,h,u){let f=u;for(const C of r)f=h(f,C);return f}k.reduce=c;function*d(r,h,u=r.length){for(h<0&&(h+=r.length),u<0?u+=r.length:u>r.length&&(u=r.length);h=98&&c<=113)return null;switch(c){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return k.keyCodeToStr(c)}a.toElectronAccelerator=m})(v||(e.KeyCodeUtils=v={}));function b(a,n){const i=(n&65535)<<16>>>0;return(a|i)>>>0}e.KeyChord=b}),define(ne[127],se([1,0,12]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedKeybinding=e.ResolvedChord=e.Keybinding=e.ScanCodeChord=e.KeyCodeChord=e.createSimpleKeybinding=e.decodeKeybinding=void 0;function k(b,a){if(typeof b=="number"){if(b===0)return null;const n=(b&65535)>>>0,i=(b&4294901760)>>>16;return i!==0?new p([y(n,a),y(i,a)]):new p([y(n,a)])}else{const n=[];for(let i=0;i({get delay(){return-1},dispose:()=>{},showHover:()=>{}});const D=new L.Lazy(()=>y("mouse",!1)),S=new L.Lazy(()=>y("element",!1));function p(v){y=v}e.setHoverDelegateFactory=p;function w(v,b){return b?y(v,!0):v==="element"?S.value:D.value}e.getDefaultHoverDelegate=w}),define(ne[149],se([1,0,96]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.writeUInt8=e.readUInt8=e.writeUInt32BE=e.readUInt32BE=e.writeUInt16LE=e.readUInt16LE=e.VSBuffer=void 0;const k=typeof Buffer<"u",y=new L.Lazy(()=>new Uint8Array(256));let D;class S{static wrap(t){return k&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new S(t)}constructor(t){this.buffer=t,this.byteLength=this.buffer.byteLength}toString(){return k?this.buffer.toString():(D||(D=new TextDecoder),D.decode(this.buffer))}}e.VSBuffer=S;function p(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0}e.readUInt16LE=p;function w(i,t,o){i[o+0]=t&255,t=t>>>8,i[o+1]=t&255}e.writeUInt16LE=w;function v(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}e.readUInt32BE=v;function b(i,t,o){i[o+3]=t,t=t>>>8,i[o+2]=t,t=t>>>8,i[o+1]=t,t=t>>>8,i[o]=t}e.writeUInt32BE=b;function a(i,t){return i[t]}e.readUInt8=a;function n(i,t,o){i[o]=t}e.writeUInt8=n}),define(ne[405],se([1,0,96]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compareByPrefix=e.compareAnything=e.compareFileNames=void 0;const k=new L.Lazy(()=>{const v=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:v,collatorIsNumeric:v.resolvedOptions().numeric}}),y=new L.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0})})),D=new L.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})}));function S(v,b,a=!1){const n=v||"",i=b||"",t=k.value.collator.compare(n,i);return k.value.collatorIsNumeric&&t===0&&n!==i?ni.length)return 1}return 0}e.compareByPrefix=w}),define(ne[2],se([1,0,112,52]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableMap=e.ImmortalReference=e.RefCountedDisposable=e.MutableDisposable=e.Disposable=e.DisposableStore=e.toDisposable=e.combinedDisposable=e.dispose=e.isDisposable=e.markAsSingleton=e.markAsDisposed=e.trackDisposable=e.setDisposableTracker=void 0;const y=!1;let D=null;function S(r){D=r}if(e.setDisposableTracker=S,y){const r="__is_disposable_tracked__";S(new class{trackDisposable(h){const u=new Error("Potentially leaked disposable").stack;setTimeout(()=>{h[r]||console.log(u)},3e3)}setParent(h,u){if(h&&h!==m.None)try{h[r]=!0}catch{}}markAsDisposed(h){if(h&&h!==m.None)try{h[r]=!0}catch{}}markAsSingleton(h){}})}function p(r){return D?.trackDisposable(r),r}e.trackDisposable=p;function w(r){D?.markAsDisposed(r)}e.markAsDisposed=w;function v(r,h){D?.setParent(r,h)}function b(r,h){if(D)for(const u of r)D.setParent(u,h)}function a(r){return D?.markAsSingleton(r),r}e.markAsSingleton=a;function n(r){return typeof r.dispose=="function"&&r.dispose.length===0}e.isDisposable=n;function i(r){if(k.Iterable.is(r)){const h=[];for(const u of r)if(u)try{u.dispose()}catch(f){h.push(f)}if(h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"Encountered errors while disposing of store");return Array.isArray(r)?[]:r}else if(r)return r.dispose(),r}e.dispose=i;function t(...r){const h=o(()=>i(r));return b(r,h),h}e.combinedDisposable=t;function o(r){const h=p({dispose:(0,L.createSingleCallFunction)(()=>{w(h),r()})});return h}e.toDisposable=o;class g{constructor(){this._toDispose=new Set,this._isDisposed=!1,p(this)}dispose(){this._isDisposed||(w(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{i(this._toDispose)}finally{this._toDispose.clear()}}add(h){if(!h)return h;if(h===this)throw new Error("Cannot register a disposable on itself!");return v(h,this),this._isDisposed?g.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(h),h}deleteAndLeak(h){h&&this._toDispose.has(h)&&(this._toDispose.delete(h),v(h,null))}}e.DisposableStore=g,g.DISABLE_DISPOSED_WARNING=!1;class m{constructor(){this._store=new g,p(this),v(this._store,this)}dispose(){w(this),this._store.dispose()}_register(h){if(h===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(h)}}e.Disposable=m,m.None=Object.freeze({dispose(){}});class c{constructor(){this._isDisposed=!1,p(this)}get value(){return this._isDisposed?void 0:this._value}set value(h){var u;this._isDisposed||h===this._value||((u=this._value)===null||u===void 0||u.dispose(),h&&v(h,this),this._value=h)}clear(){this.value=void 0}dispose(){var h;this._isDisposed=!0,w(this),(h=this._value)===null||h===void 0||h.dispose(),this._value=void 0}}e.MutableDisposable=c;class d{constructor(h){this._disposable=h,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}e.RefCountedDisposable=d;class s{constructor(h){this.object=h}dispose(){}}e.ImmortalReference=s;class l{constructor(){this._store=new Map,this._isDisposed=!1,p(this)}dispose(){w(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{i(this._store.values())}finally{this._store.clear()}}get(h){return this._store.get(h)}set(h,u,f=!1){var C;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),f||(C=this._store.get(h))===null||C===void 0||C.dispose(),this._store.set(h,u)}deleteAndDispose(h){var u;(u=this._store.get(h))===null||u===void 0||u.dispose(),this._store.delete(h)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}e.DisposableMap=l}),define(ne[67],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedList=void 0;class L{constructor(D){this.element=D,this.next=L.Undefined,this.prev=L.Undefined}}L.Undefined=new L(void 0);class k{constructor(){this._first=L.Undefined,this._last=L.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===L.Undefined}clear(){let D=this._first;for(;D!==L.Undefined;){const S=D.next;D.prev=L.Undefined,D.next=L.Undefined,D=S}this._first=L.Undefined,this._last=L.Undefined,this._size=0}unshift(D){return this._insert(D,!1)}push(D){return this._insert(D,!0)}_insert(D,S){const p=new L(D);if(this._first===L.Undefined)this._first=p,this._last=p;else if(S){const v=this._last;this._last=p,p.prev=v,v.next=p}else{const v=this._first;this._first=p,p.next=v,v.prev=p}this._size+=1;let w=!1;return()=>{w||(w=!0,this._remove(p))}}shift(){if(this._first!==L.Undefined){const D=this._first.element;return this._remove(this._first),D}}pop(){if(this._last!==L.Undefined){const D=this._last.element;return this._remove(this._last),D}}_remove(D){if(D.prev!==L.Undefined&&D.next!==L.Undefined){const S=D.prev;S.next=D.next,D.next.prev=S}else D.prev===L.Undefined&&D.next===L.Undefined?(this._first=L.Undefined,this._last=L.Undefined):D.next===L.Undefined?(this._last=this._last.prev,this._last.next=L.Undefined):D.prev===L.Undefined&&(this._first=this._first.next,this._first.prev=L.Undefined);this._size-=1}*[Symbol.iterator](){let D=this._first;for(;D!==L.Undefined;)yield D.element,D=D.next}}e.LinkedList=k});var De=this&&this.__decorate||function(ee,e,L,k){var y=arguments.length,D=y<3?e:k===null?k=Object.getOwnPropertyDescriptor(e,L):k,S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")D=Reflect.decorate(ee,e,L,k);else for(var p=ee.length-1;p>=0;p--)(S=ee[p])&&(D=(y<3?S(D):y>3?S(e,L,D):S(e,L))||D);return y>3&&D&&Object.defineProperty(e,L,D),D};define(ne[406],se([1,0,111]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseLinkedText=e.LinkedText=void 0;class k{constructor(p){this.nodes=p}toString(){return this.nodes.map(p=>typeof p=="string"?p:p.label).join("")}}e.LinkedText=k,De([L.memoize],k.prototype,"toString",null);const y=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function D(S){const p=[];let w=0,v;for(;v=y.exec(S);){v.index-w>0&&p.push(S.substring(w,v.index));const[,b,a,,n]=v;n?p.push({label:b,href:a,title:n}):p.push({label:b,href:a}),w=v.index+v[0].length}return wa.toString();class p{constructor(){this[k]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var n;return(n=this._head)===null||n===void 0?void 0:n.value}get last(){var n;return(n=this._tail)===null||n===void 0?void 0:n.value}has(n){return this._map.has(n)}get(n,i=0){const t=this._map.get(n);if(t)return i!==0&&this.touch(t,i),t.value}set(n,i,t=0){let o=this._map.get(n);if(o)o.value=i,t!==0&&this.touch(o,t);else{switch(o={key:n,value:i,next:void 0,previous:void 0},t){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(n,o),this._size++}return this}delete(n){return!!this.remove(n)}remove(n){const i=this._map.get(n);if(i)return this._map.delete(n),this.removeItem(i),this._size--,i.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const n=this._head;return this._map.delete(n.key),this.removeItem(n),this._size--,n.value}forEach(n,i){const t=this._state;let o=this._head;for(;o;){if(i?n.bind(i)(o.value,o.key,this):n(o.value,o.key,this),this._state!==t)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){const n=this,i=this._state;let t=this._head;const o={[Symbol.iterator](){return o},next(){if(n._state!==i)throw new Error("LinkedMap got modified during iteration.");if(t){const g={value:t.key,done:!1};return t=t.next,g}else return{value:void 0,done:!0}}};return o}values(){const n=this,i=this._state;let t=this._head;const o={[Symbol.iterator](){return o},next(){if(n._state!==i)throw new Error("LinkedMap got modified during iteration.");if(t){const g={value:t.value,done:!1};return t=t.next,g}else return{value:void 0,done:!0}}};return o}entries(){const n=this,i=this._state;let t=this._head;const o={[Symbol.iterator](){return o},next(){if(n._state!==i)throw new Error("LinkedMap got modified during iteration.");if(t){const g={value:[t.key,t.value],done:!1};return t=t.next,g}else return{value:void 0,done:!0}}};return o}[(k=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(n){if(n>=this.size)return;if(n===0){this.clear();return}let i=this._head,t=this.size;for(;i&&t>n;)this._map.delete(i.key),i=i.next,t--;this._head=i,this._size=t,i&&(i.previous=void 0),this._state++}addItemFirst(n){if(!this._head&&!this._tail)this._tail=n;else if(this._head)n.next=this._head,this._head.previous=n;else throw new Error("Invalid list");this._head=n,this._state++}addItemLast(n){if(!this._head&&!this._tail)this._head=n;else if(this._tail)n.previous=this._tail,this._tail.next=n;else throw new Error("Invalid list");this._tail=n,this._state++}removeItem(n){if(n===this._head&&n===this._tail)this._head=void 0,this._tail=void 0;else if(n===this._head){if(!n.next)throw new Error("Invalid list");n.next.previous=void 0,this._head=n.next}else if(n===this._tail){if(!n.previous)throw new Error("Invalid list");n.previous.next=void 0,this._tail=n.previous}else{const i=n.next,t=n.previous;if(!i||!t)throw new Error("Invalid list");i.previous=t,t.next=i}n.next=void 0,n.previous=void 0,this._state++}touch(n,i){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(i!==1&&i!==2)){if(i===1){if(n===this._head)return;const t=n.next,o=n.previous;n===this._tail?(o.next=void 0,this._tail=o):(t.previous=o,o.next=t),n.previous=void 0,n.next=this._head,this._head.previous=n,this._head=n,this._state++}else if(i===2){if(n===this._tail)return;const t=n.next,o=n.previous;n===this._head?(t.previous=void 0,this._head=t):(t.previous=o,o.next=t),n.next=void 0,n.previous=this._tail,this._tail.next=n,this._tail=n,this._state++}}}toJSON(){const n=[];return this.forEach((i,t)=>{n.push([t,i])}),n}fromJSON(n){this.clear();for(const[i,t]of n)this.set(i,t)}}e.LinkedMap=p;class w extends p{constructor(n,i=1){super(),this._limit=n,this._ratio=Math.min(Math.max(0,i),1)}get limit(){return this._limit}set limit(n){this._limit=n,this.checkTrim()}get(n,i=2){return super.get(n,i)}peek(n){return super.get(n,0)}set(n,i){return super.set(n,i,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}e.LRUCache=w;class v{constructor(n){if(this._m1=new Map,this._m2=new Map,n)for(const[i,t]of n)this.set(i,t)}clear(){this._m1.clear(),this._m2.clear()}set(n,i){this._m1.set(n,i),this._m2.set(i,n)}get(n){return this._m1.get(n)}getKey(n){return this._m2.get(n)}delete(n){const i=this._m1.get(n);return i===void 0?!1:(this._m1.delete(n),this._m2.delete(i),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}e.BidirectionalMap=v;class b{constructor(){this.map=new Map}add(n,i){let t=this.map.get(n);t||(t=new Set,this.map.set(n,t)),t.add(i)}delete(n,i){const t=this.map.get(n);t&&(t.delete(i),t.size===0&&this.map.delete(n))}forEach(n,i){const t=this.map.get(n);t&&t.forEach(i)}get(n){const i=this.map.get(n);return i||new Set}}e.SetMap=b}),function(ee,e){typeof define=="function"&&define.amd?define(ne[407],se([0]),e):typeof exports=="object"&&typeof module<"u"?e(exports):(ee=typeof globalThis<"u"?globalThis:ee||self,e(ee.marked={}))}(this,function(ee){"use strict";function e(U,Z){for(var H=0;HU.length)&&(Z=U.length);for(var H=0,q=new Array(Z);H=U.length?{done:!0}:{done:!1,value:U[q++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function S(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}ee.defaults=S();function p(U){ee.defaults=U}var w=/[&<>"']/,v=/[&<>"']/g,b=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g,n={"&":"&","<":"<",">":">",'"':""","'":"'"},i=function(Z){return n[Z]};function t(U,Z){if(Z){if(w.test(U))return U.replace(v,i)}else if(b.test(U))return U.replace(a,i);return U}var o=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function g(U){return U.replace(o,function(Z,H){return H=H.toLowerCase(),H==="colon"?":":H.charAt(0)==="#"?H.charAt(1)==="x"?String.fromCharCode(parseInt(H.substring(2),16)):String.fromCharCode(+H.substring(1)):""})}var m=/(^|[^\[])\^/g;function c(U,Z){U=typeof U=="string"?U:U.source,Z=Z||"";var H={replace:function(te,G){return G=G.source||G,G=G.replace(m,"$1"),U=U.replace(te,G),H},getRegex:function(){return new RegExp(U,Z)}};return H}var d=/[^\w:]/g,s=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function l(U,Z,H){if(U){var q;try{q=decodeURIComponent(g(H)).replace(d,"").toLowerCase()}catch{return null}if(q.indexOf("javascript:")===0||q.indexOf("vbscript:")===0||q.indexOf("data:")===0)return null}Z&&!s.test(H)&&(H=C(Z,H));try{H=encodeURI(H).replace(/%25/g,"%")}catch{return null}return H}var r={},h=/^[^:]+:\/*[^/]*$/,u=/^([^:]+:)[\s\S]*$/,f=/^([^:]+:\/*[^/]*)[\s\S]*$/;function C(U,Z){r[" "+U]||(h.test(U)?r[" "+U]=U+"/":r[" "+U]=T(U,"/",!0)),U=r[" "+U];var H=U.indexOf(":")===-1;return Z.substring(0,2)==="//"?H?Z:U.replace(u,"$1")+Z:Z.charAt(0)==="/"?H?Z:U.replace(f,"$1")+Z:U+Z}var _={exec:function(){}};function E(U){for(var Z=1,H,q;Z=0&&oe[ue]==="\\";)ae=!ae;return ae?"|":" |"}),q=H.split(/ \|/),te=0;if(q[0].trim()||q.shift(),q.length>0&&!q[q.length-1].trim()&&q.pop(),q.length>Z)q.splice(Z);else for(;q.length1;)Z&1&&(H+=U),Z>>=1,U+=U;return H+U}function N(U,Z,H,q){var te=Z.href,G=Z.title?t(Z.title):null,$=U[1].replace(/\\([\[\]])/g,"$1");if(U[0].charAt(0)!=="!"){q.state.inLink=!0;var oe={type:"link",raw:H,href:te,title:G,text:$,tokens:q.inlineTokens($)};return q.state.inLink=!1,oe}return{type:"image",raw:H,href:te,title:G,text:t($)}}function P(U,Z){var H=U.match(/^(\s+)(?:```)/);if(H===null)return Z;var q=H[1];return Z.split(` +`).map(function(te){var G=te.match(/^\s+/);if(G===null)return te;var $=G[0];return $.length>=q.length?te.slice(q.length):te}).join(` +`)}var F=function(){function U(H){this.options=H||ee.defaults}var Z=U.prototype;return Z.space=function(q){var te=this.rules.block.newline.exec(q);if(te&&te[0].length>0)return{type:"space",raw:te[0]}},Z.code=function(q){var te=this.rules.block.code.exec(q);if(te){var G=te[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:te[0],codeBlockStyle:"indented",text:this.options.pedantic?G:T(G,` +`)}}},Z.fences=function(q){var te=this.rules.block.fences.exec(q);if(te){var G=te[0],$=P(G,te[3]||"");return{type:"code",raw:G,lang:te[2]?te[2].trim():te[2],text:$}}},Z.heading=function(q){var te=this.rules.block.heading.exec(q);if(te){var G=te[2].trim();if(/#$/.test(G)){var $=T(G,"#");(this.options.pedantic||!$||/ $/.test($))&&(G=$.trim())}return{type:"heading",raw:te[0],depth:te[1].length,text:G,tokens:this.lexer.inline(G)}}},Z.hr=function(q){var te=this.rules.block.hr.exec(q);if(te)return{type:"hr",raw:te[0]}},Z.blockquote=function(q){var te=this.rules.block.blockquote.exec(q);if(te){var G=te[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:te[0],tokens:this.lexer.blockTokens(G,[]),text:G}}},Z.list=function(q){var te=this.rules.block.list.exec(q);if(te){var G,$,oe,ae,ue,ce,fe,ve,Ce,Se,_e,Ie,Ne=te[1].trim(),Oe=Ne.length>1,xe={type:"list",raw:"",ordered:Oe,start:Oe?+Ne.slice(0,-1):"",loose:!1,items:[]};Ne=Oe?"\\d{1,9}\\"+Ne.slice(-1):"\\"+Ne,this.options.pedantic&&(Ne=Oe?Ne:"[*+-]");for(var We=new RegExp("^( {0,3}"+Ne+")((?:[ ][^\\n]*)?(?:\\n|$))");q&&(Ie=!1,!(!(te=We.exec(q))||this.rules.block.hr.test(q)));){if(G=te[0],q=q.substring(G.length),ve=te[2].split(` +`,1)[0],Ce=q.split(` +`,1)[0],this.options.pedantic?(ae=2,_e=ve.trimLeft()):(ae=te[2].search(/[^ ]/),ae=ae>4?1:ae,_e=ve.slice(ae),ae+=te[1].length),ce=!1,!ve&&/^ *$/.test(Ce)&&(G+=Ce+` +`,q=q.substring(Ce.length+1),Ie=!0),!Ie)for(var ye=new RegExp("^ {0,"+Math.min(3,ae-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),Me=new RegExp("^ {0,"+Math.min(3,ae-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),me=new RegExp("^ {0,"+Math.min(3,ae-1)+"}(?:```|~~~)"),be=new RegExp("^ {0,"+Math.min(3,ae-1)+"}#");q&&(Se=q.split(` +`,1)[0],ve=Se,this.options.pedantic&&(ve=ve.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(me.test(ve)||be.test(ve)||ye.test(ve)||Me.test(q)));){if(ve.search(/[^ ]/)>=ae||!ve.trim())_e+=` +`+ve.slice(ae);else if(!ce)_e+=` +`+ve;else break;!ce&&!ve.trim()&&(ce=!0),G+=Se+` +`,q=q.substring(Se.length+1)}xe.loose||(fe?xe.loose=!0:/\n *\n *$/.test(G)&&(fe=!0)),this.options.gfm&&($=/^\[[ xX]\] /.exec(_e),$&&(oe=$[0]!=="[ ] ",_e=_e.replace(/^\[[ xX]\] +/,""))),xe.items.push({type:"list_item",raw:G,task:!!$,checked:oe,loose:!1,text:_e}),xe.raw+=G}xe.items[xe.items.length-1].raw=G.trimRight(),xe.items[xe.items.length-1].text=_e.trimRight(),xe.raw=xe.raw.trimRight();var Ae=xe.items.length;for(ue=0;ue1)return!0}return!1});!xe.loose&&Be.length&&Ke&&(xe.loose=!0,xe.items[ue].loose=!0)}return xe}},Z.html=function(q){var te=this.rules.block.html.exec(q);if(te){var G={type:"html",raw:te[0],pre:!this.options.sanitizer&&(te[1]==="pre"||te[1]==="script"||te[1]==="style"),text:te[0]};if(this.options.sanitize){var $=this.options.sanitizer?this.options.sanitizer(te[0]):t(te[0]);G.type="paragraph",G.text=$,G.tokens=this.lexer.inline($)}return G}},Z.def=function(q){var te=this.rules.block.def.exec(q);if(te){te[3]&&(te[3]=te[3].substring(1,te[3].length-1));var G=te[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:G,raw:te[0],href:te[2],title:te[3]}}},Z.table=function(q){var te=this.rules.block.table.exec(q);if(te){var G={type:"table",header:I(te[1]).map(function(fe){return{text:fe}}),align:te[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:te[3]&&te[3].trim()?te[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(G.header.length===G.align.length){G.raw=te[0];var $=G.align.length,oe,ae,ue,ce;for(oe=0;oe<$;oe++)/^ *-+: *$/.test(G.align[oe])?G.align[oe]="right":/^ *:-+: *$/.test(G.align[oe])?G.align[oe]="center":/^ *:-+ *$/.test(G.align[oe])?G.align[oe]="left":G.align[oe]=null;for($=G.rows.length,oe=0;oe<$;oe++)G.rows[oe]=I(G.rows[oe],G.header.length).map(function(fe){return{text:fe}});for($=G.header.length,ae=0;ae<$;ae++)G.header[ae].tokens=this.lexer.inline(G.header[ae].text);for($=G.rows.length,ae=0;ae<$;ae++)for(ce=G.rows[ae],ue=0;ue/i.test(te[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(te[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(te[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:te[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(te[0]):t(te[0]):te[0]}},Z.link=function(q){var te=this.rules.inline.link.exec(q);if(te){var G=te[2].trim();if(!this.options.pedantic&&/^$/.test(G))return;var $=T(G.slice(0,-1),"\\");if((G.length-$.length)%2===0)return}else{var oe=A(te[2],"()");if(oe>-1){var ae=te[0].indexOf("!")===0?5:4,ue=ae+te[1].length+oe;te[2]=te[2].substring(0,oe),te[0]=te[0].substring(0,ue).trim(),te[3]=""}}var ce=te[2],fe="";if(this.options.pedantic){var ve=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(ce);ve&&(ce=ve[1],fe=ve[3])}else fe=te[3]?te[3].slice(1,-1):"";return ce=ce.trim(),/^$/.test(G)?ce=ce.slice(1):ce=ce.slice(1,-1)),N(te,{href:ce&&ce.replace(this.rules.inline._escapes,"$1"),title:fe&&fe.replace(this.rules.inline._escapes,"$1")},te[0],this.lexer)}},Z.reflink=function(q,te){var G;if((G=this.rules.inline.reflink.exec(q))||(G=this.rules.inline.nolink.exec(q))){var $=(G[2]||G[1]).replace(/\s+/g," ");if($=te[$.toLowerCase()],!$||!$.href){var oe=G[0].charAt(0);return{type:"text",raw:oe,text:oe}}return N(G,$,G[0],this.lexer)}},Z.emStrong=function(q,te,G){G===void 0&&(G="");var $=this.rules.inline.emStrong.lDelim.exec(q);if($&&!($[3]&&G.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var oe=$[1]||$[2]||"";if(!oe||oe&&(G===""||this.rules.inline.punctuation.exec(G))){var ae=$[0].length-1,ue,ce,fe=ae,ve=0,Ce=$[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(Ce.lastIndex=0,te=te.slice(-1*q.length+ae);($=Ce.exec(te))!=null;)if(ue=$[1]||$[2]||$[3]||$[4]||$[5]||$[6],!!ue){if(ce=ue.length,$[3]||$[4]){fe+=ce;continue}else if(($[5]||$[6])&&ae%3&&!((ae+ce)%3)){ve+=ce;continue}if(fe-=ce,!(fe>0)){if(ce=Math.min(ce,ce+fe+ve),Math.min(ae,ce)%2){var Se=q.slice(1,ae+$.index+ce);return{type:"em",raw:q.slice(0,ae+$.index+ce+1),text:Se,tokens:this.lexer.inlineTokens(Se)}}var _e=q.slice(2,ae+$.index+ce-1);return{type:"strong",raw:q.slice(0,ae+$.index+ce+1),text:_e,tokens:this.lexer.inlineTokens(_e)}}}}}},Z.codespan=function(q){var te=this.rules.inline.code.exec(q);if(te){var G=te[2].replace(/\n/g," "),$=/[^ ]/.test(G),oe=/^ /.test(G)&&/ $/.test(G);return $&&oe&&(G=G.substring(1,G.length-1)),G=t(G,!0),{type:"codespan",raw:te[0],text:G}}},Z.br=function(q){var te=this.rules.inline.br.exec(q);if(te)return{type:"br",raw:te[0]}},Z.del=function(q){var te=this.rules.inline.del.exec(q);if(te)return{type:"del",raw:te[0],text:te[2],tokens:this.lexer.inlineTokens(te[2])}},Z.autolink=function(q,te){var G=this.rules.inline.autolink.exec(q);if(G){var $,oe;return G[2]==="@"?($=t(this.options.mangle?te(G[1]):G[1]),oe="mailto:"+$):($=t(G[1]),oe=$),{type:"link",raw:G[0],text:$,href:oe,tokens:[{type:"text",raw:$,text:$}]}}},Z.url=function(q,te){var G;if(G=this.rules.inline.url.exec(q)){var $,oe;if(G[2]==="@")$=t(this.options.mangle?te(G[0]):G[0]),oe="mailto:"+$;else{var ae;do ae=G[0],G[0]=this.rules.inline._backpedal.exec(G[0])[0];while(ae!==G[0]);$=t(G[0]),G[1]==="www."?oe="http://"+$:oe=$}return{type:"link",raw:G[0],text:$,href:oe,tokens:[{type:"text",raw:$,text:$}]}}},Z.inlineText=function(q,te){var G=this.rules.inline.text.exec(q);if(G){var $;return this.lexer.state.inRawBlock?$=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(G[0]):t(G[0]):G[0]:$=t(this.options.smartypants?te(G[0]):G[0]),{type:"text",raw:G[0],text:$}}},U}(),O={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {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|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:_,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};O._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,O._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,O.def=c(O.def).replace("label",O._label).replace("title",O._title).getRegex(),O.bullet=/(?:[*+-]|\d{1,9}[.)])/,O.listItemStart=c(/^( *)(bull) */).replace("bull",O.bullet).getRegex(),O.list=c(O.list).replace(/bull/g,O.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+O.def.source+")").getRegex(),O._tag="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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",O._comment=/|$)/,O.html=c(O.html,"i").replace("comment",O._comment).replace("tag",O._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O.paragraph=c(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").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",O._tag).getRegex(),O.blockquote=c(O.blockquote).replace("paragraph",O.paragraph).getRegex(),O.normal=E({},O),O.gfm=E({},O.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),O.gfm.table=c(O.gfm.table).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O._tag).getRegex(),O.gfm.paragraph=c(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",O.gfm.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",O._tag).getRegex(),O.pedantic=E({},O.normal,{html:c(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",O._comment).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:_,paragraph:c(O.normal._paragraph).replace("hr",O.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",O.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var B={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:_,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:_,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~",B.punctuation=c(B.punctuation).replace(/punctuation/g,B._punctuation).getRegex(),B.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,B.escapedEmSt=/\\\*|\\_/g,B._comment=c(O._comment).replace("(?:-->|$)","-->").getRegex(),B.emStrong.lDelim=c(B.emStrong.lDelim).replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimAst=c(B.emStrong.rDelimAst,"g").replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimUnd=c(B.emStrong.rDelimUnd,"g").replace(/punct/g,B._punctuation).getRegex(),B._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,B._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,B._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])?)+(?![-_])/,B.autolink=c(B.autolink).replace("scheme",B._scheme).replace("email",B._email).getRegex(),B._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,B.tag=c(B.tag).replace("comment",B._comment).replace("attribute",B._attribute).getRegex(),B._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,B._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,B._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,B.link=c(B.link).replace("label",B._label).replace("href",B._href).replace("title",B._title).getRegex(),B.reflink=c(B.reflink).replace("label",B._label).replace("ref",O._label).getRegex(),B.nolink=c(B.nolink).replace("ref",O._label).getRegex(),B.reflinkSearch=c(B.reflinkSearch,"g").replace("reflink",B.reflink).replace("nolink",B.nolink).getRegex(),B.normal=E({},B),B.pedantic=E({},B.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:c(/^!?\[(label)\]\((.*?)\)/).replace("label",B._label).getRegex(),reflink:c(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",B._label).getRegex()}),B.gfm=E({},B.normal,{escape:c(B.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(q="x"+q.toString(16)),Z+="&#"+q+";";return Z}var z=function(){function U(H){this.tokens=[],this.tokens.links=Object.create(null),this.options=H||ee.defaults,this.options.tokenizer=this.options.tokenizer||new F,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var q={block:O.normal,inline:B.normal};this.options.pedantic?(q.block=O.pedantic,q.inline=B.pedantic):this.options.gfm&&(q.block=O.gfm,this.options.breaks?q.inline=B.breaks:q.inline=B.gfm),this.tokenizer.rules=q}U.lex=function(q,te){var G=new U(te);return G.lex(q)},U.lexInline=function(q,te){var G=new U(te);return G.inlineTokens(q)};var Z=U.prototype;return Z.lex=function(q){q=q.replace(/\r\n|\r/g,` +`),this.blockTokens(q,this.tokens);for(var te;te=this.inlineQueue.shift();)this.inlineTokens(te.src,te.tokens);return this.tokens},Z.blockTokens=function(q,te){var G=this;te===void 0&&(te=[]),this.options.pedantic?q=q.replace(/\t/g," ").replace(/^ +$/gm,""):q=q.replace(/^( *)(\t+)/gm,function(fe,ve,Ce){return ve+" ".repeat(Ce.length)});for(var $,oe,ae,ue;q;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(fe){return($=fe.call({lexer:G},q,te))?(q=q.substring($.raw.length),te.push($),!0):!1}))){if($=this.tokenizer.space(q)){q=q.substring($.raw.length),$.raw.length===1&&te.length>0?te[te.length-1].raw+=` +`:te.push($);continue}if($=this.tokenizer.code(q)){q=q.substring($.raw.length),oe=te[te.length-1],oe&&(oe.type==="paragraph"||oe.type==="text")?(oe.raw+=` +`+$.raw,oe.text+=` +`+$.text,this.inlineQueue[this.inlineQueue.length-1].src=oe.text):te.push($);continue}if($=this.tokenizer.fences(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.heading(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.hr(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.blockquote(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.list(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.html(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.def(q)){q=q.substring($.raw.length),oe=te[te.length-1],oe&&(oe.type==="paragraph"||oe.type==="text")?(oe.raw+=` +`+$.raw,oe.text+=` +`+$.raw,this.inlineQueue[this.inlineQueue.length-1].src=oe.text):this.tokens.links[$.tag]||(this.tokens.links[$.tag]={href:$.href,title:$.title});continue}if($=this.tokenizer.table(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.lheading(q)){q=q.substring($.raw.length),te.push($);continue}if(ae=q,this.options.extensions&&this.options.extensions.startBlock&&function(){var fe=1/0,ve=q.slice(1),Ce=void 0;G.options.extensions.startBlock.forEach(function(Se){Ce=Se.call({lexer:this},ve),typeof Ce=="number"&&Ce>=0&&(fe=Math.min(fe,Ce))}),fe<1/0&&fe>=0&&(ae=q.substring(0,fe+1))}(),this.state.top&&($=this.tokenizer.paragraph(ae))){oe=te[te.length-1],ue&&oe.type==="paragraph"?(oe.raw+=` +`+$.raw,oe.text+=` +`+$.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=oe.text):te.push($),ue=ae.length!==q.length,q=q.substring($.raw.length);continue}if($=this.tokenizer.text(q)){q=q.substring($.raw.length),oe=te[te.length-1],oe&&oe.type==="text"?(oe.raw+=` +`+$.raw,oe.text+=` +`+$.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=oe.text):te.push($);continue}if(q){var ce="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(ce);break}else throw new Error(ce)}}return this.state.top=!0,te},Z.inline=function(q,te){return te===void 0&&(te=[]),this.inlineQueue.push({src:q,tokens:te}),te},Z.inlineTokens=function(q,te){var G=this;te===void 0&&(te=[]);var $,oe,ae,ue=q,ce,fe,ve;if(this.tokens.links){var Ce=Object.keys(this.tokens.links);if(Ce.length>0)for(;(ce=this.tokenizer.rules.inline.reflinkSearch.exec(ue))!=null;)Ce.includes(ce[0].slice(ce[0].lastIndexOf("[")+1,-1))&&(ue=ue.slice(0,ce.index)+"["+M("a",ce[0].length-2)+"]"+ue.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(ce=this.tokenizer.rules.inline.blockSkip.exec(ue))!=null;)ue=ue.slice(0,ce.index)+"["+M("a",ce[0].length-2)+"]"+ue.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(ce=this.tokenizer.rules.inline.escapedEmSt.exec(ue))!=null;)ue=ue.slice(0,ce.index)+"++"+ue.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;q;)if(fe||(ve=""),fe=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(_e){return($=_e.call({lexer:G},q,te))?(q=q.substring($.raw.length),te.push($),!0):!1}))){if($=this.tokenizer.escape(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.tag(q)){q=q.substring($.raw.length),oe=te[te.length-1],oe&&$.type==="text"&&oe.type==="text"?(oe.raw+=$.raw,oe.text+=$.text):te.push($);continue}if($=this.tokenizer.link(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring($.raw.length),oe=te[te.length-1],oe&&$.type==="text"&&oe.type==="text"?(oe.raw+=$.raw,oe.text+=$.text):te.push($);continue}if($=this.tokenizer.emStrong(q,ue,ve)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.codespan(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.br(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.del(q)){q=q.substring($.raw.length),te.push($);continue}if($=this.tokenizer.autolink(q,V)){q=q.substring($.raw.length),te.push($);continue}if(!this.state.inLink&&($=this.tokenizer.url(q,V))){q=q.substring($.raw.length),te.push($);continue}if(ae=q,this.options.extensions&&this.options.extensions.startInline&&function(){var _e=1/0,Ie=q.slice(1),Ne=void 0;G.options.extensions.startInline.forEach(function(Oe){Ne=Oe.call({lexer:this},Ie),typeof Ne=="number"&&Ne>=0&&(_e=Math.min(_e,Ne))}),_e<1/0&&_e>=0&&(ae=q.substring(0,_e+1))}(),$=this.tokenizer.inlineText(ae,W)){q=q.substring($.raw.length),$.raw.slice(-1)!=="_"&&(ve=$.raw.slice(-1)),fe=!0,oe=te[te.length-1],oe&&oe.type==="text"?(oe.raw+=$.raw,oe.text+=$.text):te.push($);continue}if(q){var Se="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Se);break}else throw new Error(Se)}}return te},L(U,null,[{key:"rules",get:function(){return{block:O,inline:B}}}]),U}(),K=function(){function U(H){this.options=H||ee.defaults}var Z=U.prototype;return Z.code=function(q,te,G){var $=(te||"").match(/\S*/)[0];if(this.options.highlight){var oe=this.options.highlight(q,$);oe!=null&&oe!==q&&(G=!0,q=oe)}return q=q.replace(/\n$/,"")+` +`,$?'
'+(G?q:t(q,!0))+`
+`:"
"+(G?q:t(q,!0))+`
+`},Z.blockquote=function(q){return`
+`+q+`
+`},Z.html=function(q){return q},Z.heading=function(q,te,G,$){if(this.options.headerIds){var oe=this.options.headerPrefix+$.slug(G);return"'+q+" +`}return""+q+" +`},Z.hr=function(){return this.options.xhtml?`
+`:`
+`},Z.list=function(q,te,G){var $=te?"ol":"ul",oe=te&&G!==1?' start="'+G+'"':"";return"<"+$+oe+`> +`+q+" +`},Z.listitem=function(q){return"
  • "+q+`
  • +`},Z.checkbox=function(q){return" "},Z.paragraph=function(q){return"

    "+q+`

    +`},Z.table=function(q,te){return te&&(te=""+te+""),` + +`+q+` +`+te+`
    +`},Z.tablerow=function(q){return` +`+q+` +`},Z.tablecell=function(q,te){var G=te.header?"th":"td",$=te.align?"<"+G+' align="'+te.align+'">':"<"+G+">";return $+q+(" +`)},Z.strong=function(q){return""+q+""},Z.em=function(q){return""+q+""},Z.codespan=function(q){return""+q+""},Z.br=function(){return this.options.xhtml?"
    ":"
    "},Z.del=function(q){return""+q+""},Z.link=function(q,te,G){if(q=l(this.options.sanitize,this.options.baseUrl,q),q===null)return G;var $='",$},Z.image=function(q,te,G){if(q=l(this.options.sanitize,this.options.baseUrl,q),q===null)return G;var $=''+G+'":">",$},Z.text=function(q){return q},U}(),j=function(){function U(){}var Z=U.prototype;return Z.strong=function(q){return q},Z.em=function(q){return q},Z.codespan=function(q){return q},Z.del=function(q){return q},Z.html=function(q){return q},Z.text=function(q){return q},Z.link=function(q,te,G){return""+G},Z.image=function(q,te,G){return""+G},Z.br=function(){return""},U}(),x=function(){function U(){this.seen={}}var Z=U.prototype;return Z.serialize=function(q){return q.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},Z.getNextSafeSlug=function(q,te){var G=q,$=0;if(this.seen.hasOwnProperty(G)){$=this.seen[q];do $++,G=q+"-"+$;while(this.seen.hasOwnProperty(G))}return te||(this.seen[q]=$,this.seen[G]=0),G},Z.slug=function(q,te){te===void 0&&(te={});var G=this.serialize(q);return this.getNextSafeSlug(G,te.dryrun)},U}(),re=function(){function U(H){this.options=H||ee.defaults,this.options.renderer=this.options.renderer||new K,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new j,this.slugger=new x}U.parse=function(q,te){var G=new U(te);return G.parse(q)},U.parseInline=function(q,te){var G=new U(te);return G.parseInline(q)};var Z=U.prototype;return Z.parse=function(q,te){te===void 0&&(te=!0);var G="",$,oe,ae,ue,ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe,We,ye,Me,me,be,Ae=q.length;for($=0;$0&&We.tokens[0].type==="paragraph"?(We.tokens[0].text=me+" "+We.tokens[0].text,We.tokens[0].tokens&&We.tokens[0].tokens.length>0&&We.tokens[0].tokens[0].type==="text"&&(We.tokens[0].tokens[0].text=me+" "+We.tokens[0].tokens[0].text)):We.tokens.unshift({type:"text",text:me}):xe+=me),xe+=this.parse(We.tokens,Oe),Se+=this.renderer.listitem(xe,Me,ye);G+=this.renderer.list(Se,Ie,Ne);continue}case"html":{G+=this.renderer.html(_e.text);continue}case"paragraph":{G+=this.renderer.paragraph(this.parseInline(_e.tokens));continue}case"text":{for(Se=_e.tokens?this.parseInline(_e.tokens):_e.text;$+1"u"||U===null)throw new Error("marked(): input parameter is undefined or null");if(typeof U!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(U)+", string expected");if(typeof Z=="function"&&(H=Z,Z=null),Z=E({},ie.defaults,Z||{}),R(Z),H){var q=Z.highlight,te;try{te=z.lex(U,Z)}catch(ue){return H(ue)}var G=function(ce){var fe;if(!ce)try{Z.walkTokens&&ie.walkTokens(te,Z.walkTokens),fe=re.parse(te,Z)}catch(ve){ce=ve}return Z.highlight=q,ce?H(ce):H(null,fe)};if(!q||q.length<3||(delete Z.highlight,!te.length))return G();var $=0;ie.walkTokens(te,function(ue){ue.type==="code"&&($++,setTimeout(function(){q(ue.text,ue.lang,function(ce,fe){if(ce)return G(ce);fe!=null&&fe!==ue.text&&(ue.text=fe,ue.escaped=!0),$--,$===0&&G()})},0))}),$===0&&G();return}function oe(ue){if(ue.message+=` +Please report this to https://github.com/markedjs/marked.`,Z.silent)return"

    An error occurred:

    "+t(ue.message+"",!0)+"
    ";throw ue}try{var ae=z.lex(U,Z);if(Z.walkTokens){if(Z.async)return Promise.all(ie.walkTokens(ae,Z.walkTokens)).then(function(){return re.parse(ae,Z)}).catch(oe);ie.walkTokens(ae,Z.walkTokens)}return re.parse(ae,Z)}catch(ue){oe(ue)}}ie.options=ie.setOptions=function(U){return E(ie.defaults,U),p(ie.defaults),ie},ie.getDefaults=S,ie.defaults=ee.defaults,ie.use=function(){for(var U=arguments.length,Z=new Array(U),H=0;H"u"||U===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof U!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(U)+", string expected");Z=E({},ie.defaults,Z||{}),R(Z);try{var H=z.lexInline(U,Z);return Z.walkTokens&&ie.walkTokens(H,Z.walkTokens),re.parseInline(H,Z)}catch(q){if(q.message+=` +Please report this to https://github.com/markedjs/marked.`,Z.silent)return"

    An error occurred:

    "+t(q.message+"",!0)+"
    ";throw q}},ie.Parser=re,ie.parser=re.parse,ie.Renderer=K,ie.TextRenderer=j,ie.Lexer=z,ie.lexer=z.lex,ie.Tokenizer=F,ie.Slugger=x,ie.parse=ie;var J=ie.options,X=ie.setOptions,Y=ie.use,le=ie.walkTokens,de=ie.parseInline,ge=ie,pe=re.parse,Q=z.lex;ee.Lexer=z,ee.Parser=re,ee.Renderer=K,ee.Slugger=x,ee.TextRenderer=j,ee.Tokenizer=F,ee.getDefaults=S,ee.lexer=Q,ee.marked=ie,ee.options=J,ee.parse=ge,ee.parseInline=de,ee.parser=pe,ee.setOptions=X,ee.use=Y,ee.walkTokens=le,Object.defineProperty(ee,"__esModule",{value:!0})}),define(ne[113],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Mimes=void 0,e.Mimes=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"})}),define(ne[204],se([1,0,113]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTransfers=void 0,e.DataTransfers={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:L.Mimes.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"}}),define(ne[408],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getKoreanAltChars=void 0;function L(n){const i=D(n);if(i&&i.length>0)return new Uint32Array(i)}e.getKoreanAltChars=L;let k=0;const y=new Uint32Array(10);function D(n){if(k=0,S(n,w,4352),k>0||(S(n,v,4449),k>0)||(S(n,b,4520),k>0)||(S(n,a,12593),k))return y.subarray(0,k);if(n>=44032&&n<=55203){const i=n-44032,t=i%588,o=Math.floor(i/588),g=Math.floor(t/28),m=t%28-1;if(o=0&&(m0)return y.subarray(0,k)}}function S(n,i,t){n>=t&&n>8&&(y[k++]=n>>8&255),n>>16&&(y[k++]=n>>16&255))}const w=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),v=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),b=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),a=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108])}),define(ne[409],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ArrayNavigator=void 0;class L{constructor(y,D=0,S=y.length,p=D-1){this.items=y,this.start=D,this.end=S,this.index=p}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}e.ArrayNavigator=L}),define(ne[410],se([1,0,409]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryNavigator=void 0;class k{constructor(D=[],S=10){this._initialize(D),this._limit=S,this._onChange()}getHistory(){return this._elements}add(D){this._history.delete(D),this._history.add(D),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(D){return this._history.has(D)}_onChange(){this._reduceToLimit();const D=this._elements;this._navigator=new L.ArrayNavigator(D,0,D.length,D.length)}_reduceToLimit(){const D=this._elements;D.length>this._limit&&this._initialize(D.slice(D.length-this._limit))}_currentPosition(){const D=this._navigator.current();return D?this._elements.indexOf(D):-1}_initialize(D){this._history=new Set;for(const S of D)this._history.add(S)}get _elements(){const D=[];return this._history.forEach(S=>D.push(S)),D}}e.HistoryNavigator=k}),define(ne[128],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SlidingWindowAverage=e.MovingAverage=e.clamp=void 0;function L(D,S,p){return Math.min(Math.max(D,S),p)}e.clamp=L;class k{constructor(){this._n=1,this._val=0}update(S){return this._val=this._val+(S-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}e.MovingAverage=k;class y{constructor(S){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(S),this._values.fill(0,0,S)}update(S){const p=this._values[this._index];return this._values[this._index]=S,this._index=(this._index+1)%this._values.length,this._sum-=p,this._sum+=S,this._nm.debugName).join(", ")+")",{color:"gray"})}handleDerivedCreated(g){const m=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(c,d)=>(this.changedObservablesSets.get(g).add(c),m.apply(g,[c,d]))}handleDerivedRecomputed(g,m){const c=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([w("derived recomputed"),v(g.debugName,{color:"BlueViolet"}),...this.formatInfo(m),this.formatChanges(c),{data:[{fn:g._computeFn}]}])),c.clear()}handleFromEventObservableTriggered(g,m){console.log(...this.textToConsoleArgs([w("observable from event triggered"),v(g.debugName,{color:"BlueViolet"}),...this.formatInfo(m),{data:[{fn:g._getValue}]}]))}handleAutorunCreated(g){const m=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(c,d)=>(this.changedObservablesSets.get(g).add(c),m.apply(g,[c,d]))}handleAutorunTriggered(g){const m=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([w("autorun"),v(g.debugName,{color:"BlueViolet"}),this.formatChanges(m),{data:[{fn:g._runFn}]}])),m.clear(),this.indentation++}handleAutorunFinished(g){this.indentation--}handleBeginTransaction(g){let m=g.getDebugName();m===void 0&&(m=""),console.log(...this.textToConsoleArgs([w("transaction"),v(m,{color:"BlueViolet"}),{data:[{fn:g._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}}e.ConsoleObservableLogger=D;function S(o){const g=new Array,m=[];let c="";function d(l){if("length"in l)for(const r of l)r&&d(r);else"text"in l?(c+=`%c${l.text}`,g.push(l.style),l.data&&m.push(...l.data)):"data"in l&&m.push(...l.data)}d(o);const s=[c,...g];return s.push(...m),s}function p(o){return v(o,{color:"black"})}function w(o){return v(t(`${o}: `,10),{color:"black",bold:!0})}function v(o,g={color:"black"}){function m(d){return Object.entries(d).reduce((s,[l,r])=>`${s}${l}:${r};`,"")}const c={color:g.color};return g.strikeThrough&&(c["text-decoration"]="line-through"),g.bold&&(c["font-weight"]="bold"),{text:o,style:m(c)}}function b(o,g){switch(typeof o){case"number":return""+o;case"string":return o.length+2<=g?`"${o}"`:`"${o.substr(0,g-7)}"+...`;case"boolean":return o?"true":"false";case"undefined":return"undefined";case"object":return o===null?"null":Array.isArray(o)?a(o,g):n(o,g);case"symbol":return o.toString();case"function":return`[[Function${o.name?" "+o.name:""}]]`;default:return""+o}}function a(o,g){let m="[ ",c=!0;for(const d of o){if(c||(m+=", "),m.length-5>g){m+="...";break}c=!1,m+=`${b(d,g-m.length)}`}return m+=" ]",m}function n(o,g){let m="{ ",c=!0;for(const[d,s]of Object.entries(o)){if(c||(m+=", "),m.length-5>g){m+="...";break}c=!1,m+=`${d}: ${b(s,g-m.length)}`}return m+=" }",m}function i(o,g){let m="";for(let c=1;c<=g;c++)m+=o;return m}function t(o,g){for(;o.length{n.clear(),a(t,n)});return(0,k.toDisposable)(()=>{i.dispose(),n.dispose()})}e.autorunWithStore=v;class b{get debugName(){var n;return(n=this._debugNameData.getDebugName(this))!==null&&n!==void 0?n:"(anonymous)"}constructor(n,i,t,o){var g,m;this._debugNameData=n,this._runFn=i,this.createChangeSummary=t,this._handleChange=o,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(g=this.createChangeSummary)===null||g===void 0?void 0:g.call(this),(m=(0,D.getLogger)())===null||m===void 0||m.handleAutorunCreated(this),this._runIfNeeded(),(0,k.trackDisposable)(this)}dispose(){this.disposed=!0;for(const n of this.dependencies)n.removeObserver(this);this.dependencies.clear(),(0,k.markAsDisposed)(this)}_runIfNeeded(){var n,i,t;if(this.state===3)return;const o=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=o,this.state=3;const g=this.disposed;try{if(!g){(n=(0,D.getLogger)())===null||n===void 0||n.handleAutorunTriggered(this);const m=this.changeSummary;this.changeSummary=(i=this.createChangeSummary)===null||i===void 0?void 0:i.call(this),this._runFn(this,m)}}finally{g||(t=(0,D.getLogger)())===null||t===void 0||t.handleAutorunFinished(this);for(const m of this.dependenciesToBeRemoved)m.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const n of this.dependencies)if(n.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,(0,L.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(n){this.state===3&&this.dependencies.has(n)&&!this.dependenciesToBeRemoved.has(n)&&(this.state=1)}handleChange(n,i){this.dependencies.has(n)&&!this.dependenciesToBeRemoved.has(n)&&(!this._handleChange||this._handleChange({changedObservable:n,change:i,didChange:o=>o===n},this.changeSummary))&&(this.state=2)}readObservable(n){if(this.disposed)return n.get();n.addObserver(this);const i=n.get();return this.dependencies.add(n),this.dependenciesToBeRemoved.delete(n),i}}e.AutorunObserver=b,function(a){a.Observer=b}(S||(e.autorun=S={}))}),define(ne[129],se([1,0,173,150]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableObservableValue=e.disposableObservableValue=e.ObservableValue=e.observableValue=e.TransactionImpl=e.subtransaction=e.asyncTransaction=e.globalTransaction=e.transaction=e.BaseObservable=e.ConvenientObservable=e._setDerivedOpts=e._setKeepObserved=e._setRecomputeInitiallyAndOnChange=void 0;let y;function D(r){y=r}e._setRecomputeInitiallyAndOnChange=D;let S;function p(r){S=r}e._setKeepObserved=p;let w;function v(r){w=r}e._setDerivedOpts=v;class b{get TChange(){return null}reportChanges(){this.get()}read(h){return h?h.readObservable(this):this.get()}map(h,u){const f=u===void 0?void 0:h,C=u===void 0?h:u;return w({owner:f,debugName:()=>{const _=(0,L.getFunctionName)(C);if(_!==void 0)return _;const I=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(C.toString());if(I)return`${this.debugName}.${I[2]}`;if(!f)return`${this.debugName} (mapped)`}},_=>C(this.read(_),_))}recomputeInitiallyAndOnChange(h,u){return h.add(y(this,u)),this}}e.ConvenientObservable=b;class a extends b{constructor(){super(...arguments),this.observers=new Set}addObserver(h){const u=this.observers.size;this.observers.add(h),u===0&&this.onFirstObserverAdded()}removeObserver(h){this.observers.delete(h)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}e.BaseObservable=a;function n(r,h){const u=new m(r,h);try{r(u)}finally{u.finish()}}e.transaction=n;let i;function t(r){if(i)r(i);else{const h=new m(r,void 0);i=h;try{r(h)}finally{h.finish(),i=void 0}}}e.globalTransaction=t;async function o(r,h){const u=new m(r,h);try{await r(u)}finally{u.finish()}}e.asyncTransaction=o;function g(r,h,u){r?h(r):n(h,u)}e.subtransaction=g;class m{constructor(h,u){var f;this._fn=h,this._getDebugName=u,this.updatingObservers=[],(f=(0,k.getLogger)())===null||f===void 0||f.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():(0,L.getFunctionName)(this._fn)}updateObserver(h,u){this.updatingObservers.push({observer:h,observable:u}),h.beginUpdate(u)}finish(){var h;const u=this.updatingObservers;for(let f=0;f{},()=>`Setting ${this.debugName}`));try{const E=this._value;this._setValue(h),(C=(0,k.getLogger)())===null||C===void 0||C.handleObservableChanged(this,{oldValue:E,newValue:h,change:f,didChange:!0,hadValue:!0});for(const I of this.observers)u.updateObserver(I,this),I.handleChange(this,f)}finally{_&&_.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(h){this._value=h}}e.ObservableValue=d;function s(r,h){return typeof r=="string"?new l(void 0,r,h):new l(r,void 0,h)}e.disposableObservableValue=s;class l extends d{_setValue(h){this._value!==h&&(this._value&&this._value.dispose(),this._value=h)}dispose(){var h;(h=this._value)===null||h===void 0||h.dispose()}}e.DisposableObservableValue=l}),define(ne[174],se([1,0,90,2,129,173,150]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Derived=e.derivedDisposable=e.derivedWithStore=e.derivedHandleChanges=e.derivedOpts=e.derived=e.defaultEqualityComparer=void 0;const p=(t,o)=>t===o;e.defaultEqualityComparer=p;function w(t,o){return o!==void 0?new i(new D.DebugNameData(t,void 0,o),o,void 0,void 0,void 0,e.defaultEqualityComparer):new i(new D.DebugNameData(void 0,void 0,t),t,void 0,void 0,void 0,e.defaultEqualityComparer)}e.derived=w;function v(t,o){var g;return new i(new D.DebugNameData(t.owner,t.debugName,t.debugReferenceFn),o,void 0,void 0,t.onLastObserverRemoved,(g=t.equalityComparer)!==null&&g!==void 0?g:e.defaultEqualityComparer)}e.derivedOpts=v,(0,y._setDerivedOpts)(v);function b(t,o){var g;return new i(new D.DebugNameData(t.owner,t.debugName,void 0),o,t.createEmptyChangeSummary,t.handleChange,void 0,(g=t.equalityComparer)!==null&&g!==void 0?g:e.defaultEqualityComparer)}e.derivedHandleChanges=b;function a(t,o){let g,m;o===void 0?(g=t,m=void 0):(m=t,g=o);const c=new k.DisposableStore;return new i(new D.DebugNameData(m,void 0,g),d=>(c.clear(),g(d,c)),void 0,void 0,()=>c.dispose(),e.defaultEqualityComparer)}e.derivedWithStore=a;function n(t,o){let g,m;o===void 0?(g=t,m=void 0):(m=t,g=o);const c=new k.DisposableStore;return new i(new D.DebugNameData(m,void 0,g),d=>{c.clear();const s=g(d);return s&&c.add(s),s},void 0,void 0,()=>c.dispose(),e.defaultEqualityComparer)}e.derivedDisposable=n;class i extends y.BaseObservable{get debugName(){var o;return(o=this._debugNameData.getDebugName(this))!==null&&o!==void 0?o:"(anonymous)"}constructor(o,g,m,c,d=void 0,s){var l,r;super(),this._debugNameData=o,this._computeFn=g,this.createChangeSummary=m,this._handleChange=c,this._handleLastObserverRemoved=d,this._equalityComparator=s,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(l=this.createChangeSummary)===null||l===void 0?void 0:l.call(this),(r=(0,S.getLogger)())===null||r===void 0||r.handleDerivedCreated(this)}onLastObserverRemoved(){var o;this.state=0,this.value=void 0;for(const g of this.dependencies)g.removeObserver(this);this.dependencies.clear(),(o=this._handleLastObserverRemoved)===null||o===void 0||o.call(this)}get(){var o;if(this.observers.size===0){const g=this._computeFn(this,(o=this.createChangeSummary)===null||o===void 0?void 0:o.call(this));return this.onLastObserverRemoved(),g}else{do{if(this.state===1){for(const g of this.dependencies)if(g.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var o,g;if(this.state===3)return;const m=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=m;const c=this.state!==0,d=this.value;this.state=3;const s=this.changeSummary;this.changeSummary=(o=this.createChangeSummary)===null||o===void 0?void 0:o.call(this);try{this.value=this._computeFn(this,s)}finally{for(const r of this.dependenciesToBeRemoved)r.removeObserver(this);this.dependenciesToBeRemoved.clear()}const l=c&&!this._equalityComparator(d,this.value);if((g=(0,S.getLogger)())===null||g===void 0||g.handleDerivedRecomputed(this,{oldValue:d,newValue:this.value,change:void 0,didChange:l,hadValue:c}),l)for(const r of this.observers)r.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(o){this.updateCount++;const g=this.updateCount===1;if(this.state===3&&(this.state=1,!g))for(const m of this.observers)m.handlePossibleChange(this);if(g)for(const m of this.observers)m.beginUpdate(this)}endUpdate(o){if(this.updateCount--,this.updateCount===0){const g=[...this.observers];for(const m of g)m.endUpdate(this)}(0,L.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(o){if(this.state===3&&this.dependencies.has(o)&&!this.dependenciesToBeRemoved.has(o)){this.state=1;for(const g of this.observers)g.handlePossibleChange(this)}}handleChange(o,g){if(this.dependencies.has(o)&&!this.dependenciesToBeRemoved.has(o)){const m=this._handleChange?this._handleChange({changedObservable:o,change:g,didChange:d=>d===o},this.changeSummary):!0,c=this.state===3;if(m&&(this.state===1||c)&&(this.state=2,c))for(const d of this.observers)d.handlePossibleChange(this)}}readObservable(o){o.addObserver(this);const g=o.get();return this.dependencies.add(o),this.dependenciesToBeRemoved.delete(o),g}addObserver(o){const g=!this.observers.has(o)&&this.updateCount>0;super.addObserver(o),g&&o.beginUpdate(this)}removeObserver(o){const g=this.observers.has(o)&&this.updateCount>0;super.removeObserver(o),g&&o.endUpdate(this)}}e.Derived=i}),define(ne[411],se([1,0,276]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.waitForState=void 0;function k(y,D,S){return new Promise((p,w)=>{let v=!0,b=!1;const a=y.map(i=>({isFinished:D(i),error:S?S(i):!1,state:i})),n=(0,L.autorun)(i=>{const{isFinished:t,error:o,state:g}=a.read(i);(t||o)&&(v?b=!0:n.dispose(),o?w(o===!0?g:o):p(g))});v=!1,b&&n.dispose()})}e.waitForState=k}),define(ne[277],se([1,0,2,129,173,174,150]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mapObservableArrayCached=e.derivedObservableWithCache=e.KeepAliveObserver=e.recomputeInitiallyAndOnChange=e.keepObserved=e.observableSignal=e.observableSignalFromEvent=e.FromEventObservable=e.observableFromEvent=e.constObservable=void 0;function p(l){return new w(l)}e.constObservable=p;class w extends k.ConvenientObservable{constructor(r){super(),this.value=r}get debugName(){return this.toString()}get(){return this.value}addObserver(r){}removeObserver(r){}toString(){return`Const: ${this.value}`}}function v(l,r){return new b(l,r)}e.observableFromEvent=v;class b extends k.BaseObservable{constructor(r,h){super(),this.event=r,this._getValue=h,this.hasValue=!1,this.handleEvent=u=>{var f;const C=this._getValue(u),_=this.value,E=!this.hasValue||_!==C;let I=!1;E&&(this.value=C,this.hasValue&&(I=!0,(0,k.subtransaction)(b.globalTransaction,T=>{var A;(A=(0,S.getLogger)())===null||A===void 0||A.handleFromEventObservableTriggered(this,{oldValue:_,newValue:C,change:void 0,didChange:E,hadValue:this.hasValue});for(const R of this.observers)T.updateObserver(R,this),R.handleChange(this,void 0)},()=>{const T=this.getDebugName();return"Event fired"+(T?`: ${T}`:"")})),this.hasValue=!0),I||(f=(0,S.getLogger)())===null||f===void 0||f.handleFromEventObservableTriggered(this,{oldValue:_,newValue:C,change:void 0,didChange:E,hadValue:this.hasValue})}}getDebugName(){return(0,y.getFunctionName)(this._getValue)}get debugName(){const r=this.getDebugName();return"From Event"+(r?`: ${r}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}e.FromEventObservable=b,function(l){l.Observer=b;function r(h,u){let f=!1;b.globalTransaction===void 0&&(b.globalTransaction=h,f=!0);try{u()}finally{f&&(b.globalTransaction=void 0)}}l.batchEventsGlobally=r}(v||(e.observableFromEvent=v={}));function a(l,r){return new n(l,r)}e.observableSignalFromEvent=a;class n extends k.BaseObservable{constructor(r,h){super(),this.debugName=r,this.event=h,this.handleEvent=()=>{(0,k.transaction)(u=>{for(const f of this.observers)u.updateObserver(f,this),f.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function i(l){return typeof l=="string"?new t(l):new t(void 0,l)}e.observableSignal=i;class t extends k.BaseObservable{get debugName(){var r;return(r=new y.DebugNameData(this._owner,this._debugName,void 0).getDebugName(this))!==null&&r!==void 0?r:"Observable Signal"}constructor(r,h){super(),this._debugName=r,this._owner=h}trigger(r,h){if(!r){(0,k.transaction)(u=>{this.trigger(u,h)},()=>`Trigger signal ${this.debugName}`);return}for(const u of this.observers)r.updateObserver(u,this),u.handleChange(this,h)}get(){}}function o(l){const r=new m(!1,void 0);return l.addObserver(r),(0,L.toDisposable)(()=>{l.removeObserver(r)})}e.keepObserved=o,(0,k._setKeepObserved)(o);function g(l,r){const h=new m(!0,r);return l.addObserver(h),r?r(l.get()):l.reportChanges(),(0,L.toDisposable)(()=>{l.removeObserver(h)})}e.recomputeInitiallyAndOnChange=g,(0,k._setRecomputeInitiallyAndOnChange)(g);class m{constructor(r,h){this._forceRecompute=r,this._handleValue=h,this._counter=0}beginUpdate(r){this._counter++}endUpdate(r){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(r.get()):r.reportChanges())}handlePossibleChange(r){}handleChange(r,h){}}e.KeepAliveObserver=m;function c(l){let r;return(0,D.derived)(u=>(r=l(u,r),r))}e.derivedObservableWithCache=c;function d(l,r,h,u){let f=new s(h,u);return(0,D.derivedOpts)({debugReferenceFn:h,owner:l,onLastObserverRemoved:()=>{f.dispose(),f=new s(h)}},_=>(f.setItems(r.read(_)),f.getItems()))}e.mapObservableArrayCached=d;class s{constructor(r,h){this._map=r,this._keySelector=h,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(r=>r.store.dispose()),this._cache.clear()}setItems(r){const h=[],u=new Set(this._cache.keys());for(const f of r){const C=this._keySelector?this._keySelector(f):f;let _=this._cache.get(C);if(_)u.delete(C);else{const E=new L.DisposableStore;_={out:this._map(f,E),store:E},this._cache.set(C,_)}h.push(_.out)}for(const f of u)this._cache.get(f).store.dispose(),this._cache.delete(f);this._items=h}getItems(){return this._items}}}),define(ne[32],se([1,0,129,174,276,277,411,150]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.waitForState=e.observableSignalFromEvent=e.observableSignal=e.observableFromEvent=e.recomputeInitiallyAndOnChange=e.keepObserved=e.derivedObservableWithCache=e.constObservable=e.autorunOpts=e.autorunWithStore=e.autorunHandleChanges=e.autorun=e.derivedWithStore=e.derivedHandleChanges=e.derivedOpts=e.derived=e.subtransaction=e.transaction=e.disposableObservableValue=e.observableValue=void 0,Object.defineProperty(e,"observableValue",{enumerable:!0,get:function(){return L.observableValue}}),Object.defineProperty(e,"disposableObservableValue",{enumerable:!0,get:function(){return L.disposableObservableValue}}),Object.defineProperty(e,"transaction",{enumerable:!0,get:function(){return L.transaction}}),Object.defineProperty(e,"subtransaction",{enumerable:!0,get:function(){return L.subtransaction}}),Object.defineProperty(e,"derived",{enumerable:!0,get:function(){return k.derived}}),Object.defineProperty(e,"derivedOpts",{enumerable:!0,get:function(){return k.derivedOpts}}),Object.defineProperty(e,"derivedHandleChanges",{enumerable:!0,get:function(){return k.derivedHandleChanges}}),Object.defineProperty(e,"derivedWithStore",{enumerable:!0,get:function(){return k.derivedWithStore}}),Object.defineProperty(e,"autorun",{enumerable:!0,get:function(){return y.autorun}}),Object.defineProperty(e,"autorunHandleChanges",{enumerable:!0,get:function(){return y.autorunHandleChanges}}),Object.defineProperty(e,"autorunWithStore",{enumerable:!0,get:function(){return y.autorunWithStore}}),Object.defineProperty(e,"autorunOpts",{enumerable:!0,get:function(){return y.autorunOpts}}),Object.defineProperty(e,"constObservable",{enumerable:!0,get:function(){return D.constObservable}}),Object.defineProperty(e,"derivedObservableWithCache",{enumerable:!0,get:function(){return D.derivedObservableWithCache}}),Object.defineProperty(e,"keepObserved",{enumerable:!0,get:function(){return D.keepObserved}}),Object.defineProperty(e,"recomputeInitiallyAndOnChange",{enumerable:!0,get:function(){return D.recomputeInitiallyAndOnChange}}),Object.defineProperty(e,"observableFromEvent",{enumerable:!0,get:function(){return D.observableFromEvent}}),Object.defineProperty(e,"observableSignal",{enumerable:!0,get:function(){return D.observableSignal}}),Object.defineProperty(e,"observableSignalFromEvent",{enumerable:!0,get:function(){return D.observableSignalFromEvent}}),Object.defineProperty(e,"waitForState",{enumerable:!0,get:function(){return S.waitForState}}),!1&&(0,p.setLogger)(new p.ConsoleObservableLogger)}),define(ne[175],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Range=void 0;var L;(function(k){function y(w,v){if(w.start>=v.end||v.start>=w.end)return{start:0,end:0};const b=Math.max(w.start,v.start),a=Math.min(w.end,v.end);return a-b<=0?{start:0,end:0}:{start:b,end:a}}k.intersect=y;function D(w){return w.end-w.start<=0}k.isEmpty=D;function S(w,v){return!D(y(w,v))}k.intersects=S;function p(w,v){const b=[],a={start:w.start,end:Math.min(v.start,w.end)},n={start:Math.max(v.end,w.start),end:w.end};return D(a)||b.push(a),D(n)||b.push(n),b}k.relativeComplement=p})(L||(e.Range=L={}))}),define(ne[412],se([1,0,175]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMap=e.consolidate=e.shift=e.groupIntersect=void 0;function k(w,v){const b=[];for(const a of v){if(w.start>=a.range.end)continue;if(w.endv.concat(b),[]))}class p{get paddingTop(){return this._paddingTop}set paddingTop(v){this._size=this._size+v-this._paddingTop,this._paddingTop=v}constructor(v){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=v??0,this._size=this._paddingTop}splice(v,b,a=[]){const n=a.length-b,i=k({start:0,end:v},this.groups),t=k({start:v+b,end:Number.POSITIVE_INFINITY},this.groups).map(g=>({range:y(g.range,n),size:g.size})),o=a.map((g,m)=>({range:{start:v+m,end:v+m+1},size:g.size}));this.groups=S(i,o,t),this._size=this._paddingTop+this.groups.reduce((g,m)=>g+m.size*(m.range.end-m.range.start),0)}get count(){const v=this.groups.length;return v?this.groups[v-1].range.end:0}get size(){return this._size}indexAt(v){if(v<0)return-1;if(vy.Disposable.None;function _(Q){if(w){const{onDidAddListener:U}=Q,Z=i.create();let H=0;Q.onDidAddListener=()=>{++H===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),Z.print()),U?.()}}}function E(Q,U){return B(Q,()=>{},0,void 0,!0,void 0,U)}C.defer=E;function I(Q){return(U,Z=null,H)=>{let q=!1,te;return te=Q(G=>{if(!q)return te?te.dispose():q=!0,U.call(Z,G)},null,H),q&&te.dispose(),te}}C.once=I;function T(Q,U,Z){return F((H,q=null,te)=>Q(G=>H.call(q,U(G)),null,te),Z)}C.map=T;function A(Q,U,Z){return F((H,q=null,te)=>Q(G=>{U(G),H.call(q,G)},null,te),Z)}C.forEach=A;function R(Q,U,Z){return F((H,q=null,te)=>Q(G=>U(G)&&H.call(q,G),null,te),Z)}C.filter=R;function M(Q){return Q}C.signal=M;function N(...Q){return(U,Z=null,H)=>{const q=(0,y.combinedDisposable)(...Q.map(te=>te(G=>U.call(Z,G))));return O(q,H)}}C.any=N;function P(Q,U,Z,H){let q=Z;return T(Q,te=>(q=U(q,te),q),H)}C.reduce=P;function F(Q,U){let Z;const H={onWillAddFirstListener(){Z=Q(q.fire,q)},onDidRemoveLastListener(){Z?.dispose()}};U||_(H);const q=new m(H);return U?.add(q),q.event}function O(Q,U){return U instanceof Array?U.push(Q):U&&U.add(Q),Q}function B(Q,U,Z=100,H=!1,q=!1,te,G){let $,oe,ae,ue=0,ce;const fe={leakWarningThreshold:te,onWillAddFirstListener(){$=Q(Ce=>{ue++,oe=U(oe,Ce),H&&!ae&&(ve.fire(oe),oe=void 0),ce=()=>{const Se=oe;oe=void 0,ae=void 0,(!H||ue>1)&&ve.fire(Se),ue=0},typeof Z=="number"?(clearTimeout(ae),ae=setTimeout(ce,Z)):ae===void 0&&(ae=0,queueMicrotask(ce))})},onWillRemoveListener(){q&&ue>0&&ce?.()},onDidRemoveLastListener(){ce=void 0,$.dispose()}};G||_(fe);const ve=new m(fe);return G?.add(ve),ve.event}C.debounce=B;function W(Q,U=0,Z){return C.debounce(Q,(H,q)=>H?(H.push(q),H):[q],U,void 0,!0,void 0,Z)}C.accumulate=W;function V(Q,U=(H,q)=>H===q,Z){let H=!0,q;return R(Q,te=>{const G=H||!U(te,q);return H=!1,q=te,G},Z)}C.latch=V;function z(Q,U,Z){return[C.filter(Q,U,Z),C.filter(Q,H=>!U(H),Z)]}C.split=z;function K(Q,U=!1,Z=[],H){let q=Z.slice(),te=Q(oe=>{q?q.push(oe):$.fire(oe)});H&&H.add(te);const G=()=>{q?.forEach(oe=>$.fire(oe)),q=null},$=new m({onWillAddFirstListener(){te||(te=Q(oe=>$.fire(oe)),H&&H.add(te))},onDidAddFirstListener(){q&&(U?setTimeout(G):G())},onDidRemoveLastListener(){te&&te.dispose(),te=null}});return H&&H.add($),$.event}C.buffer=K;function j(Q,U){return(H,q,te)=>{const G=U(new re);return Q(function($){const oe=G.evaluate($);oe!==x&&H.call(q,oe)},void 0,te)}}C.chain=j;const x=Symbol("HaltChainable");class re{constructor(){this.steps=[]}map(U){return this.steps.push(U),this}forEach(U){return this.steps.push(Z=>(U(Z),Z)),this}filter(U){return this.steps.push(Z=>U(Z)?Z:x),this}reduce(U,Z){let H=Z;return this.steps.push(q=>(H=U(H,q),H)),this}latch(U=(Z,H)=>Z===H){let Z=!0,H;return this.steps.push(q=>{const te=Z||!U(q,H);return Z=!1,H=q,te?q:x}),this}evaluate(U){for(const Z of this.steps)if(U=Z(U),U===x)break;return U}}function ie(Q,U,Z=H=>H){const H=(...$)=>G.fire(Z(...$)),q=()=>Q.on(U,H),te=()=>Q.removeListener(U,H),G=new m({onWillAddFirstListener:q,onDidRemoveLastListener:te});return G.event}C.fromNodeEventEmitter=ie;function J(Q,U,Z=H=>H){const H=(...$)=>G.fire(Z(...$)),q=()=>Q.addEventListener(U,H),te=()=>Q.removeEventListener(U,H),G=new m({onWillAddFirstListener:q,onDidRemoveLastListener:te});return G.event}C.fromDOMEventEmitter=J;function X(Q){return new Promise(U=>I(Q)(U))}C.toPromise=X;function Y(Q){const U=new m;return Q.then(Z=>{U.fire(Z)},()=>{U.fire(void 0)}).finally(()=>{U.dispose()}),U.event}C.fromPromise=Y;function le(Q,U,Z){return U(Z),Q(H=>U(H))}C.runAndSubscribe=le;class de{constructor(U,Z){this._observable=U,this._counter=0,this._hasChanged=!1;const H={onWillAddFirstListener:()=>{U.addObserver(this)},onDidRemoveLastListener:()=>{U.removeObserver(this)}};Z||_(H),this.emitter=new m(H),Z&&Z.add(this.emitter)}beginUpdate(U){this._counter++}handlePossibleChange(U){}handleChange(U,Z){this._hasChanged=!0}endUpdate(U){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ge(Q,U){return new de(Q,U).emitter.event}C.fromObservable=ge;function pe(Q){return(U,Z,H)=>{let q=0,te=!1;const G={beginUpdate(){q++},endUpdate(){q--,q===0&&(Q.reportChanges(),te&&(te=!1,U.call(Z)))},handlePossibleChange(){},handleChange(){te=!0}};Q.addObserver(G),Q.reportChanges();const $={dispose(){Q.removeObserver(G)}};return H instanceof y.DisposableStore?H.add($):Array.isArray(H)&&H.push($),$}}C.fromObservableLight=pe})(v||(e.Event=v={}));class b{constructor(_){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${_}_${b._idPool++}`,b.all.add(this)}start(_){this._stopWatch=new S.StopWatch,this.listenerCount=_}stop(){if(this._stopWatch){const _=this._stopWatch.elapsed();this.durations.push(_),this.elapsedOverall+=_,this.invocationCount+=1,this._stopWatch=void 0}}}e.EventProfiling=b,b.all=new Set,b._idPool=0;let a=-1;class n{constructor(_,E=Math.random().toString(18).slice(2,5)){this.threshold=_,this.name=E,this._warnCountdown=0}dispose(){var _;(_=this._stacks)===null||_===void 0||_.clear()}check(_,E){const I=this.threshold;if(I<=0||E{const A=this._stacks.get(_.value)||0;this._stacks.set(_.value,A-1)}}}class i{static create(){var _;return new i((_=new Error().stack)!==null&&_!==void 0?_:"")}constructor(_){this.value=_}print(){console.warn(this.value.split(` +`).slice(2).join(` +`))}}class t{constructor(_){this.value=_}}const o=2,g=(C,_)=>{if(C instanceof t)_(C);else for(let E=0;E0||!((E=this._options)===null||E===void 0)&&E.leakWarningThreshold?new n((T=(I=this._options)===null||I===void 0?void 0:I.leakWarningThreshold)!==null&&T!==void 0?T:a):void 0,this._perfMon=!((A=this._options)===null||A===void 0)&&A._profName?new b(this._options._profName):void 0,this._deliveryQueue=(R=this._options)===null||R===void 0?void 0:R.deliveryQueue}dispose(){var _,E,I,T;if(!this._disposed){if(this._disposed=!0,((_=this._deliveryQueue)===null||_===void 0?void 0:_.current)===this&&this._deliveryQueue.reset(),this._listeners){if(p){const A=this._listeners;queueMicrotask(()=>{g(A,R=>{var M;return(M=R.stack)===null||M===void 0?void 0:M.print()})})}this._listeners=void 0,this._size=0}(I=(E=this._options)===null||E===void 0?void 0:E.onDidRemoveLastListener)===null||I===void 0||I.call(E),(T=this._leakageMon)===null||T===void 0||T.dispose()}}get event(){var _;return(_=this._event)!==null&&_!==void 0||(this._event=(E,I,T)=>{var A,R,M,N,P;if(this._leakageMon&&this._size>this._leakageMon.threshold*3)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),y.Disposable.None;if(this._disposed)return y.Disposable.None;I&&(E=E.bind(I));const F=new t(E);let O,B;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(F.stack=i.create(),O=this._leakageMon.check(F.stack,this._size+1)),p&&(F.stack=B??i.create()),this._listeners?this._listeners instanceof t?((P=this._deliveryQueue)!==null&&P!==void 0||(this._deliveryQueue=new d),this._listeners=[this._listeners,F]):this._listeners.push(F):((R=(A=this._options)===null||A===void 0?void 0:A.onWillAddFirstListener)===null||R===void 0||R.call(A,this),this._listeners=F,(N=(M=this._options)===null||M===void 0?void 0:M.onDidAddFirstListener)===null||N===void 0||N.call(M,this)),this._size++;const W=(0,y.toDisposable)(()=>{O?.(),this._removeListener(F)});return T instanceof y.DisposableStore?T.add(W):Array.isArray(T)&&T.push(W),W}),this._event}_removeListener(_){var E,I,T,A;if((I=(E=this._options)===null||E===void 0?void 0:E.onWillRemoveListener)===null||I===void 0||I.call(E,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(A=(T=this._options)===null||T===void 0?void 0:T.onDidRemoveLastListener)===null||A===void 0||A.call(T,this),this._size=0;return}const R=this._listeners,M=R.indexOf(_);if(M===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,R[M]=void 0;const N=this._deliveryQueue.current===this;if(this._size*o<=R.length){let P=0;for(let F=0;F0}}e.Emitter=m;const c=()=>new d;e.createEventDeliveryQueue=c;class d{constructor(){this.i=-1,this.end=0}enqueue(_,E,I){this.i=0,this.end=I,this.current=_,this.value=E}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class s extends m{constructor(_){super(_),this._isPaused=0,this._eventQueue=new D.LinkedList,this._mergeFn=_?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const _=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(_))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(_){this._size&&(this._isPaused!==0?this._eventQueue.push(_):super.fire(_))}}e.PauseableEmitter=s;class l extends s{constructor(_){var E;super(_),this._delay=(E=_.delay)!==null&&E!==void 0?E:100}fire(_){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(_)}}e.DebounceEmitter=l;class r extends m{constructor(_){super(_),this._queuedEvents=[],this._mergeFn=_?.merge}fire(_){this.hasListeners()&&(this._queuedEvents.push(_),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(E=>super.fire(E)),this._queuedEvents=[]}))}}e.MicrotaskEmitter=r;class h{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new m({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(_){const E={event:_,listener:null};this.events.push(E),this.hasListeners&&this.hook(E);const I=()=>{this.hasListeners&&this.unhook(E);const T=this.events.indexOf(E);this.events.splice(T,1)};return(0,y.toDisposable)((0,k.createSingleCallFunction)(I))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(_=>this.hook(_))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(_=>this.unhook(_))}hook(_){_.listener=_.event(E=>this.emitter.fire(E))}unhook(_){var E;(E=_.listener)===null||E===void 0||E.dispose(),_.listener=null}dispose(){var _;this.emitter.dispose();for(const E of this.events)(_=E.listener)===null||_===void 0||_.dispose();this.events=[]}}e.EventMultiplexer=h;class u{constructor(){this.buffers=[]}wrapEvent(_){return(E,I,T)=>_(A=>{const R=this.buffers[this.buffers.length-1];R?R.push(()=>E.call(I,A)):E.call(I,A)},void 0,T)}bufferEvents(_){const E=[];this.buffers.push(E);const I=_();return this.buffers.pop(),E.forEach(T=>T()),I}}e.EventBufferer=u;class f{constructor(){this.listening=!1,this.inputEvent=v.None,this.inputEventListener=y.Disposable.None,this.emitter=new m({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(_){this.inputEvent=_,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=_(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}e.Relay=f}),define(ne[84],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomEmitter=void 0;class k{get event(){return this.emitter.event}constructor(D,S,p){const w=v=>this.emitter.fire(v);this.emitter=new L.Emitter({onWillAddFirstListener:()=>D.addEventListener(S,w,p),onDidRemoveLastListener:()=>D.removeEventListener(S,w,p)})}dispose(){this.emitter.dispose()}}e.DomEmitter=k}),define(ne[19],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;const k=Object.freeze(function(p,w){const v=setTimeout(p.bind(w),0);return{dispose(){clearTimeout(v)}}});var y;(function(p){function w(v){return v===p.None||v===p.Cancelled||v instanceof D?!0:!v||typeof v!="object"?!1:typeof v.isCancellationRequested=="boolean"&&typeof v.onCancellationRequested=="function"}p.isCancellationToken=w,p.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:L.Event.None}),p.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:k})})(y||(e.CancellationToken=y={}));class D{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?k:(this._emitter||(this._emitter=new L.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class S{constructor(w){this._token=void 0,this._parentListener=void 0,this._parentListener=w&&w.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new D),this._token}cancel(){this._token?this._token instanceof D&&this._token.cancel():this._token=y.Cancelled}dispose(w=!1){var v;w&&this.cancel(),(v=this._parentListener)===null||v===void 0||v.dispose(),this._token?this._token instanceof D&&this._token.dispose():this._token=y.None}}e.CancellationTokenSource=S}),define(ne[278],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IME=e.IMEImpl=void 0;class k{constructor(){this._onDidChange=new L.Emitter,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}e.IMEImpl=k,e.IME=new k}),define(ne[151],se([1,0,7,2]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SmoothScrollingOperation=e.SmoothScrollingUpdate=e.Scrollable=e.ScrollState=void 0;class y{constructor(i,t,o,g,m,c,d){this._forceIntegerValues=i,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,o=o|0,g=g|0,m=m|0,c=c|0,d=d|0),this.rawScrollLeft=g,this.rawScrollTop=d,t<0&&(t=0),g+t>o&&(g=o-t),g<0&&(g=0),m<0&&(m=0),d+m>c&&(d=c-m),d<0&&(d=0),this.width=t,this.scrollWidth=o,this.scrollLeft=g,this.height=m,this.scrollHeight=c,this.scrollTop=d}equals(i){return this.rawScrollLeft===i.rawScrollLeft&&this.rawScrollTop===i.rawScrollTop&&this.width===i.width&&this.scrollWidth===i.scrollWidth&&this.scrollLeft===i.scrollLeft&&this.height===i.height&&this.scrollHeight===i.scrollHeight&&this.scrollTop===i.scrollTop}withScrollDimensions(i,t){return new y(this._forceIntegerValues,typeof i.width<"u"?i.width:this.width,typeof i.scrollWidth<"u"?i.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof i.height<"u"?i.height:this.height,typeof i.scrollHeight<"u"?i.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(i){return new y(this._forceIntegerValues,this.width,this.scrollWidth,typeof i.scrollLeft<"u"?i.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof i.scrollTop<"u"?i.scrollTop:this.rawScrollTop)}createScrollEvent(i,t){const o=this.width!==i.width,g=this.scrollWidth!==i.scrollWidth,m=this.scrollLeft!==i.scrollLeft,c=this.height!==i.height,d=this.scrollHeight!==i.scrollHeight,s=this.scrollTop!==i.scrollTop;return{inSmoothScrolling:t,oldWidth:i.width,oldScrollWidth:i.scrollWidth,oldScrollLeft:i.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:i.height,oldScrollHeight:i.scrollHeight,oldScrollTop:i.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:o,scrollWidthChanged:g,scrollLeftChanged:m,heightChanged:c,scrollHeightChanged:d,scrollTopChanged:s}}}e.ScrollState=y;class D extends k.Disposable{constructor(i){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new L.Emitter),this.onScroll=this._onScroll.event,this._smoothScrollDuration=i.smoothScrollDuration,this._scheduleAtNextAnimationFrame=i.scheduleAtNextAnimationFrame,this._state=new y(i.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(i){this._smoothScrollDuration=i}validateScrollPosition(i){return this._state.withScrollPosition(i)}getScrollDimensions(){return this._state}setScrollDimensions(i,t){var o;const g=this._state.withScrollDimensions(i,t);this._setState(g,!!this._smoothScrolling),(o=this._smoothScrolling)===null||o===void 0||o.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(i){const t=this._state.withScrollPosition(i);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(i,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(i);if(this._smoothScrolling){i={scrollLeft:typeof i.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:i.scrollLeft,scrollTop:typeof i.scrollTop>"u"?this._smoothScrolling.to.scrollTop:i.scrollTop};const o=this._state.withScrollPosition(i);if(this._smoothScrolling.to.scrollLeft===o.scrollLeft&&this._smoothScrolling.to.scrollTop===o.scrollTop)return;let g;t?g=new v(this._smoothScrolling.from,o,this._smoothScrolling.startTime,this._smoothScrolling.duration):g=this._smoothScrolling.combine(this._state,o,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=g}else{const o=this._state.withScrollPosition(i);this._smoothScrolling=v.start(this._state,o,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const i=this._smoothScrolling.tick(),t=this._state.withScrollPosition(i);if(this._setState(t,!0),!!this._smoothScrolling){if(i.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(i,t){const o=this._state;o.equals(i)||(this._state=i,this._onScroll.fire(this._state.createScrollEvent(o,t)))}}e.Scrollable=D;class S{constructor(i,t,o){this.scrollLeft=i,this.scrollTop=t,this.isDone=o}}e.SmoothScrollingUpdate=S;function p(n,i){const t=i-n;return function(o){return n+t*a(o)}}function w(n,i,t){return function(o){return o2.5*o){let m,c;return i=ue.length?ce:ue[ve]})}e.format=p;function w(ae){return ae.replace(/[<>"'&]/g,ue=>{switch(ue){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return ue})}e.htmlAttributeEncodeValue=w;function v(ae){return ae.replace(/[<>&]/g,function(ue){switch(ue){case"<":return"<";case">":return">";case"&":return"&";default:return ue}})}e.escape=v;function b(ae){return ae.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}e.escapeRegExpCharacters=b;function a(ae,ue=" "){const ce=n(ae,ue);return i(ce,ue)}e.trim=a;function n(ae,ue){if(!ae||!ue)return ae;const ce=ue.length;if(ce===0||ae.length===0)return ae;let fe=0;for(;ae.indexOf(ue,fe)===fe;)fe=fe+ce;return ae.substring(fe)}e.ltrim=n;function i(ae,ue){if(!ae||!ue)return ae;const ce=ue.length,fe=ae.length;if(ce===0||fe===0)return ae;let ve=fe,Ce=-1;for(;Ce=ae.lastIndexOf(ue,ve-1),!(Ce===-1||Ce+ce!==ve);){if(Ce===0)return"";ve=Ce}return ae.substring(0,ve)}e.rtrim=i;function t(ae){return ae.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}e.convertSimple2RegExpPattern=t;function o(ae){return ae.replace(/\*/g,"")}e.stripWildcards=o;function g(ae,ue,ce={}){if(!ae)throw new Error("Cannot create regex from empty string");ue||(ae=b(ae)),ce.wholeWord&&(/\B/.test(ae.charAt(0))||(ae="\\b"+ae),/\B/.test(ae.charAt(ae.length-1))||(ae=ae+"\\b"));let fe="";return ce.global&&(fe+="g"),ce.matchCase||(fe+="i"),ce.multiline&&(fe+="m"),ce.unicode&&(fe+="u"),new RegExp(ae,fe)}e.createRegExp=g;function m(ae){return ae.source==="^"||ae.source==="^$"||ae.source==="$"||ae.source==="^\\s*$"?!1:!!(ae.exec("")&&ae.lastIndex===0)}e.regExpLeadsToEndlessLoop=m;function c(ae){return ae.split(/\r\n|\r|\n/)}e.splitLines=c;function d(ae){var ue;const ce=[],fe=ae.split(/(\r\n|\r|\n)/);for(let ve=0;ve=0;ce--){const fe=ae.charCodeAt(ce);if(fe!==32&&fe!==9)return ce}return-1}e.lastNonWhitespaceIndex=r;function h(ae,ue){return aeue?1:0}e.compare=h;function u(ae,ue,ce=0,fe=ae.length,ve=0,Ce=ue.length){for(;ceNe)return 1}const Se=fe-ce,_e=Ce-ve;return Se<_e?-1:Se>_e?1:0}e.compareSubstring=u;function f(ae,ue){return C(ae,ue,0,ae.length,0,ue.length)}e.compareIgnoreCase=f;function C(ae,ue,ce=0,fe=ae.length,ve=0,Ce=ue.length){for(;ce=128||Ne>=128)return u(ae.toLowerCase(),ue.toLowerCase(),ce,fe,ve,Ce);E(Ie)&&(Ie-=32),E(Ne)&&(Ne-=32);const Oe=Ie-Ne;if(Oe!==0)return Oe}const Se=fe-ce,_e=Ce-ve;return Se<_e?-1:Se>_e?1:0}e.compareSubstringIgnoreCase=C;function _(ae){return ae>=48&&ae<=57}e.isAsciiDigit=_;function E(ae){return ae>=97&&ae<=122}e.isLowerAsciiLetter=E;function I(ae){return ae>=65&&ae<=90}e.isUpperAsciiLetter=I;function T(ae,ue){return ae.length===ue.length&&C(ae,ue)===0}e.equalsIgnoreCase=T;function A(ae,ue){const ce=ue.length;return ue.length>ae.length?!1:C(ae,ue,0,ce)===0}e.startsWithIgnoreCase=A;function R(ae,ue){const ce=Math.min(ae.length,ue.length);let fe;for(fe=0;fe1){const fe=ae.charCodeAt(ue-2);if(N(fe))return F(fe,ce)}return ce}class W{get offset(){return this._offset}constructor(ue,ce=0){this._str=ue,this._len=ue.length,this._offset=ce}setOffset(ue){this._offset=ue}prevCodePoint(){const ue=B(this._str,this._offset);return this._offset-=ue>=65536?2:1,ue}nextCodePoint(){const ue=O(this._str,this._len,this._offset);return this._offset+=ue>=65536?2:1,ue}eol(){return this._offset>=this._len}}e.CodePointIterator=W;class V{get offset(){return this._iterator.offset}constructor(ue,ce=0){this._iterator=new W(ue,ce)}nextGraphemeLength(){const ue=Z.getInstance(),ce=this._iterator,fe=ce.offset;let ve=ue.getGraphemeBreakType(ce.nextCodePoint());for(;!ce.eol();){const Ce=ce.offset,Se=ue.getGraphemeBreakType(ce.nextCodePoint());if(U(ve,Se)){ce.setOffset(Ce);break}ve=Se}return ce.offset-fe}prevGraphemeLength(){const ue=Z.getInstance(),ce=this._iterator,fe=ce.offset;let ve=ue.getGraphemeBreakType(ce.prevCodePoint());for(;ce.offset>0;){const Ce=ce.offset,Se=ue.getGraphemeBreakType(ce.prevCodePoint());if(U(Se,ve)){ce.setOffset(Ce);break}ve=Se}return fe-ce.offset}eol(){return this._iterator.eol()}}e.GraphemeIterator=V;function z(ae,ue){return new V(ae,ue).nextGraphemeLength()}e.nextCharLength=z;function K(ae,ue){return new V(ae,ue).prevGraphemeLength()}e.prevCharLength=K;function j(ae,ue){ue>0&&P(ae.charCodeAt(ue))&&ue--;const ce=ue+z(ae,ue);return[ce-K(ae,ce),ce]}e.getCharContainingOffset=j;let x;function re(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function ie(ae){return x||(x=re()),x.test(ae)}e.containsRTL=ie;const J=/^[\t\n\r\x20-\x7E]*$/;function X(ae){return J.test(ae)}e.isBasicASCII=X,e.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function Y(ae){return e.UNUSUAL_LINE_TERMINATORS.test(ae)}e.containsUnusualLineTerminators=Y;function le(ae){return ae>=11904&&ae<=55215||ae>=63744&&ae<=64255||ae>=65281&&ae<=65374}e.isFullWidthCharacter=le;function de(ae){return ae>=127462&&ae<=127487||ae===8986||ae===8987||ae===9200||ae===9203||ae>=9728&&ae<=10175||ae===11088||ae===11093||ae>=127744&&ae<=128591||ae>=128640&&ae<=128764||ae>=128992&&ae<=129008||ae>=129280&&ae<=129535||ae>=129648&&ae<=129782}e.isEmojiImprecise=de,e.UTF8_BOM_CHARACTER="\uFEFF";function ge(ae){return!!(ae&&ae.length>0&&ae.charCodeAt(0)===65279)}e.startsWithUTF8BOM=ge;function pe(ae,ue=!1){return ae?(ue&&(ae=ae.replace(/\\./g,"")),ae.toLowerCase()!==ae):!1}e.containsUppercaseCharacter=pe;function Q(ae){return ae=ae%(2*26),ae<26?String.fromCharCode(97+ae):String.fromCharCode(65+ae-26)}e.singleLetterHash=Q;function U(ae,ue){return ae===0?ue!==5&&ue!==7:ae===2&&ue===3?!1:ae===4||ae===2||ae===3||ue===4||ue===2||ue===3?!0:!(ae===8&&(ue===8||ue===9||ue===11||ue===12)||(ae===11||ae===9)&&(ue===9||ue===10)||(ae===12||ae===10)&&ue===10||ue===5||ue===13||ue===7||ae===1||ae===13&&ue===14||ae===6&&ue===6)}class Z{static getInstance(){return Z._INSTANCE||(Z._INSTANCE=new Z),Z._INSTANCE}constructor(){this._data=H()}getGraphemeBreakType(ue){if(ue<32)return ue===10?3:ue===13?2:4;if(ue<127)return 0;const ce=this._data,fe=ce.length/3;let ve=1;for(;ve<=fe;)if(uece[3*ve+1])ve=2*ve+1;else return ce[3*ve+2];return 0}}Z._INSTANCE=null;function H(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function q(ae,ue){if(ae===0)return 0;const ce=te(ae,ue);if(ce!==void 0)return ce;const fe=new W(ue,ae);return fe.prevCodePoint(),fe.offset}e.getLeftDeleteOffset=q;function te(ae,ue){const ce=new W(ue,ae);let fe=ce.prevCodePoint();for(;G(fe)||fe===65039||fe===8419;){if(ce.offset===0)return;fe=ce.prevCodePoint()}if(!de(fe))return;let ve=ce.offset;return ve>0&&ce.prevCodePoint()===8205&&(ve=ce.offset),ve}function G(ae){return 127995<=ae&&ae<=127999}e.noBreakWhitespace="\xA0";class ${static getInstance(ue){return y.cache.get(Array.from(ue))}static getLocales(){return y._locales.value}constructor(ue){this.confusableDictionary=ue}isAmbiguous(ue){return this.confusableDictionary.has(ue)}getPrimaryConfusable(ue){return this.confusableDictionary.get(ue)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}e.AmbiguousCharacters=$,y=$,$.ambiguousCharacterData=new k.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}')),$.cache=new L.LRUCachedFunction(ae=>{function ue(Ne){const Oe=new Map;for(let xe=0;xe!Ne.startsWith("_")&&Ne in ve);Ce.length===0&&(Ce=["_default"]);let Se;for(const Ne of Ce){const Oe=ue(ve[Ne]);Se=fe(Se,Oe)}const _e=ue(ve._common),Ie=ce(_e,Se);return new y(Ie)}),$._locales=new k.Lazy(()=>Object.keys(y.ambiguousCharacterData.value).filter(ae=>!ae.startsWith("_")));class oe{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(oe.getRawData())),this._data}static isInvisibleCharacter(ue){return oe.getData().has(ue)}static get codePoints(){return oe.getData()}}e.InvisibleCharacters=oe,oe._data=void 0}),define(ne[73],se([1,0,53,408,11]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fuzzyScoreGracefulAggressive=e.fuzzyScore=e.FuzzyScoreOptions=e.FuzzyScore=e.isPatternInWord=e.createMatches=e.anyScore=e.matchesFuzzy2=e.matchesFuzzy=e.matchesWords=e.matchesCamelCase=e.isUpper=e.matchesSubString=e.matchesContiguousSubString=e.matchesPrefix=e.matchesStrictPrefix=e.or=void 0;function D(...$){return function(oe,ae){for(let ue=0,ce=$.length;ue0?[{start:0,end:oe.length}]:[]:null}function p($,oe){const ae=oe.toLowerCase().indexOf($.toLowerCase());return ae===-1?null:[{start:ae,end:ae+$.length}]}e.matchesContiguousSubString=p;function w($,oe){return v($.toLowerCase(),oe.toLowerCase(),0,0)}e.matchesSubString=w;function v($,oe,ae,ue){if(ae===$.length)return[];if(ue===oe.length)return null;if($[ae]===oe[ue]){let ce=null;return(ce=v($,oe,ae+1,ue+1))?s({start:ue,end:ue+1},ce):null}return v($,oe,ae,ue+1)}function b($){return 97<=$&&$<=122}function a($){return 65<=$&&$<=90}e.isUpper=a;function n($){return 48<=$&&$<=57}function i($){return $===32||$===9||$===10||$===13}const t=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach($=>t.add($.charCodeAt(0)));function o($){return i($)||t.has($)}function g($,oe){return $===oe||o($)&&o(oe)}const m=new Map;function c($){if(m.has($))return m.get($);let oe;const ae=(0,k.getKoreanAltChars)($);return ae&&(oe=ae),m.set($,oe),oe}function d($){return b($)||a($)||n($)}function s($,oe){return oe.length===0?oe=[$]:$.end===oe[0].start?oe[0].start=$.start:oe.unshift($),oe}function l($,oe){for(let ae=oe;ae<$.length;ae++){const ue=$.charCodeAt(ae);if(a(ue)||n(ue)||ae>0&&!d($.charCodeAt(ae-1)))return ae}return $.length}function r($,oe,ae,ue){if(ae===$.length)return[];if(ue===oe.length)return null;if($[ae]!==oe[ue].toLowerCase())return null;{let ce=null,fe=ue+1;for(ce=r($,oe,ae+1,ue+1);!ce&&(fe=l(oe,fe)).6}function f($){const{upperPercent:oe,lowerPercent:ae,alphaPercent:ue,numericPercent:ce}=$;return ae>.2&&oe<.8&&ue>.6&&ce<.2}function C($){let oe=0,ae=0,ue=0,ce=0;for(let fe=0;fe<$.length;fe++)ue=$.charCodeAt(fe),a(ue)&&oe++,b(ue)&&ae++,i(ue)&&ce++;return(oe===0||ae===0)&&ce===0?$.length<=30:oe<=5}function _($,oe){if(!oe||(oe=oe.trim(),oe.length===0)||!C($))return null;oe.length>60&&(oe=oe.substring(0,60));const ae=h(oe);if(!f(ae)){if(!u(ae))return null;oe=oe.toLowerCase()}let ue=null,ce=0;for($=$.toLowerCase();ce0&&o($.charCodeAt(ae-1)))return ae;return $.length}const A=D(e.matchesPrefix,_,p),R=D(e.matchesPrefix,_,w),M=new L.LRUCache(1e4);function N($,oe,ae=!1){if(typeof $!="string"||typeof oe!="string")return null;let ue=M.get($);ue||(ue=new RegExp(y.convertSimple2RegExpPattern($),"i"),M.set($,ue));const ce=ue.exec(oe);return ce?[{start:ce.index,end:ce.index+ce[0].length}]:ae?R($,oe):A($,oe)}e.matchesFuzzy=N;function P($,oe){const ae=U($,$.toLowerCase(),0,oe,oe.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return ae?O(ae):null}e.matchesFuzzy2=P;function F($,oe,ae,ue,ce,fe){const ve=Math.min(13,$.length);for(;ae"u")return[];const oe=[],ae=$[1];for(let ue=$.length-1;ue>1;ue--){const ce=$[ue]+ae,fe=oe[oe.length-1];fe&&fe.end===ce?fe.end=ce+1:oe.push({start:ce,end:ce+1})}return oe}e.createMatches=O;const B=128;function W(){const $=[],oe=[];for(let ae=0;ae<=B;ae++)oe[ae]=0;for(let ae=0;ae<=B;ae++)$.push(oe.slice(0));return $}function V($){const oe=[];for(let ae=0;ae<=$;ae++)oe[ae]=0;return oe}const z=V(2*B),K=V(2*B),j=W(),x=W(),re=W(),ie=!1;function J($,oe,ae,ue,ce){function fe(Ce,Se,_e=" "){for(;Ce.lengthfe(Ce,3)).join("|")} +`;for(let Ce=0;Ce<=ae;Ce++)Ce===0?ve+=" |":ve+=`${oe[Ce-1]}|`,ve+=$[Ce].slice(0,ce+1).map(Se=>fe(Se.toString(),3)).join("|")+` +`;return ve}function X($,oe,ae,ue){$=$.substr(oe),ae=ae.substr(ue),console.log(J(x,$,$.length,ae,ae.length)),console.log(J(re,$,$.length,ae,ae.length)),console.log(J(j,$,$.length,ae,ae.length))}function Y($,oe){if(oe<0||oe>=$.length)return!1;const ae=$.codePointAt(oe);switch(ae){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!y.isEmojiImprecise(ae)}}function le($,oe){if(oe<0||oe>=$.length)return!1;switch($.charCodeAt(oe)){case 32:case 9:return!0;default:return!1}}function de($,oe,ae){return oe[$]!==ae[$]}function ge($,oe,ae,ue,ce,fe,ve=!1){for(;oeB?B:$.length,Se=ue.length>B?B:ue.length;if(ae>=Ce||fe>=Se||Ce-ae>Se-fe||!ge(oe,ae,Ce,ce,fe,Se,!0))return;Z(Ce,Se,ae,fe,oe,ce);let _e=1,Ie=1,Ne=ae,Oe=fe;const xe=[!1];for(_e=1,Ne=ae;Nebe,Xe=st?x[_e][Ie-1]+(j[_e][Ie-1]>0?-5:0):0,ot=Oe>be+1&&j[_e][Ie-1]>0,nt=ot?x[_e][Ie-2]+(j[_e][Ie-2]>0?-5:0):0;if(ot&&(!st||nt>=Xe)&&(!qe||nt>=Ge))x[_e][Ie]=nt,re[_e][Ie]=3,j[_e][Ie]=0;else if(st&&(!qe||Xe>=Ge))x[_e][Ie]=Xe,re[_e][Ie]=2,j[_e][Ie]=0;else if(qe)x[_e][Ie]=Ge,re[_e][Ie]=1,j[_e][Ie]=j[_e-1][Ie-1]+1;else throw new Error("not possible")}}if(ie&&X($,ae,ue,fe),!xe[0]&&!ve.firstMatchCanBeWeak)return;_e--,Ie--;const We=[x[_e][Ie],fe];let ye=0,Me=0;for(;_e>=1;){let be=Ie;do{const Ae=re[_e][be];if(Ae===3)be=be-2;else if(Ae===2)be=be-1;else break}while(be>=1);ye>1&&oe[ae+_e-1]===ce[fe+Ie-1]&&!de(be+fe-1,ue,ce)&&ye+1>j[_e][be]&&(be=Ie),be===Ie?ye++:ye=1,Me||(Me=be),_e--,Ie=be-1,We.push(Ie)}Se===Ce&&ve.boostFullMatch&&(We[0]+=2);const me=Me-Ce;return We[0]-=me,We}e.fuzzyScore=U;function Z($,oe,ae,ue,ce,fe){let ve=$-1,Ce=oe-1;for(;ve>=ae&&Ce>=ue;)ce[ve]===fe[Ce]&&(K[ve]=Ce,ve--),Ce--}function H($,oe,ae,ue,ce,fe,ve,Ce,Se,_e,Ie){if(oe[ae]!==fe[ve])return Number.MIN_SAFE_INTEGER;let Ne=1,Oe=!1;return ve===ae-ue?Ne=$[ae]===ce[ve]?7:5:de(ve,ce,fe)&&(ve===0||!de(ve-1,ce,fe))?(Ne=$[ae]===ce[ve]?7:5,Oe=!0):Y(fe,ve)&&(ve===0||!Y(fe,ve-1))?Ne=5:(Y(fe,ve-1)||le(fe,ve-1))&&(Ne=5,Oe=!0),Ne>1&&ae===ue&&(Ie[0]=!0),Oe||(Oe=de(ve,ce,fe)||Y(fe,ve-1)||le(fe,ve-1)),ae===ue?ve>Se&&(Ne-=Oe?3:5):_e?Ne+=Oe?2:0:Ne+=Oe?0:1,ve+1===Ce&&(Ne-=Oe?3:5),Ne}function q($,oe,ae,ue,ce,fe,ve){return te($,oe,ae,ue,ce,fe,!0,ve)}e.fuzzyScoreGracefulAggressive=q;function te($,oe,ae,ue,ce,fe,ve,Ce){let Se=U($,oe,ae,ue,ce,fe,Ce);if(Se&&!ve)return Se;if($.length>=3){const _e=Math.min(7,$.length-1);for(let Ie=ae+1;Ie<_e;Ie++){const Ne=G($,Ie);if(Ne){const Oe=U(Ne,Ne.toLowerCase(),ae,ue,ce,fe,Ce);Oe&&(Oe[0]-=3,(!Se||Oe[0]>Se[0])&&(Se=Oe))}}}return Se}function G($,oe){if(oe+1>=$.length)return;const ae=$[oe],ue=$[oe+1];if(ae!==ue)return $.slice(0,oe)+ue+ae+$.slice(oe+2)}}),define(ne[114],se([1,0,11]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringSHA1=e.toHexString=e.stringHash=e.numberHash=e.doHash=e.hash=void 0;function k(o){return y(o,0)}e.hash=k;function y(o,g){switch(typeof o){case"object":return o===null?D(349,g):Array.isArray(o)?w(o,g):v(o,g);case"string":return p(o,g);case"boolean":return S(o,g);case"number":return D(o,g);case"undefined":return D(937,g);default:return D(617,g)}}e.doHash=y;function D(o,g){return(g<<5)-g+o|0}e.numberHash=D;function S(o,g){return D(o?433:863,g)}function p(o,g){g=D(149417,g);for(let m=0,c=o.length;my(c,m),g)}function v(o,g){return g=D(181387,g),Object.keys(o).sort().reduce((m,c)=>(m=p(c,m),y(o[c],m)),g)}function b(o,g,m=32){const c=m-g,d=~((1<>>c)>>>0}function a(o,g=0,m=o.byteLength,c=0){for(let d=0;dm.toString(16).padStart(2,"0")).join(""):n((o>>>0).toString(16),g/4)}e.toHexString=i;class t{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(g){const m=g.length;if(m===0)return;const c=this._buff;let d=this._buffLen,s=this._leftoverHighSurrogate,l,r;for(s!==0?(l=s,r=-1,s=0):(l=g.charCodeAt(0),r=0);;){let h=l;if(L.isHighSurrogate(l))if(r+1>>6,g[m++]=128|(c&63)>>>0):c<65536?(g[m++]=224|(c&61440)>>>12,g[m++]=128|(c&4032)>>>6,g[m++]=128|(c&63)>>>0):(g[m++]=240|(c&1835008)>>>18,g[m++]=128|(c&258048)>>>12,g[m++]=128|(c&4032)>>>6,g[m++]=128|(c&63)>>>0),m>=64&&(this._step(),m-=64,this._totalLen+=64,g[0]=g[64],g[1]=g[65],g[2]=g[66]),m}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),i(this._h0)+i(this._h1)+i(this._h2)+i(this._h3)+i(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,a(this._buff,this._buffLen),this._buffLen>56&&(this._step(),a(this._buff));const g=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(g/4294967296),!1),this._buffDV.setUint32(60,g%4294967296,!1),this._step()}_step(){const g=t._bigBlock32,m=this._buffDV;for(let C=0;C<64;C+=4)g.setUint32(C,m.getUint32(C,!1),!1);for(let C=64;C<320;C+=4)g.setUint32(C,b(g.getUint32(C-12,!1)^g.getUint32(C-32,!1)^g.getUint32(C-56,!1)^g.getUint32(C-64,!1),1),!1);let c=this._h0,d=this._h1,s=this._h2,l=this._h3,r=this._h4,h,u,f;for(let C=0;C<80;C++)C<20?(h=d&s|~d&l,u=1518500249):C<40?(h=d^s^l,u=1859775393):C<60?(h=d&s|d&l|s&l,u=2400959708):(h=d^s^l,u=3395469782),f=b(c,5)+h+r+u+g.getUint32(C*4,!1)&4294967295,r=l,l=s,s=b(d,30),d=c,c=f;this._h0=this._h0+c&4294967295,this._h1=this._h1+d&4294967295,this._h2=this._h2+s&4294967295,this._h3=this._h3+l&4294967295,this._h4=this._h4+r&4294967295}}e.StringSHA1=t,t._bigBlock32=new DataView(new ArrayBuffer(320))}),define(ne[176],se([1,0,404,114]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LcsDiff=e.stringDiff=e.StringDiffSequence=void 0;class y{constructor(a){this.source=a}getElements(){const a=this.source,n=new Int32Array(a.length);for(let i=0,t=a.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new L.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(a,n){this.m_originalStart=Math.min(this.m_originalStart,a),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_originalCount++}AddModifiedElement(a,n){this.m_originalStart=Math.min(this.m_originalStart,a),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class v{constructor(a,n,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=a,this._modifiedSequence=n;const[t,o,g]=v._getElements(a),[m,c,d]=v._getElements(n);this._hasStrings=g&&d,this._originalStringElements=t,this._originalElementsOrHash=o,this._modifiedStringElements=m,this._modifiedElementsOrHash=c,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(a){return a.length>0&&typeof a[0]=="string"}static _getElements(a){const n=a.getElements();if(v._isStringArray(n)){const i=new Int32Array(n.length);for(let t=0,o=n.length;t=a&&t>=i&&this.ElementsAreEqual(n,t);)n--,t--;if(a>n||i>t){let l;return i<=t?(S.Assert(a===n+1,"originalStart should only be one more than originalEnd"),l=[new L.DiffChange(a,0,i,t-i+1)]):a<=n?(S.Assert(i===t+1,"modifiedStart should only be one more than modifiedEnd"),l=[new L.DiffChange(a,n-a+1,i,0)]):(S.Assert(a===n+1,"originalStart should only be one more than originalEnd"),S.Assert(i===t+1,"modifiedStart should only be one more than modifiedEnd"),l=[]),l}const g=[0],m=[0],c=this.ComputeRecursionPoint(a,n,i,t,g,m,o),d=g[0],s=m[0];if(c!==null)return c;if(!o[0]){const l=this.ComputeDiffRecursive(a,d,i,s,o);let r=[];return o[0]?r=[new L.DiffChange(d+1,n-(d+1)+1,s+1,t-(s+1)+1)]:r=this.ComputeDiffRecursive(d+1,n,s+1,t,o),this.ConcatenateChanges(l,r)}return[new L.DiffChange(a,n-a+1,i,t-i+1)]}WALKTRACE(a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E){let I=null,T=null,A=new w,R=n,M=i,N=h[0]-C[0]-t,P=-1073741824,F=this.m_forwardHistory.length-1;do{const O=N+a;O===R||O=0&&(d=this.m_forwardHistory[F],a=d[0],R=1,M=d.length-1)}while(--F>=-1);if(I=A.getReverseChanges(),E[0]){let O=h[0]+1,B=C[0]+1;if(I!==null&&I.length>0){const W=I[I.length-1];O=Math.max(O,W.getOriginalEnd()),B=Math.max(B,W.getModifiedEnd())}T=[new L.DiffChange(O,r-O+1,B,f-B+1)]}else{A=new w,R=g,M=m,N=h[0]-C[0]-c,P=1073741824,F=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const O=N+o;O===R||O=s[O+1]?(l=s[O+1]-1,u=l-N-c,l>P&&A.MarkNextChange(),P=l+1,A.AddOriginalElement(l+1,u+1),N=O+1-o):(l=s[O-1],u=l-N-c,l>P&&A.MarkNextChange(),P=l,A.AddModifiedElement(l+1,u+1),N=O-1-o),F>=0&&(s=this.m_reverseHistory[F],o=s[0],R=1,M=s.length-1)}while(--F>=-1);T=A.getChanges()}return this.ConcatenateChanges(I,T)}ComputeRecursionPoint(a,n,i,t,o,g,m){let c=0,d=0,s=0,l=0,r=0,h=0;a--,i--,o[0]=0,g[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const u=n-a+(t-i),f=u+1,C=new Int32Array(f),_=new Int32Array(f),E=t-i,I=n-a,T=a-i,A=n-t,M=(I-E)%2===0;C[E]=a,_[I]=n,m[0]=!1;for(let N=1;N<=u/2+1;N++){let P=0,F=0;s=this.ClipDiagonalBound(E-N,N,E,f),l=this.ClipDiagonalBound(E+N,N,E,f);for(let B=s;B<=l;B+=2){B===s||BP+F&&(P=c,F=d),!M&&Math.abs(B-I)<=N-1&&c>=_[B])return o[0]=c,g[0]=d,W<=_[B]&&1447>0&&N<=1448?this.WALKTRACE(E,s,l,T,I,r,h,A,C,_,c,n,o,d,t,g,M,m):null}const O=(P-a+(F-i)-N)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(P,O))return m[0]=!0,o[0]=P,g[0]=F,O>0&&1447>0&&N<=1448?this.WALKTRACE(E,s,l,T,I,r,h,A,C,_,c,n,o,d,t,g,M,m):(a++,i++,[new L.DiffChange(a,n-a+1,i,t-i+1)]);r=this.ClipDiagonalBound(I-N,N,I,f),h=this.ClipDiagonalBound(I+N,N,I,f);for(let B=r;B<=h;B+=2){B===r||B=_[B+1]?c=_[B+1]-1:c=_[B-1],d=c-(B-I)-A;const W=c;for(;c>a&&d>i&&this.ElementsAreEqual(c,d);)c--,d--;if(_[B]=c,M&&Math.abs(B-E)<=N&&c<=C[B])return o[0]=c,g[0]=d,W>=C[B]&&1447>0&&N<=1448?this.WALKTRACE(E,s,l,T,I,r,h,A,C,_,c,n,o,d,t,g,M,m):null}if(N<=1447){let B=new Int32Array(l-s+2);B[0]=E-s+1,p.Copy2(C,s,B,1,l-s+1),this.m_forwardHistory.push(B),B=new Int32Array(h-r+2),B[0]=I-r+1,p.Copy2(_,r,B,1,h-r+1),this.m_reverseHistory.push(B)}}return this.WALKTRACE(E,s,l,T,I,r,h,A,C,_,c,n,o,d,t,g,M,m)}PrettifyChanges(a){for(let n=0;n0,m=i.modifiedLength>0;for(;i.originalStart+i.originalLength=0;n--){const i=a[n];let t=0,o=0;if(n>0){const l=a[n-1];t=l.originalStart+l.originalLength,o=l.modifiedStart+l.modifiedLength}const g=i.originalLength>0,m=i.modifiedLength>0;let c=0,d=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let l=1;;l++){const r=i.originalStart-l,h=i.modifiedStart-l;if(rd&&(d=f,c=l)}i.originalStart-=c,i.modifiedStart-=c;const s=[null];if(n>0&&this.ChangesOverlap(a[n-1],a[n],s)){a[n-1]=s[0],a.splice(n,1),n++;continue}}if(this._hasStrings)for(let n=1,i=a.length;n0&&h>c&&(c=h,d=l,s=r)}return c>0?[d,s]:null}_contiguousSequenceScore(a,n,i){let t=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[a])}_OriginalRegionIsBoundary(a,n){if(this._OriginalIsBoundary(a)||this._OriginalIsBoundary(a-1))return!0;if(n>0){const i=a+n;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(a){return a<=0||a>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[a])}_ModifiedRegionIsBoundary(a,n){if(this._ModifiedIsBoundary(a)||this._ModifiedIsBoundary(a-1))return!0;if(n>0){const i=a+n;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(a,n,i,t){const o=this._OriginalRegionIsBoundary(a,n)?1:0,g=this._ModifiedRegionIsBoundary(i,t)?1:0;return o+g}ConcatenateChanges(a,n){const i=[];if(a.length===0||n.length===0)return n.length>0?n:a;if(this.ChangesOverlap(a[a.length-1],n[0],i)){const t=new Array(a.length+n.length-1);return p.Copy(a,0,t,0,a.length-1),t[a.length-1]=i[0],p.Copy(n,1,t,a.length,n.length-1),t}else{const t=new Array(a.length+n.length);return p.Copy(a,0,t,0,a.length),p.Copy(n,0,t,a.length,n.length),t}}ChangesOverlap(a,n,i){if(S.Assert(a.originalStart<=n.originalStart,"Left change is not less than or equal to right change"),S.Assert(a.modifiedStart<=n.modifiedStart,"Left change is not less than or equal to right change"),a.originalStart+a.originalLength>=n.originalStart||a.modifiedStart+a.modifiedLength>=n.modifiedStart){const t=a.originalStart;let o=a.originalLength;const g=a.modifiedStart;let m=a.modifiedLength;return a.originalStart+a.originalLength>=n.originalStart&&(o=n.originalStart+n.originalLength-a.originalStart),a.modifiedStart+a.modifiedLength>=n.modifiedStart&&(m=n.modifiedStart+n.modifiedLength-a.modifiedStart),i[0]=new L.DiffChange(t,o,g,m),!0}else return i[0]=null,!1}ClipDiagonalBound(a,n,i,t){if(a>=0&&a0?p[0].toUpperCase()+p.substr(1):S[0][0].toUpperCase()!==S[0][0]&&p.length>0?p[0].toLowerCase()+p.substr(1):p}else return p}e.buildReplaceStringWithCasePreserved=k;function y(S,p,w){return S[0].indexOf(w)!==-1&&p.indexOf(w)!==-1&&S[0].split(w).length===p.split(w).length}function D(S,p,w){const v=p.split(w),b=S[0].split(w);let a="";return v.forEach((n,i)=>{a+=k([b[i]],n)+w}),a.slice(0,-1)}}),define(ne[103],se([1,0,11]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var k;(function(y){y[y.Ignore=0]="Ignore",y[y.Info=1]="Info",y[y.Warning=2]="Warning",y[y.Error=3]="Error"})(k||(k={})),function(y){const D="error",S="warning",p="warn",w="info",v="ignore";function b(n){return n?L.equalsIgnoreCase(D,n)?y.Error:L.equalsIgnoreCase(S,n)||L.equalsIgnoreCase(p,n)?y.Warning:L.equalsIgnoreCase(w,n)?y.Info:y.Ignore:y.Ignore}y.fromValue=b;function a(n){switch(n){case y.Error:return D;case y.Warning:return S;case y.Info:return w;default:return v}}y.toString=a}(k||(k={})),e.default=k}),define(ne[279],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MicrotaskDelay=void 0,e.MicrotaskDelay=Symbol("MicrotaskDelay")}),define(ne[205],se([1,0,11]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TernarySearchTree=e.UriIterator=e.PathIterator=e.ConfigKeysIterator=e.StringIterator=void 0;class k{constructor(){this._value="",this._pos=0}reset(b){return this._value=b,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;a--,this._valueLen--){const n=this._value.charCodeAt(a);if(!(n===47||this._splitOnBackslash&&n===92))break}return this.next()}hasNext(){return this._to!1,a=()=>!1){return new w(new S(b,a))}static forStrings(){return new w(new k)}static forConfigKeys(){return new w(new y)}constructor(b){this._iter=b}clear(){this._root=void 0}set(b,a){const n=this._iter.reset(b);let i;this._root||(this._root=new p,this._root.segment=n.value());const t=[];for(i=this._root;;){const g=n.cmp(i.segment);if(g>0)i.left||(i.left=new p,i.left.segment=n.value()),t.push([-1,i]),i=i.left;else if(g<0)i.right||(i.right=new p,i.right.segment=n.value()),t.push([1,i]),i=i.right;else if(n.hasNext())n.next(),i.mid||(i.mid=new p,i.mid.segment=n.value()),t.push([0,i]),i=i.mid;else break}const o=i.value;i.value=a,i.key=b;for(let g=t.length-1;g>=0;g--){const m=t[g][1];m.updateHeight();const c=m.balanceFactor();if(c<-1||c>1){const d=t[g][0],s=t[g+1][0];if(d===1&&s===1)t[g][1]=m.rotateLeft();else if(d===-1&&s===-1)t[g][1]=m.rotateRight();else if(d===1&&s===-1)m.right=t[g+1][1]=t[g+1][1].rotateRight(),t[g][1]=m.rotateLeft();else if(d===-1&&s===1)m.left=t[g+1][1]=t[g+1][1].rotateLeft(),t[g][1]=m.rotateRight();else throw new Error;if(g>0)switch(t[g-1][0]){case-1:t[g-1][1].left=t[g][1];break;case 1:t[g-1][1].right=t[g][1];break;case 0:t[g-1][1].mid=t[g][1];break}else this._root=t[0][1]}}return o}get(b){var a;return(a=this._getNode(b))===null||a===void 0?void 0:a.value}_getNode(b){const a=this._iter.reset(b);let n=this._root;for(;n;){const i=a.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else if(a.hasNext())a.next(),n=n.mid;else break}return n}has(b){const a=this._getNode(b);return!(a?.value===void 0&&a?.mid===void 0)}delete(b){return this._delete(b,!1)}deleteSuperstr(b){return this._delete(b,!0)}_delete(b,a){var n;const i=this._iter.reset(b),t=[];let o=this._root;for(;o;){const g=i.cmp(o.segment);if(g>0)t.push([-1,o]),o=o.left;else if(g<0)t.push([1,o]),o=o.right;else if(i.hasNext())i.next(),t.push([0,o]),o=o.mid;else break}if(o){if(a?(o.left=void 0,o.mid=void 0,o.right=void 0,o.height=1):(o.key=void 0,o.value=void 0),!o.mid&&!o.value)if(o.left&&o.right){const g=this._min(o.right);if(g.key){const{key:m,value:c,segment:d}=g;this._delete(g.key,!1),o.key=m,o.value=c,o.segment=d}}else{const g=(n=o.left)!==null&&n!==void 0?n:o.right;if(t.length>0){const[m,c]=t[t.length-1];switch(m){case-1:c.left=g;break;case 0:c.mid=g;break;case 1:c.right=g;break}}else this._root=g}for(let g=t.length-1;g>=0;g--){const m=t[g][1];m.updateHeight();const c=m.balanceFactor();if(c>1?(m.right.balanceFactor()>=0||(m.right=m.right.rotateRight()),t[g][1]=m.rotateLeft()):c<-1&&(m.left.balanceFactor()<=0||(m.left=m.left.rotateLeft()),t[g][1]=m.rotateRight()),g>0)switch(t[g-1][0]){case-1:t[g-1][1].left=t[g][1];break;case 1:t[g-1][1].right=t[g][1];break;case 0:t[g-1][1].mid=t[g][1];break}else this._root=t[0][1]}}}_min(b){for(;b.left;)b=b.left;return b}findSubstr(b){const a=this._iter.reset(b);let n=this._root,i;for(;n;){const t=a.cmp(n.segment);if(t>0)n=n.left;else if(t<0)n=n.right;else if(a.hasNext())a.next(),i=n.value||i,n=n.mid;else break}return n&&n.value||i}findSuperstr(b){return this._findSuperstrOrElement(b,!1)}_findSuperstrOrElement(b,a){const n=this._iter.reset(b);let i=this._root;for(;i;){const t=n.cmp(i.segment);if(t>0)i=i.left;else if(t<0)i=i.right;else if(n.hasNext())n.next(),i=i.mid;else return i.mid?this._entries(i.mid):a?i.value:void 0}}forEach(b){for(const[a,n]of this)b(n,a)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(b){const a=[];return this._dfsEntries(b,a),a[Symbol.iterator]()}_dfsEntries(b,a){b&&(b.left&&this._dfsEntries(b.left,a),b.value&&a.push([b.key,b.value]),b.mid&&this._dfsEntries(b.mid,a),b.right&&this._dfsEntries(b.right,a))}}e.TernarySearchTree=w}),define(ne[414],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeTfIdfScores=e.TfIdfCalculator=void 0;function L(D){var S;const p=new Map;for(const w of D)p.set(w,((S=p.get(w))!==null&&S!==void 0?S:0)+1);return p}class k{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(S,p){const w=this.computeEmbedding(S),v=new Map,b=[];for(const[a,n]of this.documents){if(p.isCancellationRequested)return[];for(const i of n.chunks){const t=this.computeSimilarityScore(i,w,v);t>0&&b.push({key:a,score:t})}}return b}static termFrequencies(S){return L(k.splitTerms(S))}static*splitTerms(S){const p=w=>w.toLowerCase();for(const[w]of S.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield p(w);const v=w.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(v.length>1)for(const b of v)b.length>2&&/\p{Letter}{3,}/gu.test(b)&&(yield p(b))}}updateDocuments(S){var p;for(const{key:w}of S)this.deleteDocument(w);for(const w of S){const v=[];for(const b of w.textChunks){const a=k.termFrequencies(b);for(const n of a.keys())this.chunkOccurrences.set(n,((p=this.chunkOccurrences.get(n))!==null&&p!==void 0?p:0)+1);v.push({text:b,tf:a})}this.chunkCount+=v.length,this.documents.set(w.key,{chunks:v})}return this}deleteDocument(S){const p=this.documents.get(S);if(p){this.documents.delete(S),this.chunkCount-=p.chunks.length;for(const w of p.chunks)for(const v of w.tf.keys()){const b=this.chunkOccurrences.get(v);if(typeof b=="number"){const a=b-1;a<=0?this.chunkOccurrences.delete(v):this.chunkOccurrences.set(v,a)}}}}computeSimilarityScore(S,p,w){let v=0;for(const[b,a]of Object.entries(p)){const n=S.tf.get(b);if(!n)continue;let i=w.get(b);typeof i!="number"&&(i=this.computeIdf(b),w.set(b,i));const t=n*i;v+=t*a}return v}computeEmbedding(S){const p=k.termFrequencies(S);return this.computeTfidf(p)}computeIdf(S){var p;const w=(p=this.chunkOccurrences.get(S))!==null&&p!==void 0?p:0;return w>0?Math.log((this.chunkCount+1)/w):0}computeTfidf(S){const p=Object.create(null);for(const[w,v]of S){const b=this.computeIdf(w);b>0&&(p[w]=v*b)}return p}}e.TfIdfCalculator=k;function y(D){var S,p;const w=D.slice(0);w.sort((b,a)=>a.score-b.score);const v=(p=(S=w[0])===null||S===void 0?void 0:S.score)!==null&&p!==void 0?p:0;if(v>0)for(const b of w)b.score/=v;return w}e.normalizeTfIdfScores=y}),define(ne[20],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.validateConstraint=e.validateConstraints=e.isFunction=e.assertIsDefined=e.assertType=e.isUndefinedOrNull=e.isDefined=e.isUndefined=e.isBoolean=e.isIterable=e.isNumber=e.isTypedArray=e.isObject=e.isString=void 0;function L(g){return typeof g=="string"}e.isString=L;function k(g){return typeof g=="object"&&g!==null&&!Array.isArray(g)&&!(g instanceof RegExp)&&!(g instanceof Date)}e.isObject=k;function y(g){const m=Object.getPrototypeOf(Uint8Array);return typeof g=="object"&&g instanceof m}e.isTypedArray=y;function D(g){return typeof g=="number"&&!isNaN(g)}e.isNumber=D;function S(g){return!!g&&typeof g[Symbol.iterator]=="function"}e.isIterable=S;function p(g){return g===!0||g===!1}e.isBoolean=p;function w(g){return typeof g>"u"}e.isUndefined=w;function v(g){return!b(g)}e.isDefined=v;function b(g){return w(g)||g===null}e.isUndefinedOrNull=b;function a(g,m){if(!g)throw new Error(m?`Unexpected type, expected '${m}'`:"Unexpected type")}e.assertType=a;function n(g){if(b(g))throw new Error("Assertion Failed: argument is undefined or null");return g}e.assertIsDefined=n;function i(g){return typeof g=="function"}e.isFunction=i;function t(g,m){const c=Math.min(g.length,m.length);for(let d=0;d{t[o]=g&&typeof g=="object"?k(g):g}),t}e.deepClone=k;function y(i){if(!i||typeof i!="object")return i;const t=[i];for(;t.length>0;){const o=t.shift();Object.freeze(o);for(const g in o)if(D.call(o,g)){const m=o[g];typeof m=="object"&&!Object.isFrozen(m)&&!(0,L.isTypedArray)(m)&&t.push(m)}}return i}e.deepFreeze=y;const D=Object.prototype.hasOwnProperty;function S(i,t){return p(i,t,new Set)}e.cloneAndChange=S;function p(i,t,o){if((0,L.isUndefinedOrNull)(i))return i;const g=t(i);if(typeof g<"u")return g;if(Array.isArray(i)){const m=[];for(const c of i)m.push(p(c,t,o));return m}if((0,L.isObject)(i)){if(o.has(i))throw new Error("Cannot clone recursive data-structure");o.add(i);const m={};for(const c in i)D.call(i,c)&&(m[c]=p(i[c],t,o));return o.delete(i),m}return i}function w(i,t,o=!0){return(0,L.isObject)(i)?((0,L.isObject)(t)&&Object.keys(t).forEach(g=>{g in i?o&&((0,L.isObject)(i[g])&&(0,L.isObject)(t[g])?w(i[g],t[g],o):i[g]=t[g]):i[g]=t[g]}),i):t}e.mixin=w;function v(i,t){if(i===t)return!0;if(i==null||t===null||t===void 0||typeof i!=typeof t||typeof i!="object"||Array.isArray(i)!==Array.isArray(t))return!1;let o,g;if(Array.isArray(i)){if(i.length!==t.length)return!1;for(o=0;ofunction(){const c=Array.prototype.slice.call(arguments,0);return t(m,c)},g={};for(const m of i)g[m]=o(m);return g}e.createProxyObject=n}),define(ne[29],se([1,0,27]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ThemeIcon=e.ThemeColor=void 0;var k;(function(D){function S(p){return p&&typeof p=="object"&&typeof p.id=="string"}D.isThemeColor=S})(k||(e.ThemeColor=k={}));var y;(function(D){D.iconNameSegment="[A-Za-z0-9]+",D.iconNameExpression="[A-Za-z0-9-]+",D.iconModifierExpression="~[A-Za-z]+",D.iconNameCharacter="[A-Za-z0-9~-]";const S=new RegExp(`^(${D.iconNameExpression})(${D.iconModifierExpression})?$`);function p(m){const c=S.exec(m.id);if(!c)return p(L.Codicon.error);const[,d,s]=c,l=["codicon","codicon-"+d];return s&&l.push("codicon-modifier-"+s.substring(1)),l}D.asClassNameArray=p;function w(m){return p(m).join(" ")}D.asClassName=w;function v(m){return"."+p(m).join(".")}D.asCSSSelector=v;function b(m){return m&&typeof m=="object"&&typeof m.id=="string"&&(typeof m.color>"u"||k.isThemeColor(m.color))}D.isThemeIcon=b;const a=new RegExp(`^\\$\\((${D.iconNameExpression}(?:${D.iconModifierExpression})?)\\)$`);function n(m){const c=a.exec(m);if(!c)return;const[,d]=c;return{id:d}}D.fromString=n;function i(m){return{id:m}}D.fromId=i;function t(m,c){let d=m.id;const s=d.lastIndexOf("~");return s!==-1&&(d=d.substring(0,s)),c&&(d=`${d}~${c}`),{id:d}}D.modify=t;function o(m){const c=m.id.lastIndexOf("~");if(c!==-1)return m.id.substring(c+1)}D.getModifier=o;function g(m,c){var d,s;return m.id===c.id&&((d=m.color)===null||d===void 0?void 0:d.id)===((s=c.color)===null||s===void 0?void 0:s.id)}D.isEqual=g})(y||(e.ThemeIcon=y={}))}),define(ne[130],se([1,0,73,11,29]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.matchesFuzzyIconAware=e.parseLabelWithIcons=e.getCodiconAriaLabel=e.stripIcons=e.markdownEscapeEscapedIcons=e.escapeIcons=void 0;const D="$(",S=new RegExp(`\\$\\(${y.ThemeIcon.iconNameExpression}(?:${y.ThemeIcon.iconModifierExpression})?\\)`,"g"),p=new RegExp(`(\\\\)?${S.source}`,"g");function w(m){return m.replace(p,(c,d)=>d?c:`\\${c}`)}e.escapeIcons=w;const v=new RegExp(`\\\\${S.source}`,"g");function b(m){return m.replace(v,c=>`\\${c}`)}e.markdownEscapeEscapedIcons=b;const a=new RegExp(`(\\s)?(\\\\)?${S.source}(\\s)?`,"g");function n(m){return m.indexOf(D)===-1?m:m.replace(a,(c,d,s,l)=>s?c:d||l||"")}e.stripIcons=n;function i(m){return m?m.replace(/\$\((.*?)\)/g,(c,d)=>` ${d} `).trim():""}e.getCodiconAriaLabel=i;const t=new RegExp(`\\$\\(${y.ThemeIcon.iconNameCharacter}+\\)`,"g");function o(m){t.lastIndex=0;let c="";const d=[];let s=0;for(;;){const l=t.lastIndex,r=t.exec(m),h=m.substring(l,r?.index);if(h.length>0){c+=h;for(let u=0;u255?255:y|0}e.toUint8=L;function k(y){return y<0?0:y>4294967295?4294967295:y|0}e.toUint32=k}),define(ne[178],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.generateUuid=void 0,e.generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let L;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?L=crypto.getRandomValues.bind(crypto):L=function(D){for(let S=0;Sa,asFile:()=>{},value:typeof a=="string"?a:void 0}}e.createStringDataTransferItem=D;function S(a,n,i){const t={id:(0,y.generateUuid)(),name:a,uri:n,data:i};return{asString:async()=>"",asFile:()=>t,value:void 0}}e.createFileDataTransferItem=S;class p{constructor(){this._entries=new Map}get size(){let n=0;for(const i of this._entries)n++;return n}has(n){return this._entries.has(this.toKey(n))}matches(n){const i=[...this._entries.keys()];return k.Iterable.some(this,([t,o])=>o.asFile())&&i.push("files"),b(w(n),i)}get(n){var i;return(i=this._entries.get(this.toKey(n)))===null||i===void 0?void 0:i[0]}append(n,i){const t=this._entries.get(n);t?t.push(i):this._entries.set(this.toKey(n),[i])}replace(n,i){this._entries.set(this.toKey(n),[i])}delete(n){this._entries.delete(this.toKey(n))}*[Symbol.iterator](){for(const[n,i]of this._entries)for(const t of i)yield[n,t]}toKey(n){return w(n)}}e.VSDataTransfer=p;function w(a){return a.toLowerCase()}function v(a,n){return b(w(a),n.map(w))}e.matchesMimeType=v;function b(a,n){if(a==="*/*")return n.length>0;if(n.includes(a))return!0;const i=a.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!i)return!1;const[t,o,g]=i;return g==="*"?n.some(m=>m.startsWith(o+"/")):!1}e.UriList=Object.freeze({create:a=>(0,L.distinct)(a.map(n=>n.toString())).join(`\r +`),split:a=>a.split(`\r +`),parse:a=>e.UriList.split(a).filter(n=>!n.startsWith("#"))})}),define(ne[280],se([10]),{}),define(ne[415],se([10]),{}),define(ne[416],se([10]),{}),define(ne[417],se([10]),{}),define(ne[418],se([10]),{}),define(ne[180],se([1,0,417,418]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[419],se([10]),{}),define(ne[420],se([10]),{}),define(ne[281],se([10]),{}),define(ne[282],se([10]),{}),define(ne[421],se([10]),{}),define(ne[422],se([10]),{}),define(ne[423],se([10]),{}),define(ne[424],se([10]),{}),define(ne[283],se([10]),{}),define(ne[425],se([10]),{}),define(ne[206],se([1,0,425]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME=void 0,e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME="monaco-mouse-cursor-text"}),define(ne[426],se([10]),{}),define(ne[427],se([10]),{}),define(ne[428],se([10]),{}),define(ne[429],se([10]),{}),define(ne[430],se([10]),{}),define(ne[431],se([10]),{}),define(ne[432],se([10]),{}),define(ne[433],se([10]),{}),define(ne[434],se([10]),{}),define(ne[435],se([10]),{}),define(ne[436],se([10]),{}),define(ne[437],se([10]),{}),define(ne[438],se([10]),{}),define(ne[439],se([10]),{}),define(ne[440],se([10]),{}),define(ne[441],se([10]),{}),define(ne[442],se([10]),{}),define(ne[443],se([10]),{}),define(ne[444],se([10]),{}),define(ne[445],se([10]),{}),define(ne[446],se([10]),{}),define(ne[447],se([10]),{}),define(ne[448],se([10]),{}),define(ne[449],se([10]),{}),define(ne[450],se([10]),{}),define(ne[451],se([10]),{}),define(ne[452],se([10]),{}),define(ne[453],se([10]),{}),define(ne[454],se([10]),{}),define(ne[455],se([10]),{}),define(ne[456],se([10]),{}),define(ne[457],se([10]),{}),define(ne[458],se([10]),{}),define(ne[459],se([10]),{}),define(ne[460],se([10]),{}),define(ne[461],se([10]),{}),define(ne[462],se([10]),{}),define(ne[463],se([10]),{}),define(ne[207],se([10]),{}),define(ne[464],se([10]),{}),define(ne[465],se([10]),{}),define(ne[466],se([10]),{}),define(ne[467],se([10]),{}),define(ne[468],se([10]),{}),define(ne[469],se([10]),{}),define(ne[470],se([10]),{}),define(ne[471],se([10]),{}),define(ne[472],se([10]),{}),define(ne[473],se([10]),{}),define(ne[474],se([10]),{}),define(ne[475],se([10]),{}),define(ne[476],se([10]),{}),define(ne[477],se([10]),{}),define(ne[478],se([10]),{}),define(ne[479],se([10]),{}),define(ne[480],se([10]),{}),define(ne[481],se([10]),{}),define(ne[482],se([10]),{}),define(ne[483],se([10]),{}),define(ne[484],se([10]),{}),define(ne[485],se([10]),{}),define(ne[486],se([10]),{}),define(ne[487],se([10]),{}),define(ne[488],se([10]),{}),define(ne[489],se([10]),{}),define(ne[490],se([10]),{}),define(ne[491],se([10]),{}),define(ne[492],se([10]),{}),define(ne[493],se([10]),{}),define(ne[494],se([10]),{}),define(ne[495],se([10]),{}),define(ne[496],se([10]),{}),define(ne[284],se([10]),{}),define(ne[497],se([10]),{}),define(ne[498],se([10]),{}),define(ne[181],se([10]),{}),define(ne[499],se([10]),{}),define(ne[74],se([1,0,41]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.applyFontInfo=void 0;function k(y,D){y instanceof L.FastDomNode?(y.setFontFamily(D.getMassagedFontFamily()),y.setFontWeight(D.fontWeight),y.setFontSize(D.fontSize),y.setFontFeatureSettings(D.fontFeatureSettings),y.setFontVariationSettings(D.fontVariationSettings),y.setLineHeight(D.lineHeight),y.setLetterSpacing(D.letterSpacing)):(y.style.fontFamily=D.getMassagedFontFamily(),y.style.fontWeight=D.fontWeight,y.style.fontSize=D.fontSize+"px",y.style.fontFeatureSettings=D.fontFeatureSettings,y.style.fontVariationSettings=D.fontVariationSettings,y.style.lineHeight=D.lineHeight+"px",y.style.letterSpacing=D.letterSpacing+"px")}e.applyFontInfo=k}),define(ne[500],se([1,0,74]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.readCharWidths=e.CharWidthRequest=void 0;class k{constructor(p,w){this.chr=p,this.type=w,this.width=0}fulfill(p){this.width=p}}e.CharWidthRequest=k;class y{constructor(p,w){this._bareFontInfo=p,this._requests=w,this._container=null,this._testElements=null}read(p){this._createDomElements(),p.document.body.appendChild(this._container),this._readFromDomElements(),p.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const p=document.createElement("div");p.style.position="absolute",p.style.top="-50000px",p.style.width="50000px";const w=document.createElement("div");(0,L.applyFontInfo)(w,this._bareFontInfo),p.appendChild(w);const v=document.createElement("div");(0,L.applyFontInfo)(v,this._bareFontInfo),v.style.fontWeight="bold",p.appendChild(v);const b=document.createElement("div");(0,L.applyFontInfo)(b,this._bareFontInfo),b.style.fontStyle="italic",p.appendChild(b);const a=[];for(const n of this._requests){let i;n.type===0&&(i=w),n.type===2&&(i=v),n.type===1&&(i=b),i.appendChild(document.createElement("br"));const t=document.createElement("span");y._render(t,n),i.appendChild(t),a.push(t)}this._container=p,this._testElements=a}static _render(p,w){if(w.chr===" "){let v="\xA0";for(let b=0;b<8;b++)v+=v;p.innerText=v}else{let v=w.chr;for(let b=0;b<8;b++)v+=v;p.textContent=v}}_readFromDomElements(){for(let p=0,w=this._requests.length;pL._read(w,n),a=(n,i)=>L._write(w,n,i);this.migrate(v,b,a)}static _read(w,v){if(typeof w>"u")return;const b=v.indexOf(".");if(b>=0){const a=v.substring(0,b);return this._read(w[a],v.substring(b+1))}return w[v]}static _write(w,v,b){const a=v.indexOf(".");if(a>=0){const n=v.substring(0,a);w[n]=w[n]||{},this._write(w[n],v.substring(a+1),b);return}w[v]=b}}e.EditorSettingMigration=L,L.items=[];function k(p,w){L.items.push(new L(p,w))}function y(p,w){k(p,(v,b,a)=>{if(typeof v<"u"){for(const[n,i]of w)if(v===n){a(p,i);return}}})}function D(p){L.items.forEach(w=>w.apply(p))}e.migrateOptions=D,y("wordWrap",[[!0,"on"],[!1,"off"]]),y("lineNumbers",[[!0,"on"],[!1,"off"]]),y("cursorBlinking",[["visible","solid"]]),y("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),y("renderLineHighlight",[[!0,"line"],[!1,"none"]]),y("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),y("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),y("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("autoIndent",[[!1,"advanced"],[!0,"full"]]),y("matchBrackets",[[!0,"always"],[!1,"never"]]),y("renderFinalNewline",[[!0,"on"],[!1,"off"]]),y("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),y("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),y("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),k("autoClosingBrackets",(p,w,v)=>{p===!1&&(v("autoClosingBrackets","never"),typeof w("autoClosingQuotes")>"u"&&v("autoClosingQuotes","never"),typeof w("autoSurround")>"u"&&v("autoSurround","never"))}),k("renderIndentGuides",(p,w,v)=>{typeof p<"u"&&(v("renderIndentGuides",void 0),typeof w("guides.indentation")>"u"&&v("guides.indentation",!!p))}),k("highlightActiveIndentGuide",(p,w,v)=>{typeof p<"u"&&(v("highlightActiveIndentGuide",void 0),typeof w("guides.highlightActiveIndentation")>"u"&&v("guides.highlightActiveIndentation",!!p))});const S={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};k("suggest.filteredTypes",(p,w,v)=>{if(p&&typeof p=="object"){for(const b of Object.entries(S))p[b[0]]===!1&&typeof w(`suggest.${b[1]}`)>"u"&&v(`suggest.${b[1]}`,!1);v("suggest.filteredTypes",void 0)}}),k("quickSuggestions",(p,w,v)=>{if(typeof p=="boolean"){const b=p?"on":"off";v("quickSuggestions",{comments:b,strings:b,other:b})}}),k("experimental.stickyScroll.enabled",(p,w,v)=>{typeof p=="boolean"&&(v("experimental.stickyScroll.enabled",void 0),typeof w("stickyScroll.enabled")>"u"&&v("stickyScroll.enabled",p))}),k("experimental.stickyScroll.maxLineCount",(p,w,v)=>{typeof p=="number"&&(v("experimental.stickyScroll.maxLineCount",void 0),typeof w("stickyScroll.maxLineCount")>"u"&&v("stickyScroll.maxLineCount",p))}),k("codeActionsOnSave",(p,w,v)=>{if(p&&typeof p=="object"){let b=!1;const a={};for(const n of Object.entries(p))typeof n[1]=="boolean"?(b=!0,a[n[0]]=n[1]?"explicit":"never"):a[n[0]]=n[1];b&&v("codeActionsOnSave",a)}}),k("codeActionWidget.includeNearbyQuickfixes",(p,w,v)=>{typeof p=="boolean"&&(v("codeActionWidget.includeNearbyQuickfixes",void 0),typeof w("codeActionWidget.includeNearbyQuickFixes")>"u"&&v("codeActionWidget.includeNearbyQuickFixes",p))}),k("lightbulb.enabled",(p,w,v)=>{typeof p=="boolean"&&v("lightbulb.enabled",p?void 0:"off")})}),define(ne[208],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TabFocus=void 0;class k{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new L.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(D){this._tabFocus=D,this._onDidChangeTabFocus.fire(this._tabFocus)}}e.TabFocus=new k}),define(ne[131],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StableEditorScrollState=void 0;class L{static capture(y){if(y.getScrollTop()===0||y.hasPendingScrollAnimation())return new L(y.getScrollTop(),y.getContentHeight(),null,0,null);let D=null,S=0;const p=y.getVisibleRanges();if(p.length>0){D=p[0].getStartPosition();const w=y.getTopForPosition(D.lineNumber,D.column);S=y.getScrollTop()-w}return new L(y.getScrollTop(),y.getContentHeight(),D,S,y.getPosition())}constructor(y,D,S,p,w){this._initialScrollTop=y,this._initialContentHeight=D,this._visiblePosition=S,this._visiblePositionScrollDelta=p,this._cursorPosition=w}restore(y){if(!(this._initialContentHeight===y.getContentHeight()&&this._initialScrollTop===y.getScrollTop())&&this._visiblePosition){const D=y.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);y.setScrollTop(D+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(y){if(this._initialContentHeight===y.getContentHeight()&&this._initialScrollTop===y.getScrollTop())return;const D=y.getPosition();if(!this._cursorPosition||!D)return;const S=y.getTopForLineNumber(D.lineNumber)-y.getTopForLineNumber(this._cursorPosition.lineNumber);y.setScrollTop(y.getScrollTop()+S)}}e.StableEditorScrollState=L}),define(ne[152],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleRanges=e.HorizontalPosition=e.FloatHorizontalRange=e.HorizontalRange=e.LineVisibleRanges=e.RenderingContext=e.RestrictedRenderingContext=void 0;class L{constructor(b,a){this._restrictedRenderingContextBrand=void 0,this._viewLayout=b,this.viewportData=a,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const n=this._viewLayout.getCurrentViewport();this.scrollTop=n.top,this.scrollLeft=n.left,this.viewportWidth=n.width,this.viewportHeight=n.height}getScrolledTopFromAbsoluteTop(b){return b-this.scrollTop}getVerticalOffsetForLineNumber(b,a){return this._viewLayout.getVerticalOffsetForLineNumber(b,a)}getVerticalOffsetAfterLineNumber(b,a){return this._viewLayout.getVerticalOffsetAfterLineNumber(b,a)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}e.RestrictedRenderingContext=L;class k extends L{constructor(b,a,n){super(b,a),this._renderingContextBrand=void 0,this._viewLines=n}linesVisibleRangesForRange(b,a){return this._viewLines.linesVisibleRangesForRange(b,a)}visibleRangeForPosition(b){return this._viewLines.visibleRangeForPosition(b)}}e.RenderingContext=k;class y{constructor(b,a,n,i){this.outsideRenderedLine=b,this.lineNumber=a,this.ranges=n,this.continuesOnNextLine=i}}e.LineVisibleRanges=y;class D{static from(b){const a=new Array(b.length);for(let n=0,i=b.length;n=a.left?w.width=Math.max(w.width,a.left+a.width-w.left):(S[p++]=w,w=a)}return S[p++]=w,S}static _createHorizontalRangesFromClientRects(D,S,p){if(!D||D.length===0)return null;const w=[];for(let v=0,b=D.length;vn)return null;if(S=Math.min(n,Math.max(0,S)),w=Math.min(n,Math.max(0,w)),S===w&&p===v&&p===0&&!D.children[S].firstChild){const g=D.children[S].getClientRects();return b.markDidDomLayout(),this._createHorizontalRangesFromClientRects(g,b.clientRectDeltaLeft,b.clientRectScale)}S!==w&&w>0&&v===0&&(w--,v=1073741824);let i=D.children[S].firstChild,t=D.children[w].firstChild;if((!i||!t)&&(!i&&p===0&&S>0&&(i=D.children[S-1].firstChild,p=1073741824),!t&&v===0&&w>0&&(t=D.children[w-1].firstChild,v=1073741824)),!i||!t)return null;p=Math.min(i.textContent.length,Math.max(0,p)),v=Math.min(t.textContent.length,Math.max(0,v));const o=this._readClientRects(i,p,t,v,b.endNode);return b.markDidDomLayout(),this._createHorizontalRangesFromClientRects(o,b.clientRectDeltaLeft,b.clientRectScale)}}e.RangeUtil=k}),define(ne[285],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCharIndex=e.allCharCodes=void 0,e.allCharCodes=(()=>{const k=[];for(let y=32;y<=126;y++)k.push(y);return k.push(65533),k})();const L=(k,y)=>(k-=32,k<0||k>96?y<=2?(k+96)%96:95:k);e.getCharIndex=L}),define(ne[504],se([1,0,285,177]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRenderer=void 0;class y{constructor(S,p){this.scale=p,this._minimapCharRendererBrand=void 0,this.charDataNormal=y.soften(S,12/15),this.charDataLight=y.soften(S,50/60)}static soften(S,p){const w=new Uint8ClampedArray(S.length);for(let v=0,b=S.length;vS.width||w+d>S.height){console.warn("bad render request outside image data");return}const s=o?this.charDataLight:this.charDataNormal,l=(0,L.getCharIndex)(v,t),r=S.width*4,h=n.r,u=n.g,f=n.b,C=b.r-h,_=b.g-u,E=b.b-f,I=Math.max(a,i),T=S.data;let A=l*m*c,R=w*r+p*4;for(let M=0;MS.width||w+g>S.height){console.warn("bad render request outside image data");return}const m=S.width*4,c=.5*(b/255),d=a.r,s=a.g,l=a.b,r=v.r-d,h=v.g-s,u=v.b-l,f=d+r*c,C=s+h*c,_=l+u*c,E=Math.max(b,n),I=S.data;let T=w*m+p*4;for(let A=0;A{const S=new Uint8ClampedArray(D.length/2);for(let p=0;p>1]=k[D[p]]<<4|k[D[p+1]]&15;return S};e.prebakedMiniMaps={1:(0,L.createSingleCallFunction)(()=>y("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:(0,L.createSingleCallFunction)(()=>y("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))}}),define(ne[506],se([1,0,504,285,505,177]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRendererFactory=void 0;class S{static create(w,v){if(this.lastCreated&&w===this.lastCreated.scale&&v===this.lastFontFamily)return this.lastCreated;let b;return y.prebakedMiniMaps[w]?b=new L.MinimapCharRenderer(y.prebakedMiniMaps[w](),w):b=S.createFromSampleData(S.createSampleData(v).data,w),this.lastFontFamily=v,this.lastCreated=b,b}static createSampleData(w){const v=document.createElement("canvas"),b=v.getContext("2d");v.style.height="16px",v.height=16,v.width=96*10,v.style.width=96*10+"px",b.fillStyle="#ffffff",b.font=`bold 16px ${w}`,b.textBaseline="middle";let a=0;for(const n of k.allCharCodes)b.fillText(String.fromCharCode(n),a,16/2),a+=10;return b.getImageData(0,0,96*10,16)}static createFromSampleData(w,v){if(w.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const a=S._downsample(w,v);return new L.MinimapCharRenderer(a,v)}static _downsampleChar(w,v,b,a,n){const i=1*n,t=2*n;let o=a,g=0;for(let m=0;m0){const g=255/o;for(let m=0;mthis._itemData.get(w).getId()===y.getId()))!==null&&D!==void 0?D:p[0],this._unused.delete(S),this._itemData.set(S,y),S.setData(y)}return this._used.add(S),{object:S,dispose:()=>{this._used.delete(S),this._unused.size>5?S.dispose():this._unused.add(S)}}}dispose(){for(const y of this._used)y.dispose();for(const y of this._unused)y.dispose();this._used.clear(),this._unused.clear()}}e.ObjectPool=L}),define(ne[286],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffEditorDefaultOptions=void 0,e.diffEditorDefaultOptions={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0}}),define(ne[153],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorZoom=void 0,e.EditorZoom=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new L.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(k){k=Math.min(Math.max(-5,k),20),this._zoomLevel!==k&&(this._zoomLevel=k,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}}),define(ne[132],se([1,0,177]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterSet=e.CharacterClassifier=void 0;class k{constructor(S){const p=(0,L.toUint8)(S);this._defaultValue=p,this._asciiMap=k._createAsciiMap(p),this._map=new Map}static _createAsciiMap(S){const p=new Uint8Array(256);return p.fill(S),p}set(S,p){const w=(0,L.toUint8)(p);S>=0&&S<256?this._asciiMap[S]=w:this._map.set(S,w)}get(S){return S>=0&&S<256?this._asciiMap[S]:this._map.get(S)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}e.CharacterClassifier=k;class y{constructor(){this._actual=new k(0)}add(S){this._actual.set(S,1)}has(S){return this._actual.get(S)===1}clear(){return this._actual.clear()}}e.CharacterSet=y}),define(ne[85],se([1,0,11]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorColumns=void 0;class k{static _nextVisibleColumn(D,S,p){return D===9?k.nextRenderTabStop(S,p):L.isFullWidthCharacter(D)||L.isEmojiImprecise(D)?S+2:S+1}static visibleColumnFromColumn(D,S,p){const w=Math.min(S-1,D.length),v=D.substring(0,w),b=new L.GraphemeIterator(v);let a=0;for(;!b.eol();){const n=L.getNextCodePoint(v,w,b.offset);b.nextGraphemeLength(),a=this._nextVisibleColumn(n,a,p)}return a}static columnFromVisibleColumn(D,S,p){if(S<=0)return 1;const w=D.length,v=new L.GraphemeIterator(D);let b=0,a=1;for(;!v.eol();){const n=L.getNextCodePoint(D,w,v.offset);v.nextGraphemeLength();const i=this._nextVisibleColumn(n,b,p),t=v.offset+1;if(i>=S){const o=S-b;return i-Sp)throw new L.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(S){return new k(this.start+S,this.endExclusive+S)}deltaStart(S){return new k(this.start+S,this.endExclusive)}deltaEnd(S){return new k(this.start,this.endExclusive+S)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(S){return this.start<=S&&S=S.endExclusive}slice(S){return S.slice(this.start,this.endExclusive)}clip(S){if(this.isEmpty)throw new L.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,S))}clipCyclic(S){if(this.isEmpty)throw new L.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return S=this.endExclusive?this.start+(S-this.start)%this.length:S}forEach(S){for(let p=this.start;pS.toString()).join(", ")}intersectsStrict(S){let p=0;for(;pS+p.length,0)}}e.OffsetRangeSet=y}),define(ne[9],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Position=void 0;class L{constructor(y,D){this.lineNumber=y,this.column=D}with(y=this.lineNumber,D=this.column){return y===this.lineNumber&&D===this.column?this:new L(y,D)}delta(y=0,D=0){return this.with(this.lineNumber+y,this.column+D)}equals(y){return L.equals(this,y)}static equals(y,D){return!y&&!D?!0:!!y&&!!D&&y.lineNumber===D.lineNumber&&y.column===D.column}isBefore(y){return L.isBefore(this,y)}static isBefore(y,D){return y.lineNumberp||D===p&&S>w?(this.startLineNumber=p,this.startColumn=w,this.endLineNumber=D,this.endColumn=S):(this.startLineNumber=D,this.startColumn=S,this.endLineNumber=p,this.endColumn=w)}isEmpty(){return k.isEmpty(this)}static isEmpty(D){return D.startLineNumber===D.endLineNumber&&D.startColumn===D.endColumn}containsPosition(D){return k.containsPosition(this,D)}static containsPosition(D,S){return!(S.lineNumberD.endLineNumber||S.lineNumber===D.startLineNumber&&S.columnD.endColumn)}static strictContainsPosition(D,S){return!(S.lineNumberD.endLineNumber||S.lineNumber===D.startLineNumber&&S.column<=D.startColumn||S.lineNumber===D.endLineNumber&&S.column>=D.endColumn)}containsRange(D){return k.containsRange(this,D)}static containsRange(D,S){return!(S.startLineNumberD.endLineNumber||S.endLineNumber>D.endLineNumber||S.startLineNumber===D.startLineNumber&&S.startColumnD.endColumn)}strictContainsRange(D){return k.strictContainsRange(this,D)}static strictContainsRange(D,S){return!(S.startLineNumberD.endLineNumber||S.endLineNumber>D.endLineNumber||S.startLineNumber===D.startLineNumber&&S.startColumn<=D.startColumn||S.endLineNumber===D.endLineNumber&&S.endColumn>=D.endColumn)}plusRange(D){return k.plusRange(this,D)}static plusRange(D,S){let p,w,v,b;return S.startLineNumberD.endLineNumber?(v=S.endLineNumber,b=S.endColumn):S.endLineNumber===D.endLineNumber?(v=S.endLineNumber,b=Math.max(S.endColumn,D.endColumn)):(v=D.endLineNumber,b=D.endColumn),new k(p,w,v,b)}intersectRanges(D){return k.intersectRanges(this,D)}static intersectRanges(D,S){let p=D.startLineNumber,w=D.startColumn,v=D.endLineNumber,b=D.endColumn;const a=S.startLineNumber,n=S.startColumn,i=S.endLineNumber,t=S.endColumn;return pi?(v=i,b=t):v===i&&(b=Math.min(b,t)),p>v||p===v&&w>b?null:new k(p,w,v,b)}equalsRange(D){return k.equalsRange(this,D)}static equalsRange(D,S){return!D&&!S?!0:!!D&&!!S&&D.startLineNumber===S.startLineNumber&&D.startColumn===S.startColumn&&D.endLineNumber===S.endLineNumber&&D.endColumn===S.endColumn}getEndPosition(){return k.getEndPosition(this)}static getEndPosition(D){return new L.Position(D.endLineNumber,D.endColumn)}getStartPosition(){return k.getStartPosition(this)}static getStartPosition(D){return new L.Position(D.startLineNumber,D.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(D,S){return new k(this.startLineNumber,this.startColumn,D,S)}setStartPosition(D,S){return new k(D,S,this.endLineNumber,this.endColumn)}collapseToStart(){return k.collapseToStart(this)}static collapseToStart(D){return new k(D.startLineNumber,D.startColumn,D.startLineNumber,D.startColumn)}collapseToEnd(){return k.collapseToEnd(this)}static collapseToEnd(D){return new k(D.endLineNumber,D.endColumn,D.endLineNumber,D.endColumn)}delta(D){return new k(this.startLineNumber+D,this.startColumn,this.endLineNumber+D,this.endColumn)}static fromPositions(D,S=D){return new k(D.lineNumber,D.column,S.lineNumber,S.column)}static lift(D){return D?new k(D.startLineNumber,D.startColumn,D.endLineNumber,D.endColumn):null}static isIRange(D){return D&&typeof D.startLineNumber=="number"&&typeof D.startColumn=="number"&&typeof D.endLineNumber=="number"&&typeof D.endColumn=="number"}static areIntersectingOrTouching(D,S){return!(D.endLineNumberD.startLineNumber}toJSON(){return this}}e.Range=k}),define(ne[288],se([1,0,11,5]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedScreenReaderStrategy=e.TextAreaState=e._debugComposition=void 0,e._debugComposition=!1;class y{constructor(p,w,v,b,a){this.value=p,this.selectionStart=w,this.selectionEnd=v,this.selection=b,this.newlineCountBeforeSelection=a}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(p,w){const v=p.getValue(),b=p.getSelectionStart(),a=p.getSelectionEnd();let n;if(w){const i=v.substring(0,b),t=w.value.substring(0,w.selectionStart);i===t&&(n=w.newlineCountBeforeSelection)}return new y(v,b,a,null,n)}collapseSelection(){return this.selectionStart===this.value.length?this:new y(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(p,w,v){e._debugComposition&&console.log(`writeToTextArea ${p}: ${this.toString()}`),w.setValue(p,this.value),v&&w.setSelectionRange(p,this.selectionStart,this.selectionEnd)}deduceEditorPosition(p){var w,v,b,a,n,i,t,o;if(p<=this.selectionStart){const c=this.value.substring(p,this.selectionStart);return this._finishDeduceEditorPosition((v=(w=this.selection)===null||w===void 0?void 0:w.getStartPosition())!==null&&v!==void 0?v:null,c,-1)}if(p>=this.selectionEnd){const c=this.value.substring(this.selectionEnd,p);return this._finishDeduceEditorPosition((a=(b=this.selection)===null||b===void 0?void 0:b.getEndPosition())!==null&&a!==void 0?a:null,c,1)}const g=this.value.substring(this.selectionStart,p);if(g.indexOf("\u2026")===-1)return this._finishDeduceEditorPosition((i=(n=this.selection)===null||n===void 0?void 0:n.getStartPosition())!==null&&i!==void 0?i:null,g,1);const m=this.value.substring(p,this.selectionEnd);return this._finishDeduceEditorPosition((o=(t=this.selection)===null||t===void 0?void 0:t.getEndPosition())!==null&&o!==void 0?o:null,m,-1)}_finishDeduceEditorPosition(p,w,v){let b=0,a=-1;for(;(a=w.indexOf(` +`,a+1))!==-1;)b++;return[p,v*w.length,b]}static deduceInput(p,w,v){if(!p)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};e._debugComposition&&(console.log("------------------------deduceInput"),console.log(`PREVIOUS STATE: ${p.toString()}`),console.log(`CURRENT STATE: ${w.toString()}`));const b=Math.min(L.commonPrefixLength(p.value,w.value),p.selectionStart,w.selectionStart),a=Math.min(L.commonSuffixLength(p.value,w.value),p.value.length-p.selectionEnd,w.value.length-w.selectionEnd),n=p.value.substring(b,p.value.length-a),i=w.value.substring(b,w.value.length-a),t=p.selectionStart-b,o=p.selectionEnd-b,g=w.selectionStart-b,m=w.selectionEnd-b;if(e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${n}>, selectionStart: ${t}, selectionEnd: ${o}`),console.log(`AFTER DIFFING CURRENT STATE: <${i}>, selectionStart: ${g}, selectionEnd: ${m}`)),g===m){const d=p.selectionStart-b;return e._debugComposition&&console.log(`REMOVE PREVIOUS: ${d} chars`),{text:i,replacePrevCharCnt:d,replaceNextCharCnt:0,positionDelta:0}}const c=o-t;return{text:i,replacePrevCharCnt:c,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(p,w){if(!p)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e._debugComposition&&(console.log("------------------------deduceAndroidCompositionInput"),console.log(`PREVIOUS STATE: ${p.toString()}`),console.log(`CURRENT STATE: ${w.toString()}`)),p.value===w.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:w.selectionEnd-p.selectionEnd};const v=Math.min(L.commonPrefixLength(p.value,w.value),p.selectionEnd),b=Math.min(L.commonSuffixLength(p.value,w.value),p.value.length-p.selectionEnd),a=p.value.substring(v,p.value.length-b),n=w.value.substring(v,w.value.length-b),i=p.selectionStart-v,t=p.selectionEnd-v,o=w.selectionStart-v,g=w.selectionEnd-v;return e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${a}>, selectionStart: ${i}, selectionEnd: ${t}`),console.log(`AFTER DIFFING CURRENT STATE: <${n}>, selectionStart: ${o}, selectionEnd: ${g}`)),{text:n,replacePrevCharCnt:t,replaceNextCharCnt:a.length-t,positionDelta:g-n.length}}}e.TextAreaState=y,y.EMPTY=new y("",0,0,null,void 0);class D{static _getPageOfLine(p,w){return Math.floor((p-1)/w)}static _getRangeForPage(p,w){const v=p*w,b=v+1,a=v+w;return new k.Range(b,1,a+1,1)}static fromEditorSelection(p,w,v,b){const n=D._getPageOfLine(w.startLineNumber,v),i=D._getRangeForPage(n,v),t=D._getPageOfLine(w.endLineNumber,v),o=D._getRangeForPage(t,v);let g=i.intersectRanges(new k.Range(1,1,w.startLineNumber,w.startColumn));if(b&&p.getValueLengthInRange(g,1)>500){const h=p.modifyPosition(g.getEndPosition(),-500);g=k.Range.fromPositions(h,g.getEndPosition())}const m=p.getValueInRange(g,1),c=p.getLineCount(),d=p.getLineMaxColumn(c);let s=o.intersectRanges(new k.Range(w.endLineNumber,w.endColumn,c,d));if(b&&p.getValueLengthInRange(s,1)>500){const h=p.modifyPosition(s.getStartPosition(),500);s=k.Range.fromPositions(s.getStartPosition(),h)}const l=p.getValueInRange(s,1);let r;if(n===t||n+1===t)r=p.getValueInRange(w,1);else{const h=i.intersectRanges(w),u=o.intersectRanges(w);r=p.getValueInRange(h,1)+"\u2026"+p.getValueInRange(u,1)}return b&&r.length>2*500&&(r=r.substring(0,500)+"\u2026"+r.substring(r.length-500,r.length)),new y(m+r+l,m.length,m.length+r.length,w,g.endLineNumber-g.startLineNumber)}}e.PagedScreenReaderStrategy=D}),define(ne[68],se([1,0,5]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditOperation=void 0;class k{static insert(D,S){return{range:new L.Range(D.lineNumber,D.column,D.lineNumber,D.column),text:S,forceMoveMarkers:!0}}static delete(D){return{range:D,text:null}}static replace(D,S){return{range:D,text:S}}static replaceMove(D,S){return{range:D,text:S,forceMoveMarkers:!0}}}e.EditOperation=k}),define(ne[509],se([1,0,11,68,5]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.trimTrailingWhitespace=e.TrimTrailingWhitespaceCommand=void 0;class D{constructor(w,v){this._selection=w,this._cursors=v,this._selectionId=null}getEditOperations(w,v){const b=S(w,this._cursors);for(let a=0,n=b.length;ai.lineNumber===t.lineNumber?i.column-t.column:i.lineNumber-t.lineNumber);for(let i=w.length-2;i>=0;i--)w[i].lineNumber===w[i+1].lineNumber&&w.splice(i,1);const v=[];let b=0,a=0;const n=w.length;for(let i=1,t=p.getLineCount();i<=t;i++){const o=p.getLineContent(i),g=o.length+1;let m=0;if(ab)throw new L.BugIndicatingError(`startLineNumber ${v} cannot be after endLineNumberExclusive ${b}`);this.startLineNumber=v,this.endLineNumberExclusive=b}contains(v){return this.startLineNumber<=v&&vn.endLineNumberExclusive>=v.startLineNumber),a=(0,D.findLastIdxMonotonous)(this._normalizedRanges,n=>n.startLineNumber<=v.endLineNumberExclusive)+1;if(b===a)this._normalizedRanges.splice(b,0,v);else if(b===a-1){const n=this._normalizedRanges[b];this._normalizedRanges[b]=n.join(v)}else{const n=this._normalizedRanges[b].join(this._normalizedRanges[a-1]).join(v);this._normalizedRanges.splice(b,a-b,n)}}contains(v){const b=(0,D.findLastMonotonous)(this._normalizedRanges,a=>a.startLineNumber<=v);return!!b&&b.endLineNumberExclusive>v}intersects(v){const b=(0,D.findLastMonotonous)(this._normalizedRanges,a=>a.startLineNumberv.startLineNumber}getUnion(v){if(this._normalizedRanges.length===0)return v;if(v._normalizedRanges.length===0)return this;const b=[];let a=0,n=0,i=null;for(;a=t.startLineNumber?i=new S(i.startLineNumber,Math.max(i.endLineNumberExclusive,t.endLineNumberExclusive)):(b.push(i),i=t)}return i!==null&&b.push(i),new p(b)}subtractFrom(v){const b=(0,D.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,t=>t.endLineNumberExclusive>=v.startLineNumber),a=(0,D.findLastIdxMonotonous)(this._normalizedRanges,t=>t.startLineNumber<=v.endLineNumberExclusive)+1;if(b===a)return new p([v]);const n=[];let i=v.startLineNumber;for(let t=b;ti&&n.push(new S(i,o.startLineNumber)),i=o.endLineNumberExclusive}return iv.toString()).join(", ")}getIntersection(v){const b=[];let a=0,n=0;for(;ab.delta(v)))}}e.LineRangeSet=p}),define(ne[289],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RGBA8=void 0;class L{constructor(y,D,S,p){this._rgba8Brand=void 0,this.r=L._clamp(y),this.g=L._clamp(D),this.b=L._clamp(S),this.a=L._clamp(p)}equals(y){return this.r===y.r&&this.g===y.g&&this.b===y.b&&this.a===y.a}static _clamp(y){return y<0?0:y>255?255:y|0}}e.RGBA8=L,L.Empty=new L(0,0,0,0)}),define(ne[23],se([1,0,9,5]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Selection=void 0;class y extends k.Range{constructor(S,p,w,v){super(S,p,w,v),this.selectionStartLineNumber=S,this.selectionStartColumn=p,this.positionLineNumber=w,this.positionColumn=v}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(S){return y.selectionsEqual(this,S)}static selectionsEqual(S,p){return S.selectionStartLineNumber===p.selectionStartLineNumber&&S.selectionStartColumn===p.selectionStartColumn&&S.positionLineNumber===p.positionLineNumber&&S.positionColumn===p.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(S,p){return this.getDirection()===0?new y(this.startLineNumber,this.startColumn,S,p):new y(S,p,this.startLineNumber,this.startColumn)}getPosition(){return new L.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new L.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(S,p){return this.getDirection()===0?new y(S,p,this.endLineNumber,this.endColumn):new y(this.endLineNumber,this.endColumn,S,p)}static fromPositions(S,p=S){return new y(S.lineNumber,S.column,p.lineNumber,p.column)}static fromRange(S,p){return p===0?new y(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn):new y(S.endLineNumber,S.endColumn,S.startLineNumber,S.startColumn)}static liftSelection(S){return new y(S.selectionStartLineNumber,S.selectionStartColumn,S.positionLineNumber,S.positionColumn)}static selectionsArrEqual(S,p){if(S&&!p||!S&&p)return!1;if(!S&&!p)return!0;if(S.length!==p.length)return!1;for(let w=0,v=S.length;w(S.hasOwnProperty(p)||(S[p]=D(p)),S[p])}e.getMapForWordSeparators=y(D=>new k(D))}),define(ne[155],se([1,0,52,67]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getWordAtText=e.ensureValidWordDefinition=e.DEFAULT_WORD_REGEXP=e.USUAL_WORD_SEPARATORS=void 0,e.USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function y(v=""){let b="(-?\\d*\\.\\d\\w*)|([^";for(const a of e.USUAL_WORD_SEPARATORS)v.indexOf(a)>=0||(b+="\\"+a);return b+="\\s]+)",new RegExp(b,"g")}e.DEFAULT_WORD_REGEXP=y();function D(v){let b=e.DEFAULT_WORD_REGEXP;if(v&&v instanceof RegExp)if(v.global)b=v;else{let a="g";v.ignoreCase&&(a+="i"),v.multiline&&(a+="m"),v.unicode&&(a+="u"),b=new RegExp(v.source,a)}return b.lastIndex=0,b}e.ensureValidWordDefinition=D;const S=new k.LinkedList;S.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function p(v,b,a,n,i){if(b=D(b),i||(i=L.Iterable.first(S)),a.length>i.maxLen){let c=v-i.maxLen/2;return c<0?c=0:n+=c,a=a.substring(c,v+i.maxLen/2),p(v,b,a,n,i)}const t=Date.now(),o=v-1-n;let g=-1,m=null;for(let c=1;!(Date.now()-t>=i.timeBudget);c++){const d=o-i.windowSize*c;b.lastIndex=Math.max(0,d);const s=w(b,a,o,g);if(!s&&m||(m=s,d<=0))break;g=d}if(m){const c={word:m[0],startColumn:n+1+m.index,endColumn:n+1+m.index+m[0].length};return b.lastIndex=0,c}return null}e.getWordAtText=p;function w(v,b,a,n){let i;for(;i=v.exec(b);){const t=i.index||0;if(t<=a&&v.lastIndex>=a)return i;if(n>0&&t>n)return null}return null}}),define(ne[290],se([1,0,85]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AtomicTabMoveOperations=void 0;class k{static whitespaceVisibleColumn(D,S,p){const w=D.length;let v=0,b=-1,a=-1;for(let n=0;n{i.push(S.fromOffsetPairs(t?t.getEndExclusives():p.zero,o?o.getStarts():new p(n,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+n)))}),i}static fromOffsetPairs(a,n){return new S(new y.OffsetRange(a.offset1,n.offset1),new y.OffsetRange(a.offset2,n.offset2))}constructor(a,n){this.seq1Range=a,this.seq2Range=n}swap(){return new S(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(a){return new S(this.seq1Range.join(a.seq1Range),this.seq2Range.join(a.seq2Range))}delta(a){return a===0?this:new S(this.seq1Range.delta(a),this.seq2Range.delta(a))}deltaStart(a){return a===0?this:new S(this.seq1Range.deltaStart(a),this.seq2Range.deltaStart(a))}deltaEnd(a){return a===0?this:new S(this.seq1Range.deltaEnd(a),this.seq2Range.deltaEnd(a))}intersect(a){const n=this.seq1Range.intersect(a.seq1Range),i=this.seq2Range.intersect(a.seq2Range);if(!(!n||!i))return new S(n,i)}getStarts(){return new p(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new p(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}e.SequenceDiff=S;class p{constructor(a,n){this.offset1=a,this.offset2=n}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(a){return a===0?this:new p(this.offset1+a,this.offset2+a)}equals(a){return this.offset1===a.offset1&&this.offset2===a.offset2}}e.OffsetPair=p,p.zero=new p(0,0),p.max=new p(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class w{isValid(){return!0}}e.InfiniteTimeout=w,w.instance=new w;class v{constructor(a){if(this.timeout=a,this.startTime=Date.now(),this.valid=!0,a<=0)throw new k.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimen.length||I>i.length)continue;const T=t(E,I);g.set(c,T);const A=E===C?m.get(c+1):m.get(c-1);if(m.set(c,T!==E?new D(A,E,I,T-E):A),g.get(c)===n.length&&g.get(c)-c===i.length)break e}}let d=m.get(c);const s=[];let l=n.length,r=i.length;for(;;){const h=d?d.x+d.length:0,u=d?d.y+d.length:0;if((h!==l||u!==r)&&s.push(new k.SequenceDiff(new L.OffsetRange(h,l),new L.OffsetRange(u,r))),!d)break;l=d.x,r=d.y,d=d.prev}return s.reverse(),new k.DiffAlgorithmResult(s,!1)}}e.MyersDiffAlgorithm=y;class D{constructor(v,b,a,n){this.prev=v,this.x=b,this.y=a,this.length=n}}class S{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(v){return v<0?(v=-v-1,this.negativeArr[v]):this.positiveArr[v]}set(v,b){if(v<0){if(v=-v-1,v>=this.negativeArr.length){const a=this.negativeArr;this.negativeArr=new Int32Array(a.length*2),this.negativeArr.set(a)}this.negativeArr[v]=b}else{if(v>=this.positiveArr.length){const a=this.positiveArr;this.positiveArr=new Int32Array(a.length*2),this.positiveArr.set(a)}this.positiveArr[v]=b}}}class p{constructor(){this.positiveArr=[],this.negativeArr=[]}get(v){return v<0?(v=-v-1,this.negativeArr[v]):this.positiveArr[v]}set(v,b){v<0?(v=-v-1,this.negativeArr[v]=b):this.positiveArr[v]=b}}}),define(ne[292],se([1,0,13,75,156]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.removeVeryShortMatchingTextBetweenLongDiffs=e.removeVeryShortMatchingLinesBetweenDiffs=e.extendDiffsToEntireWordIfAppropriate=e.removeShortMatches=e.optimizeSequenceDiffs=void 0;function D(t,o,g){let m=g;return m=S(t,o,m),m=S(t,o,m),m=p(t,o,m),m}e.optimizeSequenceDiffs=D;function S(t,o,g){if(g.length===0)return g;const m=[];m.push(g[0]);for(let d=1;d0&&(l=l.delta(h))}c.push(l)}return m.length>0&&c.push(m[m.length-1]),c}function p(t,o,g){if(!t.getBoundaryScore||!o.getBoundaryScore)return g;for(let m=0;m0?g[m-1]:void 0,d=g[m],s=m+1=m.start&&t.seq2Range.start-s>=c.start&&g.isStronglyEqual(t.seq2Range.start-s,t.seq2Range.endExclusive-s)&&s<100;)s++;s--;let l=0;for(;t.seq1Range.start+lh&&(h=E,r=u)}return t.delta(r)}function v(t,o,g){const m=[];for(const c of g){const d=m[m.length-1];if(!d){m.push(c);continue}c.seq1Range.start-d.seq1Range.endExclusive<=2||c.seq2Range.start-d.seq2Range.endExclusive<=2?m[m.length-1]=new y.SequenceDiff(d.seq1Range.join(c.seq1Range),d.seq2Range.join(c.seq2Range)):m.push(c)}return m}e.removeShortMatches=v;function b(t,o,g){const m=y.SequenceDiff.invert(g,t.length),c=[];let d=new y.OffsetPair(0,0);function s(r,h){if(r.offset10;){const T=m[0];if(!(T.seq1Range.intersects(u)||T.seq2Range.intersects(f)))break;const R=t.findWordContaining(T.seq1Range.start),M=o.findWordContaining(T.seq2Range.start),N=new y.SequenceDiff(R,M),P=N.intersect(T);if(E+=P.seq1Range.length,I+=P.seq2Range.length,C=C.join(N),C.seq1Range.endExclusive>=T.seq1Range.endExclusive)m.shift();else break}E+I<(C.seq1Range.length+C.seq2Range.length)*2/3&&c.push(C),d=C.getEndExclusives()}for(;m.length>0;){const r=m.shift();r.seq1Range.isEmpty||(s(r.getStarts(),r),s(r.getEndExclusives().delta(-1),r))}return a(g,c)}e.extendDiffsToEntireWordIfAppropriate=b;function a(t,o){const g=[];for(;t.length>0||o.length>0;){const m=t[0],c=o[0];let d;m&&(!c||m.seq1Range.start0&&g[g.length-1].seq1Range.endExclusive>=d.seq1Range.start?g[g.length-1]=g[g.length-1].join(d):g.push(d)}return g}function n(t,o,g){let m=g;if(m.length===0)return m;let c=0,d;do{d=!1;const s=[m[0]];for(let l=1;l5||_.seq1Range.length+_.seq2Range.length>5)};const r=m[l],h=s[s.length-1];u(h,r)?(d=!0,s[s.length-1]=s[s.length-1].join(r)):s.push(r)}m=s}while(c++<10&&d);return m}e.removeVeryShortMatchingLinesBetweenDiffs=n;function i(t,o,g){let m=g;if(m.length===0)return m;let c=0,d;do{d=!1;const l=[m[0]];for(let r=1;r5||I.length>500)return!1;const A=t.getText(I).trim();if(A.length>20||A.split(/\r\n|\r|\n/).length>1)return!1;const R=t.countLinesIn(_.seq1Range),M=_.seq1Range.length,N=o.countLinesIn(_.seq2Range),P=_.seq2Range.length,F=t.countLinesIn(E.seq1Range),O=E.seq1Range.length,B=o.countLinesIn(E.seq2Range),W=E.seq2Range.length,V=2*40+50;function z(K){return Math.min(K,V)}return Math.pow(Math.pow(z(R*40+M),1.5)+Math.pow(z(N*40+P),1.5),1.5)+Math.pow(Math.pow(z(F*40+O),1.5)+Math.pow(z(B*40+W),1.5),1.5)>(V**1.5)**1.5*1.3};const h=m[r],u=l[l.length-1];f(u,h)?(d=!0,l[l.length-1]=l[l.length-1].join(h)):l.push(h)}m=l}while(c++<10&&d);const s=[];return(0,L.forEachWithNeighbors)(m,(l,r,h)=>{let u=r;function f(A){return A.length>0&&A.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}const C=t.extendToFullLines(r.seq1Range),_=t.getText(new k.OffsetRange(C.start,r.seq1Range.start));f(_)&&(u=u.deltaStart(-_.length));const E=t.getText(new k.OffsetRange(r.seq1Range.endExclusive,C.endExclusive));f(E)&&(u=u.deltaEnd(E.length));const I=y.SequenceDiff.fromOffsetPairs(l?l.getEndExclusives():y.OffsetPair.zero,h?h.getStarts():y.OffsetPair.max),T=u.intersect(I);s.length>0&&T.getStarts().equals(s[s.length-1].getEndExclusives())?s[s.length-1]=s[s.length-1].join(T):s.push(T)}),s}e.removeVeryShortMatchingTextBetweenLongDiffs=i}),define(ne[512],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineSequence=void 0;class L{constructor(D,S){this.trimmedHash=D,this.lines=S}getElement(D){return this.trimmedHash[D]}get length(){return this.trimmedHash.length}getBoundaryScore(D){const S=D===0?0:k(this.lines[D-1]),p=D===this.lines.length?0:k(this.lines[D]);return 1e3-(S+p)}getText(D){return this.lines.slice(D.start,D.endExclusive).join(` +`)}isStronglyEqual(D,S){return this.lines[D]===this.lines[S]}}e.LineSequence=L;function k(y){let D=0;for(;D0&&l>0&&n.get(s-1,l-1)===3&&(u+=i.get(s-1,l-1)),u+=b?b(s,l):1):u=-1;const f=Math.max(r,h,u);if(f===u){const C=s>0&&l>0?i.get(s-1,l-1):0;i.set(s,l,C+1),n.set(s,l,3)}else f===r?(i.set(s,l,0),n.set(s,l,1)):f===h&&(i.set(s,l,0),n.set(s,l,2));a.set(s,l,f)}const t=[];let o=p.length,g=w.length;function m(s,l){(s+1!==o||l+1!==g)&&t.push(new k.SequenceDiff(new L.OffsetRange(s+1,o),new L.OffsetRange(l+1,g))),o=s,g=l}let c=p.length-1,d=w.length-1;for(;c>=0&&d>=0;)n.get(c,d)===3?(m(c,d),c--,d--):n.get(c,d)===1?c--:d--;return m(-1,-1),t.reverse(),new k.DiffAlgorithmResult(t,!1)}}e.DynamicProgrammingDiffing=D}),define(ne[293],se([1,0,62,75,9,5,210]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesSliceCharSequence=void 0;class p{constructor(i,t,o){this.lines=i,this.considerWhitespaceChanges=o,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let g=!1;t.start>0&&t.endExclusive>=i.length&&(t=new k.OffsetRange(t.start-1,t.endExclusive),g=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let m=this.lineRange.start;mString.fromCharCode(t)).join("")}getElement(i){return this.elements[i]}get length(){return this.elements.length}getBoundaryScore(i){const t=a(i>0?this.elements[i-1]:-1),o=a(io<=i);return new y.Position(this.lineRange.start+t+1,i-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(i){return D.Range.fromPositions(this.translateOffset(i.start),this.translateOffset(i.endExclusive))}findWordContaining(i){if(i<0||i>=this.elements.length||!w(this.elements[i]))return;let t=i;for(;t>0&&w(this.elements[t-1]);)t--;let o=i;for(;oc<=i.start))!==null&&t!==void 0?t:0,m=(o=(0,L.findFirstMonotonous)(this.firstCharOffsetByLine,c=>i.endExclusive<=c))!==null&&o!==void 0?o:this.elements.length;return new k.OffsetRange(g,m)}}e.LinesSliceCharSequence=p;function w(n){return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57}const v={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function b(n){return v[n]}function a(n){return n===10?8:n===13?7:(0,S.isSpace)(n)?6:n>=97&&n<=122?0:n>=65&&n<=90?1:n>=48&&n<=57?2:n===-1?3:n===44||n===59?5:4}}),define(ne[211],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MovedText=e.LinesDiff=void 0;class L{constructor(D,S,p){this.changes=D,this.moves=S,this.hitTimeout=p}}e.LinesDiff=L;class k{constructor(D,S){this.lineRangeMapping=D,this.changes=S}}e.MovedText=k}),define(ne[115],se([1,0,64]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMapping=e.DetailedLineRangeMapping=e.LineRangeMapping=void 0;class k{static inverse(p,w,v){const b=[];let a=1,n=1;for(const t of p){const o=new k(new L.LineRange(a,t.original.startLineNumber),new L.LineRange(n,t.modified.startLineNumber));o.modified.isEmpty||b.push(o),a=t.original.endLineNumberExclusive,n=t.modified.endLineNumberExclusive}const i=new k(new L.LineRange(a,w+1),new L.LineRange(n,v+1));return i.modified.isEmpty||b.push(i),b}static clip(p,w,v){const b=[];for(const a of p){const n=a.original.intersect(w),i=a.modified.intersect(v);n&&!n.isEmpty&&i&&!i.isEmpty&&b.push(new k(n,i))}return b}constructor(p,w){this.original=p,this.modified=w}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new k(this.modified,this.original)}join(p){return new k(this.original.join(p.original),this.modified.join(p.modified))}}e.LineRangeMapping=k;class y extends k{constructor(p,w,v){super(p,w),this.innerChanges=v}flip(){var p;return new y(this.modified,this.original,(p=this.innerChanges)===null||p===void 0?void 0:p.map(w=>w.flip()))}}e.DetailedLineRangeMapping=y;class D{constructor(p,w){this.originalRange=p,this.modifiedRange=w}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new D(this.modifiedRange,this.originalRange)}}e.RangeMapping=D}),define(ne[514],se([1,0,156,115,13,62,53,64,75,293,210,291]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeMovedLines=void 0;function n(d,s,l,r,h,u){let{moves:f,excludedChanges:C}=t(d,s,l,u);if(!u.isValid())return[];const _=d.filter(I=>!C.has(I)),E=o(_,r,h,s,l,u);return(0,y.pushMany)(f,E),f=m(f),f=f.filter(I=>{const T=I.original.toOffsetRange().slice(s).map(R=>R.trim());return T.join(` +`).length>=15&&i(T,R=>R.length>=2)>=2}),f=c(d,f),f}e.computeMovedLines=n;function i(d,s){let l=0;for(const r of d)s(r)&&l++;return l}function t(d,s,l,r){const h=[],u=d.filter(_=>_.modified.isEmpty&&_.original.length>=3).map(_=>new b.LineRangeFragment(_.original,s,_)),f=new Set(d.filter(_=>_.original.isEmpty&&_.modified.length>=3).map(_=>new b.LineRangeFragment(_.modified,l,_))),C=new Set;for(const _ of u){let E=-1,I;for(const T of f){const A=_.computeSimilarity(T);A>E&&(E=A,I=T)}if(E>.9&&I&&(f.delete(I),h.push(new k.LineRangeMapping(_.range,I.range)),C.add(_.source),C.add(I.source)),!r.isValid())return{moves:h,excludedChanges:C}}return{moves:h,excludedChanges:C}}function o(d,s,l,r,h,u){const f=[],C=new S.SetMap;for(const A of d)for(let R=A.original.startLineNumber;RA.modified.startLineNumber,y.numberComparator));for(const A of d){let R=[];for(let M=A.modified.startLineNumber;M{for(const W of R)if(W.originalLineRange.endLineNumberExclusive+1===O.endLineNumberExclusive&&W.modifiedLineRange.endLineNumberExclusive+1===P.endLineNumberExclusive){W.originalLineRange=new p.LineRange(W.originalLineRange.startLineNumber,O.endLineNumberExclusive),W.modifiedLineRange=new p.LineRange(W.modifiedLineRange.startLineNumber,P.endLineNumberExclusive),F.push(W);return}const B={modifiedLineRange:P,originalLineRange:O};_.push(B),F.push(B)}),R=F}if(!u.isValid())return[]}_.sort((0,y.reverseOrder)((0,y.compareBy)(A=>A.modifiedLineRange.length,y.numberComparator)));const E=new p.LineRangeSet,I=new p.LineRangeSet;for(const A of _){const R=A.modifiedLineRange.startLineNumber-A.originalLineRange.startLineNumber,M=E.subtractFrom(A.modifiedLineRange),N=I.subtractFrom(A.originalLineRange).getWithDelta(R),P=M.getIntersection(N);for(const F of P.ranges){if(F.length<3)continue;const O=F,B=F.delta(-R);f.push(new k.LineRangeMapping(B,O)),E.addRange(O),I.addRange(B)}}f.sort((0,y.compareBy)(A=>A.original.startLineNumber,y.numberComparator));const T=new D.MonotonousArray(d);for(let A=0;Az.original.startLineNumber<=R.original.startLineNumber),N=(0,D.findLastMonotonous)(d,z=>z.modified.startLineNumber<=R.modified.startLineNumber),P=Math.max(R.original.startLineNumber-M.original.startLineNumber,R.modified.startLineNumber-N.modified.startLineNumber),F=T.findLastMonotonous(z=>z.original.startLineNumberz.modified.startLineNumberr.length||K>h.length||E.contains(K)||I.contains(z)||!g(r[z-1],h[K-1],u))break}W>0&&(I.addRange(new p.LineRange(R.original.startLineNumber-W,R.original.startLineNumber)),E.addRange(new p.LineRange(R.modified.startLineNumber-W,R.modified.startLineNumber)));let V;for(V=0;Vr.length||K>h.length||E.contains(K)||I.contains(z)||!g(r[z-1],h[K-1],u))break}V>0&&(I.addRange(new p.LineRange(R.original.endLineNumberExclusive,R.original.endLineNumberExclusive+V)),E.addRange(new p.LineRange(R.modified.endLineNumberExclusive,R.modified.endLineNumberExclusive+V))),(W>0||V>0)&&(f[A]=new k.LineRangeMapping(new p.LineRange(R.original.startLineNumber-W,R.original.endLineNumberExclusive+V),new p.LineRange(R.modified.startLineNumber-W,R.modified.endLineNumberExclusive+V)))}return f}function g(d,s,l){if(d.trim()===s.trim())return!0;if(d.length>300&&s.length>300)return!1;const h=new a.MyersDiffAlgorithm().compute(new v.LinesSliceCharSequence([d],new w.OffsetRange(0,1),!1),new v.LinesSliceCharSequence([s],new w.OffsetRange(0,1),!1),l);let u=0;const f=L.SequenceDiff.invert(h.diffs,d.length);for(const I of f)I.seq1Range.forEach(T=>{(0,b.isSpace)(d.charCodeAt(T))||u++});function C(I){let T=0;for(let A=0;As.length?d:s);return u/_>.6&&_>10}function m(d){if(d.length===0)return d;d.sort((0,y.compareBy)(l=>l.original.startLineNumber,y.numberComparator));const s=[d[0]];for(let l=1;l=0&&f>=0&&u+f<=2){s[s.length-1]=r.join(h);continue}s.push(h)}return s}function c(d,s){const l=new D.MonotonousArray(d);return s=s.filter(r=>{const h=l.findLastMonotonous(C=>C.original.startLineNumberC.modified.startLineNumberV===z))return new n.LinesDiff([],[],!1);if(s.length===1&&s[0].length===0||l.length===1&&l[0].length===0)return new n.LinesDiff([new i.DetailedLineRangeMapping(new y.LineRange(1,s.length+1),new y.LineRange(1,l.length+1),[new i.RangeMapping(new S.Range(1,1,s.length,s[0].length+1),new S.Range(1,1,l.length,l[0].length+1))])],[],!1);const h=r.maxComputationTimeMs===0?p.InfiniteTimeout.instance:new p.DateTimeout(r.maxComputationTimeMs),u=!r.ignoreTrimWhitespace,f=new Map;function C(V){let z=f.get(V);return z===void 0&&(z=f.size,f.set(V,z)),z}const _=s.map(V=>C(V.trim())),E=l.map(V=>C(V.trim())),I=new o.LineSequence(_,s),T=new o.LineSequence(E,l),A=I.length+T.length<1700?this.dynamicProgrammingDiffing.compute(I,T,h,(V,z)=>s[V]===l[z]?l[z].length===0?.1:1+Math.log(1+l[z].length):.99):this.myersDiffingAlgorithm.compute(I,T);let R=A.diffs,M=A.hitTimeout;R=(0,a.optimizeSequenceDiffs)(I,T,R),R=(0,a.removeVeryShortMatchingLinesBetweenDiffs)(I,T,R);const N=[],P=V=>{if(u)for(let z=0;zV.seq1Range.start-F===V.seq2Range.start-O);const z=V.seq1Range.start-F;P(z),F=V.seq1Range.endExclusive,O=V.seq2Range.endExclusive;const K=this.refineDiff(s,l,V,h,u);K.hitTimeout&&(M=!0);for(const j of K.mappings)N.push(j)}P(s.length-F);const B=m(N,s,l);let W=[];return r.computeMoves&&(W=this.computeMoves(B,s,l,_,E,h,u)),(0,k.assertFn)(()=>{function V(K,j){if(K.lineNumber<1||K.lineNumber>j.length)return!1;const x=j[K.lineNumber-1];return!(K.column<1||K.column>x.length+1)}function z(K,j){return!(K.startLineNumber<1||K.startLineNumber>j.length+1||K.endLineNumberExclusive<1||K.endLineNumberExclusive>j.length+1)}for(const K of B){if(!K.innerChanges)return!1;for(const j of K.innerChanges)if(!(V(j.modifiedRange.getStartPosition(),l)&&V(j.modifiedRange.getEndPosition(),l)&&V(j.originalRange.getStartPosition(),s)&&V(j.originalRange.getEndPosition(),s)))return!1;if(!z(K.modified,l)||!z(K.original,s))return!1}return!0}),new n.LinesDiff(B,W,M)}computeMoves(s,l,r,h,u,f,C){return(0,b.computeMovedLines)(s,l,r,h,u,f).map(I=>{const T=this.refineDiff(l,r,new p.SequenceDiff(I.original.toOffsetRange(),I.modified.toOffsetRange()),f,C),A=m(T.mappings,l,r,!0);return new n.MovedText(I,A)})}refineDiff(s,l,r,h,u){const f=new t.LinesSliceCharSequence(s,r.seq1Range,u),C=new t.LinesSliceCharSequence(l,r.seq2Range,u),_=f.length+C.length<500?this.dynamicProgrammingDiffing.compute(f,C,h):this.myersDiffingAlgorithm.compute(f,C,h);let E=_.diffs;return E=(0,a.optimizeSequenceDiffs)(f,C,E),E=(0,a.extendDiffsToEntireWordIfAppropriate)(f,C,E),E=(0,a.removeShortMatches)(f,C,E),E=(0,a.removeVeryShortMatchingTextBetweenLongDiffs)(f,C,E),{mappings:E.map(T=>new i.RangeMapping(f.translateRange(T.seq1Range),C.translateRange(T.seq2Range))),hitTimeout:_.hitTimeout}}}e.DefaultLinesDiffComputer=g;function m(d,s,l,r=!1){const h=[];for(const u of(0,L.groupAdjacentBy)(d.map(f=>c(f,s,l)),(f,C)=>f.original.overlapOrTouch(C.original)||f.modified.overlapOrTouch(C.modified))){const f=u[0],C=u[u.length-1];h.push(new i.DetailedLineRangeMapping(f.original.join(C.original),f.modified.join(C.modified),u.map(_=>_.innerChanges[0])))}return(0,k.assertFn)(()=>!r&&h.length>0&&h[0].original.startLineNumber!==h[0].modified.startLineNumber?!1:(0,k.checkAdjacentItems)(h,(u,f)=>f.original.startLineNumber-u.original.endLineNumberExclusive===f.modified.startLineNumber-u.modified.endLineNumberExclusive&&u.original.endLineNumberExclusive=l[d.modifiedRange.startLineNumber-1].length&&d.originalRange.startColumn-1>=s[d.originalRange.startLineNumber-1].length&&d.originalRange.startLineNumber<=d.originalRange.endLineNumber+h&&d.modifiedRange.startLineNumber<=d.modifiedRange.endLineNumber+h&&(r=1);const u=new y.LineRange(d.originalRange.startLineNumber+r,d.originalRange.endLineNumber+1+h),f=new y.LineRange(d.modifiedRange.startLineNumber+r,d.modifiedRange.endLineNumber+1+h);return new i.DetailedLineRangeMapping(u,f,[d])}e.getLineRangeMapping=c}),define(ne[515],se([1,0,176,211,115,11,5,90,64]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffComputer=e.LegacyLinesDiffComputer=void 0;const v=3;class b{computeDiff(r,h,u){var f;const _=new m(r,h,{maxComputationTime:u.maxComputationTimeMs,shouldIgnoreTrimWhitespace:u.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),E=[];let I=null;for(const T of _.changes){let A;T.originalEndLineNumber===0?A=new w.LineRange(T.originalStartLineNumber+1,T.originalStartLineNumber+1):A=new w.LineRange(T.originalStartLineNumber,T.originalEndLineNumber+1);let R;T.modifiedEndLineNumber===0?R=new w.LineRange(T.modifiedStartLineNumber+1,T.modifiedStartLineNumber+1):R=new w.LineRange(T.modifiedStartLineNumber,T.modifiedEndLineNumber+1);let M=new y.DetailedLineRangeMapping(A,R,(f=T.charChanges)===null||f===void 0?void 0:f.map(N=>new y.RangeMapping(new S.Range(N.originalStartLineNumber,N.originalStartColumn,N.originalEndLineNumber,N.originalEndColumn),new S.Range(N.modifiedStartLineNumber,N.modifiedStartColumn,N.modifiedEndLineNumber,N.modifiedEndColumn))));I&&(I.modified.endLineNumberExclusive===M.modified.startLineNumber||I.original.endLineNumberExclusive===M.original.startLineNumber)&&(M=new y.DetailedLineRangeMapping(I.original.join(M.original),I.modified.join(M.modified),I.innerChanges&&M.innerChanges?I.innerChanges.concat(M.innerChanges):void 0),E.pop()),E.push(M),I=M}return(0,p.assertFn)(()=>(0,p.checkAdjacentItems)(E,(T,A)=>A.original.startLineNumber-T.original.endLineNumberExclusive===A.modified.startLineNumber-T.modified.endLineNumberExclusive&&T.original.endLineNumberExclusive(r===10?"\\n":String.fromCharCode(r))+`-(${this._lineNumbers[h]},${this._columns[h]})`).join(", ")+"]"}_assertIndex(r,h){if(r<0||r>=h.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(r){return r>0&&r===this._lineNumbers.length?this.getEndLineNumber(r-1):(this._assertIndex(r,this._lineNumbers),this._lineNumbers[r])}getEndLineNumber(r){return r===-1?this.getStartLineNumber(r+1):(this._assertIndex(r,this._lineNumbers),this._charCodes[r]===10?this._lineNumbers[r]+1:this._lineNumbers[r])}getStartColumn(r){return r>0&&r===this._columns.length?this.getEndColumn(r-1):(this._assertIndex(r,this._columns),this._columns[r])}getEndColumn(r){return r===-1?this.getStartColumn(r+1):(this._assertIndex(r,this._columns),this._charCodes[r]===10?1:this._columns[r]+1)}}class t{constructor(r,h,u,f,C,_,E,I){this.originalStartLineNumber=r,this.originalStartColumn=h,this.originalEndLineNumber=u,this.originalEndColumn=f,this.modifiedStartLineNumber=C,this.modifiedStartColumn=_,this.modifiedEndLineNumber=E,this.modifiedEndColumn=I}static createFromDiffChange(r,h,u){const f=h.getStartLineNumber(r.originalStart),C=h.getStartColumn(r.originalStart),_=h.getEndLineNumber(r.originalStart+r.originalLength-1),E=h.getEndColumn(r.originalStart+r.originalLength-1),I=u.getStartLineNumber(r.modifiedStart),T=u.getStartColumn(r.modifiedStart),A=u.getEndLineNumber(r.modifiedStart+r.modifiedLength-1),R=u.getEndColumn(r.modifiedStart+r.modifiedLength-1);return new t(f,C,_,E,I,T,A,R)}}function o(l){if(l.length<=1)return l;const r=[l[0]];let h=r[0];for(let u=1,f=l.length;u0&&h.originalLength<20&&h.modifiedLength>0&&h.modifiedLength<20&&C()){const N=u.createCharSequence(r,h.originalStart,h.originalStart+h.originalLength-1),P=f.createCharSequence(r,h.modifiedStart,h.modifiedStart+h.modifiedLength-1);if(N.getElements().length>0&&P.getElements().length>0){let F=a(N,P,C,!0).changes;E&&(F=o(F)),M=[];for(let O=0,B=F.length;O1&&F>1;){const O=M.charCodeAt(P-2),B=N.charCodeAt(F-2);if(O!==B)break;P--,F--}(P>1||F>1)&&this._pushTrimWhitespaceCharChange(f,C+1,1,P,_+1,1,F)}{let P=d(M,1),F=d(N,1);const O=M.length+1,B=N.length+1;for(;P!0;const r=Date.now();return()=>Date.now()-rnew L.LegacyLinesDiffComputer,getDefault:()=>new k.DefaultLinesDiffComputer}}),define(ne[295],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalEditorAction=void 0;class L{constructor(y,D,S,p,w,v,b){this.id=y,this.label=D,this.alias=S,this.metadata=p,this._precondition=w,this._run=v,this._contextKeyService=b}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(y){return this.isSupported()?this._run(y):Promise.resolve(void 0)}}e.InternalEditorAction=L}),define(ne[183],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorType=void 0,e.EditorType={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}}),define(ne[157],se([1,0,183]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCodeEditor=e.isCompositeEditor=e.isDiffEditor=e.isCodeEditor=void 0;function k(p){return p&&typeof p.getEditorType=="function"?p.getEditorType()===L.EditorType.ICodeEditor:!1}e.isCodeEditor=k;function y(p){return p&&typeof p.getEditorType=="function"?p.getEditorType()===L.EditorType.IDiffEditor:!1}e.isDiffEditor=y;function D(p){return!!p&&typeof p=="object"&&typeof p.onDidChangeActiveEditor=="function"}e.isCompositeEditor=D;function S(p){return k(p)?p:y(p)?p.getModifiedEditor():D(p)&&k(p.activeCodeEditor)?p.activeCodeEditor:null}e.getCodeEditor=S}),define(ne[135],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEditorFeatures=e.registerEditorFeature=void 0;const L=[];function k(D){L.push(D)}e.registerEditorFeature=k;function y(){return L.slice(0)}e.getEditorFeatures=y}),define(ne[517],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorTheme=void 0;class L{get type(){return this._theme.type}get value(){return this._theme}constructor(y){this._theme=y}update(y){this._theme=y}getColor(y){return this._theme.getColor(y)}}e.EditorTheme=L}),define(ne[136],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenMetadata=void 0;class L{static getLanguageId(y){return(y&255)>>>0}static getTokenType(y){return(y&768)>>>8}static containsBalancedBrackets(y){return(y&1024)!==0}static getFontStyle(y){return(y&30720)>>>11}static getForeground(y){return(y&16744448)>>>15}static getBackground(y){return(y&4278190080)>>>24}static getClassNameFromMetadata(y){let S="mtk"+this.getForeground(y);const p=this.getFontStyle(y);return p&1&&(S+=" mtki"),p&2&&(S+=" mtkb"),p&4&&(S+=" mtku"),p&8&&(S+=" mtks"),S}static getInlineStyleFromMetadata(y,D){const S=this.getForeground(y),p=this.getFontStyle(y);let w=`color: ${D[S]};`;p&1&&(w+="font-style: italic;"),p&2&&(w+="font-weight: bold;");let v="";return p&4&&(v+=" underline"),p&8&&(v+=" line-through"),v&&(w+=`text-decoration:${v};`),w}static getPresentationFromMetadata(y){const D=this.getForeground(y),S=this.getFontStyle(y);return{foreground:D,italic:!!(S&1),bold:!!(S&2),underline:!!(S&4),strikethrough:!!(S&8)}}}e.TokenMetadata=L}),define(ne[518],se([1,0,39]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeDefaultDocumentColors=void 0;function k(n){const i=[];for(const t of n){const o=Number(t);(o||o===0&&t.replace(/\s/g,"")!=="")&&i.push(o)}return i}function y(n,i,t,o){return{red:n/255,blue:t/255,green:i/255,alpha:o}}function D(n,i){const t=i.index,o=i[0].length;if(!t)return;const g=n.positionAt(t);return{startLineNumber:g.lineNumber,startColumn:g.column,endLineNumber:g.lineNumber,endColumn:g.column+o}}function S(n,i){if(!n)return;const t=L.Color.Format.CSS.parseHex(i);if(t)return{range:n,color:y(t.rgba.r,t.rgba.g,t.rgba.b,t.rgba.a)}}function p(n,i,t){if(!n||i.length!==1)return;const g=i[0].values(),m=k(g);return{range:n,color:y(m[0],m[1],m[2],t?m[3]:1)}}function w(n,i,t){if(!n||i.length!==1)return;const g=i[0].values(),m=k(g),c=new L.Color(new L.HSLA(m[0],m[1]/100,m[2]/100,t?m[3]:1));return{range:n,color:y(c.rgba.r,c.rgba.g,c.rgba.b,c.rgba.a)}}function v(n,i){return typeof n=="string"?[...n.matchAll(i)]:n.findMatches(i)}function b(n){const i=[],o=v(n,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(o.length>0)for(const g of o){const m=g.filter(l=>l!==void 0),c=m[1],d=m[2];if(!d)continue;let s;if(c==="rgb"){const l=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;s=p(D(n,g),v(d,l),!1)}else if(c==="rgba"){const l=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;s=p(D(n,g),v(d,l),!0)}else if(c==="hsl"){const l=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;s=w(D(n,g),v(d,l),!1)}else if(c==="hsla"){const l=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;s=w(D(n,g),v(d,l),!0)}else c==="#"&&(s=S(D(n,g),c+d));s&&i.push(s)}return i}function a(n){return!n||typeof n.getValue!="function"||typeof n.positionAt!="function"?[]:b(n)}e.computeDefaultDocumentColors=a}),define(ne[116],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoClosingPairs=e.StandardAutoClosingPairConditional=e.IndentAction=void 0;var L;(function(S){S[S.None=0]="None",S[S.Indent=1]="Indent",S[S.IndentOutdent=2]="IndentOutdent",S[S.Outdent=3]="Outdent"})(L||(e.IndentAction=L={}));class k{constructor(p){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=p.open,this.close=p.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(p.notIn))for(let w=0,v=p.notIn.length;wi&&(i=d),c>t&&(t=c),s>t&&(t=s)}i++,t++;const o=new k(t,i,0);for(let g=0,m=n.length;g=this._maxCharCode?0:this._states.get(n,i)}}e.StateMachine=y;let D=null;function S(){return D===null&&(D=new y([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),D}let p=null;function w(){if(p===null){p=new L.CharacterClassifier(0);const a=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let i=0;io);if(o>0){const c=i.charCodeAt(o-1),d=i.charCodeAt(m);(c===40&&d===41||c===91&&d===93||c===123&&d===125)&&m--}return{range:{startLineNumber:t,startColumn:o+1,endLineNumber:t,endColumn:m+2},url:i.substring(o,m+1)}}static computeLinks(n,i=S()){const t=w(),o=[];for(let g=1,m=n.getLineCount();g<=m;g++){const c=n.getLineContent(g),d=c.length;let s=0,l=0,r=0,h=1,u=!1,f=!1,C=!1,_=!1;for(;s0&&D.getLanguageId(a-1)===v;)a--;return new k(D,v,a,b+1,D.getStartOffset(a),D.getEndOffset(b))}e.createScopedLineTokens=L;class k{constructor(S,p,w,v,b,a){this._scopedLineTokensBrand=void 0,this._actual=S,this.languageId=p,this._firstTokenIndex=w,this._lastTokenIndex=v,this.firstCharOffset=b,this._lastCharOffset=a}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(S){return this._actual.getLineContent().substring(0,this.firstCharOffset+S)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(S){return this._actual.findTokenIndexAtOffset(S+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(S){return this._actual.getStandardTokenType(S+this._firstTokenIndex)}}e.ScopedLineTokens=k;function y(D){return(D&3)!==0}e.ignoreBracketsInToken=y}),define(ne[76],se([1,0,9,5,23,137,85,209]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isQuote=e.EditOperationResult=e.SingleCursorState=e.PartialViewCursorState=e.PartialModelCursorState=e.CursorState=e.CursorConfiguration=void 0;const w=()=>!0,v=()=>!1,b=c=>c===" "||c===" ";class a{static shouldRecreate(d){return d.hasChanged(144)||d.hasChanged(130)||d.hasChanged(37)||d.hasChanged(77)||d.hasChanged(79)||d.hasChanged(80)||d.hasChanged(6)||d.hasChanged(7)||d.hasChanged(11)||d.hasChanged(9)||d.hasChanged(10)||d.hasChanged(14)||d.hasChanged(128)||d.hasChanged(50)||d.hasChanged(91)}constructor(d,s,l,r){var h;this.languageConfigurationService=r,this._cursorMoveConfigurationBrand=void 0,this._languageId=d;const u=l.options,f=u.get(144),C=u.get(50);this.readOnly=u.get(91),this.tabSize=s.tabSize,this.indentSize=s.indentSize,this.insertSpaces=s.insertSpaces,this.stickyTabStops=u.get(116),this.lineHeight=C.lineHeight,this.typicalHalfwidthCharacterWidth=C.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(f.height/this.lineHeight)-2),this.useTabStops=u.get(128),this.wordSeparators=u.get(130),this.emptySelectionClipboard=u.get(37),this.copyWithSyntaxHighlighting=u.get(25),this.multiCursorMergeOverlapping=u.get(77),this.multiCursorPaste=u.get(79),this.multiCursorLimit=u.get(80),this.autoClosingBrackets=u.get(6),this.autoClosingComments=u.get(7),this.autoClosingQuotes=u.get(11),this.autoClosingDelete=u.get(9),this.autoClosingOvertype=u.get(10),this.autoSurround=u.get(14),this.autoIndent=u.get(12),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(d,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(d,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(d,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(d).getAutoClosingPairs();const _=this.languageConfigurationService.getLanguageConfiguration(d).getSurroundingPairs();if(_)for(const I of _)this.surroundingPairs[I.open]=I.close;const E=this.languageConfigurationService.getLanguageConfiguration(d).comments;this.blockCommentStartToken=(h=E?.blockCommentStartToken)!==null&&h!==void 0?h:null}get electricChars(){var d;if(!this._electricChars){this._electricChars={};const s=(d=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||d===void 0?void 0:d.getElectricCharacters();if(s)for(const l of s)this._electricChars[l]=!0}return this._electricChars}onElectricCharacter(d,s,l){const r=(0,D.createScopedLineTokens)(s,l-1),h=this.languageConfigurationService.getLanguageConfiguration(r.languageId).electricCharacter;return h?h.onElectricCharacter(d,r,l-r.firstCharOffset):null}normalizeIndentation(d){return(0,p.normalizeIndentation)(d,this.indentSize,this.insertSpaces)}_getShouldAutoClose(d,s,l){switch(s){case"beforeWhitespace":return b;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(d,l);case"always":return w;case"never":return v}}_getLanguageDefinedShouldAutoClose(d,s){const l=this.languageConfigurationService.getLanguageConfiguration(d).getAutoCloseBeforeSet(s);return r=>l.indexOf(r)!==-1}visibleColumnFromColumn(d,s){return S.CursorColumns.visibleColumnFromColumn(d.getLineContent(s.lineNumber),s.column,this.tabSize)}columnFromVisibleColumn(d,s,l){const r=S.CursorColumns.columnFromVisibleColumn(d.getLineContent(s),l,this.tabSize),h=d.getLineMinColumn(s);if(ru?u:r}}e.CursorConfiguration=a;class n{static fromModelState(d){return new i(d)}static fromViewState(d){return new t(d)}static fromModelSelection(d){const s=y.Selection.liftSelection(d),l=new o(k.Range.fromPositions(s.getSelectionStart()),0,0,s.getPosition(),0);return n.fromModelState(l)}static fromModelSelections(d){const s=[];for(let l=0,r=d.length;la,o=b>n,g=bn||hb||r0&&b--,D.columnSelect(p,w,v.fromViewLineNumber,v.fromViewVisualColumn,v.toViewLineNumber,b)}static columnSelectRight(p,w,v){let b=0;const a=Math.min(v.fromViewLineNumber,v.toViewLineNumber),n=Math.max(v.fromViewLineNumber,v.toViewLineNumber);for(let t=a;t<=n;t++){const o=w.getLineMaxColumn(t),g=p.visibleColumnFromColumn(w,new k.Position(t,o));b=Math.max(b,g)}let i=v.toViewVisualColumn;return ia.getLineMinColumn(n.lineNumber))return n.delta(void 0,-L.prevCharLength(a.getLineContent(n.lineNumber),n.column-1));if(n.lineNumber>1){const i=n.lineNumber-1;return new y.Position(i,a.getLineMaxColumn(i))}else return n}static leftPositionAtomicSoftTabs(a,n,i){if(n.column<=a.getLineIndentColumn(n.lineNumber)){const t=a.getLineMinColumn(n.lineNumber),o=a.getLineContent(n.lineNumber),g=S.AtomicTabMoveOperations.atomicPosition(o,n.column-1,i,0);if(g!==-1&&g+1>=t)return new y.Position(n.lineNumber,g+1)}return this.leftPosition(a,n)}static left(a,n,i){const t=a.stickyTabStops?v.leftPositionAtomicSoftTabs(n,i,a.tabSize):v.leftPosition(n,i);return new w(t.lineNumber,t.column,0)}static moveLeft(a,n,i,t,o){let g,m;if(i.hasSelection()&&!t)g=i.selection.startLineNumber,m=i.selection.startColumn;else{const c=i.position.delta(void 0,-(o-1)),d=n.normalizePosition(v.clipPositionColumn(c,n),0),s=v.left(a,n,d);g=s.lineNumber,m=s.column}return i.move(t,g,m,0)}static clipPositionColumn(a,n){return new y.Position(a.lineNumber,v.clipRange(a.column,n.getLineMinColumn(a.lineNumber),n.getLineMaxColumn(a.lineNumber)))}static clipRange(a,n,i){return ai?i:a}static rightPosition(a,n,i){return is?(i=s,m?t=n.getLineMaxColumn(i):t=Math.min(n.getLineMaxColumn(i),t)):t=a.columnFromVisibleColumn(n,i,d),h?o=0:o=d-k.CursorColumns.visibleColumnFromColumn(n.getLineContent(i),t,a.tabSize),c!==void 0){const u=new y.Position(i,t),f=n.normalizePosition(u,c);o=o+(t-f.column),i=f.lineNumber,t=f.column}return new w(i,t,o)}static down(a,n,i,t,o,g,m){return this.vertical(a,n,i,t,o,i+g,m,4)}static moveDown(a,n,i,t,o){let g,m;i.hasSelection()&&!t?(g=i.selection.endLineNumber,m=i.selection.endColumn):(g=i.position.lineNumber,m=i.position.column);let c=0,d;do if(d=v.down(a,n,g+c,m,i.leftoverVisibleColumns,o,!0),n.normalizePosition(new y.Position(d.lineNumber,d.column),2).lineNumber>g)break;while(c++<10&&g+c1&&this._isBlankLine(n,o);)o--;for(;o>1&&!this._isBlankLine(n,o);)o--;return i.move(t,o,n.getLineMinColumn(o),0)}static moveToNextBlankLine(a,n,i,t){const o=n.getLineCount();let g=i.position.lineNumber;for(;g=r.length+1)return!1;const h=r.charAt(l.column-2),u=t.get(h);if(!u)return!1;if((0,y.isQuote)(h)){if(i==="never")return!1}else if(n==="never")return!1;const f=r.charAt(l.column-1);let C=!1;for(const _ of u)_.open===h&&_.close===f&&(C=!0);if(!C)return!1;if(a==="auto"){let _=!1;for(let E=0,I=m.length;E1){const o=n.getLineContent(t.lineNumber),g=L.firstNonWhitespaceIndex(o),m=g===-1?o.length+1:g+1;if(t.column<=m){const c=i.visibleColumnFromColumn(n,t),d=D.CursorColumns.prevIndentTabStop(c,i.indentSize),s=i.columnFromVisibleColumn(n,t.lineNumber,d);return new p.Range(t.lineNumber,s,t.lineNumber,t.column)}}return p.Range.fromPositions(v.getPositionAfterDeleteLeft(t,n),t)}static getPositionAfterDeleteLeft(a,n){if(a.column>1){const i=L.getLeftDeleteOffset(a.column-1,n.getLineContent(a.lineNumber));return a.with(void 0,i+1)}else if(a.lineNumber>1){const i=a.lineNumber-1;return new w.Position(i,n.getLineMaxColumn(i))}else return a}static cut(a,n,i){const t=[];let o=null;i.sort((g,m)=>w.Position.compare(g.getStartPosition(),m.getEndPosition()));for(let g=0,m=i.length;g1&&o?.endLineNumber!==d.lineNumber?(s=d.lineNumber-1,l=n.getLineMaxColumn(d.lineNumber-1),r=d.lineNumber,h=n.getLineMaxColumn(d.lineNumber)):(s=d.lineNumber,l=1,r=d.lineNumber,h=n.getLineMaxColumn(d.lineNumber));const u=new p.Range(s,l,r,h);o=u,u.isEmpty()?t[g]=null:t[g]=new k.ReplaceCommand(u,"")}else t[g]=null;else t[g]=new k.ReplaceCommand(c,"")}return new y.EditOperationResult(0,t,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}e.DeleteOperations=v}),define(ne[184],se([1,0,11,76,213,154,9,5]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordPartOperations=e.WordOperations=void 0;class w{static _createWord(n,i,t,o,g){return{start:o,end:g,wordType:i,nextCharClass:t}}static _findPreviousWordOnLine(n,i,t){const o=i.getLineContent(t.lineNumber);return this._doFindPreviousWordOnLine(o,n,t)}static _doFindPreviousWordOnLine(n,i,t){let o=0;for(let g=t.column-2;g>=0;g--){const m=n.charCodeAt(g),c=i.get(m);if(c===0){if(o===2)return this._createWord(n,o,c,g+1,this._findEndOfWord(n,i,o,g+1));o=1}else if(c===2){if(o===1)return this._createWord(n,o,c,g+1,this._findEndOfWord(n,i,o,g+1));o=2}else if(c===1&&o!==0)return this._createWord(n,o,c,g+1,this._findEndOfWord(n,i,o,g+1))}return o!==0?this._createWord(n,o,1,0,this._findEndOfWord(n,i,o,0)):null}static _findEndOfWord(n,i,t,o){const g=n.length;for(let m=o;m=0;g--){const m=n.charCodeAt(g),c=i.get(m);if(c===1||t===1&&c===2||t===2&&c===0)return g+1}return 0}static moveWordLeft(n,i,t,o){let g=t.lineNumber,m=t.column;m===1&&g>1&&(g=g-1,m=i.getLineMaxColumn(g));let c=w._findPreviousWordOnLine(n,i,new S.Position(g,m));if(o===0)return new S.Position(g,c?c.start+1:1);if(o===1)return c&&c.wordType===2&&c.end-c.start===1&&c.nextCharClass===0&&(c=w._findPreviousWordOnLine(n,i,new S.Position(g,c.start+1))),new S.Position(g,c?c.start+1:1);if(o===3){for(;c&&c.wordType===2;)c=w._findPreviousWordOnLine(n,i,new S.Position(g,c.start+1));return new S.Position(g,c?c.start+1:1)}return c&&m<=c.end+1&&(c=w._findPreviousWordOnLine(n,i,new S.Position(g,c.start+1))),new S.Position(g,c?c.end+1:1)}static _moveWordPartLeft(n,i){const t=i.lineNumber,o=n.getLineMaxColumn(t);if(i.column===1)return t>1?new S.Position(t-1,n.getLineMaxColumn(t-1)):i;const g=n.getLineContent(t);for(let m=i.column-1;m>1;m--){const c=g.charCodeAt(m-2),d=g.charCodeAt(m-1);if(c===95&&d!==95)return new S.Position(t,m);if(c===45&&d!==45)return new S.Position(t,m);if((L.isLowerAsciiLetter(c)||L.isAsciiDigit(c))&&L.isUpperAsciiLetter(d))return new S.Position(t,m);if(L.isUpperAsciiLetter(c)&&L.isUpperAsciiLetter(d)&&m+1=d.start+1&&(d=w._findNextWordOnLine(n,i,new S.Position(g,d.end+1))),d?m=d.start+1:m=i.getLineMaxColumn(g);return new S.Position(g,m)}static _moveWordPartRight(n,i){const t=i.lineNumber,o=n.getLineMaxColumn(t);if(i.column===o)return t1?s=1:(d--,s=o.getLineMaxColumn(d)):(l&&s<=l.end+1&&(l=w._findPreviousWordOnLine(t,o,new S.Position(d,l.start+1))),l?s=l.end+1:s>1?s=1:(d--,s=o.getLineMaxColumn(d))),new p.Range(d,s,c.lineNumber,c.column)}static deleteInsideWord(n,i,t){if(!t.isEmpty())return t;const o=new S.Position(t.positionLineNumber,t.positionColumn),g=this._deleteInsideWordWhitespace(i,o);return g||this._deleteInsideWordDetermineDeleteRange(n,i,o)}static _charAtIsWhitespace(n,i){const t=n.charCodeAt(i);return t===32||t===9}static _deleteInsideWordWhitespace(n,i){const t=n.getLineContent(i.lineNumber),o=t.length;if(o===0)return null;let g=Math.max(i.column-2,0);if(!this._charAtIsWhitespace(t,g))return null;let m=Math.min(i.column-1,o-1);if(!this._charAtIsWhitespace(t,m))return null;for(;g>0&&this._charAtIsWhitespace(t,g-1);)g--;for(;m+11?new p.Range(t.lineNumber-1,i.getLineMaxColumn(t.lineNumber-1),t.lineNumber,1):t.lineNumberr.start+1<=t.column&&t.column<=r.end+1,c=(r,h)=>(r=Math.min(r,t.column),h=Math.max(h,t.column),new p.Range(t.lineNumber,r,t.lineNumber,h)),d=r=>{let h=r.start+1,u=r.end+1,f=!1;for(;u-11&&this._charAtIsWhitespace(o,h-2);)h--;return c(h,u)},s=w._findPreviousWordOnLine(n,i,t);if(s&&m(s))return d(s);const l=w._findNextWordOnLine(n,i,t);return l&&m(l)?d(l):s&&l?c(s.end+1,l.start+1):s?c(s.start+1,s.end+1):l?c(l.start+1,l.end+1):c(1,g+1)}static _deleteWordPartLeft(n,i){if(!i.isEmpty())return i;const t=i.getPosition(),o=w._moveWordPartLeft(n,t);return new p.Range(t.lineNumber,t.column,o.lineNumber,o.column)}static _findFirstNonWhitespaceChar(n,i){const t=n.length;for(let o=i;o=h.start+1&&(h=w._findNextWordOnLine(t,o,new S.Position(d,h.end+1))),h?s=h.start+1:s!!n)}}),define(ne[214],se([1,0,20,76,212,184,9,5]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorMove=e.CursorMoveCommands=void 0;class w{static addCursorDown(a,n,i){const t=[];let o=0;for(let g=0,m=n.length;gd&&(s=d,l=a.model.getLineMaxColumn(s)),k.CursorState.fromModelState(new k.SingleCursorState(new p.Range(g.lineNumber,1,s,l),2,0,new S.Position(s,l),0))}const c=n.modelState.selectionStart.getStartPosition().lineNumber;if(g.lineNumberc){const d=a.getLineCount();let s=m.lineNumber+1,l=1;return s>d&&(s=d,l=a.getLineMaxColumn(s)),k.CursorState.fromViewState(n.viewState.move(!0,s,l,0))}else{const d=n.modelState.selectionStart.getEndPosition();return k.CursorState.fromModelState(n.modelState.move(!0,d.lineNumber,d.column,0))}}static word(a,n,i,t){const o=a.model.validatePosition(t);return k.CursorState.fromModelState(D.WordOperations.word(a.cursorConfig,a.model,n.modelState,i,o))}static cancelSelection(a,n){if(!n.modelState.hasSelection())return new k.CursorState(n.modelState,n.viewState);const i=n.viewState.position.lineNumber,t=n.viewState.position.column;return k.CursorState.fromViewState(new k.SingleCursorState(new p.Range(i,t,i,t),0,0,new S.Position(i,t),0))}static moveTo(a,n,i,t,o){if(i){if(n.modelState.selectionStartKind===1)return this.word(a,n,i,t);if(n.modelState.selectionStartKind===2)return this.line(a,n,i,t,o)}const g=a.model.validatePosition(t),m=o?a.coordinatesConverter.validateViewPosition(new S.Position(o.lineNumber,o.column),g):a.coordinatesConverter.convertModelPositionToViewPosition(g);return k.CursorState.fromViewState(n.viewState.move(i,m.lineNumber,m.column,0))}static simpleMove(a,n,i,t,o,g){switch(i){case 0:return g===4?this._moveHalfLineLeft(a,n,t):this._moveLeft(a,n,t,o);case 1:return g===4?this._moveHalfLineRight(a,n,t):this._moveRight(a,n,t,o);case 2:return g===2?this._moveUpByViewLines(a,n,t,o):this._moveUpByModelLines(a,n,t,o);case 3:return g===2?this._moveDownByViewLines(a,n,t,o):this._moveDownByModelLines(a,n,t,o);case 4:return g===2?n.map(m=>k.CursorState.fromViewState(y.MoveOperations.moveToPrevBlankLine(a.cursorConfig,a,m.viewState,t))):n.map(m=>k.CursorState.fromModelState(y.MoveOperations.moveToPrevBlankLine(a.cursorConfig,a.model,m.modelState,t)));case 5:return g===2?n.map(m=>k.CursorState.fromViewState(y.MoveOperations.moveToNextBlankLine(a.cursorConfig,a,m.viewState,t))):n.map(m=>k.CursorState.fromModelState(y.MoveOperations.moveToNextBlankLine(a.cursorConfig,a.model,m.modelState,t)));case 6:return this._moveToViewMinColumn(a,n,t);case 7:return this._moveToViewFirstNonWhitespaceColumn(a,n,t);case 8:return this._moveToViewCenterColumn(a,n,t);case 9:return this._moveToViewMaxColumn(a,n,t);case 10:return this._moveToViewLastNonWhitespaceColumn(a,n,t);default:return null}}static viewportMove(a,n,i,t,o){const g=a.getCompletelyVisibleViewRange(),m=a.coordinatesConverter.convertViewRangeToModelRange(g);switch(i){case 11:{const c=this._firstLineNumberInRange(a.model,m,o),d=a.model.getLineFirstNonWhitespaceColumn(c);return[this._moveToModelPosition(a,n[0],t,c,d)]}case 13:{const c=this._lastLineNumberInRange(a.model,m,o),d=a.model.getLineFirstNonWhitespaceColumn(c);return[this._moveToModelPosition(a,n[0],t,c,d)]}case 12:{const c=Math.round((m.startLineNumber+m.endLineNumber)/2),d=a.model.getLineFirstNonWhitespaceColumn(c);return[this._moveToModelPosition(a,n[0],t,c,d)]}case 14:{const c=[];for(let d=0,s=n.length;di.endLineNumber-1?g=i.endLineNumber-1:ok.CursorState.fromViewState(y.MoveOperations.moveLeft(a.cursorConfig,a,o.viewState,i,t)))}static _moveHalfLineLeft(a,n,i){const t=[];for(let o=0,g=n.length;ok.CursorState.fromViewState(y.MoveOperations.moveRight(a.cursorConfig,a,o.viewState,i,t)))}static _moveHalfLineRight(a,n,i){const t=[];for(let o=0,g=n.length;oa.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(a=>a.asCursorState())}getViewPositions(){return this.cursors.map(a=>a.viewState.position)}getTopMostViewPosition(){return(0,k.findFirstMinBy)(this.cursors,(0,L.compareBy)(a=>a.viewState.position,S.Position.compare)).viewState.position}getBottomMostViewPosition(){return(0,k.findLastMaxBy)(this.cursors,(0,L.compareBy)(a=>a.viewState.position,S.Position.compare)).viewState.position}getSelections(){return this.cursors.map(a=>a.modelState.selection)}getViewSelections(){return this.cursors.map(a=>a.viewState.selection)}setSelections(a){this.setStates(y.CursorState.fromModelSelections(a))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(a){a!==null&&(this.cursors[0].setState(this.context,a[0].modelState,a[0].viewState),this._setSecondaryStates(a.slice(1)))}_setSecondaryStates(a){const n=this.cursors.length-1,i=a.length;if(ni){const t=n-i;for(let o=0;o=a+1&&this.lastAddedCursorIndex--,this.cursors[a+1].dispose(this.context),this.cursors.splice(a+1,1)}normalize(){if(this.cursors.length===1)return;const a=this.cursors.slice(0),n=[];for(let i=0,t=a.length;ii.selection,p.Range.compareRangesUsingStarts));for(let i=0;il&&f.index--;a.splice(l,1),n.splice(s,1),this._removeSecondaryCursor(l-1),i--}}}}e.CursorCollection=v}),define(ne[523],se([1,0,116]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterPairSupport=void 0;class k{constructor(D){if(D.autoClosingPairs?this._autoClosingPairs=D.autoClosingPairs.map(S=>new L.StandardAutoClosingPairConditional(S)):D.brackets?this._autoClosingPairs=D.brackets.map(S=>new L.StandardAutoClosingPairConditional({open:S[0],close:S[1]})):this._autoClosingPairs=[],D.__electricCharacterSupport&&D.__electricCharacterSupport.docComment){const S=D.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new L.StandardAutoClosingPairConditional({open:S.open,close:S.close||""}))}this._autoCloseBeforeForQuotes=typeof D.autoCloseBefore=="string"?D.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof D.autoCloseBefore=="string"?D.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=D.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(D){return D?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}e.CharacterPairSupport=k,k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> + `,k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> + `}),define(ne[524],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentRulesSupport=void 0;function L(y){return y.global&&(y.lastIndex=0),!0}class k{constructor(D){this._indentationRules=D}shouldIncrease(D){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&L(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(D))}shouldDecrease(D){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&L(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(D))}shouldIndentNextLine(D){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&L(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(D))}shouldIgnore(D){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&L(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(D))}getIndentMetadata(D){let S=0;return this.shouldIncrease(D)&&(S+=1),this.shouldDecrease(D)&&(S+=2),this.shouldIndentNextLine(D)&&(S+=4),this.shouldIgnore(D)&&(S+=8),S}}e.IndentRulesSupport=k}),define(ne[525],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BasicInplaceReplace=void 0;class L{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(y,D,S,p,w){if(y&&D){const v=this.doNavigateValueSet(D,w);if(v)return{range:y,value:v}}if(S&&p){const v=this.doNavigateValueSet(p,w);if(v)return{range:S,value:v}}return null}doNavigateValueSet(y,D){const S=this.numberReplace(y,D);return S!==null?S:this.textReplace(y,D)}numberReplace(y,D){const S=Math.pow(10,y.length-(y.lastIndexOf(".")+1));let p=Number(y);const w=parseFloat(y);return!isNaN(p)&&!isNaN(w)&&p===w?p===0&&!D?null:(p=Math.floor(p*S),p+=D?S:-S,String(p/S)):null}textReplace(y,D){return this.valueSetsReplace(this._defaultValueSet,y,D)}valueSetsReplace(y,D,S){let p=null;for(let w=0,v=y.length;p===null&&w=0?(p+=S?1:-1,p<0?p=y.length-1:p%=y.length,y[p]):null}}e.BasicInplaceReplace=L,L.INSTANCE=new L}),define(ne[526],se([1,0,274]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClosingBracketKind=e.OpeningBracketKind=e.BracketKindBase=e.LanguageBracketsConfiguration=void 0;class k{constructor(v,b){this.languageId=v;const a=b.brackets?y(b.brackets):[],n=new L.CachedFunction(o=>{const g=new Set;return{info:new S(this,o,g),closing:g}}),i=new L.CachedFunction(o=>{const g=new Set,m=new Set;return{info:new p(this,o,g,m),opening:g,openingColorized:m}});for(const[o,g]of a){const m=n.get(o),c=i.get(g);m.closing.add(c.info),c.opening.add(m.info)}const t=b.colorizedBracketPairs?y(b.colorizedBracketPairs):a.filter(o=>!(o[0]==="<"&&o[1]===">"));for(const[o,g]of t){const m=n.get(o),c=i.get(g);m.closing.add(c.info),c.openingColorized.add(m.info),c.opening.add(m.info)}this._openingBrackets=new Map([...n.cachedValues].map(([o,g])=>[o,g.info])),this._closingBrackets=new Map([...i.cachedValues].map(([o,g])=>[o,g.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(v){return this._openingBrackets.get(v)}getClosingBracketInfo(v){return this._closingBrackets.get(v)}getBracketInfo(v){return this.getOpeningBracketInfo(v)||this.getClosingBracketInfo(v)}}e.LanguageBracketsConfiguration=k;function y(w){return w.filter(([v,b])=>v!==""&&b!=="")}class D{constructor(v,b){this.config=v,this.bracketText=b}get languageId(){return this.config.languageId}}e.BracketKindBase=D;class S extends D{constructor(v,b,a){super(v,b),this.openedBrackets=a,this.isOpeningBracket=!0}}e.OpeningBracketKind=S;class p extends D{constructor(v,b,a,n){super(v,b),this.openingBrackets=a,this.openingColorizedBrackets=n,this.isOpeningBracket=!1}closes(v){return v.config!==this.config?!1:this.openingBrackets.has(v)}closesColorized(v){return v.config!==this.config?!1:this.openingColorizedBrackets.has(v)}getOpeningBrackets(){return[...this.openingBrackets]}}e.ClosingBracketKind=p}),define(ne[527],se([1,0,12,11,116]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OnEnterSupport=void 0;class D{constructor(p){p=p||{},p.brackets=p.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],p.brackets.forEach(w=>{const v=D._createOpenBracketRegExp(w[0]),b=D._createCloseBracketRegExp(w[1]);v&&b&&this._brackets.push({open:w[0],openRegExp:v,close:w[1],closeRegExp:b})}),this._regExpRules=p.onEnterRules||[]}onEnter(p,w,v,b){if(p>=3)for(let a=0,n=this._regExpRules.length;ao.reg?(o.reg.lastIndex=0,o.reg.test(o.text)):!0))return i.action}if(p>=2&&v.length>0&&b.length>0)for(let a=0,n=this._brackets.length;a=2&&v.length>0){for(let a=0,n=this._brackets.length;a{const _=a(f.token,C.token);return _!==0?_:f.index-C.index});let m=0,c="000000",d="ffffff";for(;o.length>=1&&o[0].token==="";){const f=o.shift();f.fontStyle!==-1&&(m=f.fontStyle),f.foreground!==null&&(c=f.foreground),f.background!==null&&(d=f.background)}const s=new p;for(const f of g)s.getId(f);const l=s.getId(c),r=s.getId(d),h=new n(m,l,r),u=new i(h);for(let f=0,C=o.length;f"u"){const d=this._match(m),s=b(m);c=(d.metadata|s<<8)>>>0,this._cache.set(m,c)}return(c|g<<0)>>>0}}e.TokenTheme=w;const v=/\b(comment|string|regex|regexp)\b/;function b(o){const g=o.match(v);if(!g)return 0;switch(g[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}e.toStandardTokenType=b;function a(o,g){return og?1:0}e.strcmp=a;class n{constructor(g,m,c){this._themeTrieElementRuleBrand=void 0,this._fontStyle=g,this._foreground=m,this._background=c,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new n(this._fontStyle,this._foreground,this._background)}acceptOverwrite(g,m,c){g!==-1&&(this._fontStyle=g),m!==0&&(this._foreground=m),c!==0&&(this._background=c),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}e.ThemeTrieElementRule=n;class i{constructor(g){this._themeTrieElementBrand=void 0,this._mainRule=g,this._children=new Map}match(g){if(g==="")return this._mainRule;const m=g.indexOf(".");let c,d;m===-1?(c=g,d=""):(c=g.substring(0,m),d=g.substring(m+1));const s=this._children.get(c);return typeof s<"u"?s.match(d):this._mainRule}insert(g,m,c,d){if(g===""){this._mainRule.acceptOverwrite(m,c,d);return}const s=g.indexOf(".");let l,r;s===-1?(l=g,r=""):(l=g.substring(0,s),r=g.substring(s+1));let h=this._children.get(l);typeof h>"u"&&(h=new i(this._mainRule.clone()),this._children.set(l,h)),h.insert(r,m,c,d)}}e.ThemeTrieElement=i;function t(o){const g=[];for(let m=1,c=o.length;m=p&&(u=u-r%p),u}e.lengthAdd=n;function i(r,h){return r.reduce((u,f)=>n(u,h(f)),e.lengthZero)}e.sumLengths=i;function t(r,h){return r===h}e.lengthEquals=t;function o(r,h){const u=r,f=h;if(f-u<=0)return e.lengthZero;const _=Math.floor(u/p),E=Math.floor(f/p),I=f-E*p;if(_===E){const T=u-_*p;return w(0,I-T)}else return w(E-_,I)}e.lengthDiffNonNegative=o;function g(r,h){return r=h}e.lengthGreaterThanEqual=c;function d(r){return w(r.lineNumber-1,r.column-1)}e.positionToLength=d;function s(r,h){const u=r,f=Math.floor(u/p),C=u-f*p,_=h,E=Math.floor(_/p),I=_-E*p;return new k.Range(f+1,C+1,E+1,I+1)}e.lengthsToRange=s;function l(r){const h=(0,L.splitLines)(r);return w(h.length-1,h[h.length-1].length)}e.lengthOfString=l}),define(ne[185],se([1,0,5,92]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BeforeEditPositionMapper=e.TextEditInfo=void 0;class y{static fromModelContentChanges(w){return w.map(b=>{const a=L.Range.lift(b.range);return new y((0,k.positionToLength)(a.getStartPosition()),(0,k.positionToLength)(a.getEndPosition()),(0,k.lengthOfString)(b.text))}).reverse()}constructor(w,v,b){this.startOffset=w,this.endOffset=v,this.newLength=b}toString(){return`[${(0,k.lengthToObj)(this.startOffset)}...${(0,k.lengthToObj)(this.endOffset)}) -> ${(0,k.lengthToObj)(this.newLength)}`}}e.TextEditInfo=y;class D{constructor(w){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=w.map(v=>S.from(v))}getOffsetBeforeChange(w){return this.adjustNextEdit(w),this.translateCurToOld(w)}getDistanceToNextChange(w){this.adjustNextEdit(w);const v=this.edits[this.nextEditIdx],b=v?this.translateOldToCur(v.offsetObj):null;return b===null?null:(0,k.lengthDiffNonNegative)(w,b)}translateOldToCur(w){return w.lineCount===this.deltaLineIdxInOld?(0,k.toLength)(w.lineCount+this.deltaOldToNewLineCount,w.columnCount+this.deltaOldToNewColumnCount):(0,k.toLength)(w.lineCount+this.deltaOldToNewLineCount,w.columnCount)}translateCurToOld(w){const v=(0,k.lengthToObj)(w);return v.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,k.toLength)(v.lineCount-this.deltaOldToNewLineCount,v.columnCount-this.deltaOldToNewColumnCount):(0,k.toLength)(v.lineCount-this.deltaOldToNewLineCount,v.columnCount)}adjustNextEdit(w){for(;this.nextEditIdx!0)||[];return n&&d.unshift(n),d}const c=[];for(;n&&!(0,y.lengthIsZero)(m);){const[d,s]=n.splitAt(m);c.push(d),m=(0,y.lengthDiffNonNegative)(d.lengthAfter,m),n=s??b.dequeue()}return(0,y.lengthIsZero)(m)||c.push(new S(!1,m,m)),c}const t=[];function o(m,c,d){if(t.length>0&&(0,y.lengthEquals)(t[t.length-1].endOffset,m)){const s=t[t.length-1];t[t.length-1]=new k.TextEditInfo(s.startOffset,c,(0,y.lengthAdd)(s.newLength,d))}else t.push({startOffset:m,endOffset:c,newLength:d})}let g=y.lengthZero;for(const m of a){const c=i(m.lengthBefore);if(m.modified){const d=(0,y.sumLengths)(c,l=>l.lengthBefore),s=(0,y.lengthAdd)(g,d);o(g,s,m.lengthAfter),g=s}else for(const d of c){const s=g;g=(0,y.lengthAdd)(g,d.lengthBefore),d.modified&&o(s,g,d.lengthAfter)}}return t}e.combineTextEditInfos=D;class S{constructor(v,b,a){this.modified=v,this.lengthBefore=b,this.lengthAfter=a}splitAt(v){const b=(0,y.lengthDiffNonNegative)(v,this.lengthAfter);return(0,y.lengthEquals)(b,y.lengthZero)?[this,void 0]:this.modified?[new S(this.modified,this.lengthBefore,v),new S(this.modified,y.lengthZero,b)]:[new S(this.modified,v,v),new S(this.modified,b,b)]}toString(){return`${this.modified?"M":"U"}:${(0,y.lengthToObj)(this.lengthBefore)} -> ${(0,y.lengthToObj)(this.lengthAfter)}`}}function p(w){const v=[];let b=y.lengthZero;for(const a of w){const n=(0,y.lengthDiffNonNegative)(b,a.startOffset);(0,y.lengthIsZero)(n)||v.push(new S(!1,n,n));const i=(0,y.lengthDiffNonNegative)(a.startOffset,a.endOffset);v.push(new S(!0,i,a.newLength)),b=a.endOffset}return v}}),define(ne[529],se([1,0,92]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeReader=void 0;class k{constructor(p){this.lastOffset=L.lengthZero,this.nextNodes=[p],this.offsets=[L.lengthZero],this.idxs=[]}readLongestNodeAt(p,w){if((0,L.lengthLessThan)(p,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=p;;){const v=D(this.nextNodes);if(!v)return;const b=D(this.offsets);if((0,L.lengthLessThan)(p,b))return;if((0,L.lengthLessThan)(b,p))if((0,L.lengthAdd)(b,v.length)<=p)this.nextNodeAfterCurrent();else{const a=y(v);a!==-1?(this.nextNodes.push(v.getChild(a)),this.offsets.push(b),this.idxs.push(a)):this.nextNodeAfterCurrent()}else{if(w(v))return this.nextNodeAfterCurrent(),v;{const a=y(v);if(a===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(v.getChild(a)),this.offsets.push(b),this.idxs.push(a)}}}}nextNodeAfterCurrent(){for(;;){const p=D(this.offsets),w=D(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const v=D(this.nextNodes),b=y(v,this.idxs[this.idxs.length-1]);if(b!==-1){this.nextNodes.push(v.getChild(b)),this.offsets.push((0,L.lengthAdd)(p,w.length)),this.idxs[this.idxs.length-1]=b;break}else this.idxs.pop()}}}e.NodeReader=k;function y(S,p=-1){for(;;){if(p++,p>=S.childrenLength)return-1;if(S.getChild(p))return p}}function D(S){return S.length>0?S[S.length-1]:void 0}}),define(ne[138],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DenseKeyProvider=e.identityKeyProvider=e.SmallImmutableSet=void 0;const L=[];class k{static create(S,p){if(S<=128&&p.length===0){let w=k.cache[S];return w||(w=new k(S,p),k.cache[S]=w),w}return new k(S,p)}static getEmpty(){return this.empty}constructor(S,p){this.items=S,this.additionalItems=p}add(S,p){const w=p.getKey(S);let v=w>>5;if(v===0){const a=1<=v.length)return null;const o=b,g=v[o].listHeight;for(b++;b=2?y(o===0&&b===v.length?v:v.slice(o,b),!1):v[o]}let n=a(),i=a();if(!i)return n;for(let o=a();o;o=a())D(n,i)<=D(i,o)?(n=S(n,i),i=o):i=S(i,o);return S(n,i)}e.concat23Trees=k;function y(v,b=!1){if(v.length===0)return null;if(v.length===1)return v[0];let a=v.length;for(;a>3;){const n=a>>1;for(let i=0;i=3?v[2]:null,b)}e.concat23TreesOfSameHeight=y;function D(v,b){return Math.abs(v.listHeight-b.listHeight)}function S(v,b){return v.listHeight===b.listHeight?L.ListAstNode.create23(v,b,null,!1):v.listHeight>b.listHeight?p(v,b):w(b,v)}function p(v,b){v=v.toMutable();let a=v;const n=[];let i;for(;;){if(b.listHeight===a.listHeight){i=b;break}if(a.kind!==4)throw new Error("unexpected");n.push(a),a=a.makeLastElementMutable()}for(let t=n.length-1;t>=0;t--){const o=n[t];i?o.childrenLength>=3?i=L.ListAstNode.create23(o.unappendChild(),i,null,!1):(o.appendChildOfSameHeight(i),i=void 0):o.handleChildrenChanged()}return i?L.ListAstNode.create23(v,i,null,!1):v}function w(v,b){v=v.toMutable();let a=v;const n=[];for(;b.listHeight!==a.listHeight;){if(a.kind!==4)throw new Error("unexpected");n.push(a),a=a.makeFirstElementMutable()}let i=b;for(let t=n.length-1;t>=0;t--){const o=n[t];i?o.childrenLength>=3?i=L.ListAstNode.create23(i,o.unprependChild(),null,!1):(o.prependChildOfSameHeight(i),i=void 0):o.handleChildrenChanged()}return i?L.ListAstNode.create23(i,v,null,!1):v}}),define(ne[297],se([1,0,186,185,138,92,530,529]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseDocument=void 0;function w(b,a,n,i){return new v(b,a,n,i).parseDocument()}e.parseDocument=w;class v{constructor(a,n,i,t){if(this.tokenizer=a,this.createImmutableLists=t,this._itemsConstructed=0,this._itemsFromCache=0,i&&t)throw new Error("Not supported");this.oldNodeReader=i?new p.NodeReader(i):void 0,this.positionMapper=new k.BeforeEditPositionMapper(n)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let a=this.parseList(y.SmallImmutableSet.getEmpty(),0);return a||(a=L.ListAstNode.getEmpty()),a}parseList(a,n){const i=[];for(;;){let o=this.tryReadChildFromCache(a);if(!o){const g=this.tokenizer.peek();if(!g||g.kind===2&&g.bracketIds.intersects(a))break;o=this.parseChild(a,n+1)}o.kind===4&&o.childrenLength===0||i.push(o)}return this.oldNodeReader?(0,S.concat23Trees)(i):(0,S.concat23TreesOfSameHeight)(i,this.createImmutableLists)}tryReadChildFromCache(a){if(this.oldNodeReader){const n=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(n===null||!(0,D.lengthIsZero)(n)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),t=>n!==null&&!(0,D.lengthLessThan)(t.length,n)?!1:t.canBeReused(a));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(a,n){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new L.InvalidBracketAstNode(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(n>300)return new L.TextAstNode(i.length);const t=a.merge(i.bracketIds),o=this.parseList(t,n+1),g=this.tokenizer.peek();return g&&g.kind===2&&(g.bracketId===i.bracketId||g.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),L.PairAstNode.create(i.astNode,o,g.astNode)):L.PairAstNode.create(i.astNode,o,null)}default:throw new Error("unexpected")}}}}),define(ne[215],se([1,0,12,136,186,92,138]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FastTokenizer=e.TextBufferTokenizer=e.Token=void 0;class p{constructor(n,i,t,o,g){this.length=n,this.kind=i,this.bracketId=t,this.bracketIds=o,this.astNode=g}}e.Token=p;class w{constructor(n,i){this.textModel=n,this.bracketTokens=i,this.reader=new v(this.textModel,this.bracketTokens),this._offset=D.lengthZero,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=n.getLineCount(),this.textBufferLastLineLength=n.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,D.toLength)(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(n){this.didPeek=!1,this._offset=(0,D.lengthAdd)(this._offset,n);const i=(0,D.lengthToObj)(this._offset);this.reader.setPosition(i.lineCount,i.columnCount)}read(){let n;return this.peeked?(this.didPeek=!1,n=this.peeked):n=this.reader.read(),n&&(this._offset=(0,D.lengthAdd)(this._offset,n.length)),n}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}e.TextBufferTokenizer=w;class v{constructor(n,i){this.textModel=n,this.bracketTokens=i,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=n.getLineCount(),this.textBufferLastLineLength=n.getLineLength(this.textBufferLineCount)}setPosition(n,i){n===this.lineIdx?(this.lineCharOffset=i,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=n,this.lineCharOffset=i,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const g=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,D.lengthGetColumnCountIfZeroLineCount)(g.length),g}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const n=this.lineIdx,i=this.lineCharOffset;let t=0;for(;;){const g=this.lineTokens,m=g.getCount();let c=null;if(this.lineTokenOffset1e3))break;if(t>1500)break}const o=(0,D.lengthDiff)(n,i,this.lineIdx,this.lineCharOffset);return new p(o,0,-1,S.SmallImmutableSet.getEmpty(),new y.TextAstNode(o))}}class b{constructor(n,i){this.text=n,this._offset=D.lengthZero,this.idx=0;const t=i.getRegExpStr(),o=t?new RegExp(t+`| +`,"gi"):null,g=[];let m,c=0,d=0,s=0,l=0;const r=[];for(let f=0;f<60;f++)r.push(new p((0,D.toLength)(0,f),0,-1,S.SmallImmutableSet.getEmpty(),new y.TextAstNode((0,D.toLength)(0,f))));const h=[];for(let f=0;f<60;f++)h.push(new p((0,D.toLength)(1,f),0,-1,S.SmallImmutableSet.getEmpty(),new y.TextAstNode((0,D.toLength)(1,f))));if(o)for(o.lastIndex=0;(m=o.exec(n))!==null;){const f=m.index,C=m[0];if(C===` +`)c++,d=f+1;else{if(s!==f){let _;if(l===c){const E=f-s;if(Ew(n)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const a=this.getRegExpStr();this._regExpGlobal=a?new RegExp(a,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(a){return this.map.get(a.toLowerCase())}findClosingTokenText(a){for(const[n,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(a))return n}get isEmpty(){return this.map.size===0}}e.BracketTokens=p;function w(b){let a=(0,L.escapeRegExpCharacters)(b);return/^[\w ]+/.test(b)&&(a=`\\b${a}`),/[\w ]+$/.test(b)&&(a=`${a}\\b`),a}class v{constructor(a,n){this.denseKeyProvider=a,this.getLanguageConfiguration=n,this.languageIdToBracketTokens=new Map}didLanguageChange(a){return this.languageIdToBracketTokens.has(a)}getSingleLanguageBracketTokens(a){let n=this.languageIdToBracketTokens.get(a);return n||(n=p.createFromLanguage(this.getLanguageConfiguration(a),this.denseKeyProvider),this.languageIdToBracketTokens.set(a,n)),n}}e.LanguageAgnosticBracketTokens=v}),define(ne[531],se([1,0,298,92,297,138,215]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fixBracketsInLine=void 0;function p(v,b){const a=new D.DenseKeyProvider,n=new L.LanguageAgnosticBracketTokens(a,c=>b.getLanguageConfiguration(c)),i=new S.TextBufferTokenizer(new w([v]),n),t=(0,y.parseDocument)(i,[],void 0,!0);let o="";const g=v.getLineContent();function m(c,d){if(c.kind===2)if(m(c.openingBracket,d),d=(0,k.lengthAdd)(d,c.openingBracket.length),c.child&&(m(c.child,d),d=(0,k.lengthAdd)(d,c.child.length)),c.closingBracket)m(c.closingBracket,d),d=(0,k.lengthAdd)(d,c.closingBracket.length);else{const l=n.getSingleLanguageBracketTokens(c.openingBracket.languageId).findClosingTokenText(c.openingBracket.bracketIds);o+=l}else if(c.kind!==3){if(c.kind===0||c.kind===1)o+=g.substring((0,k.lengthGetColumnCountIfZeroLineCount)(d),(0,k.lengthGetColumnCountIfZeroLineCount)((0,k.lengthAdd)(d,c.length)));else if(c.kind===4)for(const s of c.children)m(s,d),d=(0,k.lengthAdd)(d,s.length)}}return m(t,k.lengthZero),o}e.fixBracketsInLine=p;class w{constructor(b){this.lines=b,this.tokenization={getLineTokens:a=>this.lines[a-1]}}getLineCount(){return this.lines.length}getLineLength(b){return this.lines[b-1].getLineContent().length}}}),define(ne[532],se([1,0,13]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FixedArray=void 0;class k{constructor(S){this._default=S,this._store=[]}get(S){return S=this._store.length;)this._store[this._store.length]=this._default;this._store[S]=p}replace(S,p,w){if(S>=this._store.length)return;if(p===0){this.insert(S,w);return}else if(w===0){this.delete(S,p);return}const v=this._store.slice(0,S),b=this._store.slice(S+p),a=y(w,this._default);this._store=v.concat(a,b)}delete(S,p){p===0||S>=this._store.length||this._store.splice(S,p)}insert(S,p){if(p===0||S>=this._store.length)return;const w=[];for(let v=0;v0&&n>0||i>0&&t>0)return;const o=Math.abs(n-t),g=Math.abs(a-i);if(o===0){v.spacesDiff=g,g>0&&0<=i-1&&i-10?v++:f>1&&b++,k(a,n,l,u,g),g.looksLikeAlignment&&!(p&&S===g.spacesDiff)))continue;const _=g.spacesDiff;_<=t&&o[_]++,a=l,n=u}let m=p;v!==b&&(m=v{const l=o[s];l>d&&(d=l,c=s)}),c===4&&o[4]>0&&o[2]>0&&o[2]>=o[4]/2&&(c=2)}return{insertSpaces:m,tabSize:c}}e.guessIndentation=y}),define(ne[534],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.intervalCompare=e.recomputeMaxEnd=e.nodeAcceptEdit=e.IntervalTree=e.SENTINEL=e.IntervalNode=e.getNodeColor=void 0;function L(F){return(F.metadata&1)>>>0}e.getNodeColor=L;function k(F,O){F.metadata=F.metadata&254|O<<0}function y(F){return(F.metadata&2)>>>1===1}function D(F,O){F.metadata=F.metadata&253|(O?1:0)<<1}function S(F){return(F.metadata&4)>>>2===1}function p(F,O){F.metadata=F.metadata&251|(O?1:0)<<2}function w(F){return(F.metadata&64)>>>6===1}function v(F,O){F.metadata=F.metadata&191|(O?1:0)<<6}function b(F){return(F.metadata&24)>>>3}function a(F,O){F.metadata=F.metadata&231|O<<3}function n(F){return(F.metadata&32)>>>5===1}function i(F,O){F.metadata=F.metadata&223|(O?1:0)<<5}class t{constructor(O,B,W){this.metadata=0,this.parent=this,this.left=this,this.right=this,k(this,1),this.start=B,this.end=W,this.delta=0,this.maxEnd=W,this.id=O,this.ownerId=0,this.options=null,p(this,!1),v(this,!1),a(this,1),i(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=B,this.cachedAbsoluteEnd=W,this.range=null,D(this,!1)}reset(O,B,W,V){this.start=B,this.end=W,this.maxEnd=W,this.cachedVersionId=O,this.cachedAbsoluteStart=B,this.cachedAbsoluteEnd=W,this.range=V}setOptions(O){this.options=O;const B=this.options.className;p(this,B==="squiggly-error"||B==="squiggly-warning"||B==="squiggly-info"),v(this,this.options.glyphMarginClassName!==null),a(this,this.options.stickiness),i(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(O,B,W){this.cachedVersionId!==W&&(this.range=null),this.cachedVersionId=W,this.cachedAbsoluteStart=O,this.cachedAbsoluteEnd=B}detach(){this.parent=null,this.left=null,this.right=null}}e.IntervalNode=t,e.SENTINEL=new t(null,0,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,k(e.SENTINEL,0);class o{constructor(){this.root=e.SENTINEL,this.requestNormalizeDelta=!1}intervalSearch(O,B,W,V,z,K){return this.root===e.SENTINEL?[]:u(this,O,B,W,V,z,K)}search(O,B,W,V){return this.root===e.SENTINEL?[]:h(this,O,B,W,V)}collectNodesFromOwner(O){return l(this,O)}collectNodesPostOrder(){return r(this)}insert(O){f(this,O),this._normalizeDeltaIfNecessary()}delete(O){_(this,O),this._normalizeDeltaIfNecessary()}resolveNode(O,B){const W=O;let V=0;for(;O!==this.root;)O===O.parent.right&&(V+=O.parent.delta),O=O.parent;const z=W.start+V,K=W.end+V;W.setCachedOffsets(z,K,B)}acceptReplace(O,B,W,V){const z=d(this,O,O+B);for(let K=0,j=z.length;KB||W===1?!1:W===2?!0:O}function c(F,O,B,W,V){const z=b(F),K=z===0||z===2,j=z===1||z===2,x=B-O,re=W,ie=Math.min(x,re),J=F.start;let X=!1;const Y=F.end;let le=!1;O<=J&&Y<=B&&n(F)&&(F.start=O,X=!0,F.end=O,le=!0);{const ge=V?1:x>0?2:0;!X&&m(J,K,O,ge)&&(X=!0),!le&&m(Y,j,O,ge)&&(le=!0)}if(ie>0&&!V){const ge=x>re?2:0;!X&&m(J,K,O+ie,ge)&&(X=!0),!le&&m(Y,j,O+ie,ge)&&(le=!0)}{const ge=V?1:0;!X&&m(J,K,B,ge)&&(F.start=O+re,X=!0),!le&&m(Y,j,B,ge)&&(F.end=O+re,le=!0)}const de=re-x;X||(F.start=Math.max(0,J+de)),le||(F.end=Math.max(0,Y+de)),F.start>F.end&&(F.end=F.start)}e.nodeAcceptEdit=c;function d(F,O,B){let W=F.root,V=0,z=0,K=0,j=0;const x=[];let re=0;for(;W!==e.SENTINEL;){if(y(W)){D(W.left,!1),D(W.right,!1),W===W.parent.right&&(V-=W.parent.delta),W=W.parent;continue}if(!y(W.left)){if(z=V+W.maxEnd,zB){D(W,!0);continue}if(j=V+W.end,j>=O&&(W.setCachedOffsets(K,j,0),x[re++]=W),D(W,!0),W.right!==e.SENTINEL&&!y(W.right)){V+=W.delta,W=W.right;continue}}return D(F.root,!1),x}function s(F,O,B,W){let V=F.root,z=0,K=0,j=0;const x=W-(B-O);for(;V!==e.SENTINEL;){if(y(V)){D(V.left,!1),D(V.right,!1),V===V.parent.right&&(z-=V.parent.delta),M(V),V=V.parent;continue}if(!y(V.left)){if(K=z+V.maxEnd,KB){V.start+=x,V.end+=x,V.delta+=x,(V.delta<-1073741824||V.delta>1073741824)&&(F.requestNormalizeDelta=!0),D(V,!0);continue}if(D(V,!0),V.right!==e.SENTINEL&&!y(V.right)){z+=V.delta,V=V.right;continue}}D(F.root,!1)}function l(F,O){let B=F.root;const W=[];let V=0;for(;B!==e.SENTINEL;){if(y(B)){D(B.left,!1),D(B.right,!1),B=B.parent;continue}if(B.left!==e.SENTINEL&&!y(B.left)){B=B.left;continue}if(B.ownerId===O&&(W[V++]=B),D(B,!0),B.right!==e.SENTINEL&&!y(B.right)){B=B.right;continue}}return D(F.root,!1),W}function r(F){let O=F.root;const B=[];let W=0;for(;O!==e.SENTINEL;){if(y(O)){D(O.left,!1),D(O.right,!1),O=O.parent;continue}if(O.left!==e.SENTINEL&&!y(O.left)){O=O.left;continue}if(O.right!==e.SENTINEL&&!y(O.right)){O=O.right;continue}B[W++]=O,D(O,!0)}return D(F.root,!1),B}function h(F,O,B,W,V){let z=F.root,K=0,j=0,x=0;const re=[];let ie=0;for(;z!==e.SENTINEL;){if(y(z)){D(z.left,!1),D(z.right,!1),z===z.parent.right&&(K-=z.parent.delta),z=z.parent;continue}if(z.left!==e.SENTINEL&&!y(z.left)){z=z.left;continue}j=K+z.start,x=K+z.end,z.setCachedOffsets(j,x,W);let J=!0;if(O&&z.ownerId&&z.ownerId!==O&&(J=!1),B&&S(z)&&(J=!1),V&&!w(z)&&(J=!1),J&&(re[ie++]=z),D(z,!0),z.right!==e.SENTINEL&&!y(z.right)){K+=z.delta,z=z.right;continue}}return D(F.root,!1),re}function u(F,O,B,W,V,z,K){let j=F.root,x=0,re=0,ie=0,J=0;const X=[];let Y=0;for(;j!==e.SENTINEL;){if(y(j)){D(j.left,!1),D(j.right,!1),j===j.parent.right&&(x-=j.parent.delta),j=j.parent;continue}if(!y(j.left)){if(re=x+j.maxEnd,reB){D(j,!0);continue}if(J=x+j.end,J>=O){j.setCachedOffsets(ie,J,z);let le=!0;W&&j.ownerId&&j.ownerId!==W&&(le=!1),V&&S(j)&&(le=!1),K&&!w(j)&&(le=!1),le&&(X[Y++]=j)}if(D(j,!0),j.right!==e.SENTINEL&&!y(j.right)){x+=j.delta,j=j.right;continue}}return D(F.root,!1),X}function f(F,O){if(F.root===e.SENTINEL)return O.parent=e.SENTINEL,O.left=e.SENTINEL,O.right=e.SENTINEL,k(O,0),F.root=O,F.root;C(F,O),N(O.parent);let B=O;for(;B!==F.root&&L(B.parent)===1;)if(B.parent===B.parent.parent.left){const W=B.parent.parent.right;L(W)===1?(k(B.parent,0),k(W,0),k(B.parent.parent,1),B=B.parent.parent):(B===B.parent.right&&(B=B.parent,T(F,B)),k(B.parent,0),k(B.parent.parent,1),A(F,B.parent.parent))}else{const W=B.parent.parent.left;L(W)===1?(k(B.parent,0),k(W,0),k(B.parent.parent,1),B=B.parent.parent):(B===B.parent.left&&(B=B.parent,A(F,B)),k(B.parent,0),k(B.parent.parent,1),T(F,B.parent.parent))}return k(F.root,0),O}function C(F,O){let B=0,W=F.root;const V=O.start,z=O.end;for(;;)if(P(V,z,W.start+B,W.end+B)<0)if(W.left===e.SENTINEL){O.start-=B,O.end-=B,O.maxEnd-=B,W.left=O;break}else W=W.left;else if(W.right===e.SENTINEL){O.start-=B+W.delta,O.end-=B+W.delta,O.maxEnd-=B+W.delta,W.right=O;break}else B+=W.delta,W=W.right;O.parent=W,O.left=e.SENTINEL,O.right=e.SENTINEL,k(O,1)}function _(F,O){let B,W;if(O.left===e.SENTINEL?(B=O.right,W=O,B.delta+=O.delta,(B.delta<-1073741824||B.delta>1073741824)&&(F.requestNormalizeDelta=!0),B.start+=O.delta,B.end+=O.delta):O.right===e.SENTINEL?(B=O.left,W=O):(W=E(O.right),B=W.right,B.start+=W.delta,B.end+=W.delta,B.delta+=W.delta,(B.delta<-1073741824||B.delta>1073741824)&&(F.requestNormalizeDelta=!0),W.start+=O.delta,W.end+=O.delta,W.delta=O.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0)),W===F.root){F.root=B,k(B,0),O.detach(),I(),M(B),F.root.parent=e.SENTINEL;return}const V=L(W)===1;if(W===W.parent.left?W.parent.left=B:W.parent.right=B,W===O?B.parent=W.parent:(W.parent===O?B.parent=W:B.parent=W.parent,W.left=O.left,W.right=O.right,W.parent=O.parent,k(W,L(O)),O===F.root?F.root=W:O===O.parent.left?O.parent.left=W:O.parent.right=W,W.left!==e.SENTINEL&&(W.left.parent=W),W.right!==e.SENTINEL&&(W.right.parent=W)),O.detach(),V){N(B.parent),W!==O&&(N(W),N(W.parent)),I();return}N(B),N(B.parent),W!==O&&(N(W),N(W.parent));let z;for(;B!==F.root&&L(B)===0;)B===B.parent.left?(z=B.parent.right,L(z)===1&&(k(z,0),k(B.parent,1),T(F,B.parent),z=B.parent.right),L(z.left)===0&&L(z.right)===0?(k(z,1),B=B.parent):(L(z.right)===0&&(k(z.left,0),k(z,1),A(F,z),z=B.parent.right),k(z,L(B.parent)),k(B.parent,0),k(z.right,0),T(F,B.parent),B=F.root)):(z=B.parent.left,L(z)===1&&(k(z,0),k(B.parent,1),A(F,B.parent),z=B.parent.left),L(z.left)===0&&L(z.right)===0?(k(z,1),B=B.parent):(L(z.left)===0&&(k(z.right,0),k(z,1),T(F,z),z=B.parent.left),k(z,L(B.parent)),k(B.parent,0),k(z.left,0),A(F,B.parent),B=F.root));k(B,0),I()}function E(F){for(;F.left!==e.SENTINEL;)F=F.left;return F}function I(){e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.delta=0,e.SENTINEL.start=0,e.SENTINEL.end=0}function T(F,O){const B=O.right;B.delta+=O.delta,(B.delta<-1073741824||B.delta>1073741824)&&(F.requestNormalizeDelta=!0),B.start+=O.delta,B.end+=O.delta,O.right=B.left,B.left!==e.SENTINEL&&(B.left.parent=O),B.parent=O.parent,O.parent===e.SENTINEL?F.root=B:O===O.parent.left?O.parent.left=B:O.parent.right=B,B.left=O,O.parent=B,M(O),M(B)}function A(F,O){const B=O.left;O.delta-=B.delta,(O.delta<-1073741824||O.delta>1073741824)&&(F.requestNormalizeDelta=!0),O.start-=B.delta,O.end-=B.delta,O.left=B.right,B.right!==e.SENTINEL&&(B.right.parent=O),B.parent=O.parent,O.parent===e.SENTINEL?F.root=B:O===O.parent.right?O.parent.right=B:O.parent.left=B,B.right=O,O.parent=B,M(O),M(B)}function R(F){let O=F.end;if(F.left!==e.SENTINEL){const B=F.left.maxEnd;B>O&&(O=B)}if(F.right!==e.SENTINEL){const B=F.right.maxEnd+F.delta;B>O&&(O=B)}return O}function M(F){F.maxEnd=R(F)}e.recomputeMaxEnd=M;function N(F){for(;F!==e.SENTINEL;){const O=R(F);if(F.maxEnd===O)return;F.maxEnd=O,F=F.parent}}function P(F,O,B,W){return F===B?O-W:F-B}e.intervalCompare=P}),define(ne[535],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.recomputeTreeMetadata=e.updateTreeMetadata=e.fixInsert=e.rbDelete=e.rightRotate=e.leftRotate=e.righttest=e.leftest=e.SENTINEL=e.TreeNode=void 0;class L{constructor(o,g){this.piece=o,this.color=g,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==e.SENTINEL)return k(this.right);let o=this;for(;o.parent!==e.SENTINEL&&o.parent.left!==o;)o=o.parent;return o.parent===e.SENTINEL?e.SENTINEL:o.parent}prev(){if(this.left!==e.SENTINEL)return y(this.left);let o=this;for(;o.parent!==e.SENTINEL&&o.parent.right!==o;)o=o.parent;return o.parent===e.SENTINEL?e.SENTINEL:o.parent}detach(){this.parent=null,this.left=null,this.right=null}}e.TreeNode=L,e.SENTINEL=new L(null,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,e.SENTINEL.color=0;function k(t){for(;t.left!==e.SENTINEL;)t=t.left;return t}e.leftest=k;function y(t){for(;t.right!==e.SENTINEL;)t=t.right;return t}e.righttest=y;function D(t){return t===e.SENTINEL?0:t.size_left+t.piece.length+D(t.right)}function S(t){return t===e.SENTINEL?0:t.lf_left+t.piece.lineFeedCnt+S(t.right)}function p(){e.SENTINEL.parent=e.SENTINEL}function w(t,o){const g=o.right;g.size_left+=o.size_left+(o.piece?o.piece.length:0),g.lf_left+=o.lf_left+(o.piece?o.piece.lineFeedCnt:0),o.right=g.left,g.left!==e.SENTINEL&&(g.left.parent=o),g.parent=o.parent,o.parent===e.SENTINEL?t.root=g:o.parent.left===o?o.parent.left=g:o.parent.right=g,g.left=o,o.parent=g}e.leftRotate=w;function v(t,o){const g=o.left;o.left=g.right,g.right!==e.SENTINEL&&(g.right.parent=o),g.parent=o.parent,o.size_left-=g.size_left+(g.piece?g.piece.length:0),o.lf_left-=g.lf_left+(g.piece?g.piece.lineFeedCnt:0),o.parent===e.SENTINEL?t.root=g:o===o.parent.right?o.parent.right=g:o.parent.left=g,g.right=o,o.parent=g}e.rightRotate=v;function b(t,o){let g,m;if(o.left===e.SENTINEL?(m=o,g=m.right):o.right===e.SENTINEL?(m=o,g=m.left):(m=k(o.right),g=m.right),m===t.root){t.root=g,g.color=0,o.detach(),p(),t.root.parent=e.SENTINEL;return}const c=m.color===1;if(m===m.parent.left?m.parent.left=g:m.parent.right=g,m===o?(g.parent=m.parent,i(t,g)):(m.parent===o?g.parent=m:g.parent=m.parent,i(t,g),m.left=o.left,m.right=o.right,m.parent=o.parent,m.color=o.color,o===t.root?t.root=m:o===o.parent.left?o.parent.left=m:o.parent.right=m,m.left!==e.SENTINEL&&(m.left.parent=m),m.right!==e.SENTINEL&&(m.right.parent=m),m.size_left=o.size_left,m.lf_left=o.lf_left,i(t,m)),o.detach(),g.parent.left===g){const s=D(g),l=S(g);if(s!==g.parent.size_left||l!==g.parent.lf_left){const r=s-g.parent.size_left,h=l-g.parent.lf_left;g.parent.size_left=s,g.parent.lf_left=l,n(t,g.parent,r,h)}}if(i(t,g.parent),c){p();return}let d;for(;g!==t.root&&g.color===0;)g===g.parent.left?(d=g.parent.right,d.color===1&&(d.color=0,g.parent.color=1,w(t,g.parent),d=g.parent.right),d.left.color===0&&d.right.color===0?(d.color=1,g=g.parent):(d.right.color===0&&(d.left.color=0,d.color=1,v(t,d),d=g.parent.right),d.color=g.parent.color,g.parent.color=0,d.right.color=0,w(t,g.parent),g=t.root)):(d=g.parent.left,d.color===1&&(d.color=0,g.parent.color=1,v(t,g.parent),d=g.parent.left),d.left.color===0&&d.right.color===0?(d.color=1,g=g.parent):(d.left.color===0&&(d.right.color=0,d.color=1,w(t,d),d=g.parent.left),d.color=g.parent.color,g.parent.color=0,d.left.color=0,v(t,g.parent),g=t.root));g.color=0,p()}e.rbDelete=b;function a(t,o){for(i(t,o);o!==t.root&&o.parent.color===1;)if(o.parent===o.parent.parent.left){const g=o.parent.parent.right;g.color===1?(o.parent.color=0,g.color=0,o.parent.parent.color=1,o=o.parent.parent):(o===o.parent.right&&(o=o.parent,w(t,o)),o.parent.color=0,o.parent.parent.color=1,v(t,o.parent.parent))}else{const g=o.parent.parent.left;g.color===1?(o.parent.color=0,g.color=0,o.parent.parent.color=1,o=o.parent.parent):(o===o.parent.left&&(o=o.parent,v(t,o)),o.parent.color=0,o.parent.parent.color=1,w(t,o.parent.parent))}t.root.color=0}e.fixInsert=a;function n(t,o,g,m){for(;o!==t.root&&o!==e.SENTINEL;)o.parent.left===o&&(o.parent.size_left+=g,o.parent.lf_left+=m),o=o.parent}e.updateTreeMetadata=n;function i(t,o){let g=0,m=0;if(o!==t.root){for(;o!==t.root&&o===o.parent.right;)o=o.parent;if(o!==t.root)for(o=o.parent,g=D(o.left)-o.size_left,m=S(o.left)-o.lf_left,o.size_left+=g,o.lf_left+=m;o!==t.root&&(g!==0||m!==0);)o.parent.left===o&&(o.parent.size_left+=g,o.parent.lf_left+=m),o=o.parent}}e.recomputeTreeMetadata=i}),define(ne[299],se([1,0,13,177]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PrefixSumIndexOfResult=e.ConstantTimePrefixSumComputer=e.PrefixSumComputer=void 0;class y{constructor(w){this.values=w,this.prefixSum=new Uint32Array(w.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(w,v){w=(0,k.toUint32)(w);const b=this.values,a=this.prefixSum,n=v.length;return n===0?!1:(this.values=new Uint32Array(b.length+n),this.values.set(b.subarray(0,w),0),this.values.set(b.subarray(w),w+n),this.values.set(v,w),w-1=0&&this.prefixSum.set(a.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(w,v){return w=(0,k.toUint32)(w),v=(0,k.toUint32)(v),this.values[w]===v?!1:(this.values[w]=v,w-1=b.length)return!1;const n=b.length-w;return v>=n&&(v=n),v===0?!1:(this.values=new Uint32Array(b.length-v),this.values.set(b.subarray(0,w),0),this.values.set(b.subarray(w+v),w),this.prefixSum=new Uint32Array(this.values.length),w-1=0&&this.prefixSum.set(a.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(w){return w<0?0:(w=(0,k.toUint32)(w),this._getPrefixSum(w))}_getPrefixSum(w){if(w<=this.prefixSumValidIndex[0])return this.prefixSum[w];let v=this.prefixSumValidIndex[0]+1;v===0&&(this.prefixSum[0]=this.values[0],v++),w>=this.values.length&&(w=this.values.length-1);for(let b=v;b<=w;b++)this.prefixSum[b]=this.prefixSum[b-1]+this.values[b];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],w),this.prefixSum[w]}getIndexOf(w){w=Math.floor(w),this.getTotalSum();let v=0,b=this.values.length-1,a=0,n=0,i=0;for(;v<=b;)if(a=v+(b-v)/2|0,n=this.prefixSum[a],i=n-this.values[a],w=n)v=a+1;else break;return new S(a,w-i)}}e.PrefixSumComputer=y;class D{constructor(w){this._values=w,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(w){return this._ensureValid(),w===0?0:this._prefixSum[w-1]}getIndexOf(w){this._ensureValid();const v=this._indexBySum[w],b=v>0?this._prefixSum[v-1]:0;return new S(v,w-b)}removeValues(w,v){this._values.splice(w,v),this._invalidate(w)}insertValues(w,v){this._values=(0,L.arrayInsert)(this._values,w,v),this._invalidate(w)}_invalidate(w){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,w-1)}_ensureValid(){if(!this._isValid){for(let w=this._validEndIndex+1,v=this._values.length;w0?this._prefixSum[w-1]:0;this._prefixSum[w]=a+b;for(let n=0;n=0;let d=null;try{d=L.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:c,global:!0,unicode:!0})}catch{return null}if(!d)return null;let s=!this.isRegex&&!c;return s&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(s=this.matchCase),new S.SearchData(d,this.wordSeparators?(0,k.getMapForWordSeparators)(this.wordSeparators):null,s?this.searchString:null)}}e.SearchParams=w;function v(m){if(!m||m.length===0)return!1;for(let c=0,d=m.length;c=d)break;const l=m.charCodeAt(c);if(l===110||l===114||l===87)return!0}}return!1}e.isMultilineRegexSource=v;function b(m,c,d){if(!d)return new S.FindMatch(m,null);const s=[];for(let l=0,r=c.length;l>0);d[r]>=c?l=r-1:d[r+1]>=c?(s=r,l=r):s=r+1}return s+1}}class n{static findMatches(c,d,s,l,r){const h=d.parseSearchRequest();return h?h.regex.multiline?this._doFindMatchesMultiline(c,s,new g(h.wordSeparators,h.regex),l,r):this._doFindMatchesLineByLine(c,s,h,l,r):[]}static _getMultilineMatchRange(c,d,s,l,r,h){let u,f=0;l?(f=l.findLineFeedCountBeforeOffset(r),u=d+r+f):u=d+r;let C;if(l){const T=l.findLineFeedCountBeforeOffset(r+h.length)-f;C=u+h.length+T}else C=u+h.length;const _=c.getPositionAt(u),E=c.getPositionAt(C);return new D.Range(_.lineNumber,_.column,E.lineNumber,E.column)}static _doFindMatchesMultiline(c,d,s,l,r){const h=c.getOffsetAt(d.getStartPosition()),u=c.getValueInRange(d,1),f=c.getEOL()===`\r +`?new a(u):null,C=[];let _=0,E;for(s.reset(0);E=s.next(u);)if(C[_++]=b(this._getMultilineMatchRange(c,h,u,f,E.index,E[0]),E,l),_>=r)return C;return C}static _doFindMatchesLineByLine(c,d,s,l,r){const h=[];let u=0;if(d.startLineNumber===d.endLineNumber){const C=c.getLineContent(d.startLineNumber).substring(d.startColumn-1,d.endColumn-1);return u=this._findMatchesInLine(s,C,d.startLineNumber,d.startColumn-1,u,h,l,r),h}const f=c.getLineContent(d.startLineNumber).substring(d.startColumn-1);u=this._findMatchesInLine(s,f,d.startLineNumber,d.startColumn-1,u,h,l,r);for(let C=d.startLineNumber+1;C=f))return r;return r}const _=new g(c.wordSeparators,c.regex);let E;_.reset(0);do if(E=_.next(d),E&&(h[r++]=b(new D.Range(s,E.index+1+l,s,E.index+1+E[0].length+l),E,u),r>=f))return r;while(E);return r}static findNextMatch(c,d,s,l){const r=d.parseSearchRequest();if(!r)return null;const h=new g(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(c,s,h,l):this._doFindNextMatchLineByLine(c,s,h,l)}static _doFindNextMatchMultiline(c,d,s,l){const r=new y.Position(d.lineNumber,1),h=c.getOffsetAt(r),u=c.getLineCount(),f=c.getValueInRange(new D.Range(r.lineNumber,r.column,u,c.getLineMaxColumn(u)),1),C=c.getEOL()===`\r +`?new a(f):null;s.reset(d.column-1);const _=s.next(f);return _?b(this._getMultilineMatchRange(c,h,f,C,_.index,_[0]),_,l):d.lineNumber!==1||d.column!==1?this._doFindNextMatchMultiline(c,new y.Position(1,1),s,l):null}static _doFindNextMatchLineByLine(c,d,s,l){const r=c.getLineCount(),h=d.lineNumber,u=c.getLineContent(h),f=this._findFirstMatchInLine(s,u,h,d.column,l);if(f)return f;for(let C=1;C<=r;C++){const _=(h+C-1)%r,E=c.getLineContent(_+1),I=this._findFirstMatchInLine(s,E,_+1,1,l);if(I)return I}return null}static _findFirstMatchInLine(c,d,s,l,r){c.reset(l-1);const h=c.next(d);return h?b(new D.Range(s,h.index+1,s,h.index+1+h[0].length),h,r):null}static findPreviousMatch(c,d,s,l){const r=d.parseSearchRequest();if(!r)return null;const h=new g(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(c,s,h,l):this._doFindPreviousMatchLineByLine(c,s,h,l)}static _doFindPreviousMatchMultiline(c,d,s,l){const r=this._doFindMatchesMultiline(c,new D.Range(1,1,d.lineNumber,d.column),s,l,10*p);if(r.length>0)return r[r.length-1];const h=c.getLineCount();return d.lineNumber!==h||d.column!==c.getLineMaxColumn(h)?this._doFindPreviousMatchMultiline(c,new y.Position(h,c.getLineMaxColumn(h)),s,l):null}static _doFindPreviousMatchLineByLine(c,d,s,l){const r=c.getLineCount(),h=d.lineNumber,u=c.getLineContent(h).substring(0,d.column-1),f=this._findLastMatchInLine(s,u,h,l);if(f)return f;for(let C=1;C<=r;C++){const _=(r+h-C-1)%r,E=c.getLineContent(_+1),I=this._findLastMatchInLine(s,E,_+1,l);if(I)return I}return null}static _findLastMatchInLine(c,d,s,l){let r=null,h;for(c.reset(0);h=c.next(d);)r=b(new D.Range(s,h.index+1,s,h.index+1+h[0].length),h,l);return r}}e.TextModelSearch=n;function i(m,c,d,s,l){if(s===0)return!0;const r=c.charCodeAt(s-1);if(m.get(r)!==0||r===13||r===10)return!0;if(l>0){const h=c.charCodeAt(s);if(m.get(h)!==0)return!0}return!1}function t(m,c,d,s,l){if(s+l===d)return!0;const r=c.charCodeAt(s+l);if(m.get(r)!==0||r===13||r===10)return!0;if(l>0){const h=c.charCodeAt(s+l-1);if(m.get(h)!==0)return!0}return!1}function o(m,c,d,s,l){return i(m,c,d,s,l)&&t(m,c,d,s,l)}e.isValidMatch=o;class g{constructor(c,d){this._wordSeparators=c,this._searchRegex=d,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(c){this._searchRegex.lastIndex=c,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(c){const d=c.length;let s;do{if(this._prevMatchStartIndex+this._prevMatchLength===d||(s=this._searchRegex.exec(c),!s))return null;const l=s.index,r=s[0].length;if(l===this._prevMatchStartIndex&&r===this._prevMatchLength){if(r===0){L.getNextCodePoint(c,d,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=l,this._prevMatchLength=r,!this._wordSeparators||o(this._wordSeparators,c,d,l,r))return s}while(s);return null}}e.Searcher=g}),define(ne[301],se([1,0,9,5,40,535,187]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeBase=e.StringBuffer=e.Piece=e.createLineStarts=e.createLineStartsFast=void 0;const p=65535;function w(m){let c;return m[m.length-1]<65536?c=new Uint16Array(m.length):c=new Uint32Array(m.length),c.set(m,0),c}class v{constructor(c,d,s,l,r){this.lineStarts=c,this.cr=d,this.lf=s,this.crlf=l,this.isBasicASCII=r}}function b(m,c=!0){const d=[0];let s=1;for(let l=0,r=m.length;l126)&&(h=!1)}const u=new v(w(m),s,l,r,h);return m.length=0,u}e.createLineStarts=a;class n{constructor(c,d,s,l,r){this.bufferIndex=c,this.start=d,this.end=s,this.lineFeedCnt=l,this.length=r}}e.Piece=n;class i{constructor(c,d){this.buffer=c,this.lineStarts=d}}e.StringBuffer=i;class t{constructor(c,d){this._pieces=[],this._tree=c,this._BOM=d,this._index=0,c.root!==D.SENTINEL&&c.iterate(c.root,s=>(s!==D.SENTINEL&&this._pieces.push(s.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class o{constructor(c){this._limit=c,this._cache=[]}get(c){for(let d=this._cache.length-1;d>=0;d--){const s=this._cache[d];if(s.nodeStartOffset<=c&&s.nodeStartOffset+s.node.piece.length>=c)return s}return null}get2(c){for(let d=this._cache.length-1;d>=0;d--){const s=this._cache[d];if(s.nodeStartLineNumber&&s.nodeStartLineNumber=c)return s}return null}set(c){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(c)}validate(c){let d=!1;const s=this._cache;for(let l=0;l=c){s[l]=null,d=!0;continue}}if(d){const l=[];for(const r of s)r!==null&&l.push(r);this._cache=l}}}class g{constructor(c,d,s){this.create(c,d,s)}create(c,d,s){this._buffers=[new i("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=D.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=d,this._EOLLength=d.length,this._EOLNormalized=s;let l=null;for(let r=0,h=c.length;r0){c[r].lineStarts||(c[r].lineStarts=b(c[r].buffer));const u=new n(r+1,{line:0,column:0},{line:c[r].lineStarts.length-1,column:c[r].buffer.length-c[r].lineStarts[c[r].lineStarts.length-1]},c[r].lineStarts.length-1,c[r].buffer.length);this._buffers.push(c[r]),l=this.rbInsertRight(l,u)}this._searchCache=new o(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(c){const d=p,s=d-Math.floor(d/3),l=s*2;let r="",h=0;const u=[];if(this.iterate(this.root,f=>{const C=this.getNodeContent(f),_=C.length;if(h<=s||h+_0){const f=r.replace(/\r\n|\r|\n/g,c);u.push(new i(f,b(f)))}this.create(u,c,!0)}getEOL(){return this._EOL}setEOL(c){this._EOL=c,this._EOLLength=this._EOL.length,this.normalizeEOL(c)}createSnapshot(c){return new t(this,c)}getOffsetAt(c,d){let s=0,l=this.root;for(;l!==D.SENTINEL;)if(l.left!==D.SENTINEL&&l.lf_left+1>=c)l=l.left;else if(l.lf_left+l.piece.lineFeedCnt+1>=c){s+=l.size_left;const r=this.getAccumulatedValue(l,c-l.lf_left-2);return s+=r+d-1}else c-=l.lf_left+l.piece.lineFeedCnt,s+=l.size_left+l.piece.length,l=l.right;return s}getPositionAt(c){c=Math.floor(c),c=Math.max(0,c);let d=this.root,s=0;const l=c;for(;d!==D.SENTINEL;)if(d.size_left!==0&&d.size_left>=c)d=d.left;else if(d.size_left+d.piece.length>=c){const r=this.getIndexOf(d,c-d.size_left);if(s+=d.lf_left+r.index,r.index===0){const h=this.getOffsetAt(s+1,1),u=l-h;return new L.Position(s+1,u+1)}return new L.Position(s+1,r.remainder+1)}else if(c-=d.size_left+d.piece.length,s+=d.lf_left+d.piece.lineFeedCnt,d.right===D.SENTINEL){const r=this.getOffsetAt(s+1,1),h=l-c-r;return new L.Position(s+1,h+1)}else d=d.right;return new L.Position(1,1)}getValueInRange(c,d){if(c.startLineNumber===c.endLineNumber&&c.startColumn===c.endColumn)return"";const s=this.nodeAt2(c.startLineNumber,c.startColumn),l=this.nodeAt2(c.endLineNumber,c.endColumn),r=this.getValueInRange2(s,l);return d?d!==this._EOL||!this._EOLNormalized?r.replace(/\r\n|\r|\n/g,d):d===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,d):r}getValueInRange2(c,d){if(c.node===d.node){const u=c.node,f=this._buffers[u.piece.bufferIndex].buffer,C=this.offsetInBuffer(u.piece.bufferIndex,u.piece.start);return f.substring(C+c.remainder,C+d.remainder)}let s=c.node;const l=this._buffers[s.piece.bufferIndex].buffer,r=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);let h=l.substring(r+c.remainder,r+s.piece.length);for(s=s.next();s!==D.SENTINEL;){const u=this._buffers[s.piece.bufferIndex].buffer,f=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);if(s===d.node){h+=u.substring(f,f+d.remainder);break}else h+=u.substr(f,s.piece.length);s=s.next()}return h}getLinesContent(){const c=[];let d=0,s="",l=!1;return this.iterate(this.root,r=>{if(r===D.SENTINEL)return!0;const h=r.piece;let u=h.length;if(u===0)return!0;const f=this._buffers[h.bufferIndex].buffer,C=this._buffers[h.bufferIndex].lineStarts,_=h.start.line,E=h.end.line;let I=C[_]+h.start.column;if(l&&(f.charCodeAt(I)===10&&(I++,u--),c[d++]=s,s="",l=!1,u===0))return!0;if(_===E)return!this._EOLNormalized&&f.charCodeAt(I+u-1)===13?(l=!0,s+=f.substr(I,u-1)):s+=f.substr(I,u),!0;s+=this._EOLNormalized?f.substring(I,Math.max(I,C[_+1]-this._EOLLength)):f.substring(I,C[_+1]).replace(/(\r\n|\r|\n)$/,""),c[d++]=s;for(let T=_+1;TO+A,d.reset(0)):(P=I.buffer,F=O=>O,d.reset(A));do if(M=d.next(P),M){if(F(M.index)>=R)return _;this.positionInBuffer(c,F(M.index)-T,N);const O=this.getLineFeedCnt(c.piece.bufferIndex,r,N),B=N.line===r.line?N.column-r.column+l:N.column+1,W=B+M[0].length;if(E[_++]=(0,S.createFindMatch)(new k.Range(s+O,B,s+O,W),M,f),F(M.index)+M[0].length>=R||_>=C)return _}while(M);return _}findMatchesLineByLine(c,d,s,l){const r=[];let h=0;const u=new S.Searcher(d.wordSeparators,d.regex);let f=this.nodeAt2(c.startLineNumber,c.startColumn);if(f===null)return[];const C=this.nodeAt2(c.endLineNumber,c.endColumn);if(C===null)return[];let _=this.positionInBuffer(f.node,f.remainder);const E=this.positionInBuffer(C.node,C.remainder);if(f.node===C.node)return this.findMatchesInNode(f.node,u,c.startLineNumber,c.startColumn,_,E,d,s,l,h,r),r;let I=c.startLineNumber,T=f.node;for(;T!==C.node;){const R=this.getLineFeedCnt(T.piece.bufferIndex,_,T.piece.end);if(R>=1){const N=this._buffers[T.piece.bufferIndex].lineStarts,P=this.offsetInBuffer(T.piece.bufferIndex,T.piece.start),F=N[_.line+R],O=I===c.startLineNumber?c.startColumn:1;if(h=this.findMatchesInNode(T,u,I,O,_,this.positionInBuffer(T,F-P),d,s,l,h,r),h>=l)return r;I+=R}const M=I===c.startLineNumber?c.startColumn-1:0;if(I===c.endLineNumber){const N=this.getLineContent(I).substring(M,c.endColumn-1);return h=this._findMatchesInLine(d,u,N,c.endLineNumber,M,h,r,s,l),r}if(h=this._findMatchesInLine(d,u,this.getLineContent(I).substr(M),I,M,h,r,s,l),h>=l)return r;I++,f=this.nodeAt2(I,1),T=f.node,_=this.positionInBuffer(f.node,f.remainder)}if(I===c.endLineNumber){const R=I===c.startLineNumber?c.startColumn-1:0,M=this.getLineContent(I).substring(R,c.endColumn-1);return h=this._findMatchesInLine(d,u,M,c.endLineNumber,R,h,r,s,l),r}const A=I===c.startLineNumber?c.startColumn:1;return h=this.findMatchesInNode(C.node,u,I,A,_,E,d,s,l,h,r),r}_findMatchesInLine(c,d,s,l,r,h,u,f,C){const _=c.wordSeparators;if(!f&&c.simpleSearch){const I=c.simpleSearch,T=I.length,A=s.length;let R=-T;for(;(R=s.indexOf(I,R+T))!==-1;)if((!_||(0,S.isValidMatch)(_,s,A,R,T))&&(u[h++]=new y.FindMatch(new k.Range(l,R+1+r,l,R+1+T+r),null),h>=C))return h;return h}let E;d.reset(0);do if(E=d.next(s),E&&(u[h++]=(0,S.createFindMatch)(new k.Range(l,E.index+1+r,l,E.index+1+E[0].length+r),E,f),h>=C))return h;while(E);return h}insert(c,d,s=!1){if(this._EOLNormalized=this._EOLNormalized&&s,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==D.SENTINEL){const{node:l,remainder:r,nodeStartOffset:h}=this.nodeAt(c),u=l.piece,f=u.bufferIndex,C=this.positionInBuffer(l,r);if(l.piece.bufferIndex===0&&u.end.line===this._lastChangeBufferPos.line&&u.end.column===this._lastChangeBufferPos.column&&h+u.length===c&&d.lengthc){const _=[];let E=new n(u.bufferIndex,C,u.end,this.getLineFeedCnt(u.bufferIndex,C,u.end),this.offsetInBuffer(f,u.end)-this.offsetInBuffer(f,C));if(this.shouldCheckCRLF()&&this.endWithCR(d)&&this.nodeCharCodeAt(l,r)===10){const R={line:E.start.line+1,column:0};E=new n(E.bufferIndex,R,E.end,this.getLineFeedCnt(E.bufferIndex,R,E.end),E.length-1),d+=` +`}if(this.shouldCheckCRLF()&&this.startWithLF(d))if(this.nodeCharCodeAt(l,r-1)===13){const R=this.positionInBuffer(l,r-1);this.deleteNodeTail(l,R),d="\r"+d,l.piece.length===0&&_.push(l)}else this.deleteNodeTail(l,C);else this.deleteNodeTail(l,C);const I=this.createNewPieces(d);E.length>0&&this.rbInsertRight(l,E);let T=l;for(let A=0;A=0;h--)r=this.rbInsertLeft(r,l[h]);this.validateCRLFWithPrevNode(r),this.deleteNodes(s)}insertContentToNodeRight(c,d){this.adjustCarriageReturnFromNext(c,d)&&(c+=` +`);const s=this.createNewPieces(c),l=this.rbInsertRight(d,s[0]);let r=l;for(let h=1;h=I)C=E+1;else break;return s?(s.line=E,s.column=f-T,null):{line:E,column:f-T}}getLineFeedCnt(c,d,s){if(s.column===0)return s.line-d.line;const l=this._buffers[c].lineStarts;if(s.line===l.length-1)return s.line-d.line;const r=l[s.line+1],h=l[s.line]+s.column;if(r>h+1)return s.line-d.line;const u=h-1;return this._buffers[c].buffer.charCodeAt(u)===13?s.line-d.line+1:s.line-d.line}offsetInBuffer(c,d){return this._buffers[c].lineStarts[d.line]+d.column}deleteNodes(c){for(let d=0;dp){const _=[];for(;c.length>p;){const I=c.charCodeAt(p-1);let T;I===13||I>=55296&&I<=56319?(T=c.substring(0,p-1),c=c.substring(p-1)):(T=c.substring(0,p),c=c.substring(p));const A=b(T);_.push(new n(this._buffers.length,{line:0,column:0},{line:A.length-1,column:T.length-A[A.length-1]},A.length-1,T.length)),this._buffers.push(new i(T,A))}const E=b(c);return _.push(new n(this._buffers.length,{line:0,column:0},{line:E.length-1,column:c.length-E[E.length-1]},E.length-1,c.length)),this._buffers.push(new i(c,E)),_}let d=this._buffers[0].buffer.length;const s=b(c,!1);let l=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===d&&d!==0&&this.startWithLF(c)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},l=this._lastChangeBufferPos;for(let _=0;_=c-1)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt>c-1){const f=this.getAccumulatedValue(s,c-s.lf_left-2),C=this.getAccumulatedValue(s,c-s.lf_left-1),_=this._buffers[s.piece.bufferIndex].buffer,E=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);return h+=s.size_left,this._searchCache.set({node:s,nodeStartOffset:h,nodeStartLineNumber:u-(c-1-s.lf_left)}),_.substring(E+f,E+C-d)}else if(s.lf_left+s.piece.lineFeedCnt===c-1){const f=this.getAccumulatedValue(s,c-s.lf_left-2),C=this._buffers[s.piece.bufferIndex].buffer,_=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);l=C.substring(_+f,_+s.piece.length);break}else c-=s.lf_left+s.piece.lineFeedCnt,h+=s.size_left+s.piece.length,s=s.right}for(s=s.next();s!==D.SENTINEL;){const h=this._buffers[s.piece.bufferIndex].buffer;if(s.piece.lineFeedCnt>0){const u=this.getAccumulatedValue(s,0),f=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);return l+=h.substring(f,f+u-d),l}else{const u=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);l+=h.substr(u,s.piece.length)}s=s.next()}return l}computeBufferMetadata(){let c=this.root,d=1,s=0;for(;c!==D.SENTINEL;)d+=c.lf_left+c.piece.lineFeedCnt,s+=c.size_left+c.piece.length,c=c.right;this._lineCnt=d,this._length=s,this._searchCache.validate(this._length)}getIndexOf(c,d){const s=c.piece,l=this.positionInBuffer(c,d),r=l.line-s.start.line;if(this.offsetInBuffer(s.bufferIndex,s.end)-this.offsetInBuffer(s.bufferIndex,s.start)===d){const h=this.getLineFeedCnt(c.piece.bufferIndex,s.start,l);if(h!==r)return{index:h,remainder:0}}return{index:r,remainder:l.column}}getAccumulatedValue(c,d){if(d<0)return 0;const s=c.piece,l=this._buffers[s.bufferIndex].lineStarts,r=s.start.line+d+1;return r>s.end.line?l[s.end.line]+s.end.column-l[s.start.line]-s.start.column:l[r]-l[s.start.line]-s.start.column}deleteNodeTail(c,d){const s=c.piece,l=s.lineFeedCnt,r=this.offsetInBuffer(s.bufferIndex,s.end),h=d,u=this.offsetInBuffer(s.bufferIndex,h),f=this.getLineFeedCnt(s.bufferIndex,s.start,h),C=f-l,_=u-r,E=s.length+_;c.piece=new n(s.bufferIndex,s.start,h,f,E),(0,D.updateTreeMetadata)(this,c,_,C)}deleteNodeHead(c,d){const s=c.piece,l=s.lineFeedCnt,r=this.offsetInBuffer(s.bufferIndex,s.start),h=d,u=this.getLineFeedCnt(s.bufferIndex,h,s.end),f=this.offsetInBuffer(s.bufferIndex,h),C=u-l,_=r-f,E=s.length+_;c.piece=new n(s.bufferIndex,h,s.end,u,E),(0,D.updateTreeMetadata)(this,c,_,C)}shrinkNode(c,d,s){const l=c.piece,r=l.start,h=l.end,u=l.length,f=l.lineFeedCnt,C=d,_=this.getLineFeedCnt(l.bufferIndex,l.start,C),E=this.offsetInBuffer(l.bufferIndex,d)-this.offsetInBuffer(l.bufferIndex,r);c.piece=new n(l.bufferIndex,l.start,C,_,E),(0,D.updateTreeMetadata)(this,c,E-u,_-f);const I=new n(l.bufferIndex,s,h,this.getLineFeedCnt(l.bufferIndex,s,h),this.offsetInBuffer(l.bufferIndex,h)-this.offsetInBuffer(l.bufferIndex,s)),T=this.rbInsertRight(c,I);this.validateCRLFWithPrevNode(T)}appendToNode(c,d){this.adjustCarriageReturnFromNext(d,c)&&(d+=` +`);const s=this.shouldCheckCRLF()&&this.startWithLF(d)&&this.endWithCR(c),l=this._buffers[0].buffer.length;this._buffers[0].buffer+=d;const r=b(d,!1);for(let T=0;Tc)d=d.left;else if(d.size_left+d.piece.length>=c){l+=d.size_left;const r={node:d,remainder:c-d.size_left,nodeStartOffset:l};return this._searchCache.set(r),r}else c-=d.size_left+d.piece.length,l+=d.size_left+d.piece.length,d=d.right;return null}nodeAt2(c,d){let s=this.root,l=0;for(;s!==D.SENTINEL;)if(s.left!==D.SENTINEL&&s.lf_left>=c-1)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt>c-1){const r=this.getAccumulatedValue(s,c-s.lf_left-2),h=this.getAccumulatedValue(s,c-s.lf_left-1);return l+=s.size_left,{node:s,remainder:Math.min(r+d-1,h),nodeStartOffset:l}}else if(s.lf_left+s.piece.lineFeedCnt===c-1){const r=this.getAccumulatedValue(s,c-s.lf_left-2);if(r+d-1<=s.piece.length)return{node:s,remainder:r+d-1,nodeStartOffset:l};d-=s.piece.length-r;break}else c-=s.lf_left+s.piece.lineFeedCnt,l+=s.size_left+s.piece.length,s=s.right;for(s=s.next();s!==D.SENTINEL;){if(s.piece.lineFeedCnt>0){const r=this.getAccumulatedValue(s,0),h=this.offsetOfNode(s);return{node:s,remainder:Math.min(d-1,r),nodeStartOffset:h}}else if(s.piece.length>=d-1){const r=this.offsetOfNode(s);return{node:s,remainder:d-1,nodeStartOffset:r}}else d-=s.piece.length;s=s.next()}return null}nodeCharCodeAt(c,d){if(c.piece.lineFeedCnt<1)return-1;const s=this._buffers[c.piece.bufferIndex],l=this.offsetInBuffer(c.piece.bufferIndex,c.piece.start)+d;return s.buffer.charCodeAt(l)}offsetOfNode(c){if(!c)return 0;let d=c.size_left;for(;c!==this.root;)c.parent.right===c&&(d+=c.parent.size_left+c.parent.piece.length),c=c.parent;return d}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` +`)}startWithLF(c){if(typeof c=="string")return c.charCodeAt(0)===10;if(c===D.SENTINEL||c.piece.lineFeedCnt===0)return!1;const d=c.piece,s=this._buffers[d.bufferIndex].lineStarts,l=d.start.line,r=s[l]+d.start.column;return l===s.length-1||s[l+1]>r+1?!1:this._buffers[d.bufferIndex].buffer.charCodeAt(r)===10}endWithCR(c){return typeof c=="string"?c.charCodeAt(c.length-1)===13:c===D.SENTINEL||c.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(c,c.piece.length-1)===13}validateCRLFWithPrevNode(c){if(this.shouldCheckCRLF()&&this.startWithLF(c)){const d=c.prev();this.endWithCR(d)&&this.fixCRLF(d,c)}}validateCRLFWithNextNode(c){if(this.shouldCheckCRLF()&&this.endWithCR(c)){const d=c.next();this.startWithLF(d)&&this.fixCRLF(c,d)}}fixCRLF(c,d){const s=[],l=this._buffers[c.piece.bufferIndex].lineStarts;let r;c.piece.end.column===0?r={line:c.piece.end.line-1,column:l[c.piece.end.line]-l[c.piece.end.line-1]-1}:r={line:c.piece.end.line,column:c.piece.end.column-1};const h=c.piece.length-1,u=c.piece.lineFeedCnt-1;c.piece=new n(c.piece.bufferIndex,c.piece.start,r,u,h),(0,D.updateTreeMetadata)(this,c,-1,-1),c.piece.length===0&&s.push(c);const f={line:d.piece.start.line+1,column:0},C=d.piece.length-1,_=this.getLineFeedCnt(d.piece.bufferIndex,f,d.piece.end);d.piece=new n(d.piece.bufferIndex,f,d.piece.end,_,C),(0,D.updateTreeMetadata)(this,d,-1,-1),d.piece.length===0&&s.push(d);const E=this.createNewPieces(`\r +`);this.rbInsertRight(c,E[0]);for(let I=0;I0?this.wrappedTextIndentLength:0}getLineLength(a){const n=a>0?this.breakOffsets[a-1]:0;let t=this.breakOffsets[a]-n;return a>0&&(t+=this.wrappedTextIndentLength),t}getMaxOutputOffset(a){return this.getLineLength(a)}translateToInputOffset(a,n){a>0&&(n=Math.max(0,n-this.wrappedTextIndentLength));let t=a===0?n:this.breakOffsets[a-1]+n;if(this.injectionOffsets!==null)for(let o=0;othis.injectionOffsets[o];o++)t0?this.breakOffsets[o-1]:0,n===0)if(a<=g)t=o-1;else if(a>c)i=o+1;else break;else if(a=c)i=o+1;else break}let m=a-g;return o>0&&(m+=this.wrappedTextIndentLength),new v(o,m)}normalizeOutputPosition(a,n,i){if(this.injectionOffsets!==null){const t=this.outputPositionToOffsetInInputWithInjections(a,n),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(t,i);if(o!==t)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(i===0){if(a>0&&n===this.getMinOutputOffset(a))return new v(a-1,this.getMaxOutputOffset(a-1))}else if(i===1){const t=this.getOutputLineCount()-1;if(a0&&(n=Math.max(0,n-this.wrappedTextIndentLength)),(a>0?this.breakOffsets[a-1]:0)+n}normalizeOffsetInInputWithInjectionsAroundInjections(a,n){const i=this.getInjectedTextAtOffset(a);if(!i)return a;if(n===2){if(a===i.offsetInInputWithInjections+i.length&&S(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let t=i.offsetInInputWithInjections;if(p(this.injectionOptions[i.injectedTextIndex].cursorStops))return t;let o=i.injectedTextIndex-1;for(;o>=0&&this.injectionOffsets[o]===this.injectionOffsets[i.injectedTextIndex]&&!(S(this.injectionOptions[o].cursorStops)||(t-=this.injectionOptions[o].content.length,p(this.injectionOptions[o].cursorStops)));)o--;return t}}else if(n===1||n===4){let t=i.offsetInInputWithInjections+i.length,o=i.injectedTextIndex;for(;o+1=0&&this.injectionOffsets[o-1]===this.injectionOffsets[o];)t-=this.injectionOptions[o-1].content.length,o--;return t}(0,L.assertNever)(n)}getInjectedText(a,n){const i=this.outputPositionToOffsetInInputWithInjections(a,n),t=this.getInjectedTextAtOffset(i);return t?{options:this.injectionOptions[t.injectedTextIndex]}:null}getInjectedTextAtOffset(a){const n=this.injectionOffsets,i=this.injectionOptions;if(n!==null){let t=0;for(let o=0;oa)break;if(a<=c)return{injectedTextIndex:o,offsetInInputWithInjections:m,length:g};t+=g}}}}e.ModelLineProjectionData=D;function S(b){return b==null?!0:b===y.InjectedTextCursorStops.Right||b===y.InjectedTextCursorStops.Both}function p(b){return b==null?!0:b===y.InjectedTextCursorStops.Left||b===y.InjectedTextCursorStops.Both}class w{constructor(a){this.options=a}}e.InjectedText=w;class v{constructor(a,n){this.outputLineIndex=a,this.outputOffset=n}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(a){return new k.Position(a+this.outputLineIndex,this.outputOffset+1)}}e.OutputPosition=v}),define(ne[303],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DraggedTreeItemsIdentifier=e.TreeViewsDnDService=void 0;class L{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(D){if(D&&this._dragOperations.has(D)){const S=this._dragOperations.get(D);return this._dragOperations.delete(D),S}}}e.TreeViewsDnDService=L;class k{constructor(D){this.identifier=D}}e.DraggedTreeItemsIdentifier=k}),define(ne[304],se([1,0,5,187,11,90,155]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeTextModelHighlighter=void 0;class p{static computeUnicodeHighlights(n,i,t){const o=t?t.startLineNumber:1,g=t?t.endLineNumber:n.getLineCount(),m=new v(i),c=m.getCandidateCodePoints();let d;c==="allNonBasicAscii"?d=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):d=new RegExp(`${w(Array.from(c))}`,"g");const s=new k.Searcher(null,d),l=[];let r=!1,h,u=0,f=0,C=0;e:for(let _=o,E=g;_<=E;_++){const I=n.getLineContent(_),T=I.length;s.reset(0);do if(h=s.next(I),h){let A=h.index,R=h.index+h[0].length;if(A>0){const F=I.charCodeAt(A-1);y.isHighSurrogate(F)&&A--}if(R+1=1e3){r=!0;break e}l.push(new L.Range(_,A+1,_,R+1))}}while(h)}return{ranges:l,hasMore:r,ambiguousCharacterCount:u,invisibleCharacterCount:f,nonBasicAsciiCharacterCount:C}}static computeUnicodeHighlightReason(n,i){const t=new v(i);switch(t.shouldHighlightNonBasicASCII(n,null)){case 0:return null;case 2:return{kind:1};case 3:{const g=n.codePointAt(0),m=t.ambiguousCharacters.getPrimaryConfusable(g),c=y.AmbiguousCharacters.getLocales().filter(d=>!y.AmbiguousCharacters.getInstance(new Set([...i.allowedLocales,d])).isAmbiguous(g));return{kind:0,confusableWith:String.fromCodePoint(m),notAmbiguousInLocales:c}}case 1:return{kind:2}}}}e.UnicodeTextModelHighlighter=p;function w(a,n){return`[${y.escapeRegExpCharacters(a.map(t=>String.fromCodePoint(t)).join(""))}]`}class v{constructor(n){this.options=n,this.allowedCodePoints=new Set(n.allowedCodePoints),this.ambiguousCharacters=y.AmbiguousCharacters.getInstance(new Set(n.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const n=new Set;if(this.options.invisibleCharacters)for(const i of y.InvisibleCharacters.codePoints)b(String.fromCodePoint(i))||n.add(i);if(this.options.ambiguousCharacters)for(const i of this.ambiguousCharacters.getConfusableCodePoints())n.add(i);for(const i of this.allowedCodePoints)n.delete(i);return n}shouldHighlightNonBasicASCII(n,i){const t=n.codePointAt(0);if(this.allowedCodePoints.has(t))return 0;if(this.options.nonBasicASCII)return 1;let o=!1,g=!1;if(i)for(const m of i){const c=m.codePointAt(0),d=y.isBasicASCII(m);o=o||d,!d&&!this.ambiguousCharacters.isAmbiguous(c)&&!y.InvisibleCharacters.isInvisibleCharacter(c)&&(g=!0)}return!o&&g?0:this.options.invisibleCharacters&&!b(n)&&y.InvisibleCharacters.isInvisibleCharacter(t)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(t)?3:0}}function b(a){return a===" "||a===` +`||a===" "}}),define(ne[217],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WrappingIndent=e.TrackedRangeStickiness=e.TextEditorCursorStyle=e.TextEditorCursorBlinkingStyle=e.SymbolTag=e.SymbolKind=e.SignatureHelpTriggerKind=e.ShowLightbulbIconMode=e.SelectionDirection=e.ScrollbarVisibility=e.ScrollType=e.RenderMinimap=e.RenderLineNumbersType=e.PositionAffinity=e.OverviewRulerLane=e.OverlayWidgetPositionPreference=e.NewSymbolNameTag=e.MouseTargetType=e.MinimapPosition=e.MarkerTag=e.MarkerSeverity=e.KeyCode=e.InlineEditTriggerKind=e.InlineCompletionTriggerKind=e.InlayHintKind=e.InjectedTextCursorStops=e.IndentAction=e.GlyphMarginLane=e.EndOfLineSequence=e.EndOfLinePreference=e.EditorOption=e.EditorAutoIndentStrategy=e.DocumentHighlightKind=e.DefaultEndOfLine=e.CursorChangeReason=e.ContentWidgetPositionPreference=e.CompletionTriggerKind=e.CompletionItemTag=e.CompletionItemKind=e.CompletionItemInsertTextRule=e.CodeActionTriggerType=e.AccessibilitySupport=void 0;var L;(function(x){x[x.Unknown=0]="Unknown",x[x.Disabled=1]="Disabled",x[x.Enabled=2]="Enabled"})(L||(e.AccessibilitySupport=L={}));var k;(function(x){x[x.Invoke=1]="Invoke",x[x.Auto=2]="Auto"})(k||(e.CodeActionTriggerType=k={}));var y;(function(x){x[x.None=0]="None",x[x.KeepWhitespace=1]="KeepWhitespace",x[x.InsertAsSnippet=4]="InsertAsSnippet"})(y||(e.CompletionItemInsertTextRule=y={}));var D;(function(x){x[x.Method=0]="Method",x[x.Function=1]="Function",x[x.Constructor=2]="Constructor",x[x.Field=3]="Field",x[x.Variable=4]="Variable",x[x.Class=5]="Class",x[x.Struct=6]="Struct",x[x.Interface=7]="Interface",x[x.Module=8]="Module",x[x.Property=9]="Property",x[x.Event=10]="Event",x[x.Operator=11]="Operator",x[x.Unit=12]="Unit",x[x.Value=13]="Value",x[x.Constant=14]="Constant",x[x.Enum=15]="Enum",x[x.EnumMember=16]="EnumMember",x[x.Keyword=17]="Keyword",x[x.Text=18]="Text",x[x.Color=19]="Color",x[x.File=20]="File",x[x.Reference=21]="Reference",x[x.Customcolor=22]="Customcolor",x[x.Folder=23]="Folder",x[x.TypeParameter=24]="TypeParameter",x[x.User=25]="User",x[x.Issue=26]="Issue",x[x.Snippet=27]="Snippet"})(D||(e.CompletionItemKind=D={}));var S;(function(x){x[x.Deprecated=1]="Deprecated"})(S||(e.CompletionItemTag=S={}));var p;(function(x){x[x.Invoke=0]="Invoke",x[x.TriggerCharacter=1]="TriggerCharacter",x[x.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(p||(e.CompletionTriggerKind=p={}));var w;(function(x){x[x.EXACT=0]="EXACT",x[x.ABOVE=1]="ABOVE",x[x.BELOW=2]="BELOW"})(w||(e.ContentWidgetPositionPreference=w={}));var v;(function(x){x[x.NotSet=0]="NotSet",x[x.ContentFlush=1]="ContentFlush",x[x.RecoverFromMarkers=2]="RecoverFromMarkers",x[x.Explicit=3]="Explicit",x[x.Paste=4]="Paste",x[x.Undo=5]="Undo",x[x.Redo=6]="Redo"})(v||(e.CursorChangeReason=v={}));var b;(function(x){x[x.LF=1]="LF",x[x.CRLF=2]="CRLF"})(b||(e.DefaultEndOfLine=b={}));var a;(function(x){x[x.Text=0]="Text",x[x.Read=1]="Read",x[x.Write=2]="Write"})(a||(e.DocumentHighlightKind=a={}));var n;(function(x){x[x.None=0]="None",x[x.Keep=1]="Keep",x[x.Brackets=2]="Brackets",x[x.Advanced=3]="Advanced",x[x.Full=4]="Full"})(n||(e.EditorAutoIndentStrategy=n={}));var i;(function(x){x[x.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",x[x.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",x[x.accessibilitySupport=2]="accessibilitySupport",x[x.accessibilityPageSize=3]="accessibilityPageSize",x[x.ariaLabel=4]="ariaLabel",x[x.ariaRequired=5]="ariaRequired",x[x.autoClosingBrackets=6]="autoClosingBrackets",x[x.autoClosingComments=7]="autoClosingComments",x[x.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",x[x.autoClosingDelete=9]="autoClosingDelete",x[x.autoClosingOvertype=10]="autoClosingOvertype",x[x.autoClosingQuotes=11]="autoClosingQuotes",x[x.autoIndent=12]="autoIndent",x[x.automaticLayout=13]="automaticLayout",x[x.autoSurround=14]="autoSurround",x[x.bracketPairColorization=15]="bracketPairColorization",x[x.guides=16]="guides",x[x.codeLens=17]="codeLens",x[x.codeLensFontFamily=18]="codeLensFontFamily",x[x.codeLensFontSize=19]="codeLensFontSize",x[x.colorDecorators=20]="colorDecorators",x[x.colorDecoratorsLimit=21]="colorDecoratorsLimit",x[x.columnSelection=22]="columnSelection",x[x.comments=23]="comments",x[x.contextmenu=24]="contextmenu",x[x.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",x[x.cursorBlinking=26]="cursorBlinking",x[x.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",x[x.cursorStyle=28]="cursorStyle",x[x.cursorSurroundingLines=29]="cursorSurroundingLines",x[x.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",x[x.cursorWidth=31]="cursorWidth",x[x.disableLayerHinting=32]="disableLayerHinting",x[x.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",x[x.domReadOnly=34]="domReadOnly",x[x.dragAndDrop=35]="dragAndDrop",x[x.dropIntoEditor=36]="dropIntoEditor",x[x.emptySelectionClipboard=37]="emptySelectionClipboard",x[x.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",x[x.extraEditorClassName=39]="extraEditorClassName",x[x.fastScrollSensitivity=40]="fastScrollSensitivity",x[x.find=41]="find",x[x.fixedOverflowWidgets=42]="fixedOverflowWidgets",x[x.folding=43]="folding",x[x.foldingStrategy=44]="foldingStrategy",x[x.foldingHighlight=45]="foldingHighlight",x[x.foldingImportsByDefault=46]="foldingImportsByDefault",x[x.foldingMaximumRegions=47]="foldingMaximumRegions",x[x.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",x[x.fontFamily=49]="fontFamily",x[x.fontInfo=50]="fontInfo",x[x.fontLigatures=51]="fontLigatures",x[x.fontSize=52]="fontSize",x[x.fontWeight=53]="fontWeight",x[x.fontVariations=54]="fontVariations",x[x.formatOnPaste=55]="formatOnPaste",x[x.formatOnType=56]="formatOnType",x[x.glyphMargin=57]="glyphMargin",x[x.gotoLocation=58]="gotoLocation",x[x.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",x[x.hover=60]="hover",x[x.inDiffEditor=61]="inDiffEditor",x[x.inlineSuggest=62]="inlineSuggest",x[x.inlineEdit=63]="inlineEdit",x[x.letterSpacing=64]="letterSpacing",x[x.lightbulb=65]="lightbulb",x[x.lineDecorationsWidth=66]="lineDecorationsWidth",x[x.lineHeight=67]="lineHeight",x[x.lineNumbers=68]="lineNumbers",x[x.lineNumbersMinChars=69]="lineNumbersMinChars",x[x.linkedEditing=70]="linkedEditing",x[x.links=71]="links",x[x.matchBrackets=72]="matchBrackets",x[x.minimap=73]="minimap",x[x.mouseStyle=74]="mouseStyle",x[x.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",x[x.mouseWheelZoom=76]="mouseWheelZoom",x[x.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",x[x.multiCursorModifier=78]="multiCursorModifier",x[x.multiCursorPaste=79]="multiCursorPaste",x[x.multiCursorLimit=80]="multiCursorLimit",x[x.occurrencesHighlight=81]="occurrencesHighlight",x[x.overviewRulerBorder=82]="overviewRulerBorder",x[x.overviewRulerLanes=83]="overviewRulerLanes",x[x.padding=84]="padding",x[x.pasteAs=85]="pasteAs",x[x.parameterHints=86]="parameterHints",x[x.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",x[x.definitionLinkOpensInPeek=88]="definitionLinkOpensInPeek",x[x.quickSuggestions=89]="quickSuggestions",x[x.quickSuggestionsDelay=90]="quickSuggestionsDelay",x[x.readOnly=91]="readOnly",x[x.readOnlyMessage=92]="readOnlyMessage",x[x.renameOnType=93]="renameOnType",x[x.renderControlCharacters=94]="renderControlCharacters",x[x.renderFinalNewline=95]="renderFinalNewline",x[x.renderLineHighlight=96]="renderLineHighlight",x[x.renderLineHighlightOnlyWhenFocus=97]="renderLineHighlightOnlyWhenFocus",x[x.renderValidationDecorations=98]="renderValidationDecorations",x[x.renderWhitespace=99]="renderWhitespace",x[x.revealHorizontalRightPadding=100]="revealHorizontalRightPadding",x[x.roundedSelection=101]="roundedSelection",x[x.rulers=102]="rulers",x[x.scrollbar=103]="scrollbar",x[x.scrollBeyondLastColumn=104]="scrollBeyondLastColumn",x[x.scrollBeyondLastLine=105]="scrollBeyondLastLine",x[x.scrollPredominantAxis=106]="scrollPredominantAxis",x[x.selectionClipboard=107]="selectionClipboard",x[x.selectionHighlight=108]="selectionHighlight",x[x.selectOnLineNumbers=109]="selectOnLineNumbers",x[x.showFoldingControls=110]="showFoldingControls",x[x.showUnused=111]="showUnused",x[x.snippetSuggestions=112]="snippetSuggestions",x[x.smartSelect=113]="smartSelect",x[x.smoothScrolling=114]="smoothScrolling",x[x.stickyScroll=115]="stickyScroll",x[x.stickyTabStops=116]="stickyTabStops",x[x.stopRenderingLineAfter=117]="stopRenderingLineAfter",x[x.suggest=118]="suggest",x[x.suggestFontSize=119]="suggestFontSize",x[x.suggestLineHeight=120]="suggestLineHeight",x[x.suggestOnTriggerCharacters=121]="suggestOnTriggerCharacters",x[x.suggestSelection=122]="suggestSelection",x[x.tabCompletion=123]="tabCompletion",x[x.tabIndex=124]="tabIndex",x[x.unicodeHighlighting=125]="unicodeHighlighting",x[x.unusualLineTerminators=126]="unusualLineTerminators",x[x.useShadowDOM=127]="useShadowDOM",x[x.useTabStops=128]="useTabStops",x[x.wordBreak=129]="wordBreak",x[x.wordSeparators=130]="wordSeparators",x[x.wordWrap=131]="wordWrap",x[x.wordWrapBreakAfterCharacters=132]="wordWrapBreakAfterCharacters",x[x.wordWrapBreakBeforeCharacters=133]="wordWrapBreakBeforeCharacters",x[x.wordWrapColumn=134]="wordWrapColumn",x[x.wordWrapOverride1=135]="wordWrapOverride1",x[x.wordWrapOverride2=136]="wordWrapOverride2",x[x.wrappingIndent=137]="wrappingIndent",x[x.wrappingStrategy=138]="wrappingStrategy",x[x.showDeprecated=139]="showDeprecated",x[x.inlayHints=140]="inlayHints",x[x.editorClassName=141]="editorClassName",x[x.pixelRatio=142]="pixelRatio",x[x.tabFocusMode=143]="tabFocusMode",x[x.layoutInfo=144]="layoutInfo",x[x.wrappingInfo=145]="wrappingInfo",x[x.defaultColorDecorators=146]="defaultColorDecorators",x[x.colorDecoratorsActivatedOn=147]="colorDecoratorsActivatedOn",x[x.inlineCompletionsAccessibilityVerbose=148]="inlineCompletionsAccessibilityVerbose"})(i||(e.EditorOption=i={}));var t;(function(x){x[x.TextDefined=0]="TextDefined",x[x.LF=1]="LF",x[x.CRLF=2]="CRLF"})(t||(e.EndOfLinePreference=t={}));var o;(function(x){x[x.LF=0]="LF",x[x.CRLF=1]="CRLF"})(o||(e.EndOfLineSequence=o={}));var g;(function(x){x[x.Left=1]="Left",x[x.Center=2]="Center",x[x.Right=3]="Right"})(g||(e.GlyphMarginLane=g={}));var m;(function(x){x[x.None=0]="None",x[x.Indent=1]="Indent",x[x.IndentOutdent=2]="IndentOutdent",x[x.Outdent=3]="Outdent"})(m||(e.IndentAction=m={}));var c;(function(x){x[x.Both=0]="Both",x[x.Right=1]="Right",x[x.Left=2]="Left",x[x.None=3]="None"})(c||(e.InjectedTextCursorStops=c={}));var d;(function(x){x[x.Type=1]="Type",x[x.Parameter=2]="Parameter"})(d||(e.InlayHintKind=d={}));var s;(function(x){x[x.Automatic=0]="Automatic",x[x.Explicit=1]="Explicit"})(s||(e.InlineCompletionTriggerKind=s={}));var l;(function(x){x[x.Invoke=0]="Invoke",x[x.Automatic=1]="Automatic"})(l||(e.InlineEditTriggerKind=l={}));var r;(function(x){x[x.DependsOnKbLayout=-1]="DependsOnKbLayout",x[x.Unknown=0]="Unknown",x[x.Backspace=1]="Backspace",x[x.Tab=2]="Tab",x[x.Enter=3]="Enter",x[x.Shift=4]="Shift",x[x.Ctrl=5]="Ctrl",x[x.Alt=6]="Alt",x[x.PauseBreak=7]="PauseBreak",x[x.CapsLock=8]="CapsLock",x[x.Escape=9]="Escape",x[x.Space=10]="Space",x[x.PageUp=11]="PageUp",x[x.PageDown=12]="PageDown",x[x.End=13]="End",x[x.Home=14]="Home",x[x.LeftArrow=15]="LeftArrow",x[x.UpArrow=16]="UpArrow",x[x.RightArrow=17]="RightArrow",x[x.DownArrow=18]="DownArrow",x[x.Insert=19]="Insert",x[x.Delete=20]="Delete",x[x.Digit0=21]="Digit0",x[x.Digit1=22]="Digit1",x[x.Digit2=23]="Digit2",x[x.Digit3=24]="Digit3",x[x.Digit4=25]="Digit4",x[x.Digit5=26]="Digit5",x[x.Digit6=27]="Digit6",x[x.Digit7=28]="Digit7",x[x.Digit8=29]="Digit8",x[x.Digit9=30]="Digit9",x[x.KeyA=31]="KeyA",x[x.KeyB=32]="KeyB",x[x.KeyC=33]="KeyC",x[x.KeyD=34]="KeyD",x[x.KeyE=35]="KeyE",x[x.KeyF=36]="KeyF",x[x.KeyG=37]="KeyG",x[x.KeyH=38]="KeyH",x[x.KeyI=39]="KeyI",x[x.KeyJ=40]="KeyJ",x[x.KeyK=41]="KeyK",x[x.KeyL=42]="KeyL",x[x.KeyM=43]="KeyM",x[x.KeyN=44]="KeyN",x[x.KeyO=45]="KeyO",x[x.KeyP=46]="KeyP",x[x.KeyQ=47]="KeyQ",x[x.KeyR=48]="KeyR",x[x.KeyS=49]="KeyS",x[x.KeyT=50]="KeyT",x[x.KeyU=51]="KeyU",x[x.KeyV=52]="KeyV",x[x.KeyW=53]="KeyW",x[x.KeyX=54]="KeyX",x[x.KeyY=55]="KeyY",x[x.KeyZ=56]="KeyZ",x[x.Meta=57]="Meta",x[x.ContextMenu=58]="ContextMenu",x[x.F1=59]="F1",x[x.F2=60]="F2",x[x.F3=61]="F3",x[x.F4=62]="F4",x[x.F5=63]="F5",x[x.F6=64]="F6",x[x.F7=65]="F7",x[x.F8=66]="F8",x[x.F9=67]="F9",x[x.F10=68]="F10",x[x.F11=69]="F11",x[x.F12=70]="F12",x[x.F13=71]="F13",x[x.F14=72]="F14",x[x.F15=73]="F15",x[x.F16=74]="F16",x[x.F17=75]="F17",x[x.F18=76]="F18",x[x.F19=77]="F19",x[x.F20=78]="F20",x[x.F21=79]="F21",x[x.F22=80]="F22",x[x.F23=81]="F23",x[x.F24=82]="F24",x[x.NumLock=83]="NumLock",x[x.ScrollLock=84]="ScrollLock",x[x.Semicolon=85]="Semicolon",x[x.Equal=86]="Equal",x[x.Comma=87]="Comma",x[x.Minus=88]="Minus",x[x.Period=89]="Period",x[x.Slash=90]="Slash",x[x.Backquote=91]="Backquote",x[x.BracketLeft=92]="BracketLeft",x[x.Backslash=93]="Backslash",x[x.BracketRight=94]="BracketRight",x[x.Quote=95]="Quote",x[x.OEM_8=96]="OEM_8",x[x.IntlBackslash=97]="IntlBackslash",x[x.Numpad0=98]="Numpad0",x[x.Numpad1=99]="Numpad1",x[x.Numpad2=100]="Numpad2",x[x.Numpad3=101]="Numpad3",x[x.Numpad4=102]="Numpad4",x[x.Numpad5=103]="Numpad5",x[x.Numpad6=104]="Numpad6",x[x.Numpad7=105]="Numpad7",x[x.Numpad8=106]="Numpad8",x[x.Numpad9=107]="Numpad9",x[x.NumpadMultiply=108]="NumpadMultiply",x[x.NumpadAdd=109]="NumpadAdd",x[x.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",x[x.NumpadSubtract=111]="NumpadSubtract",x[x.NumpadDecimal=112]="NumpadDecimal",x[x.NumpadDivide=113]="NumpadDivide",x[x.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",x[x.ABNT_C1=115]="ABNT_C1",x[x.ABNT_C2=116]="ABNT_C2",x[x.AudioVolumeMute=117]="AudioVolumeMute",x[x.AudioVolumeUp=118]="AudioVolumeUp",x[x.AudioVolumeDown=119]="AudioVolumeDown",x[x.BrowserSearch=120]="BrowserSearch",x[x.BrowserHome=121]="BrowserHome",x[x.BrowserBack=122]="BrowserBack",x[x.BrowserForward=123]="BrowserForward",x[x.MediaTrackNext=124]="MediaTrackNext",x[x.MediaTrackPrevious=125]="MediaTrackPrevious",x[x.MediaStop=126]="MediaStop",x[x.MediaPlayPause=127]="MediaPlayPause",x[x.LaunchMediaPlayer=128]="LaunchMediaPlayer",x[x.LaunchMail=129]="LaunchMail",x[x.LaunchApp2=130]="LaunchApp2",x[x.Clear=131]="Clear",x[x.MAX_VALUE=132]="MAX_VALUE"})(r||(e.KeyCode=r={}));var h;(function(x){x[x.Hint=1]="Hint",x[x.Info=2]="Info",x[x.Warning=4]="Warning",x[x.Error=8]="Error"})(h||(e.MarkerSeverity=h={}));var u;(function(x){x[x.Unnecessary=1]="Unnecessary",x[x.Deprecated=2]="Deprecated"})(u||(e.MarkerTag=u={}));var f;(function(x){x[x.Inline=1]="Inline",x[x.Gutter=2]="Gutter"})(f||(e.MinimapPosition=f={}));var C;(function(x){x[x.UNKNOWN=0]="UNKNOWN",x[x.TEXTAREA=1]="TEXTAREA",x[x.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",x[x.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",x[x.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",x[x.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",x[x.CONTENT_TEXT=6]="CONTENT_TEXT",x[x.CONTENT_EMPTY=7]="CONTENT_EMPTY",x[x.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",x[x.CONTENT_WIDGET=9]="CONTENT_WIDGET",x[x.OVERVIEW_RULER=10]="OVERVIEW_RULER",x[x.SCROLLBAR=11]="SCROLLBAR",x[x.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",x[x.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(C||(e.MouseTargetType=C={}));var _;(function(x){x[x.AIGenerated=1]="AIGenerated"})(_||(e.NewSymbolNameTag=_={}));var E;(function(x){x[x.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",x[x.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",x[x.TOP_CENTER=2]="TOP_CENTER"})(E||(e.OverlayWidgetPositionPreference=E={}));var I;(function(x){x[x.Left=1]="Left",x[x.Center=2]="Center",x[x.Right=4]="Right",x[x.Full=7]="Full"})(I||(e.OverviewRulerLane=I={}));var T;(function(x){x[x.Left=0]="Left",x[x.Right=1]="Right",x[x.None=2]="None",x[x.LeftOfInjectedText=3]="LeftOfInjectedText",x[x.RightOfInjectedText=4]="RightOfInjectedText"})(T||(e.PositionAffinity=T={}));var A;(function(x){x[x.Off=0]="Off",x[x.On=1]="On",x[x.Relative=2]="Relative",x[x.Interval=3]="Interval",x[x.Custom=4]="Custom"})(A||(e.RenderLineNumbersType=A={}));var R;(function(x){x[x.None=0]="None",x[x.Text=1]="Text",x[x.Blocks=2]="Blocks"})(R||(e.RenderMinimap=R={}));var M;(function(x){x[x.Smooth=0]="Smooth",x[x.Immediate=1]="Immediate"})(M||(e.ScrollType=M={}));var N;(function(x){x[x.Auto=1]="Auto",x[x.Hidden=2]="Hidden",x[x.Visible=3]="Visible"})(N||(e.ScrollbarVisibility=N={}));var P;(function(x){x[x.LTR=0]="LTR",x[x.RTL=1]="RTL"})(P||(e.SelectionDirection=P={}));var F;(function(x){x.Off="off",x.OnCode="onCode",x.On="on"})(F||(e.ShowLightbulbIconMode=F={}));var O;(function(x){x[x.Invoke=1]="Invoke",x[x.TriggerCharacter=2]="TriggerCharacter",x[x.ContentChange=3]="ContentChange"})(O||(e.SignatureHelpTriggerKind=O={}));var B;(function(x){x[x.File=0]="File",x[x.Module=1]="Module",x[x.Namespace=2]="Namespace",x[x.Package=3]="Package",x[x.Class=4]="Class",x[x.Method=5]="Method",x[x.Property=6]="Property",x[x.Field=7]="Field",x[x.Constructor=8]="Constructor",x[x.Enum=9]="Enum",x[x.Interface=10]="Interface",x[x.Function=11]="Function",x[x.Variable=12]="Variable",x[x.Constant=13]="Constant",x[x.String=14]="String",x[x.Number=15]="Number",x[x.Boolean=16]="Boolean",x[x.Array=17]="Array",x[x.Object=18]="Object",x[x.Key=19]="Key",x[x.Null=20]="Null",x[x.EnumMember=21]="EnumMember",x[x.Struct=22]="Struct",x[x.Event=23]="Event",x[x.Operator=24]="Operator",x[x.TypeParameter=25]="TypeParameter"})(B||(e.SymbolKind=B={}));var W;(function(x){x[x.Deprecated=1]="Deprecated"})(W||(e.SymbolTag=W={}));var V;(function(x){x[x.Hidden=0]="Hidden",x[x.Blink=1]="Blink",x[x.Smooth=2]="Smooth",x[x.Phase=3]="Phase",x[x.Expand=4]="Expand",x[x.Solid=5]="Solid"})(V||(e.TextEditorCursorBlinkingStyle=V={}));var z;(function(x){x[x.Line=1]="Line",x[x.Block=2]="Block",x[x.Underline=3]="Underline",x[x.LineThin=4]="LineThin",x[x.BlockOutline=5]="BlockOutline",x[x.UnderlineThin=6]="UnderlineThin"})(z||(e.TextEditorCursorStyle=z={}));var K;(function(x){x[x.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",x[x.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",x[x.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",x[x.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(K||(e.TrackedRangeStickiness=K={}));var j;(function(x){x[x.None=0]="None",x[x.Same=1]="Same",x[x.Indent=2]="Indent",x[x.DeepIndent=3]="DeepIndent"})(j||(e.WrappingIndent=j={}))}),define(ne[537],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairWithMinIndentationInfo=e.BracketPairInfo=e.BracketInfo=void 0;class L{constructor(S,p,w,v){this.range=S,this.nestingLevel=p,this.nestingLevelOfEqualBracketType=w,this.isInvalid=v}}e.BracketInfo=L;class k{constructor(S,p,w,v,b,a){this.range=S,this.openingBracketRange=p,this.closingBracketRange=w,this.nestingLevel=v,this.nestingLevelOfEqualBracketType=b,this.bracketPairNode=a}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}e.BracketPairInfo=k;class y extends k{constructor(S,p,w,v,b,a,n){super(S,p,w,v,b,a),this.minVisibleColumnIndentation=n}}e.BracketPairWithMinIndentationInfo=y}),define(ne[538],se([1,0,7,2,537,185,298,92,297,138,215,13,296]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTree=void 0;class i extends k.Disposable{didLanguageChange(s){return this.brackets.didLanguageChange(s)}constructor(s,l){if(super(),this.textModel=s,this.getLanguageConfiguration=l,this.didChangeEmitter=new L.Emitter,this.denseKeyProvider=new v.DenseKeyProvider,this.brackets=new S.LanguageAgnosticBracketTokens(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],s.tokenization.hasTokens)s.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const r=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),h=new b.FastTokenizer(this.textModel.getValue(),r);this.initialAstWithoutTokens=(0,w.parseDocument)(h,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const s=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,s||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:s}){const l=s.map(r=>new D.TextEditInfo((0,p.toLength)(r.fromLineNumber-1,0),(0,p.toLength)(r.toLineNumber,0),(0,p.toLength)(r.toLineNumber-r.fromLineNumber+1,0)));this.handleEdits(l,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(s){const l=D.TextEditInfo.fromModelContentChanges(s.changes);this.handleEdits(l,!1)}handleEdits(s,l){const r=(0,n.combineTextEditInfos)(this.queuedTextEdits,s);this.queuedTextEdits=r,this.initialAstWithoutTokens&&!l&&(this.queuedTextEditsForInitialAstWithoutTokens=(0,n.combineTextEditInfos)(this.queuedTextEditsForInitialAstWithoutTokens,s))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(s,l,r){const u=l,f=new b.TextBufferTokenizer(this.textModel,this.brackets);return(0,w.parseDocument)(f,s,u,r)}getBracketsInRange(s,l){this.flushQueue();const r=(0,p.toLength)(s.startLineNumber-1,s.startColumn-1),h=(0,p.toLength)(s.endLineNumber-1,s.endColumn-1);return new a.CallbackIterable(u=>{const f=this.initialAstWithoutTokens||this.astWithTokens;g(f,p.lengthZero,f.length,r,h,u,0,0,new Map,l)})}getBracketPairsInRange(s,l){this.flushQueue();const r=(0,p.positionToLength)(s.getStartPosition()),h=(0,p.positionToLength)(s.getEndPosition());return new a.CallbackIterable(u=>{const f=this.initialAstWithoutTokens||this.astWithTokens,C=new m(u,l,this.textModel);c(f,p.lengthZero,f.length,r,h,C,0,new Map)})}getFirstBracketAfter(s){this.flushQueue();const l=this.initialAstWithoutTokens||this.astWithTokens;return o(l,p.lengthZero,l.length,(0,p.positionToLength)(s))}getFirstBracketBefore(s){this.flushQueue();const l=this.initialAstWithoutTokens||this.astWithTokens;return t(l,p.lengthZero,l.length,(0,p.positionToLength)(s))}}e.BracketPairsTree=i;function t(d,s,l,r){if(d.kind===4||d.kind===2){const h=[];for(const u of d.children)l=(0,p.lengthAdd)(s,u.length),h.push({nodeOffsetStart:s,nodeOffsetEnd:l}),s=l;for(let u=h.length-1;u>=0;u--){const{nodeOffsetStart:f,nodeOffsetEnd:C}=h[u];if((0,p.lengthLessThan)(f,r)){const _=t(d.children[u],f,C,r);if(_)return _}}return null}else{if(d.kind===3)return null;if(d.kind===1){const h=(0,p.lengthsToRange)(s,l);return{bracketInfo:d.bracketInfo,range:h}}}return null}function o(d,s,l,r){if(d.kind===4||d.kind===2){for(const h of d.children){if(l=(0,p.lengthAdd)(s,h.length),(0,p.lengthLessThan)(r,l)){const u=o(h,s,l,r);if(u)return u}s=l}return null}else{if(d.kind===3)return null;if(d.kind===1){const h=(0,p.lengthsToRange)(s,l);return{bracketInfo:d.bracketInfo,range:h}}}return null}function g(d,s,l,r,h,u,f,C,_,E,I=!1){if(f>200)return!0;e:for(;;)switch(d.kind){case 4:{const T=d.childrenLength;for(let A=0;A200)return!0;let E=!0;if(d.kind===2){let I=0;if(C){let R=C.get(d.openingBracket.text);R===void 0&&(R=0),I=R,R++,C.set(d.openingBracket.text,R)}const T=(0,p.lengthAdd)(s,d.openingBracket.length);let A=-1;if(u.includeMinIndentation&&(A=d.computeMinIndentation(s,u.textModel)),E=u.push(new y.BracketPairWithMinIndentationInfo((0,p.lengthsToRange)(s,l),(0,p.lengthsToRange)(s,T),d.closingBracket?(0,p.lengthsToRange)((0,p.lengthAdd)(T,((_=d.child)===null||_===void 0?void 0:_.length)||p.lengthZero),l):void 0,f,I,d,A)),s=T,E&&d.child){const R=d.child;if(l=(0,p.lengthAdd)(s,R.length),(0,p.lengthLessThanEqual)(s,h)&&(0,p.lengthGreaterThanEqual)(l,r)&&(E=c(R,s,l,r,h,u,f+1,C),!E))return!1}C?.set(d.openingBracket.text,I)}else{let I=s;for(const T of d.children){const A=I;if(I=(0,p.lengthAdd)(I,T.length),(0,p.lengthLessThanEqual)(A,h)&&(0,p.lengthLessThanEqual)(r,I)&&(E=c(T,A,I,r,h,u,f,C),!E))return!1}}return E}}),define(ne[117],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalModelContentChangeEvent=e.ModelInjectedTextChangedEvent=e.ModelRawContentChangedEvent=e.ModelRawEOLChanged=e.ModelRawLinesInserted=e.ModelRawLinesDeleted=e.ModelRawLineChanged=e.LineInjectedText=e.ModelRawFlush=void 0;class L{constructor(){this.changeType=1}}e.ModelRawFlush=L;class k{static applyInjectedText(n,i){if(!i||i.length===0)return n;let t="",o=0;for(const g of i)t+=n.substring(o,g.column-1),o=g.column-1,t+=g.options.content;return t+=n.substring(o),t}static fromDecorations(n){const i=[];for(const t of n)t.options.before&&t.options.before.content.length>0&&i.push(new k(t.ownerId,t.range.startLineNumber,t.range.startColumn,t.options.before,0)),t.options.after&&t.options.after.content.length>0&&i.push(new k(t.ownerId,t.range.endLineNumber,t.range.endColumn,t.options.after,1));return i.sort((t,o)=>t.lineNumber===o.lineNumber?t.column===o.column?t.order-o.order:t.column-o.column:t.lineNumber-o.lineNumber),i}constructor(n,i,t,o,g){this.ownerId=n,this.lineNumber=i,this.column=t,this.options=o,this.order=g}}e.LineInjectedText=k;class y{constructor(n,i,t){this.changeType=2,this.lineNumber=n,this.detail=i,this.injectedText=t}}e.ModelRawLineChanged=y;class D{constructor(n,i){this.changeType=3,this.fromLineNumber=n,this.toLineNumber=i}}e.ModelRawLinesDeleted=D;class S{constructor(n,i,t,o){this.changeType=4,this.injectedTexts=o,this.fromLineNumber=n,this.toLineNumber=i,this.detail=t}}e.ModelRawLinesInserted=S;class p{constructor(){this.changeType=5}}e.ModelRawEOLChanged=p;class w{constructor(n,i,t,o){this.changes=n,this.versionId=i,this.isUndoing=t,this.isRedoing=o,this.resultingSelection=null}containsEvent(n){for(let i=0,t=this.changes.length;ig)throw new v.BugIndicatingError("Illegal value for lineNumber");const m=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,c=!!(m&&m.offSide);let d=-2,s=-1,l=-2,r=-1;const h=P=>{if(d!==-1&&(d===-2||d>P-1)){d=-1,s=-1;for(let F=P-2;F>=0;F--){const O=this._computeIndentLevel(F);if(O>=0){d=F,s=O;break}}}if(l===-2){l=-1,r=-1;for(let F=P;F=0){l=F,r=O;break}}}};let u=-2,f=-1,C=-2,_=-1;const E=P=>{if(u===-2){u=-1,f=-1;for(let F=P-2;F>=0;F--){const O=this._computeIndentLevel(F);if(O>=0){u=F,f=O;break}}}if(C!==-1&&(C===-2||C=0){C=F,_=O;break}}}};let I=0,T=!0,A=0,R=!0,M=0,N=0;for(let P=0;T||R;P++){const F=i-P,O=i+P;P>1&&(F<1||F1&&(O>g||O>o)&&(R=!1),P>5e4&&(T=!1,R=!1);let B=-1;if(T&&F>=1){const V=this._computeIndentLevel(F-1);V>=0?(l=F-1,r=V,B=Math.ceil(V/this.textModel.getOptions().indentSize)):(h(F),B=this._getIndentLevelForWhitespaceLine(c,s,r))}let W=-1;if(R&&O<=g){const V=this._computeIndentLevel(O-1);V>=0?(u=O-1,f=V,W=Math.ceil(V/this.textModel.getOptions().indentSize)):(E(O),W=this._getIndentLevelForWhitespaceLine(c,f,_))}if(P===0){N=B;continue}if(P===1){if(O<=g&&W>=0&&N+1===W){T=!1,I=O,A=O,M=W;continue}if(F>=1&&B>=0&&B-1===N){R=!1,I=F,A=F,M=B;continue}if(I=i,A=i,M=N,M===0)return{startLineNumber:I,endLineNumber:A,indent:M}}T&&(B>=M?I=F:T=!1),R&&(W>=M?A=O:R=!1)}return{startLineNumber:I,endLineNumber:A,indent:M}}getLinesBracketGuides(i,t,o,g){var m;const c=[];for(let u=i;u<=t;u++)c.push([]);const d=!0,s=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new D.Range(i,1,t,this.textModel.getLineMaxColumn(t))).toArray();let l;if(o&&s.length>0){const u=(i<=o.lineNumber&&o.lineNumber<=t?s:this.textModel.bracketPairs.getBracketPairsInRange(D.Range.fromPositions(o)).toArray()).filter(f=>D.Range.strictContainsPosition(f.range,o));l=(m=(0,L.findLast)(u,f=>d||f.range.startLineNumber!==f.range.endLineNumber))===null||m===void 0?void 0:m.range}const r=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,h=new a;for(const u of s){if(!u.closingBracketRange)continue;const f=l&&u.range.equalsRange(l);if(!f&&!g.includeInactive)continue;const C=h.getInlineClassName(u.nestingLevel,u.nestingLevelOfEqualBracketType,r)+(g.highlightActive&&f?" "+h.activeClassName:""),_=u.openingBracketRange.getStartPosition(),E=u.closingBracketRange.getStartPosition(),I=g.horizontalGuides===w.HorizontalGuidesState.Enabled||g.horizontalGuides===w.HorizontalGuidesState.EnabledForActive&&f;if(u.range.startLineNumber===u.range.endLineNumber){d&&I&&c[u.range.startLineNumber-i].push(new w.IndentGuide(-1,u.openingBracketRange.getEndPosition().column,C,new w.IndentGuideHorizontalLine(!1,E.column),-1,-1));continue}const T=this.getVisibleColumnFromPosition(E),A=this.getVisibleColumnFromPosition(u.openingBracketRange.getStartPosition()),R=Math.min(A,T,u.minVisibleColumnIndentation+1);let M=!1;k.firstNonWhitespaceIndex(this.textModel.getLineContent(u.closingBracketRange.startLineNumber))=i&&A>R&&c[_.lineNumber-i].push(new w.IndentGuide(R,-1,C,new w.IndentGuideHorizontalLine(!1,_.column),-1,-1)),E.lineNumber<=t&&T>R&&c[E.lineNumber-i].push(new w.IndentGuide(R,-1,C,new w.IndentGuideHorizontalLine(!M,E.column),-1,-1)))}for(const u of c)u.sort((f,C)=>f.visibleColumn-C.visibleColumn);return c}getVisibleColumnFromPosition(i){return y.CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(i.lineNumber),i.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(i,t){this.assertNotDisposed();const o=this.textModel.getLineCount();if(i<1||i>o)throw new Error("Illegal value for startLineNumber");if(t<1||t>o)throw new Error("Illegal value for endLineNumber");const g=this.textModel.getOptions(),m=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,c=!!(m&&m.offSide),d=new Array(t-i+1);let s=-2,l=-1,r=-2,h=-1;for(let u=i;u<=t;u++){const f=u-i,C=this._computeIndentLevel(u-1);if(C>=0){s=u-1,l=C,d[f]=Math.ceil(C/g.indentSize);continue}if(s===-2){s=-1,l=-1;for(let _=u-2;_>=0;_--){const E=this._computeIndentLevel(_);if(E>=0){s=_,l=E;break}}}if(r!==-1&&(r===-2||r=0){r=_,h=E;break}}}d[f]=this._getIndentLevelForWhitespaceLine(c,l,h)}return d}_getIndentLevelForWhitespaceLine(i,t,o){const g=this.textModel.getOptions();return t===-1||o===-1?0:t{this._tokenizationSupports.get(p)===w&&(this._tokenizationSupports.delete(p),this.handleChange([p]))})}get(p){return this._tokenizationSupports.get(p)||null}registerFactory(p,w){var v;(v=this._factories.get(p))===null||v===void 0||v.dispose();const b=new D(this,p,w);return this._factories.set(p,b),(0,k.toDisposable)(()=>{const a=this._factories.get(p);!a||a!==b||(this._factories.delete(p),a.dispose())})}async getOrCreate(p){const w=this.get(p);if(w)return w;const v=this._factories.get(p);return!v||v.isResolved?null:(await v.resolve(),this.get(p))}isResolved(p){if(this.get(p))return!0;const v=this._factories.get(p);return!!(!v||v.isResolved)}setColorMap(p){this._colorMap=p,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}e.TokenizationRegistry=y;class D extends k.Disposable{get isResolved(){return this._isResolved}constructor(p,w,v){super(),this._registry=p,this._languageId=w,this._factory=v,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const p=await this._factory.tokenizationSupport;this._isResolved=!0,p&&!this._isDisposed&&this._register(this._registry.register(this._languageId,p))}}}),define(ne[540],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokens=void 0;class L{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(y,D){this._startLineNumber=y,this._tokens=D}getLineTokens(y){return this._tokens[y-this._startLineNumber]}appendLineTokens(y){this._tokens.push(y)}}e.ContiguousMultilineTokens=L}),define(ne[306],se([1,0,540]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokensBuilder=void 0;class k{constructor(){this._tokens=[]}add(D,S){if(this._tokens.length>0){const p=this._tokens[this._tokens.length-1];if(p.endLineNumber+1===D){p.appendLineTokens(S);return}}this._tokens.push(new L.ContiguousMultilineTokens(D,[S]))}finalize(){return this._tokens}}e.ContiguousMultilineTokensBuilder=k}),define(ne[97],se([1,0,136]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineTokens=void 0;class k{static createEmpty(S,p){const w=k.defaultTokenMetadata,v=new Uint32Array(2);return v[0]=S.length,v[1]=w,new k(v,S,p)}constructor(S,p,w){this._lineTokensBrand=void 0,this._tokens=S,this._tokensCount=this._tokens.length>>>1,this._text=p,this._languageIdCodec=w}equals(S){return S instanceof k?this.slicedEquals(S,0,this._tokensCount):!1}slicedEquals(S,p,w){if(this._text!==S._text||this._tokensCount!==S._tokensCount)return!1;const v=p<<1,b=v+(w<<1);for(let a=v;a0?this._tokens[S-1<<1]:0}getMetadata(S){return this._tokens[(S<<1)+1]}getLanguageId(S){const p=this._tokens[(S<<1)+1],w=L.TokenMetadata.getLanguageId(p);return this._languageIdCodec.decodeLanguageId(w)}getStandardTokenType(S){const p=this._tokens[(S<<1)+1];return L.TokenMetadata.getTokenType(p)}getForeground(S){const p=this._tokens[(S<<1)+1];return L.TokenMetadata.getForeground(p)}getClassName(S){const p=this._tokens[(S<<1)+1];return L.TokenMetadata.getClassNameFromMetadata(p)}getInlineStyle(S,p){const w=this._tokens[(S<<1)+1];return L.TokenMetadata.getInlineStyleFromMetadata(w,p)}getPresentation(S){const p=this._tokens[(S<<1)+1];return L.TokenMetadata.getPresentationFromMetadata(p)}getEndOffset(S){return this._tokens[S<<1]}findTokenIndexAtOffset(S){return k.findIndexInTokensArray(this._tokens,S)}inflate(){return this}sliceAndInflate(S,p,w){return new y(this,S,p,w)}static convertToEndOffset(S,p){const v=(S.length>>>1)-1;for(let b=0;b>>1)-1;for(;wp&&(v=b)}return w}withInserted(S){if(S.length===0)return this;let p=0,w=0,v="";const b=new Array;let a=0;for(;;){const n=pa){v+=this._text.substring(a,i.offset);const t=this._tokens[(p<<1)+1];b.push(v.length,t),a=i.offset}v+=i.text,b.push(v.length,i.tokenMetadata),w++}else break}return new k(new Uint32Array(b),v,this._languageIdCodec)}}e.LineTokens=k,k.defaultTokenMetadata=(32768|2<<24)>>>0;class y{constructor(S,p,w,v){this._source=S,this._startOffset=p,this._endOffset=w,this._deltaOffset=v,this._firstTokenIndex=S.findTokenIndexAtOffset(p),this._tokensCount=0;for(let b=this._firstTokenIndex,a=S.getCount();b=w);b++)this._tokensCount++}getMetadata(S){return this._source.getMetadata(this._firstTokenIndex+S)}getLanguageId(S){return this._source.getLanguageId(this._firstTokenIndex+S)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(S){return S instanceof y?this._startOffset===S._startOffset&&this._endOffset===S._endOffset&&this._deltaOffset===S._deltaOffset&&this._source.slicedEquals(S._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getForeground(S){return this._source.getForeground(this._firstTokenIndex+S)}getEndOffset(S){const p=this._source.getEndOffset(this._firstTokenIndex+S);return Math.min(this._endOffset,p)-this._startOffset+this._deltaOffset}getClassName(S){return this._source.getClassName(this._firstTokenIndex+S)}getInlineStyle(S,p){return this._source.getInlineStyle(this._firstTokenIndex+S,p)}getPresentation(S){return this._source.getPresentation(this._firstTokenIndex+S)}findTokenIndexAtOffset(S){return this._source.findTokenIndexAtOffset(S+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}}),define(ne[541],se([1,0,97]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toUint32Array=e.ContiguousTokensEditing=e.EMPTY_LINE_TOKENS=void 0,e.EMPTY_LINE_TOKENS=new Uint32Array(0).buffer;class k{static deleteBeginning(S,p){return S===null||S===e.EMPTY_LINE_TOKENS?S:k.delete(S,0,p)}static deleteEnding(S,p){if(S===null||S===e.EMPTY_LINE_TOKENS)return S;const w=y(S),v=w[w.length-2];return k.delete(S,p,v)}static delete(S,p,w){if(S===null||S===e.EMPTY_LINE_TOKENS||p===w)return S;const v=y(S),b=v.length>>>1;if(p===0&&v[v.length-2]===w)return e.EMPTY_LINE_TOKENS;const a=L.LineTokens.findIndexInTokensArray(v,p),n=a>0?v[a-1<<1]:0,i=v[a<<1];if(wo&&(v[t++]=d,v[t++]=v[(c<<1)+1],o=d)}if(t===v.length)return S;const m=new Uint32Array(t);return m.set(v.subarray(0,t),0),m.buffer}static append(S,p){if(p===e.EMPTY_LINE_TOKENS)return S;if(S===e.EMPTY_LINE_TOKENS)return p;if(S===null)return S;if(p===null)return null;const w=y(S),v=y(p),b=v.length>>>1,a=new Uint32Array(w.length+v.length);a.set(w,0);let n=w.length;const i=w[w.length-2];for(let t=0;t>>1;let a=L.LineTokens.findIndexInTokensArray(v,p);a>0&&v[a-1<<1]===p&&a--;for(let n=a;n0}getTokens(b,a,n){let i=null;if(a1&&(t=S.TokenMetadata.getLanguageId(i[1])!==b),!t)return y.EMPTY_LINE_TOKENS}if(!i||i.length===0){const t=new Uint32Array(2);return t[0]=a,t[1]=w(b),t.buffer}return i[i.length-2]=a,i.byteOffset===0&&i.byteLength===i.buffer.byteLength?i.buffer:i}_ensureLine(b){for(;b>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(b,a){a!==0&&(b+a>this._len&&(a=this._len-b),this._lineTokens.splice(b,a),this._len-=a)}_insertLines(b,a){if(a===0)return;const n=[];for(let i=0;i=this._len)return;if(b.startLineNumber===b.endLineNumber){if(b.startColumn===b.endColumn)return;this._lineTokens[a]=y.ContiguousTokensEditing.delete(this._lineTokens[a],b.startColumn-1,b.endColumn-1);return}this._lineTokens[a]=y.ContiguousTokensEditing.deleteEnding(this._lineTokens[a],b.startColumn-1);const n=b.endLineNumber-1;let i=null;n=this._len)){if(a===0){this._lineTokens[i]=y.ContiguousTokensEditing.insert(this._lineTokens[i],b.column-1,n);return}this._lineTokens[i]=y.ContiguousTokensEditing.deleteEnding(this._lineTokens[i],b.column-1),this._lineTokens[i]=y.ContiguousTokensEditing.insert(this._lineTokens[i],b.column-1,n),this._insertLines(b.lineNumber,a)}}setMultilineTokens(b,a){if(b.length===0)return{changes:[]};const n=[];for(let i=0,t=b.length;i>>0}}),define(ne[543],se([1,0,9,5,133]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SparseLineTokens=e.SparseMultilineTokens=void 0;class D{static create(v,b){return new D(v,new S(b))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(v,b){this._startLineNumber=v,this._tokens=b,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(v){return this._startLineNumber<=v&&v<=this._endLineNumber?this._tokens.getLineTokens(v-this._startLineNumber):null}getRange(){const v=this._tokens.getRange();return v&&new k.Range(this._startLineNumber+v.startLineNumber,v.startColumn,this._startLineNumber+v.endLineNumber,v.endColumn)}removeTokens(v){const b=v.startLineNumber-this._startLineNumber,a=v.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(b,v.startColumn-1,a,v.endColumn-1),this._updateEndLineNumber()}split(v){const b=v.startLineNumber-this._startLineNumber,a=v.endLineNumber-this._startLineNumber,[n,i,t]=this._tokens.split(b,v.startColumn-1,a,v.endColumn-1);return[new D(this._startLineNumber,n),new D(this._startLineNumber+t,i)]}applyEdit(v,b){const[a,n,i]=(0,y.countEOL)(b);this.acceptEdit(v,a,n,i,b.length>0?b.charCodeAt(0):0)}acceptEdit(v,b,a,n,i){this._acceptDeleteRange(v),this._acceptInsertText(new L.Position(v.startLineNumber,v.startColumn),b,a,n,i),this._updateEndLineNumber()}_acceptDeleteRange(v){if(v.startLineNumber===v.endLineNumber&&v.startColumn===v.endColumn)return;const b=v.startLineNumber-this._startLineNumber,a=v.endLineNumber-this._startLineNumber;if(a<0){const i=a-b;this._startLineNumber-=i;return}const n=this._tokens.getMaxDeltaLine();if(!(b>=n+1)){if(b<0&&a>=n+1){this._startLineNumber=0,this._tokens.clear();return}if(b<0){const i=-b;this._startLineNumber-=i,this._tokens.acceptDeleteRange(v.startColumn-1,0,0,a,v.endColumn-1)}else this._tokens.acceptDeleteRange(0,b,v.startColumn-1,a,v.endColumn-1)}}_acceptInsertText(v,b,a,n,i){if(b===0&&a===0)return;const t=v.lineNumber-this._startLineNumber;if(t<0){this._startLineNumber+=b;return}const o=this._tokens.getMaxDeltaLine();t>=o+1||this._tokens.acceptInsertText(t,v.column-1,b,a,n,i)}}e.SparseMultilineTokens=D;class S{constructor(v){this._tokens=v,this._tokenCount=v.length/4}toString(v){const b=[];for(let a=0;av)a=n-1;else{let t=n;for(;t>b&&this._getDeltaLine(t-1)===v;)t--;let o=n;for(;ov||s===v&&r>=b)&&(sv||r===v&&u>=b){if(ri?h-=i-a:h=a;else if(l===b&&r===a)if(l===n&&h>i)h-=i-a;else{c=!0;continue}else if(li)l=b,r=a,h=r+(h-i);else{c=!0;continue}else if(l>n){if(g===0&&!c){m=o;break}l-=g}else if(l===n&&r>=i)v&&l===0&&(r+=v,h+=v),l-=g,r-=i-a,h-=i-a;else throw new Error("Not possible!");const f=4*m;t[f]=l,t[f+1]=r,t[f+2]=h,t[f+3]=u,m++}this._tokenCount=m}acceptInsertText(v,b,a,n,i,t){const o=a===0&&n===1&&(t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122),g=this._tokens,m=this._tokenCount;for(let c=0;c0){const b=p[0].getRange(),a=p[p.length-1].getRange();if(!b||!a)return S;w=S.plusRange(b).plusRange(a)}let v=null;for(let b=0,a=this._pieces.length;bw.endLineNumber){v=v||{index:b};break}if(n.removeTokens(w),n.isEmpty()){this._pieces.splice(b,1),b--,a--;continue}if(n.endLineNumberw.endLineNumber){v=v||{index:b};continue}const[i,t]=n.split(w);if(i.isEmpty()){v=v||{index:b};continue}t.isEmpty()||(this._pieces.splice(b,1,i,t),b++,a++,v=v||{index:b})}return v=v||{index:this._pieces.length},p.length>0&&(this._pieces=L.arrayInsert(this._pieces,v.index,p)),w}isComplete(){return this._isComplete}addSparseTokens(S,p){if(p.getLineContent().length===0)return p;const w=this._pieces;if(w.length===0)return p;const v=y._findFirstPieceWithLine(w,S),b=w[v].getLineTokens(S);if(!b)return p;const a=p.getCount(),n=b.getCount();let i=0;const t=[];let o=0,g=0;const m=(c,d)=>{c!==g&&(g=c,t[o++]=c,t[o++]=d)};for(let c=0;c>>0,h=~r>>>0;for(;ip)v=b-1;else{for(;b>w&&S[b-1].startLineNumber<=p&&p<=S[b-1].endLineNumber;)b--;return b}}return w}acceptEdit(S,p,w,v,b){for(const a of this._pieces)a.acceptEdit(S,p,w,v,b)}}e.SparseTokensStore=y}),define(ne[158],se([1,0,2]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewEventHandler=void 0;class k extends L.Disposable{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(D){return!1}onCompositionEnd(D){return!1}onConfigurationChanged(D){return!1}onCursorStateChanged(D){return!1}onDecorationsChanged(D){return!1}onFlushed(D){return!1}onFocusChanged(D){return!1}onLanguageConfigurationChanged(D){return!1}onLineMappingChanged(D){return!1}onLinesChanged(D){return!1}onLinesDeleted(D){return!1}onLinesInserted(D){return!1}onRevealRangeRequest(D){return!1}onScrollChanged(D){return!1}onThemeChanged(D){return!1}onTokensChanged(D){return!1}onTokensColorsChanged(D){return!1}onZonesChanged(D){return!1}handleEvents(D){let S=!1;for(let p=0,w=D.length;p{if(t.options.zIndexo.options.zIndex)return 1;const g=t.options.className,m=o.options.className;return gm?1:y.Range.compareRangesUsingStarts(t.range,o.range)});const a=p.visibleRange.startLineNumber,n=p.visibleRange.endLineNumber,i=[];for(let t=a;t<=n;t++){const o=t-a;i[o]=""}this._renderWholeLineDecorations(p,v,i),this._renderNormalDecorations(p,v,i),this._renderResult=i}_renderWholeLineDecorations(p,w,v){const b=String(this._lineHeight),a=p.visibleRange.startLineNumber,n=p.visibleRange.endLineNumber;for(let i=0,t=w.length;i',m=Math.max(o.range.startLineNumber,a),c=Math.min(o.range.endLineNumber,n);for(let d=m;d<=c;d++){const s=d-a;v[s]+=g}}}_renderNormalDecorations(p,w,v){var b;const a=String(this._lineHeight),n=p.visibleRange.startLineNumber;let i=null,t=!1,o=null,g=!1;for(let m=0,c=w.length;m';t[d]+=u}}}render(p,w){if(!this._renderResult)return"";const v=w-p;return v<0||v>=this._renderResult.length?"":this._renderResult[v]}}e.DecorationsOverlay=D}),define(ne[219],se([1,0,41,13,118,55,9,5,40,440]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginWidgets=e.DedupOverlay=e.VisibleLineDecorationsToRender=e.LineDecorationToRender=e.DecorationToRender=void 0;class v{constructor(c,d,s,l,r){this.startLineNumber=c,this.endLineNumber=d,this.className=s,this.tooltip=l,this._decorationToRenderBrand=void 0,this.zIndex=r??0}}e.DecorationToRender=v;class b{constructor(c,d,s){this.className=c,this.zIndex=d,this.tooltip=s}}e.LineDecorationToRender=b;class a{constructor(){this.decorations=[]}add(c){this.decorations.push(c)}getDecorations(){return this.decorations}}e.VisibleLineDecorationsToRender=a;class n extends y.DynamicViewOverlay{_render(c,d,s){const l=[];for(let u=c;u<=d;u++){const f=u-c;l[f]=new a}if(s.length===0)return l;s.sort((u,f)=>u.className===f.className?u.startLineNumber===f.startLineNumber?u.endLineNumber-f.endLineNumber:u.startLineNumber-f.startLineNumber:u.classNamel)continue;const C=Math.max(u,s),_=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new S.Position(C,0)),E=this._context.viewModel.glyphLanes.getLanesAtLine(_.lineNumber).indexOf(r.preference.lane);d.push(new o(C,E,r.preference.zIndex,r))}}_collectSortedGlyphRenderRequests(c){const d=[];return this._collectDecorationBasedGlyphRenderRequest(c,d),this._collectWidgetBasedGlyphRenderRequest(c,d),d.sort((s,l)=>s.lineNumber===l.lineNumber?s.laneIndex===l.laneIndex?s.zIndex===l.zIndex?l.type===s.type?s.type===0&&l.type===0?s.className0;){const l=d.peek();if(!l)break;const r=d.takeWhile(u=>u.lineNumber===l.lineNumber&&u.laneIndex===l.laneIndex);if(!r||r.length===0)break;const h=r[0];if(h.type===0){const u=[];for(const f of r){if(f.zIndex!==h.zIndex||f.type!==h.type)break;(u.length===0||u[u.length-1]!==f.className)&&u.push(f.className)}s.push(h.accept(u.join(" ")))}else h.widget.renderInfo={lineNumber:h.lineNumber,laneIndex:h.laneIndex}}this._decorationGlyphsToRender=s}render(c){if(!this._glyphMargin){for(const s of Object.values(this._widgets))s.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const s=this._managedDomNodes.pop();s?.domNode.remove()}return}const d=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const s of Object.values(this._widgets))if(!s.renderInfo)s.domNode.setDisplay("none");else{const l=c.viewportData.relativeVerticalOffset[s.renderInfo.lineNumber-c.viewportData.startLineNumber],r=this._glyphMarginLeft+s.renderInfo.laneIndex*this._lineHeight;s.domNode.setDisplay("block"),s.domNode.setTop(l),s.domNode.setLeft(r),s.domNode.setWidth(d),s.domNode.setHeight(this._lineHeight)}for(let s=0;sthis._decorationGlyphsToRender.length;){const s=this._managedDomNodes.pop();s?.domNode.remove()}}}e.GlyphMarginWidgets=i;class t{constructor(c,d,s,l){this.lineNumber=c,this.laneIndex=d,this.zIndex=s,this.className=l,this.type=0}accept(c){return new g(this.lineNumber,this.laneIndex,c)}}class o{constructor(c,d,s,l){this.lineNumber=c,this.laneIndex=d,this.zIndex=s,this.widget=l,this.type=1}}class g{constructor(c,d,s){this.lineNumber=c,this.laneIndex=d,this.combinedClassName=s}}}),define(ne[547],se([1,0,219,444]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesDecorationsOverlay=void 0;class k extends L.DedupOverlay{constructor(D){super(),this._context=D;const p=this._context.configuration.options.get(144);this._decorationsLeft=p.decorationsLeft,this._decorationsWidth=p.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(D){const p=this._context.configuration.options.get(144);return this._decorationsLeft=p.decorationsLeft,this._decorationsWidth=p.decorationsWidth,!0}onDecorationsChanged(D){return!0}onFlushed(D){return!0}onLinesChanged(D){return!0}onLinesDeleted(D){return!0}onLinesInserted(D){return!0}onScrollChanged(D){return D.scrollTopChanged}onZonesChanged(D){return!0}_getDecorations(D){var S,p;const w=D.getDecorationsInViewport(),v=[];let b=0;for(let a=0,n=w.length;a',n=[];for(let i=S;i<=p;i++){const t=i-S,o=w[t].getDecorations();let g="";for(const m of o){let c='
    ';v[a]=i}this._renderResult=v}render(D,S){return this._renderResult?this._renderResult[S-D]:""}}e.MarginViewLineDecorationsOverlay=k}),define(ne[549],se([1,0,41,55,449]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Rulers=void 0;class y extends k.ViewPart{constructor(S){super(S),this.domNode=(0,L.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const p=this._context.configuration.options;this._rulers=p.get(102),this._typicalHalfwidthCharacterWidth=p.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(S){const p=this._context.configuration.options;return this._rulers=p.get(102),this._typicalHalfwidthCharacterWidth=p.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(S){return S.scrollHeightChanged}prepareRender(S){}_ensureRulersCount(){const S=this._renderedRulers.length,p=this._rulers.length;if(S===p)return;if(S0;){const n=(0,L.createFastDomNode)(document.createElement("div"));n.setClassName("view-ruler"),n.setWidth(b),this.domNode.appendChild(n),this._renderedRulers.push(n),a--}return}let w=S-p;for(;w>0;){const v=this._renderedRulers.pop();this.domNode.removeChild(v),w--}}render(S){this._ensureRulersCount();for(let p=0,w=this._rulers.length;p0;return this._shouldShow!==S?(this._shouldShow=S,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const p=this._context.configuration.options.get(144);p.minimap.renderMinimap===0||p.minimap.minimapWidth>0&&p.minimap.minimapLeft===0?this._width=p.width:this._width=p.width-p.verticalScrollbarWidth}onConfigurationChanged(S){const w=this._context.configuration.options.get(103);return this._useShadows=w.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(S){return this._scrollTop=S.scrollTop,this._updateShouldShow()}prepareRender(S){}render(S){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}e.ScrollDecorationViewPart=y}),define(ne[551],se([1,0,41,12,55,9]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewZones=void 0;const S=()=>{throw new Error("Invalid change accessor")};class p extends y.ViewPart{constructor(b){super(b);const a=this._context.configuration.options,n=a.get(144);this._lineHeight=a.get(67),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,this.domNode=(0,L.createFastDomNode)(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=(0,L.createFastDomNode)(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const b=this._context.viewLayout.getWhitespaces(),a=new Map;for(const i of b)a.set(i.id,i);let n=!1;return this._context.viewModel.changeWhitespace(i=>{const t=Object.keys(this._zones);for(let o=0,g=t.length;o{const i={addZone:t=>(a=!0,this._addZone(n,t)),removeZone:t=>{t&&(a=this._removeZone(n,t)||a)},layoutZone:t=>{t&&(a=this._layoutZone(n,t)||a)}};w(b,i),i.addZone=S,i.removeZone=S,i.layoutZone=S}),a}_addZone(b,a){const n=this._computeWhitespaceProps(a),t={whitespaceId:b.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(a),n.heightInPx,n.minWidthInPx),delegate:a,isInHiddenArea:n.isInHiddenArea,isVisible:!1,domNode:(0,L.createFastDomNode)(a.domNode),marginDomNode:a.marginDomNode?(0,L.createFastDomNode)(a.marginDomNode):null};return this._safeCallOnComputedHeight(t.delegate,n.heightInPx),t.domNode.setPosition("absolute"),t.domNode.domNode.style.width="100%",t.domNode.setDisplay("none"),t.domNode.setAttribute("monaco-view-zone",t.whitespaceId),this.domNode.appendChild(t.domNode),t.marginDomNode&&(t.marginDomNode.setPosition("absolute"),t.marginDomNode.domNode.style.width="100%",t.marginDomNode.setDisplay("none"),t.marginDomNode.setAttribute("monaco-view-zone",t.whitespaceId),this.marginDomNode.appendChild(t.marginDomNode)),this._zones[t.whitespaceId]=t,this.setShouldRender(),t.whitespaceId}_removeZone(b,a){if(this._zones.hasOwnProperty(a)){const n=this._zones[a];return delete this._zones[a],b.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute("monaco-visible-view-zone"),n.domNode.removeAttribute("monaco-view-zone"),n.domNode.domNode.parentNode.removeChild(n.domNode.domNode),n.marginDomNode&&(n.marginDomNode.removeAttribute("monaco-visible-view-zone"),n.marginDomNode.removeAttribute("monaco-view-zone"),n.marginDomNode.domNode.parentNode.removeChild(n.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(b,a){if(this._zones.hasOwnProperty(a)){const n=this._zones[a],i=this._computeWhitespaceProps(n.delegate);return n.isInHiddenArea=i.isInHiddenArea,b.changeOneWhitespace(n.whitespaceId,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(n.delegate,i.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(b){return this._zones.hasOwnProperty(b)?!!this._zones[b].delegate.suppressMouseDown:!1}_heightInPixels(b){return typeof b.heightInPx=="number"?b.heightInPx:typeof b.heightInLines=="number"?this._lineHeight*b.heightInLines:this._lineHeight}_minWidthInPixels(b){return typeof b.minWidthInPx=="number"?b.minWidthInPx:0}_safeCallOnComputedHeight(b,a){if(typeof b.onComputedHeight=="function")try{b.onComputedHeight(a)}catch(n){(0,k.onUnexpectedError)(n)}}_safeCallOnDomNodeTop(b,a){if(typeof b.onDomNodeTop=="function")try{b.onDomNodeTop(a)}catch(n){(0,k.onUnexpectedError)(n)}}prepareRender(b){}render(b){const a=b.viewportData.whitespaceViewportData,n={};let i=!1;for(const o of a)this._zones[o.id].isInHiddenArea||(n[o.id]=o,i=!0);const t=Object.keys(this._zones);for(let o=0,g=t.length;o=n||(t[o++]=new k(Math.max(1,g.startColumn-a+1),Math.min(i+1,g.endColumn-a+1),g.className,g.type));return t}static filter(w,v,b,a){if(w.length===0)return[];const n=[];let i=0;for(let t=0,o=w.length;tv||m.isEmpty()&&(g.type===0||g.type===3))continue;const c=m.startLineNumber===v?m.startColumn:b,d=m.endLineNumber===v?m.endColumn:a;n[i++]=new k(c,d,g.inlineClassName,g.type)}return n}static _typeCompare(w,v){const b=[2,0,1,3];return b[w]-b[v]}static compare(w,v){if(w.startColumn!==v.startColumn)return w.startColumn-v.startColumn;if(w.endColumn!==v.endColumn)return w.endColumn-v.endColumn;const b=k._typeCompare(w.type,v.type);return b!==0?b:w.className!==v.className?w.className0&&this.stopOffsets[0]0&&v=w){this.stopOffsets.splice(a,0,w),this.classNames.splice(a,0,v),this.metadata.splice(a,0,b);break}this.count++}}class S{static normalize(w,v){if(v.length===0)return[];const b=[],a=new D;let n=0;for(let i=0,t=v.length;i1){const r=w.charCodeAt(g-2);L.isHighSurrogate(r)&&g--}if(m>1){const r=w.charCodeAt(m-2);L.isHighSurrogate(r)&&m--}const s=g-1,l=m-2;n=a.consumeLowerThan(s,n,b),a.count===0&&(n=s),a.insert(l,c,d)}return a.consumeLowerThan(1073741824,n,b),b}}e.LineDecorationsNormalizer=S}),define(ne[552],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinePart=void 0;class L{constructor(y,D,S,p){this.endIndex=y,this.type=D,this.metadata=S,this.containsRTL=p,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}e.LinePart=L}),define(ne[553],se([1,0,11]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesLayout=e.EditorWhitespace=void 0;class k{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(p){this._hasPending=!0,this._inserts.push(p)}change(p){this._hasPending=!0,this._changes.push(p)}remove(p){this._hasPending=!0,this._removes.push(p)}mustCommit(){return this._hasPending}commit(p){if(!this._hasPending)return;const w=this._inserts,v=this._changes,b=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],p._commitPendingChanges(w,v,b)}}class y{constructor(p,w,v,b,a){this.id=p,this.afterLineNumber=w,this.ordinal=v,this.height=b,this.minWidth=a,this.prefixSum=0}}e.EditorWhitespace=y;class D{constructor(p,w,v,b){this._instanceId=L.singleLetterHash(++D.INSTANCE_COUNT),this._pendingChanges=new k,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=p,this._lineHeight=w,this._paddingTop=v,this._paddingBottom=b}static findInsertionIndex(p,w,v){let b=0,a=p.length;for(;b>>1;w===p[n].afterLineNumber?v{w=!0,b=b|0,a=a|0,n=n|0,i=i|0;const t=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new y(t,b,a,n,i)),t},changeOneWhitespace:(b,a,n)=>{w=!0,a=a|0,n=n|0,this._pendingChanges.change({id:b,newAfterLineNumber:a,newHeight:n})},removeWhitespace:b=>{w=!0,this._pendingChanges.remove({id:b})}})}finally{this._pendingChanges.commit(this)}return w}_commitPendingChanges(p,w,v){if((p.length>0||v.length>0)&&(this._minWidth=-1),p.length+w.length+v.length<=1){for(const t of p)this._insertWhitespace(t);for(const t of w)this._changeOneWhitespace(t.id,t.newAfterLineNumber,t.newHeight);for(const t of v){const o=this._findWhitespaceIndex(t.id);o!==-1&&this._removeWhitespace(o)}return}const b=new Set;for(const t of v)b.add(t.id);const a=new Map;for(const t of w)a.set(t.id,t);const n=t=>{const o=[];for(const g of t)if(!b.has(g.id)){if(a.has(g.id)){const m=a.get(g.id);g.afterLineNumber=m.newAfterLineNumber,g.height=m.newHeight}o.push(g)}return o},i=n(this._arr).concat(n(p));i.sort((t,o)=>t.afterLineNumber===o.afterLineNumber?t.ordinal-o.ordinal:t.afterLineNumber-o.afterLineNumber),this._arr=i,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(p){const w=D.findInsertionIndex(this._arr,p.afterLineNumber,p.ordinal);this._arr.splice(w,0,p),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,w-1)}_findWhitespaceIndex(p){const w=this._arr;for(let v=0,b=w.length;vw&&(this._arr[v].afterLineNumber-=w-p+1)}}onLinesInserted(p,w){this._checkPendingChanges(),p=p|0,w=w|0,this._lineCount+=w-p+1;for(let v=0,b=this._arr.length;v=w.length||w[i+1].afterLineNumber>=p)return i;v=i+1|0}else b=i-1|0}return-1}_findFirstWhitespaceAfterLineNumber(p){p=p|0;const v=this._findLastWhitespaceBeforeLineNumber(p)+1;return v1?v=this._lineHeight*(p-1):v=0;const b=this.getWhitespaceAccumulatedHeightBeforeLineNumber(p-(w?1:0));return v+b+this._paddingTop}getVerticalOffsetAfterLineNumber(p,w=!1){this._checkPendingChanges(),p=p|0;const v=this._lineHeight*p,b=this.getWhitespaceAccumulatedHeightBeforeLineNumber(p+(w?1:0));return v+b+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let p=0;for(let w=0,v=this._arr.length;ww}isInTopPadding(p){return this._paddingTop===0?!1:(this._checkPendingChanges(),p=w-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(p){if(this._checkPendingChanges(),p=p|0,p<0)return 1;const w=this._lineCount|0,v=this._lineHeight;let b=1,a=w;for(;b=i+v)b=n+1;else{if(p>=i)return n;a=n}}return b>w?w:b}getLinesViewportData(p,w){this._checkPendingChanges(),p=p|0,w=w|0;const v=this._lineHeight,b=this.getLineNumberAtOrAfterVerticalOffset(p)|0,a=this.getVerticalOffsetForLineNumber(b)|0;let n=this._lineCount|0,i=this.getFirstWhitespaceIndexAfterLineNumber(b)|0;const t=this.getWhitespacesCount()|0;let o,g;i===-1?(i=t,g=n+1,o=0):(g=this.getAfterLineNumberForWhitespaceIndex(i)|0,o=this.getHeightForWhitespaceIndex(i)|0);let m=a,c=m;const d=5e5;let s=0;a>=d&&(s=Math.floor(a/d)*d,s=Math.floor(s/v)*v,c-=s);const l=[],r=p+(w-p)/2;let h=-1;for(let _=b;_<=n;_++){if(h===-1){const E=m,I=m+v;(E<=r&&rr)&&(h=_)}for(m+=v,l[_-b]=c,c+=v;g===_;)c+=o,m+=o,i++,i>=t?g=n+1:(g=this.getAfterLineNumberForWhitespaceIndex(i)|0,o=this.getHeightForWhitespaceIndex(i)|0);if(m>=w){n=_;break}}h===-1&&(h=n);const u=this.getVerticalOffsetForLineNumber(n)|0;let f=b,C=n;return fw&&C--,{bigNumbersDelta:s,startLineNumber:b,endLineNumber:n,relativeVerticalOffset:l,centeredLineNumber:h,completelyVisibleStartLineNumber:f,completelyVisibleEndLineNumber:C}}getVerticalOffsetForWhitespaceIndex(p){this._checkPendingChanges(),p=p|0;const w=this.getAfterLineNumberForWhitespaceIndex(p);let v;w>=1?v=this._lineHeight*w:v=0;let b;return p>0?b=this.getWhitespacesAccumulatedHeight(p-1):b=0,v+b+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(p){this._checkPendingChanges(),p=p|0;let w=0,v=this.getWhitespacesCount()-1;if(v<0)return-1;const b=this.getVerticalOffsetForWhitespaceIndex(v),a=this.getHeightForWhitespaceIndex(v);if(p>=b+a)return-1;for(;w=i+t)w=n+1;else{if(p>=i)return n;v=n}}return w}getWhitespaceAtVerticalOffset(p){this._checkPendingChanges(),p=p|0;const w=this.getWhitespaceIndexAtOrAfterVerticallOffset(p);if(w<0||w>=this.getWhitespacesCount())return null;const v=this.getVerticalOffsetForWhitespaceIndex(w);if(v>p)return null;const b=this.getHeightForWhitespaceIndex(w),a=this.getIdForWhitespaceIndex(w),n=this.getAfterLineNumberForWhitespaceIndex(w);return{id:a,afterLineNumber:n,verticalOffset:v,height:b}}getWhitespaceViewportData(p,w){this._checkPendingChanges(),p=p|0,w=w|0;const v=this.getWhitespaceIndexAtOrAfterVerticallOffset(p),b=this.getWhitespacesCount()-1;if(v<0)return[];const a=[];for(let n=v;n<=b;n++){const i=this.getVerticalOffsetForWhitespaceIndex(n),t=this.getHeightForWhitespaceIndex(n);if(i>=w)break;a.push({id:this.getIdForWhitespaceIndex(n),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(n),verticalOffset:i,height:t})}return a}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(p){return this._checkPendingChanges(),p=p|0,this._arr[p].id}getAfterLineNumberForWhitespaceIndex(p){return this._checkPendingChanges(),p=p|0,this._arr[p].afterLineNumber}getHeightForWhitespaceIndex(p){return this._checkPendingChanges(),p=p|0,this._arr[p].height}}e.LinesLayout=D,D.INSTANCE_COUNT=0}),define(ne[554],se([1,0,5]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportData=void 0;class k{constructor(D,S,p,w){this.selections=D,this.startLineNumber=S.startLineNumber|0,this.endLineNumber=S.endLineNumber|0,this.relativeVerticalOffset=S.relativeVerticalOffset,this.bigNumbersDelta=S.bigNumbersDelta|0,this.whitespaceViewportData=p,this._model=w,this.visibleRange=new L.Range(S.startLineNumber,this._model.getLineMinColumn(S.startLineNumber),S.endLineNumber,this._model.getLineMaxColumn(S.endLineNumber))}getViewLineRenderingData(D){return this._model.getViewportViewLineRenderingData(this.visibleRange,D)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}e.ViewportData=k}),define(ne[86],se([1,0,13,11,5]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerDecorationsGroup=e.ViewModelDecoration=e.SingleLineInlineDecoration=e.InlineDecoration=e.ViewLineRenderingData=e.ViewLineData=e.MinimapLinesRenderingData=e.Viewport=void 0;class D{constructor(t,o,g,m){this._viewportBrand=void 0,this.top=t|0,this.left=o|0,this.width=g|0,this.height=m|0}}e.Viewport=D;class S{constructor(t,o){this.tabSize=t,this.data=o}}e.MinimapLinesRenderingData=S;class p{constructor(t,o,g,m,c,d,s){this._viewLineDataBrand=void 0,this.content=t,this.continuesWithWrappedLine=o,this.minColumn=g,this.maxColumn=m,this.startVisibleColumn=c,this.tokens=d,this.inlineDecorations=s}}e.ViewLineData=p;class w{constructor(t,o,g,m,c,d,s,l,r,h){this.minColumn=t,this.maxColumn=o,this.content=g,this.continuesWithWrappedLine=m,this.isBasicASCII=w.isBasicASCII(g,d),this.containsRTL=w.containsRTL(g,this.isBasicASCII,c),this.tokens=s,this.inlineDecorations=l,this.tabSize=r,this.startVisibleColumn=h}static isBasicASCII(t,o){return o?k.isBasicASCII(t):!0}static containsRTL(t,o,g){return!o&&g?k.containsRTL(t):!1}}e.ViewLineRenderingData=w;class v{constructor(t,o,g){this.range=t,this.inlineClassName=o,this.type=g}}e.InlineDecoration=v;class b{constructor(t,o,g,m){this.startOffset=t,this.endOffset=o,this.inlineClassName=g,this.inlineClassNameAffectsLetterSpacing=m}toInlineDecoration(t){return new v(new y.Range(t,this.startOffset+1,t,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}e.SingleLineInlineDecoration=b;class a{constructor(t,o){this._viewModelDecorationBrand=void 0,this.range=t,this.options=o}}e.ViewModelDecoration=a;class n{constructor(t,o,g){this.color=t,this.zIndex=o,this.data=g}static compareByRenderingProps(t,o){return t.zIndex===o.zIndex?t.coloro.color?1:0:t.zIndex-o.zIndex}static equals(t,o){return t.color===o.color&&t.zIndex===o.zIndex&&L.equals(t.data,o.data)}static equalsArr(t,o){return L.equals(t,o,n.equals)}}e.OverviewRulerDecorationsGroup=n}),define(ne[555],se([1,0,40]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginLanesModel=void 0;const k=L.GlyphMarginLane.Right;class y{constructor(S){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((S+1)*k/8))}reset(S){const p=Math.ceil((S+1)*k/8);this.lanes.length>>3]|=1<>>3]&1<>>3]&1<0?this._projectionData.breakOffsets[g-1]:0,c=this._projectionData.breakOffsets[g];let d;if(this._projectionData.injectionOffsets!==null){const s=this._projectionData.injectionOffsets.map((r,h)=>new y.LineInjectedText(0,0,r+1,this._projectionData.injectionOptions[h],0));d=y.LineInjectedText.applyInjectedText(t.getLineContent(o),s).substring(m,c)}else d=t.getValueInRange({startLineNumber:o,startColumn:m+1,endLineNumber:o,endColumn:c+1});return g>0&&(d=a(this._projectionData.wrappedTextIndentLength)+d),d}getViewLineLength(t,o,g){return this._assertVisible(),this._projectionData.getLineLength(g)}getViewLineMinColumn(t,o,g){return this._assertVisible(),this._projectionData.getMinOutputOffset(g)+1}getViewLineMaxColumn(t,o,g){return this._assertVisible(),this._projectionData.getMaxOutputOffset(g)+1}getViewLineData(t,o,g){const m=new Array;return this.getViewLinesData(t,o,g,1,0,[!0],m),m[0]}getViewLinesData(t,o,g,m,c,d,s){this._assertVisible();const l=this._projectionData,r=l.injectionOffsets,h=l.injectionOptions;let u=null;if(r){u=[];let C=0,_=0;for(let E=0;E0?l.breakOffsets[E-1]:0,A=l.breakOffsets[E];for(;_A)break;if(T0?l.wrappedTextIndentLength:0,O=F+Math.max(M-T,0),B=F+Math.min(N-T,A-T);O!==B&&I.push(new D.SingleLineInlineDecoration(O,B,P.inlineClassName,P.inlineClassNameAffectsLetterSpacing))}}if(N<=A)C+=R,_++;else break}}}let f;r?f=t.tokenization.getLineTokens(o).withInserted(r.map((C,_)=>({offset:C,text:h[_].content,tokenMetadata:L.LineTokens.defaultTokenMetadata}))):f=t.tokenization.getLineTokens(o);for(let C=g;C0?m.wrappedTextIndentLength:0,d=g>0?m.breakOffsets[g-1]:0,s=m.breakOffsets[g],l=t.sliceAndInflate(d,s,c);let r=l.getLineContent();g>0&&(r=a(m.wrappedTextIndentLength)+r);const h=this._projectionData.getMinOutputOffset(g)+1,u=r.length+1,f=g+1=b.length)for(let t=1;t<=i;t++)b[t]=n(t);return b[i]}function n(i){return new Array(i+1).join(" ")}}),define(ne[557],se([1,0,11,132,117,302]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MonospaceLineBreaksComputerFactory=void 0;class S{static create(m){return new S(m.get(133),m.get(132))}constructor(m,c){this.classifier=new p(m,c)}createLineBreaksComputer(m,c,d,s,l){const r=[],h=[],u=[];return{addRequest:(f,C,_)=>{r.push(f),h.push(C),u.push(_)},finalize:()=>{const f=m.typicalFullwidthCharacterWidth/m.typicalHalfwidthCharacterWidth,C=[];for(let _=0,E=r.length;_=0&&m<256?this._asciiMap[m]:m>=12352&&m<=12543||m>=13312&&m<=19903||m>=19968&&m<=40959?3:this._map.get(m)||this._defaultValue}}let w=[],v=[];function b(g,m,c,d,s,l,r,h){if(s===-1)return null;const u=c.length;if(u<=1)return null;const f=h==="keepAll",C=m.breakOffsets,_=m.breakOffsetsVisibleColumn,E=o(c,d,s,l,r),I=s-E,T=w,A=v;let R=0,M=0,N=0,P=s;const F=C.length;let O=0;if(O>=0){let B=Math.abs(_[O]-P);for(;O+1=B)break;B=W,O++}}for(;OB&&(B=M,W=N);let V=0,z=0,K=0,j=0;if(W<=P){let re=W,ie=B===0?0:c.charCodeAt(B-1),J=B===0?0:g.get(ie),X=!0;for(let Y=B;YM&&t(ie,J,de,ge,f)&&(V=le,z=re),re+=pe,re>P){le>M?(K=le,j=re-pe):(K=Y+1,j=re),re-z>I&&(V=0),X=!1;break}ie=de,J=ge}if(X){R>0&&(T[R]=C[C.length-1],A[R]=_[C.length-1],R++);break}}if(V===0){let re=W,ie=c.charCodeAt(B),J=g.get(ie),X=!1;for(let Y=B-1;Y>=M;Y--){const le=Y+1,de=c.charCodeAt(Y);if(de===9){X=!0;break}let ge,pe;if(L.isLowSurrogate(de)?(Y--,ge=0,pe=2):(ge=g.get(de),pe=L.isFullWidthCharacter(de)?l:1),re<=P){if(K===0&&(K=le,j=re),re<=P-I)break;if(t(de,ge,ie,J,f)){V=le,z=re;break}}re-=pe,ie=de,J=ge}if(V!==0){const Y=I-(j-z);if(Y<=d){const le=c.charCodeAt(K);let de;L.isHighSurrogate(le)?de=2:de=n(le,j,d,l),Y-de<0&&(V=0)}}if(X){O--;continue}}if(V===0&&(V=K,z=j),V<=M){const re=c.charCodeAt(M);L.isHighSurrogate(re)?(V=M+2,z=N+2):(V=M+1,z=N+n(re,N,d,l))}for(M=V,T[R]=V,N=z,A[R]=z,R++,P=z+I;O<0||O=x)break;x=re,O++}}return R===0?null:(T.length=R,A.length=R,w=m.breakOffsets,v=m.breakOffsetsVisibleColumn,m.breakOffsets=T,m.breakOffsetsVisibleColumn=A,m.wrappedTextIndentLength=E,m)}function a(g,m,c,d,s,l,r,h){const u=y.LineInjectedText.applyInjectedText(m,c);let f,C;if(c&&c.length>0?(f=c.map(z=>z.options),C=c.map(z=>z.column-1)):(f=null,C=null),s===-1)return f?new D.ModelLineProjectionData(C,f,[u.length],[],0):null;const _=u.length;if(_<=1)return f?new D.ModelLineProjectionData(C,f,[u.length],[],0):null;const E=h==="keepAll",I=o(u,d,s,l,r),T=s-I,A=[],R=[];let M=0,N=0,P=0,F=s,O=u.charCodeAt(0),B=g.get(O),W=n(O,0,d,l),V=1;L.isHighSurrogate(O)&&(W+=1,O=u.charCodeAt(1),B=g.get(O),V++);for(let z=V;z<_;z++){const K=z,j=u.charCodeAt(z);let x,re;L.isHighSurrogate(j)?(z++,x=0,re=2):(x=g.get(j),re=n(j,W,d,l)),t(O,B,j,x,E)&&(N=K,P=W),W+=re,W>F&&((N===0||W-P>T)&&(N=K,P=W-re),A[M]=N,R[M]=P,M++,F=P+T,N=0),O=j,B=x}return M===0&&(!c||c.length===0)?null:(A[M]=_,R[M]=W,new D.ModelLineProjectionData(C,f,A,R,I))}function n(g,m,c,d){return g===9?c-m%c:L.isFullWidthCharacter(g)||g<32?d:1}function i(g,m){return m-g%m}function t(g,m,c,d,s){return c!==32&&(m===2&&d!==2||m!==1&&d===1||!s&&m===3&&d!==2||!s&&d===3&&m!==1)}function o(g,m,c,d,s){let l=0;if(s!==0){const r=L.firstNonWhitespaceIndex(g);if(r!==-1){for(let u=0;uc&&(l=0)}}return l}}),define(ne[308],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewZoneManager=e.OverviewRulerZone=e.ColorZone=void 0;class L{constructor(S,p,w){this._colorZoneBrand=void 0,this.from=S|0,this.to=p|0,this.colorId=w|0}static compare(S,p){return S.colorId===p.colorId?S.from===p.from?S.to-p.to:S.from-p.from:S.colorId-p.colorId}}e.ColorZone=L;class k{constructor(S,p,w,v){this._overviewRulerZoneBrand=void 0,this.startLineNumber=S,this.endLineNumber=p,this.heightInLines=w,this.color=v,this._colorZone=null}static compare(S,p){return S.color===p.color?S.startLineNumber===p.startLineNumber?S.heightInLines===p.heightInLines?S.endLineNumber-p.endLineNumber:S.heightInLines-p.heightInLines:S.startLineNumber-p.startLineNumber:S.colorw&&(s=w-l);const r=o.color;let h=this._color2Id[r];h||(h=++this._lastAssignedId,this._color2Id[r]=h,this._id2Color[h]=r);const u=new L(s-l,s+l,h);o.setColorZone(u),n.push(u)}return this._colorZonesInvalid=!1,n.sort(L.compare),n}}e.OverviewZoneManager=y}),define(ne[558],se([1,0,41,308,158]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRuler=void 0;class D extends y.ViewEventHandler{constructor(p,w){super(),this._context=p;const v=this._context.configuration.options;this._domNode=(0,L.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName(w),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new k.OverviewZoneManager(b=>this._context.viewLayout.getVerticalOffsetForLineNumber(b)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(v.get(67)),this._zoneManager.setPixelRatio(v.get(142)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(p){const w=this._context.configuration.options;return p.hasChanged(67)&&(this._zoneManager.setLineHeight(w.get(67)),this._render()),p.hasChanged(142)&&(this._zoneManager.setPixelRatio(w.get(142)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(p){return this._render(),!0}onScrollChanged(p){return p.scrollHeightChanged&&(this._zoneManager.setOuterHeight(p.scrollHeight),this._render()),!0}onZonesChanged(p){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(p){this._domNode.setTop(p.top),this._domNode.setRight(p.right);let w=!1;w=this._zoneManager.setDOMWidth(p.width)||w,w=this._zoneManager.setDOMHeight(p.height)||w,w&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(p){this._zoneManager.setZones(p),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const p=this._zoneManager.getCanvasWidth(),w=this._zoneManager.getCanvasHeight(),v=this._zoneManager.resolveColorZones(),b=this._zoneManager.getId2Color(),a=this._domNode.domNode.getContext("2d");return a.clearRect(0,0,p,w),v.length>0&&this._renderOneLane(a,v,b,p),!0}_renderOneLane(p,w,v,b){let a=0,n=0,i=0;for(const t of w){const o=t.colorId,g=t.from,m=t.to;o!==a?(p.fillRect(0,n,b,i-n),a=o,p.fillStyle=v[a],n=g,i=m):i>=g?i=Math.max(i,m):(p.fillRect(0,n,b,i-n),n=g,i=m)}p.fillRect(0,n,b,i-n)}}e.OverviewRuler=D}),define(ne[559],se([1,0,517]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContext=void 0;class k{constructor(D,S,p){this.configuration=D,this.theme=new L.EditorTheme(S),this.viewModel=p,this.viewLayout=p.viewLayout}addEventHandler(D){this.viewModel.addViewEventHandler(D)}removeEventHandler(D){this.viewModel.removeViewEventHandler(D)}}e.ViewContext=k}),define(ne[221],se([1,0,7,2]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ModelTokensChangedEvent=e.ModelOptionsChangedEvent=e.ModelContentChangedEvent=e.ModelLanguageConfigurationChangedEvent=e.ModelLanguageChangedEvent=e.ModelDecorationsChangedEvent=e.ReadOnlyEditAttemptEvent=e.CursorStateChangedEvent=e.HiddenAreasChangedEvent=e.ViewZonesChangedEvent=e.ScrollChangedEvent=e.FocusChangedEvent=e.ContentSizeChangedEvent=e.ViewModelEventsCollector=e.ViewModelEventDispatcher=void 0;class y extends k.Disposable{constructor(){super(),this._onEvent=this._register(new L.Emitter),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(s){this._addOutgoingEvent(s),this._emitOutgoingEvents()}_addOutgoingEvent(s){for(let l=0,r=this._outgoingEvents.length;l0;){if(this._collector||this._isConsumingViewEventQueue)return;const s=this._outgoingEvents.shift();s.isNoOp()||this._onEvent.fire(s)}}addViewEventHandler(s){for(let l=0,r=this._eventHandlers.length;l0&&this._emitMany(l)}this._emitOutgoingEvents()}emitSingleViewEvent(s){try{this.beginEmitViewEvents().emitViewEvent(s)}finally{this.endEmitViewEvents()}}_emitMany(s){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(s):this._viewEventQueue=s,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const s=this._viewEventQueue;this._viewEventQueue=null;const l=this._eventHandlers.slice(0);for(const r of l)r.handleEvents(s)}}}e.ViewModelEventDispatcher=y;class D{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(s){this.viewEvents.push(s)}emitOutgoingEvent(s){this.outgoingEvents.push(s)}}e.ViewModelEventsCollector=D;class S{constructor(s,l,r,h){this.kind=0,this._oldContentWidth=s,this._oldContentHeight=l,this.contentWidth=r,this.contentHeight=h,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(s){return s.kind!==this.kind?null:new S(this._oldContentWidth,this._oldContentHeight,s.contentWidth,s.contentHeight)}}e.ContentSizeChangedEvent=S;class p{constructor(s,l){this.kind=1,this.oldHasFocus=s,this.hasFocus=l}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(s){return s.kind!==this.kind?null:new p(this.oldHasFocus,s.hasFocus)}}e.FocusChangedEvent=p;class w{constructor(s,l,r,h,u,f,C,_){this.kind=2,this._oldScrollWidth=s,this._oldScrollLeft=l,this._oldScrollHeight=r,this._oldScrollTop=h,this.scrollWidth=u,this.scrollLeft=f,this.scrollHeight=C,this.scrollTop=_,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(s){return s.kind!==this.kind?null:new w(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,s.scrollWidth,s.scrollLeft,s.scrollHeight,s.scrollTop)}}e.ScrollChangedEvent=w;class v{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(s){return s.kind!==this.kind?null:this}}e.ViewZonesChangedEvent=v;class b{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(s){return s.kind!==this.kind?null:this}}e.HiddenAreasChangedEvent=b;class a{constructor(s,l,r,h,u,f,C){this.kind=6,this.oldSelections=s,this.selections=l,this.oldModelVersionId=r,this.modelVersionId=h,this.source=u,this.reason=f,this.reachedMaxCursorCount=C}static _selectionsAreEqual(s,l){if(!s&&!l)return!0;if(!s||!l)return!1;const r=s.length,h=l.length;if(r!==h)return!1;for(let u=0;u=t?0:g.horizontalScrollbarSize}_getContentHeight(i,t,o){const g=this._configuration.options;let m=this._linesLayout.getLinesTotalHeight();return g.get(105)?m+=Math.max(0,t-g.get(67)-g.get(84).bottom):g.get(103).ignoreHorizontalScrollbarInContentHeight||(m+=this._getHorizontalScrollbarHeight(i,o)),m}_updateHeight(){const i=this._scrollable.getScrollDimensions(),t=i.width,o=i.height,g=i.contentWidth;this._scrollable.setScrollDimensions(new v(t,i.contentWidth,o,this._getContentHeight(t,o,g)))}getCurrentViewport(){const i=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new S.Viewport(t.scrollTop,t.scrollLeft,i.width,i.height)}getFutureViewport(){const i=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new S.Viewport(t.scrollTop,t.scrollLeft,i.width,i.height)}_computeContentWidth(){const i=this._configuration.options,t=this._maxLineWidth,o=i.get(145),g=i.get(50),m=i.get(144);if(o.isViewportWrapping){const c=i.get(73);return t>m.contentWidth+g.typicalHalfwidthCharacterWidth&&c.enabled&&c.side==="right"?t+m.verticalScrollbarWidth:t}else{const c=i.get(104)*g.typicalHalfwidthCharacterWidth,d=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+c+m.verticalScrollbarWidth,d,this._overlayWidgetsMinWidth)}}setMaxLineWidth(i){this._maxLineWidth=i,this._updateContentWidth()}setOverlayWidgetsMinWidth(i){this._overlayWidgetsMinWidth=i,this._updateContentWidth()}_updateContentWidth(){const i=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new v(i.width,this._computeContentWidth(),i.height,i.contentHeight)),this._updateHeight()}saveState(){const i=this._scrollable.getFutureScrollPosition(),t=i.scrollTop,o=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),g=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(o);return{scrollTop:t,scrollTopWithoutViewZones:t-g,scrollLeft:i.scrollLeft}}changeWhitespace(i){const t=this._linesLayout.changeWhitespace(i);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(i,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(i,t)}getVerticalOffsetAfterLineNumber(i,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(i,t)}isAfterLines(i){return this._linesLayout.isAfterLines(i)}isInTopPadding(i){return this._linesLayout.isInTopPadding(i)}isInBottomPadding(i){return this._linesLayout.isInBottomPadding(i)}getLineNumberAtVerticalOffset(i){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(i)}getWhitespaceAtVerticalOffset(i){return this._linesLayout.getWhitespaceAtVerticalOffset(i)}getLinesViewportData(){const i=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(i.top,i.top+i.height)}getLinesViewportDataAtScrollTop(i){const t=this._scrollable.getScrollDimensions();return i+t.height>t.scrollHeight&&(i=t.scrollHeight-t.height),i<0&&(i=0),this._linesLayout.getLinesViewportData(i,i+t.height)}getWhitespaceViewportData(){const i=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(i.top,i.top+i.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(i){return this._scrollable.validateScrollPosition(i)}setScrollPosition(i,t){t===1?this._scrollable.setScrollPositionNow(i):this._scrollable.setScrollPositionSmooth(i)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(i,t){const o=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:o.scrollLeft+i,scrollTop:o.scrollTop+t})}}e.ViewLayout=a}),define(ne[561],se([1,0,5,23]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveCaretCommand=void 0;class y{constructor(S,p){this._selection=S,this._isMovingLeft=p}getEditOperations(S,p){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const w=this._selection.startLineNumber,v=this._selection.startColumn,b=this._selection.endColumn;if(!(this._isMovingLeft&&v===1)&&!(!this._isMovingLeft&&b===S.getLineMaxColumn(w)))if(this._isMovingLeft){const a=new L.Range(w,v-1,w,v),n=S.getValueInRange(a);p.addEditOperation(a,null),p.addEditOperation(new L.Range(w,b,w,b),n)}else{const a=new L.Range(w,b,w,b+1),n=S.getValueInRange(a);p.addEditOperation(a,null),p.addEditOperation(new L.Range(w,v,w,v),n)}}computeCursorState(S,p){return this._isMovingLeft?new k.Selection(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new k.Selection(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}e.MoveCaretCommand=y}),define(ne[119],se([1,0,12]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionItem=e.CodeActionCommandArgs=e.filtersAction=e.mayIncludeActionsOfKind=e.CodeActionTriggerSource=e.CodeActionKind=void 0;class k{constructor(a){this.value=a}equals(a){return this.value===a.value}contains(a){return this.equals(a)||this.value===""||a.value.startsWith(this.value+k.sep)}intersects(a){return this.contains(a)||a.contains(this)}append(a){return new k(this.value+k.sep+a)}}e.CodeActionKind=k,k.sep=".",k.None=new k("@@none@@"),k.Empty=new k(""),k.QuickFix=new k("quickfix"),k.Refactor=new k("refactor"),k.RefactorExtract=k.Refactor.append("extract"),k.RefactorInline=k.Refactor.append("inline"),k.RefactorMove=k.Refactor.append("move"),k.RefactorRewrite=k.Refactor.append("rewrite"),k.Notebook=new k("notebook"),k.Source=new k("source"),k.SourceOrganizeImports=k.Source.append("organizeImports"),k.SourceFixAll=k.Source.append("fixAll"),k.SurroundWith=k.Refactor.append("surround");var y;(function(b){b.Refactor="refactor",b.RefactorPreview="refactor preview",b.Lightbulb="lightbulb",b.Default="other (default)",b.SourceAction="source action",b.QuickFix="quick fix action",b.FixAll="fix all",b.OrganizeImports="organize imports",b.AutoFix="auto fix",b.QuickFixHover="quick fix hover window",b.OnSave="save participants",b.ProblemsView="problems view"})(y||(e.CodeActionTriggerSource=y={}));function D(b,a){return!(b.include&&!b.include.intersects(a)||b.excludes&&b.excludes.some(n=>p(a,n,b.include))||!b.includeSourceActions&&k.Source.contains(a))}e.mayIncludeActionsOfKind=D;function S(b,a){const n=a.kind?new k(a.kind):void 0;return!(b.include&&(!n||!b.include.contains(n))||b.excludes&&n&&b.excludes.some(i=>p(n,i,b.include))||!b.includeSourceActions&&n&&k.Source.contains(n)||b.onlyIncludePreferredActions&&!a.isPreferred)}e.filtersAction=S;function p(b,a,n){return!(!a.contains(b)||n&&a.contains(n))}class w{static fromUser(a,n){return!a||typeof a!="object"?new w(n.kind,n.apply,!1):new w(w.getKindFromUser(a,n.kind),w.getApplyFromUser(a,n.apply),w.getPreferredUser(a))}static getApplyFromUser(a,n){switch(typeof a.apply=="string"?a.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return n}}static getKindFromUser(a,n){return typeof a.kind=="string"?new k(a.kind):n}static getPreferredUser(a){return typeof a.preferred=="boolean"?a.preferred:!1}constructor(a,n,i){this.kind=a,this.apply=n,this.preferred=i}}e.CodeActionCommandArgs=w;class v{constructor(a,n,i){this.action=a,this.provider=n,this.highlightRange=i}async resolve(a){var n;if(!((n=this.provider)===null||n===void 0)&&n.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,a)}catch(t){(0,L.onUnexpectedExternalError)(t)}i&&(this.action.edit=i.edit)}return this}}e.CodeActionItem=v}),define(ne[562],se([1,0,7]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerModel=void 0;class k{get color(){return this._color}set color(D){this._color.equals(D)||(this._color=D,this._onDidChangeColor.fire(D))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(D){this._colorPresentations=D,this.presentationIndex>D.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(D,S,p){this.presentationIndex=p,this._onColorFlushed=new L.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new L.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new L.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=D,this._color=D,this._colorPresentations=S}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(D,S){let p=-1;for(let w=0;wn)return!1;for(let i=0;i=65&&t<=90&&t+32===o)&&!(o>=65&&o<=90&&o+32===t))return!1}return!0}_createOperationsForBlockComment(w,v,b,a,n,i){const t=w.startLineNumber,o=w.startColumn,g=w.endLineNumber,m=w.endColumn,c=n.getLineContent(t),d=n.getLineContent(g);let s=c.lastIndexOf(v,o-1+v.length),l=d.indexOf(b,m-1-b.length);if(s!==-1&&l!==-1)if(t===g)c.substring(s+v.length,l).indexOf(b)>=0&&(s=-1,l=-1);else{const h=c.substring(s+v.length),u=d.substring(0,l);(h.indexOf(b)>=0||u.indexOf(b)>=0)&&(s=-1,l=-1)}let r;s!==-1&&l!==-1?(a&&s+v.length0&&d.charCodeAt(l-1)===32&&(b=" "+b,l-=1),r=S._createRemoveBlockCommentOperations(new y.Range(t,s+v.length+1,g,l+1),v,b)):(r=S._createAddBlockCommentOperations(w,v,b,this._insertSpace),this._usedEndToken=r.length===1?b:null);for(const h of r)i.addTrackedEditOperation(h.range,h.text)}static _createRemoveBlockCommentOperations(w,v,b){const a=[];return y.Range.isEmpty(w)?a.push(L.EditOperation.delete(new y.Range(w.startLineNumber,w.startColumn-v.length,w.endLineNumber,w.endColumn+b.length))):(a.push(L.EditOperation.delete(new y.Range(w.startLineNumber,w.startColumn-v.length,w.startLineNumber,w.startColumn))),a.push(L.EditOperation.delete(new y.Range(w.endLineNumber,w.endColumn,w.endLineNumber,w.endColumn+b.length)))),a}static _createAddBlockCommentOperations(w,v,b,a){const n=[];return y.Range.isEmpty(w)?n.push(L.EditOperation.replace(new y.Range(w.startLineNumber,w.startColumn,w.endLineNumber,w.endColumn),v+" "+b)):(n.push(L.EditOperation.insert(new k.Position(w.startLineNumber,w.startColumn),v+(a?" ":""))),n.push(L.EditOperation.insert(new k.Position(w.endLineNumber,w.endColumn),(a?" ":"")+b))),n}getEditOperations(w,v){const b=this._selection.startLineNumber,a=this._selection.startColumn;w.tokenization.tokenizeIfCheap(b);const n=w.getLanguageIdAtPosition(b,a),i=this.languageConfigurationService.getLanguageConfiguration(n).comments;!i||!i.blockCommentStartToken||!i.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,i.blockCommentStartToken,i.blockCommentEndToken,this._insertSpace,w,v)}computeCursorState(w,v){const b=v.getInverseEditOperations();if(b.length===2){const a=b[0],n=b[1];return new D.Selection(a.range.endLineNumber,a.range.endColumn,n.range.startLineNumber,n.range.startColumn)}else{const a=b[0].range,n=this._usedEndToken?-this._usedEndToken.length-1:0;return new D.Selection(a.endLineNumber,a.endColumn+n,a.endLineNumber,a.endColumn+n)}}}e.BlockCommentCommand=S}),define(ne[563],se([1,0,11,68,9,5,23,309]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineCommentCommand=void 0;class w{constructor(b,a,n,i,t,o,g){this.languageConfigurationService=b,this._selection=a,this._tabSize=n,this._type=i,this._insertSpace=t,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o,this._ignoreFirstLine=g||!1}static _gatherPreflightCommentStrings(b,a,n,i){b.tokenization.tokenizeIfCheap(a);const t=b.getLanguageIdAtPosition(a,1),o=i.getLanguageConfiguration(t).comments,g=o?o.lineCommentToken:null;if(!g)return null;const m=[];for(let c=0,d=n-a+1;ct?a[m].commentStrOffset=o-1:a[m].commentStrOffset=o}}}e.LineCommentCommand=w}),define(ne[564],se([1,0,5,23]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropCommand=void 0;class y{constructor(S,p,w){this.selection=S,this.targetPosition=p,this.copy=w,this.targetSelection=null}getEditOperations(S,p){const w=S.getValueInRange(this.selection);if(this.copy||p.addEditOperation(this.selection,null),p.addEditOperation(new L.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),w),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new k.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new k.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber0){const p=[];for(let b=0;bL.Range.compareRangesUsingStarts(b.range,a.range));const w=[];let v=p[0];for(let b=1;b0){const m=[],c=o.caseOps.length;let d=0;for(let s=0,l=g.length;s=c){m.push(g.slice(s));break}switch(o.caseOps[d]){case"U":m.push(g[s].toUpperCase());break;case"u":m.push(g[s].toUpperCase()),d++;break;case"L":m.push(g[s].toLowerCase());break;case"l":m.push(g[s].toLowerCase()),d++;break;default:m.push(g[s])}}g=m.join("")}n+=g}return n}static _substitute(b,a){if(a===null)return"";if(b===0)return a[0];let n="";for(;b>0;){if(b=i)break;const o=v.charCodeAt(n);switch(o){case 92:a.emitUnchanged(n-1),a.emitStatic("\\",n+1);break;case 110:a.emitUnchanged(n-1),a.emitStatic(` +`,n+1);break;case 116:a.emitUnchanged(n-1),a.emitStatic(" ",n+1);break;case 117:case 85:case 108:case 76:a.emitUnchanged(n-1),a.emitStatic("",n+1),b.push(String.fromCharCode(o));break}continue}if(t===36){if(n++,n>=i)break;const o=v.charCodeAt(n);if(o===36){a.emitUnchanged(n-1),a.emitStatic("$",n+1);continue}if(o===48||o===38){a.emitUnchanged(n-1),a.emitMatchIndex(0,n+1,b),b.length=0;continue}if(49<=o&&o<=57){let g=o-48;if(n+1e.MAX_FOLDING_REGIONS)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=p,this._endIndexes=w,this._collapseStates=new k(p.length),this._userDefinedStates=new k(p.length),this._recoveredStates=new k(p.length),this._types=v,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const p=[],w=(v,b)=>{const a=p[p.length-1];return this.getStartLineNumber(a)<=v&&this.getEndLineNumber(a)>=b};for(let v=0,b=this._startIndexes.length;ve.MAX_LINE_NUMBER||n>e.MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+e.MAX_LINE_NUMBER);for(;p.length>0&&!w(a,n);)p.pop();const i=p.length>0?p[p.length-1]:-1;p.push(v),this._startIndexes[v]=a+((i&255)<<24),this._endIndexes[v]=n+((i&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(p){return this._startIndexes[p]&e.MAX_LINE_NUMBER}getEndLineNumber(p){return this._endIndexes[p]&e.MAX_LINE_NUMBER}getType(p){return this._types?this._types[p]:void 0}hasTypes(){return!!this._types}isCollapsed(p){return this._collapseStates.get(p)}setCollapsed(p,w){this._collapseStates.set(p,w)}isUserDefined(p){return this._userDefinedStates.get(p)}setUserDefined(p,w){return this._userDefinedStates.set(p,w)}isRecovered(p){return this._recoveredStates.get(p)}setRecovered(p,w){return this._recoveredStates.set(p,w)}getSource(p){return this.isUserDefined(p)?1:this.isRecovered(p)?2:0}setSource(p,w){w===1?(this.setUserDefined(p,!0),this.setRecovered(p,!1)):w===2?(this.setUserDefined(p,!1),this.setRecovered(p,!0)):(this.setUserDefined(p,!1),this.setRecovered(p,!1))}setCollapsedAllOfType(p,w){let v=!1;if(this._types)for(let b=0;b>>24)+((this._endIndexes[p]&L)>>>16);return w===e.MAX_FOLDING_REGIONS?-1:w}contains(p,w){return this.getStartLineNumber(p)<=w&&this.getEndLineNumber(p)>=w}findIndex(p){let w=0,v=this._startIndexes.length;if(v===0)return-1;for(;w=0){if(this.getEndLineNumber(w)>=p)return w;for(w=this.getParentIndex(w);w!==-1;){if(this.contains(w,p))return w;w=this.getParentIndex(w)}}return-1}toString(){const p=[];for(let w=0;wArray.isArray(l)?h=>hh=g.startLineNumber))o&&o.startLineNumber===g.startLineNumber?(g.source===1?l=g:(l=o,l.isCollapsed=g.isCollapsed&&o.endLineNumber===g.endLineNumber,l.source=0),o=a(++i)):(l=g,g.isCollapsed&&g.source===0&&(l.source=2)),g=n(++t);else{let r=t,h=g;for(;;){if(!h||h.startLineNumber>o.endLineNumber){l=o;break}if(h.source===1&&h.endLineNumber>o.endLineNumber)break;h=n(++r)}o=a(++i)}if(l){for(;c&&c.endLineNumberl.startLineNumber&&l.startLineNumber>d&&l.endLineNumber<=v&&(!c||c.endLineNumber>=l.endLineNumber)&&(s.push(l),d=l.startLineNumber,c&&m.push(c),c=l)}}return s}}e.FoldingRegions=y;class D{constructor(p,w){this.ranges=p,this.index=w}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(p){return p.startLineNumber<=this.startLineNumber&&p.endLineNumber>=this.endLineNumber}containsLine(p){return this.startLineNumber<=p&&p<=this.endLineNumber}}e.FoldingRegion=D}),define(ne[310],se([1,0,7,188,114]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNextFoldLine=e.getPreviousFoldLine=e.getParentFoldLine=e.setCollapseStateForType=e.setCollapseStateForMatchingLines=e.setCollapseStateForRest=e.setCollapseStateAtLevel=e.setCollapseStateUp=e.setCollapseStateLevelsUp=e.setCollapseStateLevelsDown=e.toggleCollapseState=e.FoldingModel=void 0;class D{get regions(){return this._regions}get textModel(){return this._textModel}constructor(c,d){this._updateEventEmitter=new L.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=c,this._decorationProvider=d,this._regions=new k.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(c){if(!c.length)return;c=c.sort((s,l)=>s.regionIndex-l.regionIndex);const d={};this._decorationProvider.changeDecorations(s=>{let l=0,r=-1,h=-1;const u=f=>{for(;lh&&(h=C),l++}};for(const f of c){const C=f.regionIndex,_=this._editorDecorationIds[C];if(_&&!d[_]){d[_]=!0,u(C);const E=!this._regions.isCollapsed(C);this._regions.setCollapsed(C,E),r=Math.max(r,this._regions.getEndLineNumber(C))}}u(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:c})}removeManualRanges(c){const d=new Array,s=l=>{for(const r of c)if(!(r.startLineNumber>l.endLineNumber||l.startLineNumber>r.endLineNumber))return!0;return!1};for(let l=0;ls&&(s=u)}this._decorationProvider.changeDecorations(l=>this._editorDecorationIds=l.deltaDecorations(this._editorDecorationIds,d)),this._regions=c,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(c=[]){const d=(l,r)=>{for(const h of c)if(l=h.endLineNumber||h.startLineNumber<1||h.endLineNumber>s)continue;const u=this._getLinesChecksum(h.startLineNumber+1,h.endLineNumber);d.push({startLineNumber:h.startLineNumber,endLineNumber:h.endLineNumber,isCollapsed:h.isCollapsed,source:h.source,checksum:u})}return d.length>0?d:void 0}applyMemento(c){var d,s;if(!Array.isArray(c))return;const l=[],r=this._textModel.getLineCount();for(const u of c){if(u.startLineNumber>=u.endLineNumber||u.startLineNumber<1||u.endLineNumber>r)continue;const f=this._getLinesChecksum(u.startLineNumber+1,u.endLineNumber);(!u.checksum||f===u.checksum)&&l.push({startLineNumber:u.startLineNumber,endLineNumber:u.endLineNumber,type:void 0,isCollapsed:(d=u.isCollapsed)!==null&&d!==void 0?d:!0,source:(s=u.source)!==null&&s!==void 0?s:0})}const h=k.FoldingRegions.sanitizeAndMerge(this._regions,l,r);this.updatePost(k.FoldingRegions.fromFoldRanges(h))}_getLinesChecksum(c,d){return(0,y.hash)(this._textModel.getLineContent(c)+this._textModel.getLineContent(d))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(c,d){const s=[];if(this._regions){let l=this._regions.findRange(c),r=1;for(;l>=0;){const h=this._regions.toRegion(l);(!d||d(h,r))&&s.push(h),r++,l=h.parentIndex}}return s}getRegionAtLine(c){if(this._regions){const d=this._regions.findRange(c);if(d>=0)return this._regions.toRegion(d)}return null}getRegionsInside(c,d){const s=[],l=c?c.regionIndex+1:0,r=c?c.endLineNumber:Number.MAX_VALUE;if(d&&d.length===2){const h=[];for(let u=l,f=this._regions.length;u0&&!C.containedBy(h[h.length-1]);)h.pop();h.push(C),d(C,h.length)&&s.push(C)}else break}}else for(let h=l,u=this._regions.length;h1){const u=m.getRegionsInside(r,(f,C)=>f.isCollapsed!==h&&C0)for(const r of s){const h=m.getRegionAtLine(r);if(h&&(h.isCollapsed!==c&&l.push(h),d>1)){const u=m.getRegionsInside(h,(f,C)=>f.isCollapsed!==c&&Ch.isCollapsed!==c&&uu.isCollapsed!==c&&f<=d);l.push(...h)}m.toggleCollapseState(l)}e.setCollapseStateLevelsUp=w;function v(m,c,d){const s=[];for(const l of d){const r=m.getAllRegionsAtLine(l,h=>h.isCollapsed!==c);r.length>0&&s.push(r[0])}m.toggleCollapseState(s)}e.setCollapseStateUp=v;function b(m,c,d,s){const l=(h,u)=>u===c&&h.isCollapsed!==d&&!s.some(f=>h.containsLine(f)),r=m.getRegionsInside(null,l);m.toggleCollapseState(r)}e.setCollapseStateAtLevel=b;function a(m,c,d){const s=[];for(const h of d){const u=m.getAllRegionsAtLine(h,void 0);u.length>0&&s.push(u[0])}const l=h=>s.every(u=>!u.containedBy(h)&&!h.containedBy(u))&&h.isCollapsed!==c,r=m.getRegionsInside(null,l);m.toggleCollapseState(r)}e.setCollapseStateForRest=a;function n(m,c,d){const s=m.textModel,l=m.regions,r=[];for(let h=l.length-1;h>=0;h--)if(d!==l.isCollapsed(h)){const u=l.getStartLineNumber(h);c.test(s.getLineContent(u))&&r.push(l.toRegion(h))}m.toggleCollapseState(r)}e.setCollapseStateForMatchingLines=n;function i(m,c,d){const s=m.regions,l=[];for(let r=s.length-1;r>=0;r--)d!==s.isCollapsed(r)&&c===s.getType(r)&&l.push(s.toRegion(r));m.toggleCollapseState(l)}e.setCollapseStateForType=i;function t(m,c){let d=null;const s=c.getRegionAtLine(m);if(s!==null&&(d=s.startLineNumber,m===d)){const l=s.parentIndex;l!==-1?d=c.regions.getStartLineNumber(l):d=null}return d}e.getParentFoldLine=t;function o(m,c){let d=c.getRegionAtLine(m);if(d!==null&&d.startLineNumber===m){if(m!==d.startLineNumber)return d.startLineNumber;{const s=d.parentIndex;let l=0;for(s!==-1&&(l=c.regions.getStartLineNumber(d.parentIndex));d!==null;)if(d.regionIndex>0){if(d=c.regions.toRegion(d.regionIndex-1),d.startLineNumber<=l)return null;if(d.parentIndex===s)return d.startLineNumber}else return null}}else if(c.regions.length>0)for(d=c.regions.toRegion(c.regions.length-1);d!==null;){if(d.startLineNumber0?d=c.regions.toRegion(d.regionIndex-1):d=null}return null}e.getPreviousFoldLine=o;function g(m,c){let d=c.getRegionAtLine(m);if(d!==null&&d.startLineNumber===m){const s=d.parentIndex;let l=0;if(s!==-1)l=c.regions.getEndLineNumber(d.parentIndex);else{if(c.regions.length===0)return null;l=c.regions.getEndLineNumber(c.regions.length-1)}for(;d!==null;)if(d.regionIndex=l)return null;if(d.parentIndex===s)return d.startLineNumber}else return null}else if(c.regions.length>0)for(d=c.regions.toRegion(0);d!==null;){if(d.startLineNumber>m)return d.startLineNumber;d.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],b.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(b){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=b.changes.some(a=>a.range.endLineNumber!==a.range.startLineNumber||(0,D.countEOL)(a.text)[0]!==0))}updateHiddenRanges(){let b=!1;const a=[];let n=0,i=0,t=Number.MAX_VALUE,o=-1;const g=this._foldingModel.regions;for(;n0}isHidden(b){return w(this._hiddenRanges,b)!==null}adjustSelections(b){let a=!1;const n=this._foldingModel.textModel;let i=null;const t=o=>((!i||!p(o,i))&&(i=w(this._hiddenRanges,o)),i?i.startLineNumber-1:null);for(let o=0,g=b.length;o0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}e.HiddenRangeModel=S;function p(v,b){return v>=b.startLineNumber&&v<=b.endLineNumber}function w(v,b){const a=(0,L.findFirstIdxMonotonousOrArrLen)(v,n=>b=0&&v[a].endLineNumber>=b?v[a]:null}}),define(ne[311],se([1,0,216,188]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeRanges=e.RangesCollector=e.IndentRangeProvider=void 0;const y=5e3,D="indent";class S{constructor(a,n,i){this.editorModel=a,this.languageConfigurationService=n,this.foldingRangesLimit=i,this.id=D}dispose(){}compute(a){const n=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=n&&!!n.offSide,t=n&&n.markers;return Promise.resolve(v(this.editorModel,i,t,this.foldingRangesLimit))}}e.IndentRangeProvider=S;class p{constructor(a){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=a}insertFirst(a,n,i){if(a>k.MAX_LINE_NUMBER||n>k.MAX_LINE_NUMBER)return;const t=this._length;this._startIndexes[t]=a,this._endIndexes[t]=n,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(a){const n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let o=this._length-1,g=0;o>=0;o--,g++)i[g]=this._startIndexes[o],t[g]=this._endIndexes[o];return new k.FoldingRegions(i,t)}else{this._foldingRangesLimit.update(this._length,n);let i=0,t=this._indentOccurrences.length;for(let c=0;cn){t=c;break}i+=d}}const o=a.getOptions().tabSize,g=new Uint32Array(n),m=new Uint32Array(n);for(let c=this._length-1,d=0;c>=0;c--){const s=this._startIndexes[c],l=a.getLineContent(s),r=(0,L.computeIndentLevel)(l,o);(r{}};function v(b,a,n,i=w){const t=b.getOptions().tabSize,o=new p(i);let g;n&&(g=new RegExp(`(${n.start.source})|(?:${n.end.source})`));const m=[],c=b.getLineCount()+1;m.push({indent:-1,endAbove:c,line:c});for(let d=b.getLineCount();d>0;d--){const s=b.getLineContent(d),l=(0,L.computeIndentLevel)(s,t);let r=m[m.length-1];if(l===-1){a&&(r.endAbove=d);continue}let h;if(g&&(h=s.match(g)))if(h[1]){let u=m.length-1;for(;u>0&&m[u].indent!==-2;)u--;if(u>0){m.length=u+1,r=m[u],o.insertFirst(d,r.line,l),r.line=d,r.indent=l,r.endAbove=d;continue}}else{m.push({indent:-2,endAbove:d,line:d});continue}if(r.indent>l){do m.pop(),r=m[m.length-1];while(r.indent>l);const u=r.endAbove-1;u-d>=1&&o.insertFirst(d,u,l)}r.indent===l?r.endAbove=d:m.push({indent:l,endAbove:d,line:d})}return o.toIndentRanges(b)}e.computeRanges=v}),define(ne[312],se([1,0,12,2,188]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sanitizeRanges=e.SyntaxRangeProvider=void 0;const D={},S="syntax";class p{constructor(n,i,t,o,g){this.editorModel=n,this.providers=i,this.handleFoldingRangesChange=t,this.foldingRangesLimit=o,this.fallbackRangeProvider=g,this.id=S,this.disposables=new k.DisposableStore,g&&this.disposables.add(g);for(const m of i)typeof m.onDidChange=="function"&&this.disposables.add(m.onDidChange(t))}compute(n){return w(this.providers,this.editorModel,n).then(i=>{var t,o;return i?b(i,this.foldingRangesLimit):(o=(t=this.fallbackRangeProvider)===null||t===void 0?void 0:t.compute(n))!==null&&o!==void 0?o:null})}dispose(){this.disposables.dispose()}}e.SyntaxRangeProvider=p;function w(a,n,i){let t=null;const o=a.map((g,m)=>Promise.resolve(g.provideFoldingRanges(n,D,i)).then(c=>{if(!i.isCancellationRequested&&Array.isArray(c)){Array.isArray(t)||(t=[]);const d=n.getLineCount();for(const s of c)s.start>0&&s.end>s.start&&s.end<=d&&t.push({start:s.start,end:s.end,rank:m,kind:s.kind})}},L.onUnexpectedExternalError));return Promise.all(o).then(g=>t)}class v{constructor(n){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=n}add(n,i,t,o){if(n>y.MAX_LINE_NUMBER||i>y.MAX_LINE_NUMBER)return;const g=this._length;this._startIndexes[g]=n,this._endIndexes[g]=i,this._nestingLevels[g]=o,this._types[g]=t,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}toIndentRanges(){const n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let o=0;on){t=c;break}i+=d}}const o=new Uint32Array(n),g=new Uint32Array(n),m=[];for(let c=0,d=0;c{let d=m.start-c.start;return d===0&&(d=m.rank-c.rank),d}),t=new v(n);let o;const g=[];for(const m of i)if(!o)o=m,t.add(m.start,m.end,m.kind&&m.kind.value,g.length);else if(m.start>o.start)if(m.end<=o.end)g.push(o),o=m,t.add(m.start,m.end,m.kind&&m.kind.value,g.length);else{if(m.start>o.end){do o=g.pop();while(o&&m.start>o.end);o&&g.push(o),o=m}t.add(m.start,m.end,m.kind&&m.kind.value,g.length)}return t.toIndentRanges()}e.sanitizeRanges=b}),define(ne[313],se([1,0,68,5,131]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormattingEdit=void 0;class D{static _handleEolEdits(p,w){let v;const b=[];for(const a of w)typeof a.eol=="number"&&(v=a.eol),a.range&&typeof a.text=="string"&&b.push(a);return typeof v=="number"&&p.hasModel()&&p.getModel().pushEOL(v),b}static _isFullModelReplaceEdit(p,w){if(!p.hasModel())return!1;const v=p.getModel(),b=v.validateRange(w.range);return v.getFullModelRange().equalsRange(b)}static execute(p,w,v){v&&p.pushUndoStop();const b=y.StableEditorScrollState.capture(p),a=D._handleEolEdits(p,w);a.length===1&&D._isFullModelReplaceEdit(p,a[0])?p.executeEdits("formatEditsCommand",a.map(n=>L.EditOperation.replace(k.Range.lift(n.range),n.text))):p.executeEdits("formatEditsCommand",a.map(n=>L.EditOperation.replaceMove(k.Range.lift(n.range),n.text))),v&&p.pushUndoStop(),b.restoreRelativeVerticalPositionOfCursor(p)}}e.FormattingEdit=D}),define(ne[93],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverParticipantRegistry=e.HoverForeignElementAnchor=e.HoverRangeAnchor=void 0;class L{constructor(D,S,p,w){this.priority=D,this.range=S,this.initialMousePosX=p,this.initialMousePosY=w,this.type=1}equals(D){return D.type===1&&this.range.equalsRange(D.range)}canAdoptVisibleHover(D,S){return D.type===1&&S.lineNumber===this.range.startLineNumber}}e.HoverRangeAnchor=L;class k{constructor(D,S,p,w,v,b){this.priority=D,this.owner=S,this.range=p,this.initialMousePosX=w,this.initialMousePosY=v,this.supportsMarkerHover=b,this.type=2}equals(D){return D.type===2&&this.owner===D.owner}canAdoptVisibleHover(D,S){return D.type===2&&this.owner===D.owner}}e.HoverForeignElementAnchor=k,e.HoverParticipantRegistry=new class{constructor(){this._participants=[]}register(D){this._participants.push(D)}getAll(){return this._participants}}}),define(ne[568],se([1,0,23]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InPlaceReplaceCommand=void 0;class k{constructor(D,S,p){this._editRange=D,this._originalSelection=S,this._text=p}getEditOperations(D,S){S.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(D,S){const w=S.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new L.Selection(w.endLineNumber,Math.min(this._originalSelection.positionColumn,w.endColumn),w.endLineNumber,Math.min(this._originalSelection.positionColumn,w.endColumn)):new L.Selection(w.endLineNumber,w.endColumn-this._text.length,w.endLineNumber,w.endColumn)}}e.InPlaceReplaceCommand=k}),define(ne[314],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.generateIndent=e.getSpaceCnt=void 0;function L(y,D){let S=0;for(let p=0;p{const h=S.Range.lift(r.range);return{startOffset:s.getOffset(h.getStartPosition()),endOffset:s.getOffset(h.getEndPosition()),text:r.text}});l.sort((r,h)=>h.startOffset-r.startOffset);for(const r of l)c=c.substring(0,r.startOffset)+r.text+c.substring(r.endOffset);return c}e.applyEdits=p;class w{constructor(d){this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let s=0;ss)throw new L.BugIndicatingError(`startColumn ${d} cannot be after endColumnExclusive ${s}`)}toRange(d){return new S.Range(d,this.startColumn,d,this.endColumnExclusive)}equals(d){return this.startColumn===d.startColumn&&this.endColumnExclusive===d.endColumnExclusive}}e.ColumnRange=a;function n(c,d){const s=new k.DisposableStore,l=c.createDecorationsCollection();return s.add((0,y.autorunOpts)({debugName:()=>`Apply decorations from ${d.debugName}`},r=>{const h=d.read(r);l.set(h)})),s.add({dispose:()=>{l.clear()}}),s}e.applyObservableDecorations=n;function i(c,d){return new D.Position(c.lineNumber+d.lineNumber-1,d.lineNumber===1?c.column+d.column-1:d.column)}e.addPositions=i;function t(c,d){return new D.Position(c.lineNumber-d.lineNumber+1,c.lineNumber-d.lineNumber===0?c.column-d.column+1:c.column)}e.subtractPositions=t;function o(c){let d=1,s=1;for(const l of c)l===` +`?(d++,s=1):s++;return new D.Position(d,s)}e.lengthOfText=o;function g(c){var d;const s=[];let l=0,r=0,h=0;for(const u of c){const f=(d=u.text)!==null&&d!==void 0?d:"",C=o(f),_=D.Position.lift({lineNumber:u.range.startLineNumber+r,column:u.range.startColumn+(u.range.startLineNumber===l?h:0)}),E=i(_,C);s.push(S.Range.fromPositions(_,E)),r+=C.lineNumber-u.range.endLineNumber+u.range.startLineNumber-1,h=E.column-u.range.endColumn,l=u.range.endLineNumber}return s}e.getNewRanges=g;class m{constructor(d){this._indexMap=d}static createSortPermutation(d,s){const l=Array.from(d.keys()).sort((r,h)=>s(d[r],d[h]));return new m(l)}apply(d){return d.map((s,l)=>d[this._indexMap[l]])}inverse(){const d=this._indexMap.slice();for(let s=0;sn.equals(a.parts[i]))}renderForScreenReader(a){if(this.parts.length===0)return"";const n=this.parts[this.parts.length-1],i=a.substr(0,n.column-1);return(0,y.applyEdits)(i,this.parts.map(o=>({range:{startLineNumber:1,endLineNumber:1,startColumn:o.column,endColumn:o.column},text:o.lines.join(` +`)}))).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(a=>a.lines.length===0)}get lineCount(){return 1+this.parts.reduce((a,n)=>a+n.lines.length-1,0)}}e.GhostText=D;class S{constructor(a,n,i){this.column=a,this.text=n,this.preview=i,this.lines=(0,k.splitLines)(this.text)}equals(a){return this.column===a.column&&this.lines.length===a.lines.length&&this.lines.every((n,i)=>n===a.lines[i])}}e.GhostTextPart=S;class p{constructor(a,n,i,t=0){this.lineNumber=a,this.columnRange=n,this.text=i,this.additionalReservedLineCount=t,this.parts=[new S(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=(0,k.splitLines)(this.text)}renderForScreenReader(a){return this.newLines.join(` +`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(a=>a.lines.length===0)}equals(a){return this.lineNumber===a.lineNumber&&this.columnRange.equals(a.columnRange)&&this.newLines.length===a.newLines.length&&this.newLines.every((n,i)=>n===a.newLines[i])&&this.additionalReservedLineCount===a.additionalReservedLineCount}}e.GhostTextReplacement=p;function w(b,a){return(0,L.equals)(b,a,v)}e.ghostTextsOrReplacementsEqual=w;function v(b,a){return b===a?!0:!b||!a?!1:b instanceof D&&a instanceof D||b instanceof p&&a instanceof p?b.equals(a):!1}e.ghostTextOrReplacementEquals=v}),define(ne[223],se([1,0,176,11,5,189,140]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SingleTextEdit=void 0;class p{constructor(t,o){this.range=t,this.text=o}removeCommonPrefix(t,o){const g=o?this.range.intersectRanges(o):this.range;if(!g)return this;const m=t.getValueInRange(g,1),c=(0,k.commonPrefixLength)(m,this.text),d=(0,S.addPositions)(this.range.getStartPosition(),(0,S.lengthOfText)(m.substring(0,c))),s=this.text.substring(c),l=y.Range.fromPositions(d,this.range.getEndPosition());return new p(l,s)}augments(t){return this.text.startsWith(t.text)&&w(this.range,t.range)}computeGhostText(t,o,g,m=0){let c=this.removeCommonPrefix(t);if(c.range.endLineNumber!==c.range.startLineNumber)return;const d=t.getLineContent(c.range.startLineNumber),s=(0,k.getLeadingWhitespace)(d).length;if(c.range.startColumn-1<=s){const _=(0,k.getLeadingWhitespace)(c.text).length,E=d.substring(c.range.startColumn-1,s),[I,T]=[c.range.getStartPosition(),c.range.getEndPosition()],A=I.column+E.length<=T.column?I.delta(0,E.length):T,R=y.Range.fromPositions(A,T),M=c.text.startsWith(E)?c.text.substring(E.length):c.text.substring(_);c=new p(R,M)}const r=t.getValueInRange(c.range),h=b(r,c.text);if(!h)return;const u=c.range.startLineNumber,f=new Array;if(o==="prefix"){const _=h.filter(E=>E.originalLength===0);if(_.length>1||_.length===1&&_[0].originalStart!==r.length)return}const C=c.text.length-m;for(const _ of h){const E=c.range.startColumn+_.originalStart+_.originalLength;if(o==="subwordSmart"&&g&&g.lineNumber===c.range.startLineNumber&&E0)return;if(_.modifiedLength===0)continue;const I=_.modifiedStart+_.modifiedLength,T=Math.max(_.modifiedStart,Math.min(I,C)),A=c.text.substring(_.modifiedStart,T),R=c.text.substring(T,Math.max(_.modifiedStart,I));A.length>0&&f.push(new D.GhostTextPart(E,A,!1)),R.length>0&&f.push(new D.GhostTextPart(E,R,!0))}return new D.GhostText(u,f)}}e.SingleTextEdit=p;function w(i,t){return t.getStartPosition().equals(i.getStartPosition())&&t.getEndPosition().isBeforeOrEqual(i.getEndPosition())}let v;function b(i,t){if(v?.originalValue===i&&v?.newValue===t)return v?.changes;{let o=n(i,t,!0);if(o){const g=a(o);if(g>0){const m=n(i,t,!1);m&&a(m)5e3||t.length>5e3)return;function g(r){let h=0;for(let u=0,f=r.length;uh&&(h=C)}return h}const m=Math.max(g(i),g(t));function c(r){if(r<0)throw new Error("unexpected");return m+r+1}function d(r){let h=0,u=0;const f=new Int32Array(r.length);for(let C=0,_=r.length;C<_;C++)if(o&&r[C]==="("){const E=u*100+h;f[C]=c(2*E),h++}else if(o&&r[C]===")"){h=Math.max(h-1,0);const E=u*100+h;f[C]=c(2*E+1),h===0&&u++}else f[C]=r.charCodeAt(C);return f}const s=d(i),l=d(t);return new L.LcsDiff({getElements:()=>s},{getElements:()=>l}).ComputeDiff(!1).changes}}),define(ne[569],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inlineEditJumpBackId=e.inlineEditJumpToId=e.inlineEditRejectId=e.inlineEditAcceptId=void 0,e.inlineEditAcceptId="editor.action.inlineEdit.accept",e.inlineEditRejectId="editor.action.inlineEdit.reject",e.inlineEditJumpToId="editor.action.inlineEdit.jumpTo",e.inlineEditJumpBackId="editor.action.inlineEdit.jumpBack"}),define(ne[570],se([1,0,5,23]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CopyLinesCommand=void 0;class y{constructor(S,p,w){this._selection=S,this._isCopyingDown=p,this._noop=w||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(S,p){let w=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,w.startLineNumber=a)return null;const n=[];for(let t=b;t<=a;t++)n.push(p.getLineContent(t));let i=n.slice(0);return i.sort(y.getCollator().compare),v===!0&&(i=i.reverse()),{startLineNumber:b,endLineNumber:a,before:n,after:i}}function S(p,w,v){const b=D(p,w,v);return b?L.EditOperation.replace(new k.Range(b.startLineNumber,1,b.endLineNumber,p.getLineMaxColumn(b.endLineNumber)),b.after.join(` +`)):null}}),define(ne[315],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isSemanticColoringEnabled=e.SEMANTIC_HIGHLIGHTING_SETTING_ID=void 0,e.SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function L(k,y,D){var S;const p=(S=D.getValue(e.SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:k.getLanguageId(),resource:k.uri}))===null||S===void 0?void 0:S.enabled;return typeof p=="boolean"?p:y.getColorTheme().semanticHighlighting}e.isSemanticColoringEnabled=L}),define(ne[316],se([1,0,67,9,5]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketSelectionRangeProvider=void 0;class D{async provideSelectionRanges(p,w){const v=[];for(const b of w){const a=[];v.push(a);const n=new Map;await new Promise(i=>D._bracketsRightYield(i,0,p,b,n)),await new Promise(i=>D._bracketsLeftYield(i,0,p,b,n,a))}return v}static _bracketsRightYield(p,w,v,b,a){const n=new Map,i=Date.now();for(;;){if(w>=D._maxRounds){p();break}if(!b){p();break}const t=v.bracketPairs.findNextBracket(b);if(!t){p();break}if(Date.now()-i>D._maxDuration){setTimeout(()=>D._bracketsRightYield(p,w+1,v,b,a));break}if(t.bracketInfo.isOpeningBracket){const g=t.bracketInfo.bracketText,m=n.has(g)?n.get(g):0;n.set(g,m+1)}else{const g=t.bracketInfo.getOpeningBrackets()[0].bracketText;let m=n.has(g)?n.get(g):0;if(m-=1,n.set(g,Math.max(0,m)),m<0){let c=a.get(g);c||(c=new L.LinkedList,a.set(g,c)),c.push(t.range)}}b=t.range.getEndPosition()}}static _bracketsLeftYield(p,w,v,b,a,n){const i=new Map,t=Date.now();for(;;){if(w>=D._maxRounds&&a.size===0){p();break}if(!b){p();break}const o=v.bracketPairs.findPrevBracket(b);if(!o){p();break}if(Date.now()-t>D._maxDuration){setTimeout(()=>D._bracketsLeftYield(p,w+1,v,b,a,n));break}if(o.bracketInfo.isOpeningBracket){const m=o.bracketInfo.bracketText;let c=i.has(m)?i.get(m):0;if(c-=1,i.set(m,Math.max(0,c)),c<0){const d=a.get(m);if(d){const s=d.shift();d.size===0&&a.delete(m);const l=y.Range.fromPositions(o.range.getEndPosition(),s.getStartPosition()),r=y.Range.fromPositions(o.range.getStartPosition(),s.getEndPosition());n.push({range:l}),n.push({range:r}),D._addBracketLeading(v,r,n)}}}else{const m=o.bracketInfo.getOpeningBrackets()[0].bracketText,c=i.has(m)?i.get(m):0;i.set(m,c+1)}b=o.range.getStartPosition()}}static _addBracketLeading(p,w,v){if(w.startLineNumber===w.endLineNumber)return;const b=w.startLineNumber,a=p.getLineFirstNonWhitespaceColumn(b);a!==0&&a!==w.startColumn&&(v.push({range:y.Range.fromPositions(new k.Position(b,a),w.getEndPosition())}),v.push({range:y.Range.fromPositions(new k.Position(b,1),w.getEndPosition())}));const n=b-1;if(n>0){const i=p.getLineFirstNonWhitespaceColumn(n);i===w.startColumn&&i!==p.getLineLastNonWhitespaceColumn(n)&&(v.push({range:y.Range.fromPositions(new k.Position(n,i),w.getEndPosition())}),v.push({range:y.Range.fromPositions(new k.Position(n,1),w.getEndPosition())}))}}}e.BracketSelectionRangeProvider=D,D._maxDuration=30,D._maxRounds=2}),define(ne[572],se([1,0,11,5]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordSelectionRangeProvider=void 0;class y{constructor(S=!0){this.selectSubwords=S}provideSelectionRanges(S,p){const w=[];for(const v of p){const b=[];w.push(b),this.selectSubwords&&this._addInWordRanges(b,S,v),this._addWordRanges(b,S,v),this._addWhitespaceLine(b,S,v),b.push({range:S.getFullModelRange()})}return w}_addInWordRanges(S,p,w){const v=p.getWordAtPosition(w);if(!v)return;const{word:b,startColumn:a}=v,n=w.column-a;let i=n,t=n,o=0;for(;i>=0;i--){const g=b.charCodeAt(i);if(i!==n&&(g===95||g===45))break;if((0,L.isLowerAsciiLetter)(g)&&(0,L.isUpperAsciiLetter)(o))break;o=g}for(i+=1;t0&&p.getLineFirstNonWhitespaceColumn(w.lineNumber)===0&&p.getLineLastNonWhitespaceColumn(w.lineNumber)===0&&S.push({range:new k.Range(w.lineNumber,1,w.lineNumber,p.getLineMaxColumn(w.lineNumber))})}}e.WordSelectionRangeProvider=y}),define(ne[120],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetParser=e.TextmateSnippet=e.Variable=e.FormatString=e.Transform=e.Choice=e.Placeholder=e.TransformableMarker=e.Text=e.Marker=e.Scanner=void 0;class L{constructor(){this.value="",this.pos=0}static isDigitCharacter(o){return o>=48&&o<=57}static isVariableCharacter(o){return o===95||o>=97&&o<=122||o>=65&&o<=90}text(o){this.value=o,this.pos=0}tokenText(o){return this.value.substr(o.pos,o.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const o=this.pos;let g=0,m=this.value.charCodeAt(o),c;if(c=L._table[m],typeof c=="number")return this.pos+=1,{type:c,pos:o,len:1};if(L.isDigitCharacter(m)){c=8;do g+=1,m=this.value.charCodeAt(o+g);while(L.isDigitCharacter(m));return this.pos+=g,{type:c,pos:o,len:g}}if(L.isVariableCharacter(m)){c=9;do m=this.value.charCodeAt(o+ ++g);while(L.isVariableCharacter(m)||L.isDigitCharacter(m));return this.pos+=g,{type:c,pos:o,len:g}}c=10;do g+=1,m=this.value.charCodeAt(o+g);while(!isNaN(m)&&typeof L._table[m]>"u"&&!L.isDigitCharacter(m)&&!L.isVariableCharacter(m));return this.pos+=g,{type:c,pos:o,len:g}}}e.Scanner=L,L._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class k{constructor(){this._children=[]}appendChild(o){return o instanceof y&&this._children[this._children.length-1]instanceof y?this._children[this._children.length-1].value+=o.value:(o.parent=this,this._children.push(o)),this}replace(o,g){const{parent:m}=o,c=m.children.indexOf(o),d=m.children.slice(0);d.splice(c,1,...g),m._children=d,function s(l,r){for(const h of l)h.parent=r,s(h.children,h)}(g,m)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let o=this;for(;;){if(!o)return;if(o instanceof n)return o;o=o.parent}}toString(){return this.children.reduce((o,g)=>o+g.toString(),"")}len(){return 0}}e.Marker=k;class y extends k{constructor(o){super(),this.value=o}toString(){return this.value}len(){return this.value.length}clone(){return new y(this.value)}}e.Text=y;class D extends k{}e.TransformableMarker=D;class S extends D{static compareByIndex(o,g){return o.index===g.index?0:o.isFinalTabstop?1:g.isFinalTabstop||o.indexg.index?1:0}constructor(o){super(),this.index=o}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof p?this._children[0]:void 0}clone(){const o=new S(this.index);return this.transform&&(o.transform=this.transform.clone()),o._children=this.children.map(g=>g.clone()),o}}e.Placeholder=S;class p extends k{constructor(){super(...arguments),this.options=[]}appendChild(o){return o instanceof y&&(o.parent=this,this.options.push(o)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const o=new p;return this.options.forEach(o.appendChild,o),o}}e.Choice=p;class w extends k{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(o){const g=this;let m=!1,c=o.replace(this.regexp,function(){return m=!0,g._replace(Array.prototype.slice.call(arguments,0,-2))});return!m&&this._children.some(d=>d instanceof v&&!!d.elseValue)&&(c=this._replace([])),c}_replace(o){let g="";for(const m of this._children)if(m instanceof v){let c=o[m.index]||"";c=m.resolve(c),g+=c}else g+=m.toString();return g}toString(){return""}clone(){const o=new w;return o.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),o._children=this.children.map(g=>g.clone()),o}}e.Transform=w;class v extends k{constructor(o,g,m,c){super(),this.index=o,this.shorthandName=g,this.ifValue=m,this.elseValue=c}resolve(o){return this.shorthandName==="upcase"?o?o.toLocaleUpperCase():"":this.shorthandName==="downcase"?o?o.toLocaleLowerCase():"":this.shorthandName==="capitalize"?o?o[0].toLocaleUpperCase()+o.substr(1):"":this.shorthandName==="pascalcase"?o?this._toPascalCase(o):"":this.shorthandName==="camelcase"?o?this._toCamelCase(o):"":o&&typeof this.ifValue=="string"?this.ifValue:!o&&typeof this.elseValue=="string"?this.elseValue:o||""}_toPascalCase(o){const g=o.match(/[a-z0-9]+/gi);return g?g.map(m=>m.charAt(0).toUpperCase()+m.substr(1)).join(""):o}_toCamelCase(o){const g=o.match(/[a-z0-9]+/gi);return g?g.map((m,c)=>c===0?m.charAt(0).toLowerCase()+m.substr(1):m.charAt(0).toUpperCase()+m.substr(1)).join(""):o}clone(){return new v(this.index,this.shorthandName,this.ifValue,this.elseValue)}}e.FormatString=v;class b extends D{constructor(o){super(),this.name=o}resolve(o){let g=o.resolve(this);return this.transform&&(g=this.transform.resolve(g||"")),g!==void 0?(this._children=[new y(g)],!0):!1}clone(){const o=new b(this.name);return this.transform&&(o.transform=this.transform.clone()),o._children=this.children.map(g=>g.clone()),o}}e.Variable=b;function a(t,o){const g=[...t];for(;g.length>0;){const m=g.shift();if(!o(m))break;g.unshift(...m.children)}}class n extends k{get placeholderInfo(){if(!this._placeholders){const o=[];let g;this.walk(function(m){return m instanceof S&&(o.push(m),g=!g||g.indexc===o?(m=!0,!1):(g+=c.len(),!0)),m?g:-1}fullLen(o){let g=0;return a([o],m=>(g+=m.len(),!0)),g}enclosingPlaceholders(o){const g=[];let{parent:m}=o;for(;m;)m instanceof S&&g.push(m),m=m.parent;return g}resolveVariables(o){return this.walk(g=>(g instanceof b&&g.resolve(o)&&(this._placeholders=void 0),!0)),this}appendChild(o){return this._placeholders=void 0,super.appendChild(o)}replace(o,g){return this._placeholders=void 0,super.replace(o,g)}clone(){const o=new n;return this._children=this.children.map(g=>g.clone()),o}walk(o){a(this.children,o)}}e.TextmateSnippet=n;class i{constructor(){this._scanner=new L,this._token={type:14,pos:0,len:0}}static escape(o){return o.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(o){return/\${?CLIPBOARD/.test(o)}parse(o,g,m){const c=new n;return this.parseFragment(o,c),this.ensureFinalTabstop(c,m??!1,g??!1),c}parseFragment(o,g){const m=g.children.length;for(this._scanner.text(o),this._token=this._scanner.next();this._parse(g););const c=new Map,d=[];g.walk(r=>(r instanceof S&&(r.isFinalTabstop?c.set(0,void 0):!c.has(r.index)&&r.children.length>0?c.set(r.index,r.children):d.push(r)),!0));const s=(r,h)=>{const u=c.get(r.index);if(!u)return;const f=new S(r.index);f.transform=r.transform;for(const C of u){const _=C.clone();f.appendChild(_),_ instanceof S&&c.has(_.index)&&!h.has(_.index)&&(h.add(_.index),s(_,h),h.delete(_.index))}g.replace(r,[f])},l=new Set;for(const r of d)s(r,l);return g.children.slice(m)}ensureFinalTabstop(o,g,m){(g||m&&o.placeholders.length>0)&&(o.placeholders.find(d=>d.index===0)||o.appendChild(new S(0)))}_accept(o,g){if(o===void 0||this._token.type===o){const m=g?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),m}return!1}_backTo(o){return this._scanner.pos=o.pos+o.len,this._token=o,!1}_until(o){const g=this._token;for(;this._token.type!==o;){if(this._token.type===14)return!1;if(this._token.type===5){const c=this._scanner.next();if(c.type!==0&&c.type!==4&&c.type!==5)return!1}this._token=this._scanner.next()}const m=this._scanner.value.substring(g.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),m}_parse(o){return this._parseEscaped(o)||this._parseTabstopOrVariableName(o)||this._parseComplexPlaceholder(o)||this._parseComplexVariable(o)||this._parseAnything(o)}_parseEscaped(o){let g;return(g=this._accept(5,!0))?(g=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||g,o.appendChild(new y(g)),!0):!1}_parseTabstopOrVariableName(o){let g;const m=this._token;return this._accept(0)&&(g=this._accept(9,!0)||this._accept(8,!0))?(o.appendChild(/^\d+$/.test(g)?new S(Number(g)):new b(g)),!0):this._backTo(m)}_parseComplexPlaceholder(o){let g;const m=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(8,!0))))return this._backTo(m);const d=new S(Number(g));if(this._accept(1))for(;;){if(this._accept(4))return o.appendChild(d),!0;if(!this._parse(d))return o.appendChild(new y("${"+g+":")),d.children.forEach(o.appendChild,o),!0}else if(d.index>0&&this._accept(7)){const s=new p;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(d.appendChild(s),this._accept(4)))return o.appendChild(d),!0}return this._backTo(m),!1}}else return this._accept(6)?this._parseTransform(d)?(o.appendChild(d),!0):(this._backTo(m),!1):this._accept(4)?(o.appendChild(d),!0):this._backTo(m)}_parseChoiceElement(o){const g=this._token,m=[];for(;!(this._token.type===2||this._token.type===7);){let c;if((c=this._accept(5,!0))?c=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||c:c=this._accept(void 0,!0),!c)return this._backTo(g),!1;m.push(c)}return m.length===0?(this._backTo(g),!1):(o.appendChild(new y(m.join(""))),!0)}_parseComplexVariable(o){let g;const m=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(9,!0))))return this._backTo(m);const d=new b(g);if(this._accept(1))for(;;){if(this._accept(4))return o.appendChild(d),!0;if(!this._parse(d))return o.appendChild(new y("${"+g+":")),d.children.forEach(o.appendChild,o),!0}else return this._accept(6)?this._parseTransform(d)?(o.appendChild(d),!0):(this._backTo(m),!1):this._accept(4)?(o.appendChild(d),!0):this._backTo(m)}_parseTransform(o){const g=new w;let m="",c="";for(;!this._accept(6);){let d;if(d=this._accept(5,!0)){d=this._accept(6,!0)||d,m+=d;continue}if(this._token.type!==14){m+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let d;if(d=this._accept(5,!0)){d=this._accept(5,!0)||this._accept(6,!0)||d,g.appendChild(new y(d));continue}if(!(this._parseFormatString(g)||this._parseAnything(g)))return!1}for(;!this._accept(4);){if(this._token.type!==14){c+=this._accept(void 0,!0);continue}return!1}try{g.regexp=new RegExp(m,c)}catch{return!1}return o.transform=g,!0}_parseFormatString(o){const g=this._token;if(!this._accept(0))return!1;let m=!1;this._accept(3)&&(m=!0);const c=this._accept(8,!0);if(c)if(m){if(this._accept(4))return o.appendChild(new v(Number(c))),!0;if(!this._accept(1))return this._backTo(g),!1}else return o.appendChild(new v(Number(c))),!0;else return this._backTo(g),!1;if(this._accept(6)){const d=this._accept(9,!0);return!d||!this._accept(4)?(this._backTo(g),!1):(o.appendChild(new v(Number(c),d)),!0)}else if(this._accept(11)){const d=this._until(4);if(d)return o.appendChild(new v(Number(c),void 0,d,void 0)),!0}else if(this._accept(12)){const d=this._until(4);if(d)return o.appendChild(new v(Number(c),void 0,void 0,d)),!0}else if(this._accept(13)){const d=this._until(1);if(d){const s=this._until(4);if(s)return o.appendChild(new v(Number(c),void 0,d,s)),!0}}else{const d=this._until(4);if(d)return o.appendChild(new v(Number(c),void 0,void 0,d)),!0}return this._backTo(g),!1}_parseAnything(o){return this._token.type!==14?(o.appendChild(new y(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}e.SnippetParser=i}),define(ne[317],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyModel=e.StickyElement=e.StickyRange=void 0;class L{constructor(S,p){this.startLineNumber=S,this.endLineNumber=p}}e.StickyRange=L;class k{constructor(S,p,w){this.range=S,this.children=p,this.parent=w}}e.StickyElement=k;class y{constructor(S,p,w,v){this.uri=S,this.version=p,this.element=w,this.outlineProviderId=v}}e.StickyModel=y}),define(ne[318],se([1,0,13,73,11]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompletionModel=e.LineContext=void 0;class D{constructor(w,v){this.leadingLineContent=w,this.characterCountDelta=v}}e.LineContext=D;class S{constructor(w,v,b,a,n,i,t=k.FuzzyScoreOptions.default,o=void 0){this.clipboardText=o,this._snippetCompareFn=S._compareCompletionItems,this._items=w,this._column=v,this._wordDistance=a,this._options=n,this._refilterKind=1,this._lineContext=b,this._fuzzyScoreOptions=t,i==="top"?this._snippetCompareFn=S._compareCompletionItemsSnippetsUp:i==="bottom"&&(this._snippetCompareFn=S._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(w){(this._lineContext.leadingLineContent!==w.leadingLineContent||this._lineContext.characterCountDelta!==w.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta0&&b[0].container.incomplete&&w.add(v);return w}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const w=[],{leadingLineContent:v,characterCountDelta:b}=this._lineContext;let a="",n="";const i=this._refilterKind===1?this._items:this._filteredItems,t=[],o=!this._options.filterGraceful||i.length>2e3?k.fuzzyScore:k.fuzzyScoreGracefulAggressive;for(let g=0;g=s)m.score=k.FuzzyScore.Default;else if(typeof m.completion.filterText=="string"){const r=o(a,n,l,m.completion.filterText,m.filterTextLow,0,this._fuzzyScoreOptions);if(!r)continue;(0,y.compareIgnoreCase)(m.completion.filterText,m.textLabel)===0?m.score=r:(m.score=(0,k.anyScore)(a,n,l,m.textLabel,m.labelLow,0),m.score[0]=r[0])}else{const r=o(a,n,l,m.textLabel,m.labelLow,0,this._fuzzyScoreOptions);if(!r)continue;m.score=r}}m.idx=g,m.distance=this._wordDistance.distance(m.position,m.completion),t.push(m),w.push(m.textLabel.length)}this._filteredItems=t.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:w.length?(0,L.quickSelect)(w.length-.85,w,(g,m)=>g-m):0}}static _compareCompletionItems(w,v){return w.score[0]>v.score[0]?-1:w.score[0]v.distance?1:w.idxv.idx?1:0}static _compareCompletionItemsSnippetsDown(w,v){if(w.completion.kind!==v.completion.kind){if(w.completion.kind===27)return 1;if(v.completion.kind===27)return-1}return S._compareCompletionItems(w,v)}static _compareCompletionItemsSnippetsUp(w,v){if(w.completion.kind!==v.completion.kind){if(w.completion.kind===27)return-1;if(v.completion.kind===27)return 1}return S._compareCompletionItems(w,v)}}e.CompletionModel=S}),define(ne[573],se([1,0,13,2,132]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommitCharacterController=void 0;class D{constructor(p,w,v,b){this._disposables=new k.DisposableStore,this._disposables.add(v.onDidSuggest(a=>{a.completionModel.items.length===0&&this.reset()})),this._disposables.add(v.onDidCancel(a=>{this.reset()})),this._disposables.add(w.onDidShow(()=>this._onItem(w.getFocusedItem()))),this._disposables.add(w.onDidFocus(this._onItem,this)),this._disposables.add(w.onDidHide(this.reset,this)),this._disposables.add(p.onWillType(a=>{if(this._active&&!w.isFrozen()&&v.state!==0){const n=a.charCodeAt(a.length-1);this._active.acceptCharacters.has(n)&&p.getOption(0)&&b(this._active.item)}}))}_onItem(p){if(!p||!(0,L.isNonEmptyArray)(p.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===p.item)return;const w=new y.CharacterSet;for(const v of p.item.completion.commitCharacters)v.length>0&&w.add(v.charCodeAt(0));this._active={acceptCharacters:w,item:p}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}e.CommitCharacterController=D}),define(ne[574],se([1,0,2]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OvertypingCapturer=void 0;class k{constructor(D,S){this._disposables=new L.DisposableStore,this._lastOvertyped=[],this._locked=!1,this._disposables.add(D.onWillType(()=>{if(this._locked||!D.hasModel())return;const p=D.getSelections(),w=p.length;let v=!1;for(let a=0;ak._maxSelectionLength)return;this._lastOvertyped[a]={value:b.getValueInRange(n),multiline:n.startLineNumber!==n.endLineNumber}}})),this._disposables.add(S.onDidTrigger(p=>{this._locked=!0})),this._disposables.add(S.onDidCancel(p=>{this._locked=!1}))}getLastOvertypedInfo(D){if(D>=0&&D=0?m[c]:m[Math.max(0,~c-1)];let s=a.length;for(const l of a){if(!k.Range.containsRange(l.range,d))break;s-=1}return s}}}}e.WordDistance=D,D.None=new class extends D{distance(){return 0}}}),define(ne[320],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stateExists=e.findRules=e.substituteMatches=e.createError=e.log=e.sanitize=e.fixCase=e.empty=e.isIAction=e.isString=e.isFuzzyAction=e.isFuzzyActionArr=void 0;function L(t){return Array.isArray(t)}e.isFuzzyActionArr=L;function k(t){return!L(t)}e.isFuzzyAction=k;function y(t){return typeof t=="string"}e.isString=y;function D(t){return!y(t)}e.isIAction=D;function S(t){return!t}e.empty=S;function p(t,o){return t.ignoreCase&&o?o.toLowerCase():o}e.fixCase=p;function w(t){return t.replace(/[&<>'"_]/g,"-")}e.sanitize=w;function v(t,o){console.log(`${t.languageId}: ${o}`)}e.log=v;function b(t,o){return new Error(`${t.languageId}: ${o}`)}e.createError=b;function a(t,o,g,m,c){const d=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let s=null;return o.replace(d,function(l,r,h,u,f,C,_,E,I){return S(h)?S(u)?!S(f)&&f0;){const m=t.tokenizer[g];if(m)return m;const c=g.lastIndexOf(".");c<0?g=null:g=g.substr(0,c)}return null}e.findRules=n;function i(t,o){let g=o;for(;g&&g.length>0;){if(t.stateNames[g])return!0;const c=g.lastIndexOf(".");c<0?g=null:g=g.substr(0,c)}return!1}e.stateExists=i}),define(ne[575],se([1,0,320]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compile=void 0;function k(t,o){if(!o||!Array.isArray(o))return!1;for(const g of o)if(!t(g))return!1;return!0}function y(t,o){return typeof t=="boolean"?t:o}function D(t,o){return typeof t=="string"?t:o}function S(t){const o={};for(const g of t)o[g]=!0;return o}function p(t,o=!1){o&&(t=t.map(function(m){return m.toLowerCase()}));const g=S(t);return o?function(m){return g[m.toLowerCase()]!==void 0&&g.hasOwnProperty(m.toLowerCase())}:function(m){return g[m]!==void 0&&g.hasOwnProperty(m)}}function w(t,o){o=o.replace(/@@/g,"");let g=0,m;do m=!1,o=o.replace(/@(\w+)/g,function(d,s){m=!0;let l="";if(typeof t[s]=="string")l=t[s];else if(t[s]&&t[s]instanceof RegExp)l=t[s].source;else throw t[s]===void 0?L.createError(t,"language definition does not contain attribute '"+s+"', used at: "+o):L.createError(t,"attribute reference '"+s+"' must be a string, used at: "+o);return L.empty(l)?"":"(?:"+l+")"}),g++;while(m&&g<5);o=o.replace(/\x01/g,"@");const c=(t.ignoreCase?"i":"")+(t.unicode?"u":"");return new RegExp(o,c)}function v(t,o,g,m){if(m<0)return t;if(m=100){m=m-100;const c=g.split(".");if(c.unshift(g),m=0&&(m.tokenSubst=!0),typeof g.bracket=="string")if(g.bracket==="@open")m.bracket=1;else if(g.bracket==="@close")m.bracket=-1;else throw L.createError(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+o);if(g.next){if(typeof g.next!="string")throw L.createError(t,"the next state must be a string value in rule: "+o);{let c=g.next;if(!/^(@pop|@push|@popall)$/.test(c)&&(c[0]==="@"&&(c=c.substr(1)),c.indexOf("$")<0&&!L.stateExists(t,L.substituteMatches(t,c,"",[],""))))throw L.createError(t,"the next state '"+g.next+"' is not defined in rule: "+o);m.next=c}}return typeof g.goBack=="number"&&(m.goBack=g.goBack),typeof g.switchTo=="string"&&(m.switchTo=g.switchTo),typeof g.log=="string"&&(m.log=g.log),typeof g.nextEmbedded=="string"&&(m.nextEmbedded=g.nextEmbedded,t.usesEmbedded=!0),m}}else if(Array.isArray(g)){const m=[];for(let c=0,d=g.length;c0&&m[0]==="^",this.name=this.name+": "+m,this.regex=w(o,"^(?:"+(this.matchOnlyAtLineStart?m.substr(1):m)+")")}setAction(o,g){this.action=a(o,this.name,g)}}function i(t,o){if(!o||typeof o!="object")throw new Error("Monarch: expecting a language definition object");const g={};g.languageId=t,g.includeLF=y(o.includeLF,!1),g.noThrow=!1,g.maxStack=100,g.start=typeof o.start=="string"?o.start:null,g.ignoreCase=y(o.ignoreCase,!1),g.unicode=y(o.unicode,!1),g.tokenPostfix=D(o.tokenPostfix,"."+g.languageId),g.defaultToken=D(o.defaultToken,"source"),g.usesEmbedded=!1;const m=o;m.languageId=t,m.includeLF=g.includeLF,m.ignoreCase=g.ignoreCase,m.unicode=g.unicode,m.noThrow=g.noThrow,m.usesEmbedded=g.usesEmbedded,m.stateNames=o.tokenizer,m.defaultToken=g.defaultToken;function c(s,l,r){for(const h of r){let u=h.include;if(u){if(typeof u!="string")throw L.createError(g,"an 'include' attribute must be a string at: "+s);if(u[0]==="@"&&(u=u.substr(1)),!o.tokenizer[u])throw L.createError(g,"include target '"+u+"' is not defined at: "+s);c(s+"."+u,l,o.tokenizer[u])}else{const f=new n(s);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(f.setRegex(m,h[0]),h.length>=3)if(typeof h[1]=="string")f.setAction(m,{token:h[1],next:h[2]});else if(typeof h[1]=="object"){const C=h[1];C.next=h[2],f.setAction(m,C)}else throw L.createError(g,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+s);else f.setAction(m,h[1]);else{if(!h.regex)throw L.createError(g,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+s);h.name&&typeof h.name=="string"&&(f.name=h.name),h.matchOnlyAtStart&&(f.matchOnlyAtLineStart=y(h.matchOnlyAtLineStart,!1)),f.setRegex(m,h.regex),f.setAction(m,h.action)}l.push(f)}}}if(!o.tokenizer||typeof o.tokenizer!="object")throw L.createError(g,"a language definition must define the 'tokenizer' attribute as an object");g.tokenizer=[];for(const s in o.tokenizer)if(o.tokenizer.hasOwnProperty(s)){g.start||(g.start=s);const l=o.tokenizer[s];g.tokenizer[s]=new Array,c("tokenizer."+s,g.tokenizer[s],l)}if(g.usesEmbedded=m.usesEmbedded,o.brackets){if(!Array.isArray(o.brackets))throw L.createError(g,"the 'brackets' attribute must be defined as an array")}else o.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const d=[];for(const s of o.brackets){let l=s;if(l&&Array.isArray(l)&&l.length===3&&(l={token:l[2],open:l[0],close:l[1]}),l.open===l.close)throw L.createError(g,"open and close brackets in a 'brackets' attribute must be different: "+l.open+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof l.open=="string"&&typeof l.token=="string"&&typeof l.close=="string")d.push({token:l.token+g.tokenPostfix,open:L.fixCase(g,l.open),close:L.fixCase(g,l.close)});else throw L.createError(g,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return g.brackets=d,g.noThrow=!0,g}e.compile=i}),define(ne[576],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/actionbar/actionViewItems",e)}),define(ne[577],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/findinput/findInput",e)}),define(ne[578],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/findinput/findInputToggles",e)}),define(ne[579],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/findinput/replaceInput",e)}),define(ne[580],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/hover/hoverWidget",e)}),define(ne[581],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/iconLabel/iconLabelHover",e)}),define(ne[582],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/inputbox/inputBox",e)}),define(ne[583],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/keybindingLabel/keybindingLabel",e)}),define(ne[584],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/selectBox/selectBoxCustom",e)}),define(ne[585],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/toolbar/toolbar",e)}),define(ne[586],se([3,4]),function(ee,e){return ee.create("vs/base/browser/ui/tree/abstractTree",e)}),define(ne[587],se([3,4]),function(ee,e){return ee.create("vs/base/common/actions",e)}),define(ne[42],se([1,0,7,2,587]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toAction=e.EmptySubmenuAction=e.SubmenuAction=e.Separator=e.ActionRunner=e.Action=void 0;class D extends k.Disposable{constructor(n,i="",t="",o=!0,g){super(),this._onDidChange=this._register(new L.Emitter),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=n,this._label=i,this._cssClass=t,this._enabled=o,this._actionCallback=g}get id(){return this._id}get label(){return this._label}set label(n){this._setLabel(n)}_setLabel(n){this._label!==n&&(this._label=n,this._onDidChange.fire({label:n}))}get tooltip(){return this._tooltip||""}set tooltip(n){this._setTooltip(n)}_setTooltip(n){this._tooltip!==n&&(this._tooltip=n,this._onDidChange.fire({tooltip:n}))}get class(){return this._cssClass}set class(n){this._setClass(n)}_setClass(n){this._cssClass!==n&&(this._cssClass=n,this._onDidChange.fire({class:n}))}get enabled(){return this._enabled}set enabled(n){this._setEnabled(n)}_setEnabled(n){this._enabled!==n&&(this._enabled=n,this._onDidChange.fire({enabled:n}))}get checked(){return this._checked}set checked(n){this._setChecked(n)}_setChecked(n){this._checked!==n&&(this._checked=n,this._onDidChange.fire({checked:n}))}async run(n,i){this._actionCallback&&await this._actionCallback(n)}}e.Action=D;class S extends k.Disposable{constructor(){super(...arguments),this._onWillRun=this._register(new L.Emitter),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new L.Emitter),this.onDidRun=this._onDidRun.event}async run(n,i){if(!n.enabled)return;this._onWillRun.fire({action:n});let t;try{await this.runAction(n,i)}catch(o){t=o}this._onDidRun.fire({action:n,error:t})}async runAction(n,i){await n.run(i)}}e.ActionRunner=S;class p{constructor(){this.id=p.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...n){let i=[];for(const t of n)t.length&&(i.length?i=[...i,new p,...t]:i=t);return i}async run(){}}e.Separator=p,p.ID="vs.actions.separator";class w{get actions(){return this._actions}constructor(n,i,t,o){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=n,this.label=i,this.class=o,this._actions=t}async run(){}}e.SubmenuAction=w;class v extends D{constructor(){super(v.ID,y.localize(0,null),void 0,!1)}}e.EmptySubmenuAction=v,v.ID="vs.actions.empty";function b(a){var n;return{id:a.id,label:a.label,class:a.class,enabled:(n=a.enabled)!==null&&n!==void 0?n:!0,checked:a.checked,run:async(...i)=>a.run(...i),tooltip:a.label}}e.toAction=b}),define(ne[588],se([1,0,42]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionRunnerWithContext=void 0;class k extends L.ActionRunner{constructor(D){super(),this._getContext=D}runAction(D,S){return super.runAction(D,this._getContext())}}e.ActionRunnerWithContext=k}),define(ne[589],se([3,4]),function(ee,e){return ee.create("vs/base/common/errorMessage",e)}),define(ne[590],se([1,0,13,20,589]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toErrorMessage=void 0;function D(v,b){return b&&(v.stack||v.stacktrace)?y.localize(0,null,p(v),S(v.stack)||S(v.stacktrace)):p(v)}function S(v){return Array.isArray(v)?v.join(` +`):v}function p(v){return v.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${v.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof v.code=="string"&&typeof v.errno=="number"&&typeof v.syscall=="string"?y.localize(1,null,v.message):v.message||y.localize(2,null)}function w(v=null,b=!1){if(!v)return y.localize(3,null);if(Array.isArray(v)){const a=L.coalesce(v),n=w(a[0],b);return a.length>1?y.localize(4,null,n,a.length):n}if(k.isString(v))return v;if(v.detail){const a=v.detail;if(a.error)return D(a.error,b);if(a.exception)return D(a.exception,b)}return v.stack?D(v,b):v.message?v.message:y.localize(5,null)}e.toErrorMessage=w}),define(ne[591],se([3,4]),function(ee,e){return ee.create("vs/base/common/keybindingLabels",e)}),define(ne[224],se([1,0,591]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserSettingsLabelProvider=e.ElectronAcceleratorLabelProvider=e.AriaLabelProvider=e.UILabelProvider=e.ModifierLabelProvider=void 0;class k{constructor(S,p,w=p){this.modifierLabels=[null],this.modifierLabels[2]=S,this.modifierLabels[1]=p,this.modifierLabels[3]=w}toLabel(S,p,w){if(p.length===0)return null;const v=[];for(let b=0,a=p.length;b=0,D=c.indexOf("Macintosh")>=0,a=(c.indexOf("Macintosh")>=0||c.indexOf("iPad")>=0||c.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,S=c.indexOf("Linux")>=0,i=c?.indexOf("Mobi")>=0,v=!0,t=L.getConfiguredDefaultLocale(L.localize(0,null))||e.LANGUAGE_DEFAULT,o=t,g=navigator.language):console.error("Unable to resolve platform.");let h=0;D?h=1:y?h=3:S&&(h=2),e.isWindows=y,e.isMacintosh=D,e.isLinux=S,e.isNative=w,e.isWeb=v,e.isWebWorker=v&&typeof d.importScripts=="function",e.webWorkerOrigin=e.isWebWorker?d.origin:void 0,e.isIOS=a,e.isMobile=i,e.userAgent=c,e.language=o,e.setTimeout0IsFaster=typeof d.postMessage=="function"&&!d.importScripts,e.setTimeout0=(()=>{if(e.setTimeout0IsFaster){const _=[];d.addEventListener("message",I=>{if(I.data&&I.data.vscodeScheduleAsyncWork)for(let T=0,A=_.length;T{const T=++E;_.push({id:T,callback:I}),d.postMessage({vscodeScheduleAsyncWork:T},"*")}}return _=>setTimeout(_)})(),e.OS=D||a?2:y?1:3;let u=!0,f=!1;function C(){if(!f){f=!0;const _=new Uint8Array(2);_[0]=1,_[1]=2,u=new Uint16Array(_.buffer)[0]===513}return u}e.isLittleEndian=C,e.isChrome=!!(e.userAgent&&e.userAgent.indexOf("Chrome")>=0),e.isFirefox=!!(e.userAgent&&e.userAgent.indexOf("Firefox")>=0),e.isSafari=!!(!e.isChrome&&e.userAgent&&e.userAgent.indexOf("Safari")>=0),e.isEdge=!!(e.userAgent&&e.userAgent.indexOf("Edg/")>=0),e.isAndroid=!!(e.userAgent&&e.userAgent.indexOf("Android")>=0)}),define(ne[225],se([1,0,59,50,17]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserFeatures=void 0,e.BrowserFeatures={clipboard:{writeText:y.isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:y.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:y.isNative||L.isStandalone()?0:navigator.keyboard||L.isSafari?1:2,touch:"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0,pointerEvents:k.mainWindow.PointerEvent&&("ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0)}}),define(ne[46],se([1,0,59,66,127,17]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardKeyboardEvent=void 0;function S(n){if(n.charCode){const t=String.fromCharCode(n.charCode).toUpperCase();return k.KeyCodeUtils.fromString(t)}const i=n.keyCode;if(i===3)return 7;if(L.isFirefox)switch(i){case 59:return 85;case 60:if(D.isLinux)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(D.isMacintosh)return 57;break}else if(L.isWebKit){if(D.isMacintosh&&i===93)return 57;if(!D.isMacintosh&&i===92)return 57}return k.EVENT_KEY_CODE_MAP[i]||0}const p=D.isMacintosh?256:2048,w=512,v=1024,b=D.isMacintosh?2048:256;class a{constructor(i){this._standardKeyboardEventBrand=!0;const t=i;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.altGraphKey=t.getModifierState("AltGraph"),this.keyCode=S(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(i){return this._asKeybinding===i}_computeKeybinding(){let i=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(i=this.keyCode);let t=0;return this.ctrlKey&&(t|=p),this.altKey&&(t|=w),this.shiftKey&&(t|=v),this.metaKey&&(t|=b),t|=i,t}_computeKeyCodeChord(){let i=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(i=this.keyCode),new y.KeyCodeChord(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,i)}}e.StandardKeyboardEvent=a}),define(ne[69],se([1,0,59,401,17]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardWheelEvent=e.StandardMouseEvent=void 0;class D{constructor(w,v){this.timestamp=Date.now(),this.browserEvent=v,this.leftButton=v.button===0,this.middleButton=v.button===1,this.rightButton=v.button===2,this.buttons=v.buttons,this.target=v.target,this.detail=v.detail||1,v.type==="dblclick"&&(this.detail=2),this.ctrlKey=v.ctrlKey,this.shiftKey=v.shiftKey,this.altKey=v.altKey,this.metaKey=v.metaKey,typeof v.pageX=="number"?(this.posx=v.pageX,this.posy=v.pageY):(this.posx=v.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=v.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const b=k.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(w,v.view);this.posx-=b.left,this.posy-=b.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}e.StandardMouseEvent=D;class S{constructor(w,v=0,b=0){var a;this.browserEvent=w||null,this.target=w?w.target||w.targetNode||w.srcElement:null,this.deltaY=b,this.deltaX=v;let n=!1;if(L.isChrome){const i=navigator.userAgent.match(/Chrome\/(\d+)/);n=(i?parseInt(i[1]):123)<=122}if(w){const i=w,t=w,o=((a=w.view)===null||a===void 0?void 0:a.devicePixelRatio)||1;if(typeof i.wheelDeltaY<"u")n?this.deltaY=i.wheelDeltaY/(120*o):this.deltaY=i.wheelDeltaY/120;else if(typeof t.VERTICAL_AXIS<"u"&&t.axis===t.VERTICAL_AXIS)this.deltaY=-t.detail/3;else if(w.type==="wheel"){const g=w;g.deltaMode===g.DOM_DELTA_LINE?L.isFirefox&&!y.isMacintosh?this.deltaY=-w.deltaY/3:this.deltaY=-w.deltaY:this.deltaY=-w.deltaY/40}if(typeof i.wheelDeltaX<"u")L.isSafari&&y.isWindows?this.deltaX=-(i.wheelDeltaX/120):n?this.deltaX=i.wheelDeltaX/(120*o):this.deltaX=i.wheelDeltaX/120;else if(typeof t.HORIZONTAL_AXIS<"u"&&t.axis===t.HORIZONTAL_AXIS)this.deltaX=-w.detail/3;else if(w.type==="wheel"){const g=w;g.deltaMode===g.DOM_DELTA_LINE?L.isFirefox&&!y.isMacintosh?this.deltaX=-w.deltaX/3:this.deltaX=-w.deltaX:this.deltaX=-w.deltaX/40}this.deltaY===0&&this.deltaX===0&&w.wheelDelta&&(n?this.deltaY=w.wheelDelta/(120*o):this.deltaY=w.wheelDelta/120)}}preventDefault(){var w;(w=this.browserEvent)===null||w===void 0||w.preventDefault()}stopPropagation(){var w;(w=this.browserEvent)===null||w===void 0||w.stopPropagation()}}e.StandardWheelEvent=S}),define(ne[15],se([1,0,19,12,7,2,17,279]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createCancelableAsyncIterable=e.CancelableAsyncIterableObject=e.AsyncIterableObject=e.Promises=e.DeferredPromise=e.GlobalIdleValue=e.AbstractIdleValue=e._runWhenIdle=e.runWhenGlobalIdle=e.RunOnceScheduler=e.IntervalTimer=e.TimeoutTimer=e.first=e.disposableTimeout=e.timeout=e.ThrottledDelayer=e.Delayer=e.Throttler=e.raceCancellation=e.createCancelablePromise=e.isThenable=void 0;function w(I){return!!I&&typeof I.then=="function"}e.isThenable=w;function v(I){const T=new L.CancellationTokenSource,A=I(T.token),R=new Promise((M,N)=>{const P=T.token.onCancellationRequested(()=>{P.dispose(),N(new k.CancellationError)});Promise.resolve(A).then(F=>{P.dispose(),T.dispose(),M(F)},F=>{P.dispose(),T.dispose(),N(F)})});return new class{cancel(){T.cancel(),T.dispose()}then(M,N){return R.then(M,N)}catch(M){return this.then(void 0,M)}finally(M){return R.finally(M)}}}e.createCancelablePromise=v;function b(I,T,A){return new Promise((R,M)=>{const N=T.onCancellationRequested(()=>{N.dispose(),R(A)});I.then(R,M).finally(()=>N.dispose())})}e.raceCancellation=b;class a{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(T){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=T,!this.queuedPromise){const A=()=>{if(this.queuedPromise=null,this.isDisposed)return;const R=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,R};this.queuedPromise=new Promise(R=>{this.activePromise.then(A,A).then(R)})}return new Promise((A,R)=>{this.queuedPromise.then(A,R)})}return this.activePromise=T(),new Promise((A,R)=>{this.activePromise.then(M=>{this.activePromise=null,A(M)},M=>{this.activePromise=null,R(M)})})}dispose(){this.isDisposed=!0}}e.Throttler=a;const n=(I,T)=>{let A=!0;const R=setTimeout(()=>{A=!1,T()},I);return{isTriggered:()=>A,dispose:()=>{clearTimeout(R),A=!1}}},i=I=>{let T=!0;return queueMicrotask(()=>{T&&(T=!1,I())}),{isTriggered:()=>T,dispose:()=>{T=!1}}};class t{constructor(T){this.defaultDelay=T,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(T,A=this.defaultDelay){this.task=T,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((M,N)=>{this.doResolve=M,this.doReject=N}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const M=this.task;return this.task=null,M()}}));const R=()=>{var M;this.deferred=null,(M=this.doResolve)===null||M===void 0||M.call(this,null)};return this.deferred=A===p.MicrotaskDelay?i(R):n(A,R),this.completionPromise}isTriggered(){var T;return!!(!((T=this.deferred)===null||T===void 0)&&T.isTriggered())}cancel(){var T;this.cancelTimeout(),this.completionPromise&&((T=this.doReject)===null||T===void 0||T.call(this,new k.CancellationError),this.completionPromise=null)}cancelTimeout(){var T;(T=this.deferred)===null||T===void 0||T.dispose(),this.deferred=null}dispose(){this.cancel()}}e.Delayer=t;class o{constructor(T){this.delayer=new t(T),this.throttler=new a}trigger(T,A){return this.delayer.trigger(()=>this.throttler.queue(T),A)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}e.ThrottledDelayer=o;function g(I,T){return T?new Promise((A,R)=>{const M=setTimeout(()=>{N.dispose(),A()},I),N=T.onCancellationRequested(()=>{clearTimeout(M),N.dispose(),R(new k.CancellationError)})}):v(A=>g(I,A))}e.timeout=g;function m(I,T=0,A){const R=setTimeout(()=>{I(),A&&M.dispose()},T),M=(0,D.toDisposable)(()=>{clearTimeout(R),A?.deleteAndLeak(M)});return A?.add(M),M}e.disposableTimeout=m;function c(I,T=R=>!!R,A=null){let R=0;const M=I.length,N=()=>{if(R>=M)return Promise.resolve(A);const P=I[R++];return Promise.resolve(P()).then(O=>T(O)?Promise.resolve(O):N())};return N()}e.first=c;class d{constructor(T,A){this._token=-1,typeof T=="function"&&typeof A=="number"&&this.setIfNotSet(T,A)}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(T,A){this.cancel(),this._token=setTimeout(()=>{this._token=-1,T()},A)}setIfNotSet(T,A){this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,T()},A))}}e.TimeoutTimer=d;class s{constructor(){this.disposable=void 0}cancel(){var T;(T=this.disposable)===null||T===void 0||T.dispose(),this.disposable=void 0}cancelAndSet(T,A,R=globalThis){this.cancel();const M=R.setInterval(()=>{T()},A);this.disposable=(0,D.toDisposable)(()=>{R.clearInterval(M),this.disposable=void 0})}dispose(){this.cancel()}}e.IntervalTimer=s;class l{constructor(T,A){this.timeoutToken=-1,this.runner=T,this.timeout=A,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(T=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,T)}get delay(){return this.timeout}set delay(T){this.timeout=T}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var T;(T=this.runner)===null||T===void 0||T.call(this)}}e.RunOnceScheduler=l,function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?e._runWhenIdle=(I,T)=>{(0,S.setTimeout0)(()=>{if(A)return;const R=Date.now()+15;T(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,R-Date.now())}}))});let A=!1;return{dispose(){A||(A=!0)}}}:e._runWhenIdle=(I,T,A)=>{const R=I.requestIdleCallback(T,typeof A=="number"?{timeout:A}:void 0);let M=!1;return{dispose(){M||(M=!0,I.cancelIdleCallback(R))}}},e.runWhenGlobalIdle=I=>(0,e._runWhenIdle)(globalThis,I)}();class r{constructor(T,A){this._didRun=!1,this._executor=()=>{try{this._value=A()}catch(R){this._error=R}finally{this._didRun=!0}},this._handle=(0,e._runWhenIdle)(T,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}e.AbstractIdleValue=r;class h extends r{constructor(T){super(globalThis,T)}}e.GlobalIdleValue=h;class u{get isRejected(){var T;return((T=this.outcome)===null||T===void 0?void 0:T.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((T,A)=>{this.completeCallback=T,this.errorCallback=A})}complete(T){return new Promise(A=>{this.completeCallback(T),this.outcome={outcome:0,value:T},A()})}error(T){return new Promise(A=>{this.errorCallback(T),this.outcome={outcome:1,value:T},A()})}cancel(){return this.error(new k.CancellationError)}}e.DeferredPromise=u;var f;(function(I){async function T(R){let M;const N=await Promise.all(R.map(P=>P.then(F=>F,F=>{M||(M=F)})));if(typeof M<"u")throw M;return N}I.settled=T;function A(R){return new Promise(async(M,N)=>{try{await R(M,N)}catch(P){N(P)}})}I.withAsyncBody=A})(f||(e.Promises=f={}));class C{static fromArray(T){return new C(A=>{A.emitMany(T)})}static fromPromise(T){return new C(async A=>{A.emitMany(await T)})}static fromPromises(T){return new C(async A=>{await Promise.all(T.map(async R=>A.emitOne(await R)))})}static merge(T){return new C(async A=>{await Promise.all(T.map(async R=>{for await(const M of R)A.emitOne(M)}))})}constructor(T){this._state=0,this._results=[],this._error=null,this._onStateChanged=new y.Emitter,queueMicrotask(async()=>{const A={emitOne:R=>this.emitOne(R),emitMany:R=>this.emitMany(R),reject:R=>this.reject(R)};try{await Promise.resolve(T(A)),this.resolve()}catch(R){this.reject(R)}finally{A.emitOne=void 0,A.emitMany=void 0,A.reject=void 0}})}[Symbol.asyncIterator](){let T=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(T{for await(const M of T)R.emitOne(A(M))})}map(T){return C.map(this,T)}static filter(T,A){return new C(async R=>{for await(const M of T)A(M)&&R.emitOne(M)})}filter(T){return C.filter(this,T)}static coalesce(T){return C.filter(T,A=>!!A)}coalesce(){return C.coalesce(this)}static async toPromise(T){const A=[];for await(const R of T)A.push(R);return A}toPromise(){return C.toPromise(this)}emitOne(T){this._state===0&&(this._results.push(T),this._onStateChanged.fire())}emitMany(T){this._state===0&&(this._results=this._results.concat(T),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(T){this._state===0&&(this._state=2,this._error=T,this._onStateChanged.fire())}}e.AsyncIterableObject=C,C.EMPTY=C.fromArray([]);class _ extends C{constructor(T,A){super(A),this._source=T}cancel(){this._source.cancel()}}e.CancelableAsyncIterableObject=_;function E(I){const T=new L.CancellationTokenSource,A=I(T.token);return new _(T,async R=>{const M=T.token.onCancellationRequested(()=>{M.dispose(),T.dispose(),R.reject(new k.CancellationError)});try{for await(const N of A){if(T.token.isCancellationRequested)return;R.emitOne(N)}M.dispose(),T.dispose()}catch(N){M.dispose(),T.dispose(),R.reject(N)}})}e.createCancelableAsyncIterable=E}),define(ne[593],se([1,0,15,2]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarVisibilityController=void 0;class y extends k.Disposable{constructor(S,p,w){super(),this._visibility=S,this._visibleClassName=p,this._invisibleClassName=w,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new L.TimeoutTimer)}setVisibility(S){this._visibility!==S&&(this._visibility=S,this._updateShouldBeVisible())}setShouldBeVisible(S){this._rawShouldBeVisible=S,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const S=this._applyVisibilitySetting();this._shouldBeVisible!==S&&(this._shouldBeVisible=S,this.ensureVisibility())}setIsNeeded(S){this._isNeeded!==S&&(this._isNeeded=S,this.ensureVisibility())}setDomNode(S){this._domNode=S,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var S;(S=this._domNode)===null||S===void 0||S.setClassName(this._visibleClassName)},0))}_hide(S){var p;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(p=this._domNode)===null||p===void 0||p.setClassName(this._invisibleClassName+(S?" fade":"")))}}e.ScrollbarVisibilityController=y}),define(ne[226],se([1,0,148,13,15,279,176,7,52]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndexTreeModel=e.getVisibleState=e.isFilterResult=void 0;function v(i){return typeof i=="object"&&"visibility"in i&&"data"in i}e.isFilterResult=v;function b(i){switch(i){case!0:return 1;case!1:return 0;default:return i}}e.getVisibleState=b;function a(i){return typeof i.collapsible=="boolean"}class n{constructor(t,o,g,m={}){this.user=t,this.list=o,this.rootRef=[],this.eventBufferer=new p.EventBufferer,this._onDidChangeCollapseState=new p.Emitter,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new p.Emitter,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new p.Emitter,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new y.Delayer(D.MicrotaskDelay),this.collapseByDefault=typeof m.collapseByDefault>"u"?!1:m.collapseByDefault,this.filter=m.filter,this.autoExpandSingleChildren=typeof m.autoExpandSingleChildren>"u"?!1:m.autoExpandSingleChildren,this.root={parent:void 0,element:g,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(t,o,g=w.Iterable.empty(),m={}){if(t.length===0)throw new L.TreeError(this.user,"Invalid tree location");m.diffIdentityProvider?this.spliceSmart(m.diffIdentityProvider,t,o,g,m):this.spliceSimple(t,o,g,m)}spliceSmart(t,o,g,m,c,d){var s;m===void 0&&(m=w.Iterable.empty()),d===void 0&&(d=(s=c.diffDepth)!==null&&s!==void 0?s:0);const{parentNode:l}=this.getParentNodeWithListIndex(o);if(!l.lastDiffIds)return this.spliceSimple(o,g,m,c);const r=[...m],h=o[o.length-1],u=new S.LcsDiff({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,h),...r,...l.children.slice(h+g)].map(I=>t.getId(I.element).toString())}).ComputeDiff(!1);if(u.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(o,g,r,c);const f=o.slice(0,-1),C=(I,T,A)=>{if(d>0)for(let R=0;RA.originalStart-T.originalStart))C(_,E,_-(I.originalStart+I.originalLength)),_=I.originalStart,E=I.modifiedStart-h,this.spliceSimple([...f,_],I.originalLength,w.Iterable.slice(r,E,E+I.modifiedLength),c);C(_,E,_)}spliceSimple(t,o,g=w.Iterable.empty(),{onDidCreateNode:m,onDidDeleteNode:c,diffIdentityProvider:d}){const{parentNode:s,listIndex:l,revealed:r,visible:h}=this.getParentNodeWithListIndex(t),u=[],f=w.Iterable.map(g,N=>this.createTreeNode(N,s,s.visible?1:0,r,u,m)),C=t[t.length-1];let _=0;for(let N=C;N>=0&&Nd.getId(N.element).toString())):s.lastDiffIds=s.children.map(N=>d.getId(N.element).toString()):s.lastDiffIds=void 0;let R=0;for(const N of A)N.visible&&R++;if(R!==0)for(let N=C+E.length;NP+(F.visible?F.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(s,T-N),this.list.splice(l,N,u)}if(A.length>0&&c){const N=P=>{c(P),P.children.forEach(N)};A.forEach(N)}this._onDidSplice.fire({insertedNodes:E,deletedNodes:A});let M=s;for(;M;){if(M.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}M=M.parent}}rerender(t){if(t.length===0)throw new L.TreeError(this.user,"Invalid tree location");const{node:o,listIndex:g,revealed:m}=this.getTreeNodeWithListIndex(t);o.visible&&m&&this.list.splice(g,1,[o])}has(t){return this.hasTreeNode(t)}getListIndex(t){const{listIndex:o,visible:g,revealed:m}=this.getTreeNodeWithListIndex(t);return g&&m?o:-1}getListRenderCount(t){return this.getTreeNode(t).renderNodeCount}isCollapsible(t){return this.getTreeNode(t).collapsible}setCollapsible(t,o){const g=this.getTreeNode(t);typeof o>"u"&&(o=!g.collapsible);const m={collapsible:o};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(t,m))}isCollapsed(t){return this.getTreeNode(t).collapsed}setCollapsed(t,o,g){const m=this.getTreeNode(t);typeof o>"u"&&(o=!m.collapsed);const c={collapsed:o,recursive:g||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(t,c))}_setCollapseState(t,o){const{node:g,listIndex:m,revealed:c}=this.getTreeNodeWithListIndex(t),d=this._setListNodeCollapseState(g,m,c,o);if(g!==this.root&&this.autoExpandSingleChildren&&d&&!a(o)&&g.collapsible&&!g.collapsed&&!o.recursive){let s=-1;for(let l=0;l-1){s=-1;break}else s=l;s>-1&&this._setCollapseState([...t,s],o)}return d}_setListNodeCollapseState(t,o,g,m){const c=this._setNodeCollapseState(t,m,!1);if(!g||!t.visible||!c)return c;const d=t.renderNodeCount,s=this.updateNodeAfterCollapseChange(t),l=d-(o===-1?0:1);return this.list.splice(o+1,l,s.slice(1)),c}_setNodeCollapseState(t,o,g){let m;if(t===this.root?m=!1:(a(o)?(m=t.collapsible!==o.collapsible,t.collapsible=o.collapsible):t.collapsible?(m=t.collapsed!==o.collapsed,t.collapsed=o.collapsed):m=!1,m&&this._onDidChangeCollapseState.fire({node:t,deep:g})),!a(o)&&o.recursive)for(const c of t.children)m=this._setNodeCollapseState(c,o,!0)||m;return m}expandTo(t){this.eventBufferer.bufferEvents(()=>{let o=this.getTreeNode(t);for(;o.parent;)o=o.parent,t=t.slice(0,t.length-1),o.collapsed&&this._setCollapseState(t,{collapsed:!1,recursive:!1})})}refilter(){const t=this.root.renderNodeCount,o=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,t,o),this.refilterDelayer.cancel()}createTreeNode(t,o,g,m,c,d){const s={parent:o,element:t.element,children:[],depth:o.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof t.collapsible=="boolean"?t.collapsible:typeof t.collapsed<"u",collapsed:typeof t.collapsed>"u"?this.collapseByDefault:t.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(s,g);s.visibility=l,m&&c.push(s);const r=t.children||w.Iterable.empty(),h=m&&l!==0&&!s.collapsed;let u=0,f=1;for(const C of r){const _=this.createTreeNode(C,s,l,h,c,d);s.children.push(_),f+=_.renderNodeCount,_.visible&&(_.visibleChildIndex=u++)}return s.collapsible=s.collapsible||s.children.length>0,s.visibleChildrenCount=u,s.visible=l===2?u>0:l===1,s.visible?s.collapsed||(s.renderNodeCount=f):(s.renderNodeCount=0,m&&c.pop()),d?.(s),s}updateNodeAfterCollapseChange(t){const o=t.renderNodeCount,g=[];return this._updateNodeAfterCollapseChange(t,g),this._updateAncestorsRenderNodeCount(t.parent,g.length-o),g}_updateNodeAfterCollapseChange(t,o){if(t.visible===!1)return 0;if(o.push(t),t.renderNodeCount=1,!t.collapsed)for(const g of t.children)t.renderNodeCount+=this._updateNodeAfterCollapseChange(g,o);return this._onDidChangeRenderNodeCount.fire(t),t.renderNodeCount}updateNodeAfterFilterChange(t){const o=t.renderNodeCount,g=[];return this._updateNodeAfterFilterChange(t,t.visible?1:0,g),this._updateAncestorsRenderNodeCount(t.parent,g.length-o),g}_updateNodeAfterFilterChange(t,o,g,m=!0){let c;if(t!==this.root){if(c=this._filterNode(t,o),c===0)return t.visible=!1,t.renderNodeCount=0,!1;m&&g.push(t)}const d=g.length;t.renderNodeCount=t===this.root?0:1;let s=!1;if(!t.collapsed||c!==0){let l=0;for(const r of t.children)s=this._updateNodeAfterFilterChange(r,c,g,m&&!t.collapsed)||s,r.visible&&(r.visibleChildIndex=l++);t.visibleChildrenCount=l}else t.visibleChildrenCount=0;return t!==this.root&&(t.visible=c===2?s:c===1,t.visibility=c),t.visible?t.collapsed||(t.renderNodeCount+=g.length-d):(t.renderNodeCount=0,m&&g.pop()),this._onDidChangeRenderNodeCount.fire(t),t.visible}_updateAncestorsRenderNodeCount(t,o){if(o!==0)for(;t;)t.renderNodeCount+=o,this._onDidChangeRenderNodeCount.fire(t),t=t.parent}_filterNode(t,o){const g=this.filter?this.filter.filter(t.element,o):1;return typeof g=="boolean"?(t.filterData=void 0,g?1:0):v(g)?(t.filterData=g.data,b(g.visibility)):(t.filterData=void 0,b(g))}hasTreeNode(t,o=this.root){if(!t||t.length===0)return!0;const[g,...m]=t;return g<0||g>o.children.length?!1:this.hasTreeNode(m,o.children[g])}getTreeNode(t,o=this.root){if(!t||t.length===0)return o;const[g,...m]=t;if(g<0||g>o.children.length)throw new L.TreeError(this.user,"Invalid tree location");return this.getTreeNode(m,o.children[g])}getTreeNodeWithListIndex(t){if(t.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:o,listIndex:g,revealed:m,visible:c}=this.getParentNodeWithListIndex(t),d=t[t.length-1];if(d<0||d>o.children.length)throw new L.TreeError(this.user,"Invalid tree location");const s=o.children[d];return{node:s,listIndex:g,revealed:m,visible:c&&s.visible}}getParentNodeWithListIndex(t,o=this.root,g=0,m=!0,c=!0){const[d,...s]=t;if(d<0||d>o.children.length)throw new L.TreeError(this.user,"Invalid tree location");for(let l=0;l{var o;if(t.element===null)return;const g=t;if(b.add(g.element),this.nodes.set(g.element,g),this.identityProvider){const m=this.identityProvider.getId(g.element).toString();a.add(m),this.nodesByIdentity.set(m,g)}(o=v.onDidCreateNode)===null||o===void 0||o.call(v,g)},i=t=>{var o;if(t.element===null)return;const g=t;if(b.has(g.element)||this.nodes.delete(g.element),this.identityProvider){const m=this.identityProvider.getId(g.element).toString();a.has(m)||this.nodesByIdentity.delete(m)}(o=v.onDidDeleteNode)===null||o===void 0||o.call(v,g)};this.model.splice([...p,0],Number.MAX_VALUE,w,{...v,onDidCreateNode:n,onDidDeleteNode:i})}preserveCollapseState(p=y.Iterable.empty()){return this.sorter&&(p=[...p].sort(this.sorter.compare.bind(this.sorter))),y.Iterable.map(p,w=>{let v=this.nodes.get(w.element);if(!v&&this.identityProvider){const n=this.identityProvider.getId(w.element).toString();v=this.nodesByIdentity.get(n)}if(!v){let n;return typeof w.collapsed>"u"?n=void 0:w.collapsed===k.ObjectTreeElementCollapseState.Collapsed||w.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed?n=!0:w.collapsed===k.ObjectTreeElementCollapseState.Expanded||w.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?n=!1:n=!!w.collapsed,{...w,children:this.preserveCollapseState(w.children),collapsed:n}}const b=typeof w.collapsible=="boolean"?w.collapsible:v.collapsible;let a;return typeof w.collapsed>"u"||w.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed||w.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?a=v.collapsed:w.collapsed===k.ObjectTreeElementCollapseState.Collapsed?a=!0:w.collapsed===k.ObjectTreeElementCollapseState.Expanded?a=!1:a=!!w.collapsed,{...w,collapsible:b,collapsed:a,children:this.preserveCollapseState(w.children)}})}rerender(p){const w=this.getElementLocation(p);this.model.rerender(w)}getFirstElementChild(p=null){const w=this.getElementLocation(p);return this.model.getFirstElementChild(w)}has(p){return this.nodes.has(p)}getListIndex(p){const w=this.getElementLocation(p);return this.model.getListIndex(w)}getListRenderCount(p){const w=this.getElementLocation(p);return this.model.getListRenderCount(w)}isCollapsible(p){const w=this.getElementLocation(p);return this.model.isCollapsible(w)}setCollapsible(p,w){const v=this.getElementLocation(p);return this.model.setCollapsible(v,w)}isCollapsed(p){const w=this.getElementLocation(p);return this.model.isCollapsed(w)}setCollapsed(p,w,v){const b=this.getElementLocation(p);return this.model.setCollapsed(b,w,v)}expandTo(p){const w=this.getElementLocation(p);this.model.expandTo(w)}refilter(){this.model.refilter()}getNode(p=null){if(p===null)return this.model.getNode(this.model.rootRef);const w=this.nodes.get(p);if(!w)throw new k.TreeError(this.user,`Tree element not found: ${p}`);return w}getNodeLocation(p){return p.element}getParentNodeLocation(p){if(p===null)throw new k.TreeError(this.user,"Invalid getParentNodeLocation call");const w=this.nodes.get(p);if(!w)throw new k.TreeError(this.user,`Tree element not found: ${p}`);const v=this.model.getNodeLocation(w),b=this.model.getParentNodeLocation(v);return this.model.getNode(b).element}getElementLocation(p){if(p===null)return[];const w=this.nodes.get(p);if(!w)throw new k.TreeError(this.user,`Tree element not found: ${p}`);return this.model.getNodeLocation(w)}}e.ObjectTreeModel=D}),define(ne[594],se([1,0,227,148,13,7,52]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTreeModel=e.DefaultElementMapper=e.CompressedObjectTreeModel=e.decompress=e.compress=void 0;function p(d){const s=[d.element],l=d.incompressible||!1;return{element:{elements:s,incompressible:l},children:S.Iterable.map(S.Iterable.from(d.children),p),collapsible:d.collapsible,collapsed:d.collapsed}}function w(d){const s=[d.element],l=d.incompressible||!1;let r,h;for(;[h,r]=S.Iterable.consume(S.Iterable.from(d.children),2),!(h.length!==1||h[0].incompressible);)d=h[0],s.push(d.element);return{element:{elements:s,incompressible:l},children:S.Iterable.map(S.Iterable.concat(h,r),w),collapsible:d.collapsible,collapsed:d.collapsed}}e.compress=w;function v(d,s=0){let l;return sv(r,0)),s===0&&d.element.incompressible?{element:d.element.elements[s],children:l,incompressible:!0,collapsible:d.collapsible,collapsed:d.collapsed}:{element:d.element.elements[s],children:l,collapsible:d.collapsible,collapsed:d.collapsed}}function b(d){return v(d,0)}e.decompress=b;function a(d,s,l){return d.element===s?{...d,children:l}:{...d,children:S.Iterable.map(S.Iterable.from(d.children),r=>a(r,s,l))}}const n=d=>({getId(s){return s.elements.map(l=>d.getId(l).toString()).join("\0")}});class i{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(s,l,r={}){this.user=s,this.rootRef=null,this.nodes=new Map,this.model=new L.ObjectTreeModel(s,l,r),this.enabled=typeof r.compressionEnabled>"u"?!0:r.compressionEnabled,this.identityProvider=r.identityProvider}setChildren(s,l=S.Iterable.empty(),r){const h=r.diffIdentityProvider&&n(r.diffIdentityProvider);if(s===null){const M=S.Iterable.map(l,this.enabled?w:p);this._setChildren(null,M,{diffIdentityProvider:h,diffDepth:1/0});return}const u=this.nodes.get(s);if(!u)throw new k.TreeError(this.user,"Unknown compressed tree node");const f=this.model.getNode(u),C=this.model.getParentNodeLocation(u),_=this.model.getNode(C),E=b(f),I=a(E,s,l),T=(this.enabled?w:p)(I),A=r.diffIdentityProvider?(M,N)=>r.diffIdentityProvider.getId(M)===r.diffIdentityProvider.getId(N):void 0;if((0,y.equals)(T.element.elements,f.element.elements,A)){this._setChildren(u,T.children||S.Iterable.empty(),{diffIdentityProvider:h,diffDepth:1});return}const R=_.children.map(M=>M===f?T:M);this._setChildren(_.element,R,{diffIdentityProvider:h,diffDepth:f.depth-_.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(s){if(s===this.enabled)return;this.enabled=s;const r=this.model.getNode().children,h=S.Iterable.map(r,b),u=S.Iterable.map(h,s?w:p);this._setChildren(null,u,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(s,l,r){const h=new Set,u=C=>{for(const _ of C.element.elements)h.add(_),this.nodes.set(_,C.element)},f=C=>{for(const _ of C.element.elements)h.has(_)||this.nodes.delete(_)};this.model.setChildren(s,l,{...r,onDidCreateNode:u,onDidDeleteNode:f})}has(s){return this.nodes.has(s)}getListIndex(s){const l=this.getCompressedNode(s);return this.model.getListIndex(l)}getListRenderCount(s){const l=this.getCompressedNode(s);return this.model.getListRenderCount(l)}getNode(s){if(typeof s>"u")return this.model.getNode();const l=this.getCompressedNode(s);return this.model.getNode(l)}getNodeLocation(s){const l=this.model.getNodeLocation(s);return l===null?null:l.elements[l.elements.length-1]}getParentNodeLocation(s){const l=this.getCompressedNode(s),r=this.model.getParentNodeLocation(l);return r===null?null:r.elements[r.elements.length-1]}getFirstElementChild(s){const l=this.getCompressedNode(s);return this.model.getFirstElementChild(l)}isCollapsible(s){const l=this.getCompressedNode(s);return this.model.isCollapsible(l)}setCollapsible(s,l){const r=this.getCompressedNode(s);return this.model.setCollapsible(r,l)}isCollapsed(s){const l=this.getCompressedNode(s);return this.model.isCollapsed(l)}setCollapsed(s,l,r){const h=this.getCompressedNode(s);return this.model.setCollapsed(h,l,r)}expandTo(s){const l=this.getCompressedNode(s);this.model.expandTo(l)}rerender(s){const l=this.getCompressedNode(s);this.model.rerender(l)}refilter(){this.model.refilter()}getCompressedNode(s){if(s===null)return null;const l=this.nodes.get(s);if(!l)throw new k.TreeError(this.user,`Tree element not found: ${s}`);return l}}e.CompressedObjectTreeModel=i;const t=d=>d[d.length-1];e.DefaultElementMapper=t;class o{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(s=>new o(this.unwrapper,s))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(s,l){this.unwrapper=s,this.node=l}}function g(d,s){return{splice(l,r,h){s.splice(l,r,h.map(u=>d.map(u)))},updateElementHeight(l,r){s.updateElementHeight(l,r)}}}function m(d,s){return{...s,identityProvider:s.identityProvider&&{getId(l){return s.identityProvider.getId(d(l))}},sorter:s.sorter&&{compare(l,r){return s.sorter.compare(l.elements[0],r.elements[0])}},filter:s.filter&&{filter(l,r){return s.filter.filter(d(l),r)}}}}class c{get onDidSplice(){return D.Event.map(this.model.onDidSplice,({insertedNodes:s,deletedNodes:l})=>({insertedNodes:s.map(r=>this.nodeMapper.map(r)),deletedNodes:l.map(r=>this.nodeMapper.map(r))}))}get onDidChangeCollapseState(){return D.Event.map(this.model.onDidChangeCollapseState,({node:s,deep:l})=>({node:this.nodeMapper.map(s),deep:l}))}get onDidChangeRenderNodeCount(){return D.Event.map(this.model.onDidChangeRenderNodeCount,s=>this.nodeMapper.map(s))}constructor(s,l,r={}){this.rootRef=null,this.elementMapper=r.elementMapper||e.DefaultElementMapper;const h=u=>this.elementMapper(u.elements);this.nodeMapper=new k.WeakMapper(u=>new o(h,u)),this.model=new i(s,g(this.nodeMapper,l),m(h,r))}setChildren(s,l=S.Iterable.empty(),r={}){this.model.setChildren(s,l,r)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(s){this.model.setCompressionEnabled(s)}has(s){return this.model.has(s)}getListIndex(s){return this.model.getListIndex(s)}getListRenderCount(s){return this.model.getListRenderCount(s)}getNode(s){return this.nodeMapper.map(this.model.getNode(s))}getNodeLocation(s){return s.element}getParentNodeLocation(s){return this.model.getParentNodeLocation(s)}getFirstElementChild(s){const l=this.model.getFirstElementChild(s);return l===null||typeof l>"u"?l:this.elementMapper(l.elements)}isCollapsible(s){return this.model.isCollapsible(s)}setCollapsible(s,l){return this.model.setCollapsible(s,l)}isCollapsed(s){return this.model.isCollapsed(s)}setCollapsed(s,l,r){return this.model.setCollapsed(s,l,r)}expandTo(s){return this.model.expandTo(s)}rerender(s){return this.model.rerender(s)}refilter(){return this.model.refilter()}getCompressedTreeNode(s=null){return this.model.getNode(s)}}e.CompressibleObjectTreeModel=c}),define(ne[321],se([1,0,17]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.platform=e.env=e.cwd=void 0;let k;const y=globalThis.vscode;if(typeof y<"u"&&typeof y.process<"u"){const D=y.process;k={get platform(){return D.platform},get arch(){return D.arch},get env(){return D.env},cwd(){return D.cwd()}}}else typeof process<"u"?k={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:k={get platform(){return L.isWindows?"win32":L.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};e.cwd=k.cwd,e.env=k.env,e.platform=k.platform}),define(ne[595],se([1,0,321]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.registerHotReloadHandler=e.isHotReloadEnabled=void 0;function k(){return L.env&&!!L.env.VSCODE_DEV}e.isHotReloadEnabled=k;function y(p){if(k()){const w=D();return w.add(p),{dispose(){w.delete(p)}}}else return{dispose(){}}}e.registerHotReloadHandler=y;function D(){S||(S=new Set);const p=globalThis;return p.$hotReload_applyNewExports||(p.$hotReload_applyNewExports=w=>{const v={config:{mode:void 0},...w};for(const b of S){const a=b(v);if(a)return a}}),S}let S;k()&&y(({oldExports:p,newSrc:w,config:v})=>{if(v.mode==="patch-prototype")return b=>{var a,n;for(const i in b){const t=b[i];if(console.log(`[hot-reload] Patching prototype methods of '${i}'`,{exportedItem:t}),typeof t=="function"&&t.prototype){const o=p[i];if(o){for(const g of Object.getOwnPropertyNames(t.prototype)){const m=Object.getOwnPropertyDescriptor(t.prototype,g),c=Object.getOwnPropertyDescriptor(o.prototype,g);((a=m?.value)===null||a===void 0?void 0:a.toString())!==((n=c?.value)===null||n===void 0?void 0:n.toString())&&console.log(`[hot-reload] Patching prototype method '${i}.${g}'`),Object.defineProperty(o.prototype,g,m)}b[i]=o}}}return!0}})}),define(ne[98],se([1,0,321]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sep=e.extname=e.basename=e.dirname=e.relative=e.resolve=e.normalize=e.posix=e.win32=void 0;const k=65,y=97,D=90,S=122,p=46,w=47,v=92,b=58,a=63;class n extends Error{constructor(h,u,f){let C;typeof u=="string"&&u.indexOf("not ")===0?(C="must not be",u=u.replace(/^not /,"")):C="must be";const _=h.indexOf(".")!==-1?"property":"argument";let E=`The "${h}" ${_} ${C} of type ${u}`;E+=`. Received type ${typeof f}`,super(E),this.code="ERR_INVALID_ARG_TYPE"}}function i(r,h){if(r===null||typeof r!="object")throw new n(h,"Object",r)}function t(r,h){if(typeof r!="string")throw new n(h,"string",r)}const o=L.platform==="win32";function g(r){return r===w||r===v}function m(r){return r===w}function c(r){return r>=k&&r<=D||r>=y&&r<=S}function d(r,h,u,f){let C="",_=0,E=-1,I=0,T=0;for(let A=0;A<=r.length;++A){if(A2){const R=C.lastIndexOf(u);R===-1?(C="",_=0):(C=C.slice(0,R),_=C.length-1-C.lastIndexOf(u)),E=A,I=0;continue}else if(C.length!==0){C="",_=0,E=A,I=0;continue}}h&&(C+=C.length>0?`${u}..`:"..",_=2)}else C.length>0?C+=`${u}${r.slice(E+1,A)}`:C=r.slice(E+1,A),_=A-E-1;E=A,I=0}else T===p&&I!==-1?++I:I=-1}return C}function s(r,h){i(h,"pathObject");const u=h.dir||h.root,f=h.base||`${h.name||""}${h.ext||""}`;return u?u===h.root?`${u}${f}`:`${u}${r}${f}`:f}e.win32={resolve(...r){let h="",u="",f=!1;for(let C=r.length-1;C>=-1;C--){let _;if(C>=0){if(_=r[C],t(_,"path"),_.length===0)continue}else h.length===0?_=L.cwd():(_=L.env[`=${h}`]||L.cwd(),(_===void 0||_.slice(0,2).toLowerCase()!==h.toLowerCase()&&_.charCodeAt(2)===v)&&(_=`${h}\\`));const E=_.length;let I=0,T="",A=!1;const R=_.charCodeAt(0);if(E===1)g(R)&&(I=1,A=!0);else if(g(R))if(A=!0,g(_.charCodeAt(1))){let M=2,N=M;for(;M2&&g(_.charCodeAt(2))&&(A=!0,I=3));if(T.length>0)if(h.length>0){if(T.toLowerCase()!==h.toLowerCase())continue}else h=T;if(f){if(h.length>0)break}else if(u=`${_.slice(I)}\\${u}`,f=A,A&&h.length>0)break}return u=d(u,!f,"\\",g),f?`${h}\\${u}`:`${h}${u}`||"."},normalize(r){t(r,"path");const h=r.length;if(h===0)return".";let u=0,f,C=!1;const _=r.charCodeAt(0);if(h===1)return m(_)?"\\":r;if(g(_))if(C=!0,g(r.charCodeAt(1))){let I=2,T=I;for(;I2&&g(r.charCodeAt(2))&&(C=!0,u=3));let E=u0&&g(r.charCodeAt(h-1))&&(E+="\\"),f===void 0?C?`\\${E}`:E:C?`${f}\\${E}`:`${f}${E}`},isAbsolute(r){t(r,"path");const h=r.length;if(h===0)return!1;const u=r.charCodeAt(0);return g(u)||h>2&&c(u)&&r.charCodeAt(1)===b&&g(r.charCodeAt(2))},join(...r){if(r.length===0)return".";let h,u;for(let _=0;_0&&(h===void 0?h=u=E:h+=`\\${E}`)}if(h===void 0)return".";let f=!0,C=0;if(typeof u=="string"&&g(u.charCodeAt(0))){++C;const _=u.length;_>1&&g(u.charCodeAt(1))&&(++C,_>2&&(g(u.charCodeAt(2))?++C:f=!1))}if(f){for(;C=2&&(h=`\\${h.slice(C)}`)}return e.win32.normalize(h)},relative(r,h){if(t(r,"from"),t(h,"to"),r===h)return"";const u=e.win32.resolve(r),f=e.win32.resolve(h);if(u===f||(r=u.toLowerCase(),h=f.toLowerCase(),r===h))return"";let C=0;for(;CC&&r.charCodeAt(_-1)===v;)_--;const E=_-C;let I=0;for(;II&&h.charCodeAt(T-1)===v;)T--;const A=T-I,R=ER){if(h.charCodeAt(I+N)===v)return f.slice(I+N+1);if(N===2)return f.slice(I+N)}E>R&&(r.charCodeAt(C+N)===v?M=N:N===2&&(M=3)),M===-1&&(M=0)}let P="";for(N=C+M+1;N<=_;++N)(N===_||r.charCodeAt(N)===v)&&(P+=P.length===0?"..":"\\..");return I+=M,P.length>0?`${P}${f.slice(I,T)}`:(f.charCodeAt(I)===v&&++I,f.slice(I,T))},toNamespacedPath(r){if(typeof r!="string"||r.length===0)return r;const h=e.win32.resolve(r);if(h.length<=2)return r;if(h.charCodeAt(0)===v){if(h.charCodeAt(1)===v){const u=h.charCodeAt(2);if(u!==a&&u!==p)return`\\\\?\\UNC\\${h.slice(2)}`}}else if(c(h.charCodeAt(0))&&h.charCodeAt(1)===b&&h.charCodeAt(2)===v)return`\\\\?\\${h}`;return r},dirname(r){t(r,"path");const h=r.length;if(h===0)return".";let u=-1,f=0;const C=r.charCodeAt(0);if(h===1)return g(C)?r:".";if(g(C)){if(u=f=1,g(r.charCodeAt(1))){let I=2,T=I;for(;I2&&g(r.charCodeAt(2))?3:2,f=u);let _=-1,E=!0;for(let I=h-1;I>=f;--I)if(g(r.charCodeAt(I))){if(!E){_=I;break}}else E=!1;if(_===-1){if(u===-1)return".";_=u}return r.slice(0,_)},basename(r,h){h!==void 0&&t(h,"ext"),t(r,"path");let u=0,f=-1,C=!0,_;if(r.length>=2&&c(r.charCodeAt(0))&&r.charCodeAt(1)===b&&(u=2),h!==void 0&&h.length>0&&h.length<=r.length){if(h===r)return"";let E=h.length-1,I=-1;for(_=r.length-1;_>=u;--_){const T=r.charCodeAt(_);if(g(T)){if(!C){u=_+1;break}}else I===-1&&(C=!1,I=_+1),E>=0&&(T===h.charCodeAt(E)?--E===-1&&(f=_):(E=-1,f=I))}return u===f?f=I:f===-1&&(f=r.length),r.slice(u,f)}for(_=r.length-1;_>=u;--_)if(g(r.charCodeAt(_))){if(!C){u=_+1;break}}else f===-1&&(C=!1,f=_+1);return f===-1?"":r.slice(u,f)},extname(r){t(r,"path");let h=0,u=-1,f=0,C=-1,_=!0,E=0;r.length>=2&&r.charCodeAt(1)===b&&c(r.charCodeAt(0))&&(h=f=2);for(let I=r.length-1;I>=h;--I){const T=r.charCodeAt(I);if(g(T)){if(!_){f=I+1;break}continue}C===-1&&(_=!1,C=I+1),T===p?u===-1?u=I:E!==1&&(E=1):u!==-1&&(E=-1)}return u===-1||C===-1||E===0||E===1&&u===C-1&&u===f+1?"":r.slice(u,C)},format:s.bind(null,"\\"),parse(r){t(r,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return h;const u=r.length;let f=0,C=r.charCodeAt(0);if(u===1)return g(C)?(h.root=h.dir=r,h):(h.base=h.name=r,h);if(g(C)){if(f=1,g(r.charCodeAt(1))){let M=2,N=M;for(;M0&&(h.root=r.slice(0,f));let _=-1,E=f,I=-1,T=!0,A=r.length-1,R=0;for(;A>=f;--A){if(C=r.charCodeAt(A),g(C)){if(!T){E=A+1;break}continue}I===-1&&(T=!1,I=A+1),C===p?_===-1?_=A:R!==1&&(R=1):_!==-1&&(R=-1)}return I!==-1&&(_===-1||R===0||R===1&&_===I-1&&_===E+1?h.base=h.name=r.slice(E,I):(h.name=r.slice(E,_),h.base=r.slice(E,I),h.ext=r.slice(_,I))),E>0&&E!==f?h.dir=r.slice(0,E-1):h.dir=h.root,h},sep:"\\",delimiter:";",win32:null,posix:null};const l=(()=>{if(o){const r=/\\/g;return()=>{const h=L.cwd().replace(r,"/");return h.slice(h.indexOf("/"))}}return()=>L.cwd()})();e.posix={resolve(...r){let h="",u=!1;for(let f=r.length-1;f>=-1&&!u;f--){const C=f>=0?r[f]:l();t(C,"path"),C.length!==0&&(h=`${C}/${h}`,u=C.charCodeAt(0)===w)}return h=d(h,!u,"/",m),u?`/${h}`:h.length>0?h:"."},normalize(r){if(t(r,"path"),r.length===0)return".";const h=r.charCodeAt(0)===w,u=r.charCodeAt(r.length-1)===w;return r=d(r,!h,"/",m),r.length===0?h?"/":u?"./":".":(u&&(r+="/"),h?`/${r}`:r)},isAbsolute(r){return t(r,"path"),r.length>0&&r.charCodeAt(0)===w},join(...r){if(r.length===0)return".";let h;for(let u=0;u0&&(h===void 0?h=f:h+=`/${f}`)}return h===void 0?".":e.posix.normalize(h)},relative(r,h){if(t(r,"from"),t(h,"to"),r===h||(r=e.posix.resolve(r),h=e.posix.resolve(h),r===h))return"";const u=1,f=r.length,C=f-u,_=1,E=h.length-_,I=CI){if(h.charCodeAt(_+A)===w)return h.slice(_+A+1);if(A===0)return h.slice(_+A)}else C>I&&(r.charCodeAt(u+A)===w?T=A:A===0&&(T=0));let R="";for(A=u+T+1;A<=f;++A)(A===f||r.charCodeAt(A)===w)&&(R+=R.length===0?"..":"/..");return`${R}${h.slice(_+T)}`},toNamespacedPath(r){return r},dirname(r){if(t(r,"path"),r.length===0)return".";const h=r.charCodeAt(0)===w;let u=-1,f=!0;for(let C=r.length-1;C>=1;--C)if(r.charCodeAt(C)===w){if(!f){u=C;break}}else f=!1;return u===-1?h?"/":".":h&&u===1?"//":r.slice(0,u)},basename(r,h){h!==void 0&&t(h,"ext"),t(r,"path");let u=0,f=-1,C=!0,_;if(h!==void 0&&h.length>0&&h.length<=r.length){if(h===r)return"";let E=h.length-1,I=-1;for(_=r.length-1;_>=0;--_){const T=r.charCodeAt(_);if(T===w){if(!C){u=_+1;break}}else I===-1&&(C=!1,I=_+1),E>=0&&(T===h.charCodeAt(E)?--E===-1&&(f=_):(E=-1,f=I))}return u===f?f=I:f===-1&&(f=r.length),r.slice(u,f)}for(_=r.length-1;_>=0;--_)if(r.charCodeAt(_)===w){if(!C){u=_+1;break}}else f===-1&&(C=!1,f=_+1);return f===-1?"":r.slice(u,f)},extname(r){t(r,"path");let h=-1,u=0,f=-1,C=!0,_=0;for(let E=r.length-1;E>=0;--E){const I=r.charCodeAt(E);if(I===w){if(!C){u=E+1;break}continue}f===-1&&(C=!1,f=E+1),I===p?h===-1?h=E:_!==1&&(_=1):h!==-1&&(_=-1)}return h===-1||f===-1||_===0||_===1&&h===f-1&&h===u+1?"":r.slice(h,f)},format:s.bind(null,"/"),parse(r){t(r,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return h;const u=r.charCodeAt(0)===w;let f;u?(h.root="/",f=1):f=0;let C=-1,_=0,E=-1,I=!0,T=r.length-1,A=0;for(;T>=f;--T){const R=r.charCodeAt(T);if(R===w){if(!I){_=T+1;break}continue}E===-1&&(I=!1,E=T+1),R===p?C===-1?C=T:A!==1&&(A=1):C!==-1&&(A=-1)}if(E!==-1){const R=_===0&&u?1:_;C===-1||A===0||A===1&&C===E-1&&C===_+1?h.base=h.name=r.slice(R,E):(h.name=r.slice(R,C),h.base=r.slice(R,E),h.ext=r.slice(C,E))}return _>0?h.dir=r.slice(0,_-1):u&&(h.dir="/"),h},sep:"/",delimiter:":",win32:null,posix:null},e.posix.win32=e.win32.win32=e.win32,e.posix.posix=e.win32.posix=e.posix,e.normalize=o?e.win32.normalize:e.posix.normalize,e.resolve=o?e.win32.resolve:e.posix.resolve,e.relative=o?e.win32.relative:e.posix.relative,e.dirname=o?e.win32.dirname:e.posix.dirname,e.basename=o?e.win32.basename:e.posix.basename,e.extname=o?e.win32.extname:e.posix.extname,e.sep=o?e.win32.sep:e.posix.sep}),define(ne[228],se([1,0,98,17,11]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hasDriveLetter=e.isWindowsDriveLetter=e.isEqualOrParent=e.getRoot=e.toPosixPath=e.toSlashes=e.isPathSeparator=void 0;function D(n){return n===47||n===92}e.isPathSeparator=D;function S(n){return n.replace(/[\\/]/g,L.posix.sep)}e.toSlashes=S;function p(n){return n.indexOf("/")===-1&&(n=S(n)),/^[a-zA-Z]:(\/|$)/.test(n)&&(n="/"+n),n}e.toPosixPath=p;function w(n,i=L.posix.sep){if(!n)return"";const t=n.length,o=n.charCodeAt(0);if(D(o)){if(D(n.charCodeAt(1))&&!D(n.charCodeAt(2))){let m=3;const c=m;for(;mn.length)return!1;if(t){if(!(0,y.startsWithIgnoreCase)(n,i))return!1;if(i.length===n.length)return!0;let m=i.length;return i.charAt(i.length-1)===o&&m--,n.charAt(m)===o}return i.charAt(i.length-1)!==o&&(i+=o),n.indexOf(i)===0}e.isEqualOrParent=v;function b(n){return n>=65&&n<=90||n>=97&&n<=122}e.isWindowsDriveLetter=b;function a(n,i=k.isWindows){return i?b(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}e.hasDriveLetter=a}),define(ne[596],se([1,0,73,98,17,11]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.pieceToQuery=e.prepareQuery=e.scoreFuzzy2=void 0;const S=[void 0,[]];function p(c,d,s=0,l=0){const r=d;return r.values&&r.values.length>1?w(c,r.values,s,l):v(c,d,s,l)}e.scoreFuzzy2=p;function w(c,d,s,l){let r=0;const h=[];for(const u of d){const[f,C]=v(c,u,s,l);if(typeof f!="number")return S;r+=f,h.push(...C)}return[r,a(h)]}function v(c,d,s,l){const r=(0,L.fuzzyScore)(d.original,d.originalLowercase,s,c,c.toLowerCase(),l,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return r?[r[0],(0,L.createMatches)(r)]:S}const b=Object.freeze({score:0});function a(c){const d=c.sort((r,h)=>r.start-h.start),s=[];let l;for(const r of d)!l||!n(l,r)?(l=r,s.push(r)):(l.start=Math.min(l.start,r.start),l.end=Math.max(l.end,r.end));return s}function n(c,d){return!(c.end=0,u=i(c);let f;const C=c.split(t);if(C.length>1)for(const _ of C){const E=i(_),{pathNormalized:I,normalized:T,normalizedLowercase:A}=g(_);T&&(f||(f=[]),f.push({original:_,originalLowercase:_.toLowerCase(),pathNormalized:I,normalized:T,normalizedLowercase:A,expectContiguousMatch:E}))}return{original:c,originalLowercase:d,pathNormalized:s,normalized:l,normalizedLowercase:r,values:f,containsPathSeparator:h,expectContiguousMatch:u}}e.prepareQuery=o;function g(c){let d;y.isWindows?d=c.replace(/\//g,k.sep):d=c.replace(/\\/g,k.sep);const s=(0,D.stripWildcards)(d).replace(/\s|"/g,"");return{pathNormalized:d,normalized:s,normalizedLowercase:s.toLowerCase()}}function m(c){return Array.isArray(c)?o(c.map(d=>d.original).join(t)):o(c.original)}e.pieceToQuery=m}),define(ne[322],se([1,0,15,228,53,98,17,11]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isRelativePattern=e.parse=e.match=e.splitGlobAware=e.GLOB_SPLIT=e.GLOBSTAR=void 0,e.GLOBSTAR="**",e.GLOB_SPLIT="/";const w="[/\\\\]",v="[^/\\\\]",b=/\//g;function a(O,B){switch(O){case 0:return"";case 1:return`${v}*?`;default:return`(?:${w}|${v}+${w}${B?`|${w}${v}+`:""})*?`}}function n(O,B){if(!O)return[];const W=[];let V=!1,z=!1,K="";for(const j of O){switch(j){case B:if(!V&&!z){W.push(K),K="";continue}break;case"{":V=!0;break;case"}":V=!1;break;case"[":z=!0;break;case"]":z=!1;break}K+=j}return K&&W.push(K),W}e.splitGlobAware=n;function i(O){if(!O)return"";let B="";const W=n(O,e.GLOB_SPLIT);if(W.every(V=>V===e.GLOBSTAR))B=".*";else{let V=!1;W.forEach((z,K)=>{if(z===e.GLOBSTAR){if(V)return;B+=a(2,K===W.length-1)}else{let j=!1,x="",re=!1,ie="";for(const J of z){if(J!=="}"&&j){x+=J;continue}if(re&&(J!=="]"||!ie)){let X;J==="-"?X=J:(J==="^"||J==="!")&&!ie?X="^":J===e.GLOB_SPLIT?X="":X=(0,p.escapeRegExpCharacters)(J),ie+=X;continue}switch(J){case"{":j=!0;continue;case"[":re=!0;continue;case"}":{const Y=`(?:${n(x,",").map(le=>i(le)).join("|")})`;B+=Y,j=!1,x="";break}case"]":{B+="["+ie+"]",re=!1,ie="";break}case"?":B+=v;continue;case"*":B+=a(1);continue;default:B+=(0,p.escapeRegExpCharacters)(J)}}Kh(x,B)).filter(x=>x!==r),O),V=W.length;if(!V)return r;if(V===1)return W[0];const z=function(x,re){for(let ie=0,J=W.length;ie!!x.allBasenames);K&&(z.allBasenames=K.allBasenames);const j=W.reduce((x,re)=>re.allPaths?x.concat(re.allPaths):x,[]);return j.length&&(z.allPaths=j),z}function I(O,B,W){const V=D.sep===D.posix.sep,z=V?O:O.replace(b,D.sep),K=D.sep+z,j=D.posix.sep+O;let x;return W?x=function(re,ie){return typeof re=="string"&&(re===z||re.endsWith(K)||!V&&(re===O||re.endsWith(j)))?B:null}:x=function(re,ie){return typeof re=="string"&&(re===z||!V&&re===O)?B:null},x.allPaths=[(W?"*/":"./")+O],x}function T(O){try{const B=new RegExp(`^${i(O)}$`);return function(W){return B.lastIndex=0,typeof W=="string"&&B.test(W)?O:null}}catch{return r}}function A(O,B,W){return!O||typeof B!="string"?!1:R(O)(B,void 0,W)}e.match=A;function R(O,B={}){if(!O)return l;if(typeof O=="string"||M(O)){const W=h(O,B);if(W===r)return l;const V=function(z,K){return!!W(z,K)};return W.allBasenames&&(V.allBasenames=W.allBasenames),W.allPaths&&(V.allPaths=W.allPaths),V}return N(O,B)}e.parse=R;function M(O){const B=O;return B?typeof B.base=="string"&&typeof B.pattern=="string":!1}e.isRelativePattern=M;function N(O,B){const W=F(Object.getOwnPropertyNames(O).map(x=>P(x,O[x],B)).filter(x=>x!==r)),V=W.length;if(!V)return r;if(!W.some(x=>!!x.requiresSiblings)){if(V===1)return W[0];const x=function(J,X){let Y;for(let le=0,de=W.length;le{for(const le of Y){const de=await le;if(typeof de=="string")return de}return null})():null},re=W.find(J=>!!J.allBasenames);re&&(x.allBasenames=re.allBasenames);const ie=W.reduce((J,X)=>X.allPaths?J.concat(X.allPaths):J,[]);return ie.length&&(x.allPaths=ie),x}const z=function(x,re,ie){let J,X;for(let Y=0,le=W.length;Y{for(const Y of X){const le=await Y;if(typeof le=="string")return le}return null})():null},K=W.find(x=>!!x.allBasenames);K&&(z.allBasenames=K.allBasenames);const j=W.reduce((x,re)=>re.allPaths?x.concat(re.allPaths):x,[]);return j.length&&(z.allPaths=j),z}function P(O,B,W){if(B===!1)return r;const V=h(O,W);if(V===r)return r;if(typeof B=="boolean")return V;if(B){const z=B.when;if(typeof z=="string"){const K=(j,x,re,ie)=>{if(!ie||!V(j,x))return null;const J=z.replace("$(basename)",()=>re),X=ie(J);return(0,L.isThenable)(X)?X.then(Y=>Y?O:null):X?O:null};return K.requiresSiblings=!0,K}}return V}function F(O,B){const W=O.filter(x=>!!x.basenames);if(W.length<2)return O;const V=W.reduce((x,re)=>{const ie=re.basenames;return ie?x.concat(ie):x},[]);let z;if(B){z=[];for(let x=0,re=V.length;x{const ie=re.patterns;return ie?x.concat(ie):x},[]);const K=function(x,re){if(typeof x!="string")return null;if(!re){let J;for(J=x.length;J>0;J--){const X=x.charCodeAt(J-1);if(X===47||X===92)break}re=x.substr(J)}const ie=V.indexOf(re);return ie!==-1?z[ie]:null};K.basenames=V,K.patterns=z,K.allBasenames=V;const j=O.filter(x=>!x.basenames);return j.push(K),j}}),define(ne[597],se([1,0,228,17]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeDriveLetter=void 0;function y(S,p=k.isWindows){return(0,L.hasDriveLetter)(S,p)?S.charAt(0).toUpperCase()+S.slice(1):S}e.normalizeDriveLetter=y;let D=Object.create(null)}),define(ne[22],se([1,0,98,17]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.uriToFsPath=e.URI=void 0;const y=/^\w[\w\d+.-]*$/,D=/^\//,S=/^\/\//;function p(u,f){if(!u.scheme&&f)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${u.authority}", path: "${u.path}", query: "${u.query}", fragment: "${u.fragment}"}`);if(u.scheme&&!y.test(u.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(u.path){if(u.authority){if(!D.test(u.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(S.test(u.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function w(u,f){return!u&&!f?"file":u}function v(u,f){switch(u){case"https":case"http":case"file":f?f[0]!==a&&(f=a+f):f=a;break}return f}const b="",a="/",n=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class i{static isUri(f){return f instanceof i?!0:f?typeof f.authority=="string"&&typeof f.fragment=="string"&&typeof f.path=="string"&&typeof f.query=="string"&&typeof f.scheme=="string"&&typeof f.fsPath=="string"&&typeof f.with=="function"&&typeof f.toString=="function":!1}constructor(f,C,_,E,I,T=!1){typeof f=="object"?(this.scheme=f.scheme||b,this.authority=f.authority||b,this.path=f.path||b,this.query=f.query||b,this.fragment=f.fragment||b):(this.scheme=w(f,T),this.authority=C||b,this.path=v(this.scheme,_||b),this.query=E||b,this.fragment=I||b,p(this,T))}get fsPath(){return d(this,!1)}with(f){if(!f)return this;let{scheme:C,authority:_,path:E,query:I,fragment:T}=f;return C===void 0?C=this.scheme:C===null&&(C=b),_===void 0?_=this.authority:_===null&&(_=b),E===void 0?E=this.path:E===null&&(E=b),I===void 0?I=this.query:I===null&&(I=b),T===void 0?T=this.fragment:T===null&&(T=b),C===this.scheme&&_===this.authority&&E===this.path&&I===this.query&&T===this.fragment?this:new o(C,_,E,I,T)}static parse(f,C=!1){const _=n.exec(f);return _?new o(_[2]||b,h(_[4]||b),h(_[5]||b),h(_[7]||b),h(_[9]||b),C):new o(b,b,b,b,b)}static file(f){let C=b;if(k.isWindows&&(f=f.replace(/\\/g,a)),f[0]===a&&f[1]===a){const _=f.indexOf(a,2);_===-1?(C=f.substring(2),f=a):(C=f.substring(2,_),f=f.substring(_)||a)}return new o("file",C,f,b,b)}static from(f,C){return new o(f.scheme,f.authority,f.path,f.query,f.fragment,C)}static joinPath(f,...C){if(!f.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let _;return k.isWindows&&f.scheme==="file"?_=i.file(L.win32.join(d(f,!0),...C)).path:_=L.posix.join(f.path,...C),f.with({path:_})}toString(f=!1){return s(this,f)}toJSON(){return this}static revive(f){var C,_;if(f){if(f instanceof i)return f;{const E=new o(f);return E._formatted=(C=f.external)!==null&&C!==void 0?C:null,E._fsPath=f._sep===t&&(_=f.fsPath)!==null&&_!==void 0?_:null,E}}else return f}}e.URI=i;const t=k.isWindows?1:void 0;class o extends i{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=d(this,!1)),this._fsPath}toString(f=!1){return f?s(this,!0):(this._formatted||(this._formatted=s(this,!1)),this._formatted)}toJSON(){const f={$mid:1};return this._fsPath&&(f.fsPath=this._fsPath,f._sep=t),this._formatted&&(f.external=this._formatted),this.path&&(f.path=this.path),this.scheme&&(f.scheme=this.scheme),this.authority&&(f.authority=this.authority),this.query&&(f.query=this.query),this.fragment&&(f.fragment=this.fragment),f}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function m(u,f,C){let _,E=-1;for(let I=0;I=97&&T<=122||T>=65&&T<=90||T>=48&&T<=57||T===45||T===46||T===95||T===126||f&&T===47||C&&T===91||C&&T===93||C&&T===58)E!==-1&&(_+=encodeURIComponent(u.substring(E,I)),E=-1),_!==void 0&&(_+=u.charAt(I));else{_===void 0&&(_=u.substr(0,I));const A=g[T];A!==void 0?(E!==-1&&(_+=encodeURIComponent(u.substring(E,I)),E=-1),_+=A):E===-1&&(E=I)}}return E!==-1&&(_+=encodeURIComponent(u.substring(E))),_!==void 0?_:u}function c(u){let f;for(let C=0;C1&&u.scheme==="file"?C=`//${u.authority}${u.path}`:u.path.charCodeAt(0)===47&&(u.path.charCodeAt(1)>=65&&u.path.charCodeAt(1)<=90||u.path.charCodeAt(1)>=97&&u.path.charCodeAt(1)<=122)&&u.path.charCodeAt(2)===58?f?C=u.path.substr(1):C=u.path[1].toLowerCase()+u.path.substr(2):C=u.path,k.isWindows&&(C=C.replace(/\//g,"\\")),C}e.uriToFsPath=d;function s(u,f){const C=f?c:m;let _="",{scheme:E,authority:I,path:T,query:A,fragment:R}=u;if(E&&(_+=E,_+=":"),(I||E==="file")&&(_+=a,_+=a),I){let M=I.indexOf("@");if(M!==-1){const N=I.substr(0,M);I=I.substr(M+1),M=N.lastIndexOf(":"),M===-1?_+=C(N,!1,!1):(_+=C(N.substr(0,M),!1,!1),_+=":",_+=C(N.substr(M+1),!1,!0)),_+="@"}I=I.toLowerCase(),M=I.lastIndexOf(":"),M===-1?_+=C(I,!1,!0):(_+=C(I.substr(0,M),!1,!0),_+=I.substr(M))}if(T){if(T.length>=3&&T.charCodeAt(0)===47&&T.charCodeAt(2)===58){const M=T.charCodeAt(1);M>=65&&M<=90&&(T=`/${String.fromCharCode(M+32)}:${T.substr(3)}`)}else if(T.length>=2&&T.charCodeAt(1)===58){const M=T.charCodeAt(0);M>=65&&M<=90&&(T=`${String.fromCharCode(M+32)}:${T.substr(2)}`)}_+=C(T,!0,!1)}return A&&(_+="?",_+=C(A,!1,!1)),R&&(_+="#",_+=f?R:m(R,!1,!1)),_}function l(u){try{return decodeURIComponent(u)}catch{return u.length>3?u.substr(0,3)+l(u.substr(3)):u}}const r=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function h(u){return u.match(r)?u.replace(r,f=>l(f)):u}}),define(ne[229],se([1,0,149,22]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.revive=e.parse=e.stringify=void 0;function y(w){return JSON.stringify(w,S)}e.stringify=y;function D(w){let v=JSON.parse(w);return v=p(v),v}e.parse=D;function S(w,v){return v instanceof RegExp?{$mid:2,source:v.source,flags:v.flags}:v}function p(w,v=0){if(!w||v>200)return w;if(typeof w=="object"){switch(w.$mid){case 1:return k.URI.revive(w);case 2:return new RegExp(w.source,w.flags);case 17:return new Date(w.source)}if(w instanceof L.VSBuffer||w instanceof Uint8Array)return w;if(Array.isArray(w))for(let b=0;bp(n,t))}e.matchesSomeScheme=w,e.connectionTokenQueryName="tkn";class v{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._remoteResourcesPath=`/${S.vscodeRemoteResource}`}setPreferredWebSchema(i){this._preferredWebSchema=i}rewrite(i){if(this._delegate)try{return this._delegate(i)}catch(d){return L.onUnexpectedError(d),i}const t=i.authority;let o=this._hosts[t];o&&o.indexOf(":")!==-1&&o.indexOf("[")===-1&&(o=`[${o}]`);const g=this._ports[t],m=this._connectionTokens[t];let c=`path=${encodeURIComponent(i.path)}`;return typeof m=="string"&&(c+=`&${e.connectionTokenQueryName}=${encodeURIComponent(m)}`),D.URI.from({scheme:k.isWeb?this._preferredWebSchema:S.vscodeRemoteResource,authority:`${o}:${g}`,path:this._remoteResourcesPath,query:c})}}e.RemoteAuthorities=new v,e.VSCODE_AUTHORITY="vscode-app";class b{uriToBrowserUri(i){return i.scheme===S.vscodeRemote?e.RemoteAuthorities.rewrite(i):i.scheme===S.file&&(k.isNative||k.webWorkerOrigin===`${S.vscodeFileResource}://${b.FALLBACK_AUTHORITY}`)?i.with({scheme:S.vscodeFileResource,authority:i.authority||b.FALLBACK_AUTHORITY,query:null,fragment:null}):i}}b.FALLBACK_AUTHORITY=e.VSCODE_AUTHORITY,e.FileAccess=new b;var a;(function(n){const i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);n.CoopAndCoep=Object.freeze(i.get("3"));const t="vscode-coi";function o(m){let c;typeof m=="string"?c=new URL(m).searchParams:m instanceof URL?c=m.searchParams:D.URI.isUri(m)&&(c=new URL(m.toString(!0)).searchParams);const d=c?.get(t);if(d)return i.get(d)}n.getHeadersFromQuery=o;function g(m,c,d){if(!globalThis.crossOriginIsolated)return;const s=c&&d?"3":d?"2":"1";m instanceof URLSearchParams?m.set(t,s):m[t]=s}n.addSearchParam=g})(a||(e.COI=a={}))}),define(ne[6],se([1,0,59,225,46,69,15,12,7,323,2,47,17,114,50]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0}),e.h=e.DragAndDropObserver=e.ModifierKeyEmitter=e.basicMarkupHtmlTags=e.hookDomPurifyHrefAndSrcSanitizer=e.asCssValueWithDefault=e.asCSSPropertyValue=e.asCSSUrl=e.animate=e.windowOpenNoOpener=e.computeScreenAwareSize=e.hide=e.show=e.setVisibility=e.$=e.Namespace=e.reset=e.prepend=e.append=e.after=e.trackFocus=e.restoreParentsScrollTop=e.saveParentsScrollTop=e.EventHelper=e.isEventLike=e.EventType=e.isKeyboardEvent=e.isMouseEvent=e.removeCSSRulesContainingSelector=e.createCSSRule=e.sharedMutationObserver=e.createStyleSheet=e.createStyleSheet2=e.getActiveWindow=e.getActiveDocument=e.isAncestorOfActiveElement=e.isActiveElement=e.getActiveElement=e.getShadowRoot=e.isInShadowDOM=e.isShadowRoot=e.hasParentWithClass=e.findParentWithClass=e.isAncestor=e.getTotalHeight=e.getContentHeight=e.getContentWidth=e.getTotalWidth=e.getDomNodeZoomLevel=e.getDomNodePagePosition=e.size=e.getTopLeftOffset=e.Dimension=e.getClientArea=e.getComputedStyle=e.WindowIntervalTimer=e.scheduleAtNextAnimationFrame=e.runAtThisOrScheduleAtNextAnimationFrame=e.WindowIdleValue=e.runWhenWindowIdle=e.addDisposableGenericMouseUpListener=e.addDisposableGenericMouseDownListener=e.addStandardDisposableGenericMouseUpListener=e.addStandardDisposableGenericMouseDownListener=e.addStandardDisposableListener=e.addDisposableListener=e.clearNode=e.onDidUnregisterWindow=e.onWillUnregisterWindow=e.onDidRegisterWindow=e.hasWindow=e.getWindowById=e.getWindowId=e.getWindowsCount=e.getWindows=e.getDocument=e.getWindow=e.registerWindow=void 0,o=function(){const Le=new Map;(0,t.ensureCodeWindow)(t.mainWindow,1);const we={window:t.mainWindow,disposables:new b.DisposableStore};Le.set(t.mainWindow.vscodeWindowId,we);const Te=new w.Emitter,ke=new w.Emitter,Ee=new w.Emitter;function Re(Pe,He){const Ue=typeof Pe=="number"?Le.get(Pe):void 0;return Ue??(He?we:void 0)}return{onDidRegisterWindow:Te.event,onWillUnregisterWindow:Ee.event,onDidUnregisterWindow:ke.event,registerWindow(Pe){if(Le.has(Pe.vscodeWindowId))return b.Disposable.None;const He=new b.DisposableStore,Ue={window:Pe,disposables:He.add(new b.DisposableStore)};return Le.set(Pe.vscodeWindowId,Ue),He.add((0,b.toDisposable)(()=>{Le.delete(Pe.vscodeWindowId),ke.fire(Pe)})),He.add(c(Pe,e.EventType.BEFORE_UNLOAD,()=>{Ee.fire(Pe)})),Te.fire(Ue),He},getWindows(){return Le.values()},getWindowsCount(){return Le.size},getWindowId(Pe){return Pe.vscodeWindowId},hasWindow(Pe){return Le.has(Pe)},getWindowById:Re,getWindow(Pe){var He;const Ue=Pe;if(!((He=Ue?.ownerDocument)===null||He===void 0)&&He.defaultView)return Ue.ownerDocument.defaultView.window;const Ze=Pe;return Ze?.view?Ze.view.window:t.mainWindow},getDocument(Pe){const He=Pe;return(0,e.getWindow)(He).document}}}(),e.registerWindow=o.registerWindow,e.getWindow=o.getWindow,e.getDocument=o.getDocument,e.getWindows=o.getWindows,e.getWindowsCount=o.getWindowsCount,e.getWindowId=o.getWindowId,e.getWindowById=o.getWindowById,e.hasWindow=o.hasWindow,e.onDidRegisterWindow=o.onDidRegisterWindow,e.onWillUnregisterWindow=o.onWillUnregisterWindow,e.onDidUnregisterWindow=o.onDidUnregisterWindow;function g(Le){for(;Le.firstChild;)Le.firstChild.remove()}e.clearNode=g;class m{constructor(we,Te,ke,Ee){this._node=we,this._type=Te,this._handler=ke,this._options=Ee||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function c(Le,we,Te,ke){return new m(Le,we,Te,ke)}e.addDisposableListener=c;function d(Le,we){return function(Te){return we(new D.StandardMouseEvent(Le,Te))}}function s(Le){return function(we){return Le(new y.StandardKeyboardEvent(we))}}const l=function(we,Te,ke,Ee){let Re=ke;return Te==="click"||Te==="mousedown"?Re=d((0,e.getWindow)(we),ke):(Te==="keydown"||Te==="keypress"||Te==="keyup")&&(Re=s(ke)),c(we,Te,Re,Ee)};e.addStandardDisposableListener=l;const r=function(we,Te,ke){const Ee=d((0,e.getWindow)(we),Te);return u(we,Ee,ke)};e.addStandardDisposableGenericMouseDownListener=r;const h=function(we,Te,ke){const Ee=d((0,e.getWindow)(we),Te);return f(we,Ee,ke)};e.addStandardDisposableGenericMouseUpListener=h;function u(Le,we,Te){return c(Le,n.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_DOWN:e.EventType.MOUSE_DOWN,we,Te)}e.addDisposableGenericMouseDownListener=u;function f(Le,we,Te){return c(Le,n.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_UP:e.EventType.MOUSE_UP,we,Te)}e.addDisposableGenericMouseUpListener=f;function C(Le,we,Te){return(0,S._runWhenIdle)(Le,we,Te)}e.runWhenWindowIdle=C;class _ extends S.AbstractIdleValue{constructor(we,Te){super(we,Te)}}e.WindowIdleValue=_;class E extends S.IntervalTimer{constructor(we){super(),this.defaultTarget=we&&(0,e.getWindow)(we)}cancelAndSet(we,Te,ke){return super.cancelAndSet(we,Te,ke??this.defaultTarget)}}e.WindowIntervalTimer=E;class I{constructor(we,Te=0){this._runner=we,this.priority=Te,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(we){(0,p.onUnexpectedError)(we)}}static sort(we,Te){return Te.priority-we.priority}}(function(){const Le=new Map,we=new Map,Te=new Map,ke=new Map,Ee=Re=>{var Pe;Te.set(Re,!1);const He=(Pe=Le.get(Re))!==null&&Pe!==void 0?Pe:[];for(we.set(Re,He),Le.set(Re,[]),ke.set(Re,!0);He.length>0;)He.sort(I.sort),He.shift().execute();ke.set(Re,!1)};e.scheduleAtNextAnimationFrame=(Re,Pe,He=0)=>{const Ue=(0,e.getWindowId)(Re),Ze=new I(Pe,He);let Ye=Le.get(Ue);return Ye||(Ye=[],Le.set(Ue,Ye)),Ye.push(Ze),Te.get(Ue)||(Te.set(Ue,!0),Re.requestAnimationFrame(()=>Ee(Ue))),Ze},e.runAtThisOrScheduleAtNextAnimationFrame=(Re,Pe,He)=>{const Ue=(0,e.getWindowId)(Re);if(ke.get(Ue)){const Ze=new I(Pe,He);let Ye=we.get(Ue);return Ye||(Ye=[],we.set(Ue,Ye)),Ye.push(Ze),Ze}else return(0,e.scheduleAtNextAnimationFrame)(Re,Pe,He)}})();function T(Le){return(0,e.getWindow)(Le).getComputedStyle(Le,null)}e.getComputedStyle=T;function A(Le,we){const Te=(0,e.getWindow)(Le),ke=Te.document;if(Le!==ke.body)return new M(Le.clientWidth,Le.clientHeight);if(n.isIOS&&Te?.visualViewport)return new M(Te.visualViewport.width,Te.visualViewport.height);if(Te?.innerWidth&&Te.innerHeight)return new M(Te.innerWidth,Te.innerHeight);if(ke.body&&ke.body.clientWidth&&ke.body.clientHeight)return new M(ke.body.clientWidth,ke.body.clientHeight);if(ke.documentElement&&ke.documentElement.clientWidth&&ke.documentElement.clientHeight)return new M(ke.documentElement.clientWidth,ke.documentElement.clientHeight);if(we)return A(we);throw new Error("Unable to figure out browser width and height")}e.getClientArea=A;class R{static convertToPixels(we,Te){return parseFloat(Te)||0}static getDimension(we,Te,ke){const Ee=T(we),Re=Ee?Ee.getPropertyValue(Te):"0";return R.convertToPixels(we,Re)}static getBorderLeftWidth(we){return R.getDimension(we,"border-left-width","borderLeftWidth")}static getBorderRightWidth(we){return R.getDimension(we,"border-right-width","borderRightWidth")}static getBorderTopWidth(we){return R.getDimension(we,"border-top-width","borderTopWidth")}static getBorderBottomWidth(we){return R.getDimension(we,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(we){return R.getDimension(we,"padding-left","paddingLeft")}static getPaddingRight(we){return R.getDimension(we,"padding-right","paddingRight")}static getPaddingTop(we){return R.getDimension(we,"padding-top","paddingTop")}static getPaddingBottom(we){return R.getDimension(we,"padding-bottom","paddingBottom")}static getMarginLeft(we){return R.getDimension(we,"margin-left","marginLeft")}static getMarginTop(we){return R.getDimension(we,"margin-top","marginTop")}static getMarginRight(we){return R.getDimension(we,"margin-right","marginRight")}static getMarginBottom(we){return R.getDimension(we,"margin-bottom","marginBottom")}}class M{constructor(we,Te){this.width=we,this.height=Te}with(we=this.width,Te=this.height){return we!==this.width||Te!==this.height?new M(we,Te):this}static is(we){return typeof we=="object"&&typeof we.height=="number"&&typeof we.width=="number"}static lift(we){return we instanceof M?we:new M(we.width,we.height)}static equals(we,Te){return we===Te?!0:!we||!Te?!1:we.width===Te.width&&we.height===Te.height}}e.Dimension=M,M.None=new M(0,0);function N(Le){let we=Le.offsetParent,Te=Le.offsetTop,ke=Le.offsetLeft;for(;(Le=Le.parentNode)!==null&&Le!==Le.ownerDocument.body&&Le!==Le.ownerDocument.documentElement;){Te-=Le.scrollTop;const Ee=re(Le)?null:T(Le);Ee&&(ke-=Ee.direction!=="rtl"?Le.scrollLeft:-Le.scrollLeft),Le===we&&(ke+=R.getBorderLeftWidth(Le),Te+=R.getBorderTopWidth(Le),Te+=Le.offsetTop,ke+=Le.offsetLeft,we=Le.offsetParent)}return{left:ke,top:Te}}e.getTopLeftOffset=N;function P(Le,we,Te){typeof we=="number"&&(Le.style.width=`${we}px`),typeof Te=="number"&&(Le.style.height=`${Te}px`)}e.size=P;function F(Le){const we=Le.getBoundingClientRect(),Te=(0,e.getWindow)(Le);return{left:we.left+Te.scrollX,top:we.top+Te.scrollY,width:we.width,height:we.height}}e.getDomNodePagePosition=F;function O(Le){let we=Le,Te=1;do{const ke=T(we).zoom;ke!=null&&ke!=="1"&&(Te*=ke),we=we.parentElement}while(we!==null&&we!==we.ownerDocument.documentElement);return Te}e.getDomNodeZoomLevel=O;function B(Le){const we=R.getMarginLeft(Le)+R.getMarginRight(Le);return Le.offsetWidth+we}e.getTotalWidth=B;function W(Le){const we=R.getBorderLeftWidth(Le)+R.getBorderRightWidth(Le),Te=R.getPaddingLeft(Le)+R.getPaddingRight(Le);return Le.offsetWidth-we-Te}e.getContentWidth=W;function V(Le){const we=R.getBorderTopWidth(Le)+R.getBorderBottomWidth(Le),Te=R.getPaddingTop(Le)+R.getPaddingBottom(Le);return Le.offsetHeight-we-Te}e.getContentHeight=V;function z(Le){const we=R.getMarginTop(Le)+R.getMarginBottom(Le);return Le.offsetHeight+we}e.getTotalHeight=z;function K(Le,we){return!!we?.contains(Le)}e.isAncestor=K;function j(Le,we,Te){for(;Le&&Le.nodeType===Le.ELEMENT_NODE;){if(Le.classList.contains(we))return Le;if(Te){if(typeof Te=="string"){if(Le.classList.contains(Te))return null}else if(Le===Te)return null}Le=Le.parentNode}return null}e.findParentWithClass=j;function x(Le,we,Te){return!!j(Le,we,Te)}e.hasParentWithClass=x;function re(Le){return Le&&!!Le.host&&!!Le.mode}e.isShadowRoot=re;function ie(Le){return!!J(Le)}e.isInShadowDOM=ie;function J(Le){for(var we;Le.parentNode;){if(Le===((we=Le.ownerDocument)===null||we===void 0?void 0:we.body))return null;Le=Le.parentNode}return re(Le)?Le:null}e.getShadowRoot=J;function X(){let Le=de().activeElement;for(;Le?.shadowRoot;)Le=Le.shadowRoot.activeElement;return Le}e.getActiveElement=X;function Y(Le){return X()===Le}e.isActiveElement=Y;function le(Le){return K(X(),Le)}e.isAncestorOfActiveElement=le;function de(){var Le;return(0,e.getWindowsCount)()<=1?t.mainWindow.document:(Le=Array.from((0,e.getWindows)()).map(({window:Te})=>Te.document).find(Te=>Te.hasFocus()))!==null&&Le!==void 0?Le:t.mainWindow.document}e.getActiveDocument=de;function ge(){var Le,we;return(we=(Le=de().defaultView)===null||Le===void 0?void 0:Le.window)!==null&&we!==void 0?we:t.mainWindow}e.getActiveWindow=ge;const pe=new Map;function Q(){return new U}e.createStyleSheet2=Q;class U{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(we){we!==this._currentCssStyle&&(this._currentCssStyle=we,this._styleSheet?this._styleSheet.innerText=we:this._styleSheet=Z(t.mainWindow.document.head,Te=>Te.innerText=we))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function Z(Le=t.mainWindow.document.head,we,Te){const ke=document.createElement("style");if(ke.type="text/css",ke.media="screen",we?.(ke),Le.appendChild(ke),Te&&Te.add((0,b.toDisposable)(()=>Le.removeChild(ke))),Le===t.mainWindow.document.head){const Ee=new Set;pe.set(ke,Ee);for(const{window:Re,disposables:Pe}of(0,e.getWindows)()){if(Re===t.mainWindow)continue;const He=Pe.add(H(ke,Ee,Re));Te?.add(He)}}return ke}e.createStyleSheet=Z;function H(Le,we,Te){var ke,Ee;const Re=new b.DisposableStore,Pe=Le.cloneNode(!0);Te.document.head.appendChild(Pe),Re.add((0,b.toDisposable)(()=>Te.document.head.removeChild(Pe)));for(const He of G(Le))(ke=Pe.sheet)===null||ke===void 0||ke.insertRule(He.cssText,(Ee=Pe.sheet)===null||Ee===void 0?void 0:Ee.cssRules.length);return Re.add(e.sharedMutationObserver.observe(Le,Re,{childList:!0})(()=>{Pe.textContent=Le.textContent})),we.add(Pe),Re.add((0,b.toDisposable)(()=>we.delete(Pe))),Re}e.sharedMutationObserver=new class{constructor(){this.mutationObservers=new Map}observe(Le,we,Te){let ke=this.mutationObservers.get(Le);ke||(ke=new Map,this.mutationObservers.set(Le,ke));const Ee=(0,i.hash)(Te);let Re=ke.get(Ee);if(Re)Re.users+=1;else{const Pe=new w.Emitter,He=new MutationObserver(Ze=>Pe.fire(Ze));He.observe(Le,Te);const Ue=Re={users:1,observer:He,onDidMutate:Pe.event};we.add((0,b.toDisposable)(()=>{Ue.users-=1,Ue.users===0&&(Pe.dispose(),He.disconnect(),ke?.delete(Ee),ke?.size===0&&this.mutationObservers.delete(Le))})),ke.set(Ee,Re)}return Re.onDidMutate}};let q=null;function te(){return q||(q=Z()),q}function G(Le){var we,Te;return!((we=Le?.sheet)===null||we===void 0)&&we.rules?Le.sheet.rules:!((Te=Le?.sheet)===null||Te===void 0)&&Te.cssRules?Le.sheet.cssRules:[]}function $(Le,we,Te=te()){var ke,Ee;if(!(!Te||!we)){(ke=Te.sheet)===null||ke===void 0||ke.insertRule(`${Le} {${we}}`,0);for(const Re of(Ee=pe.get(Te))!==null&&Ee!==void 0?Ee:[])$(Le,we,Re)}}e.createCSSRule=$;function oe(Le,we=te()){var Te,ke;if(!we)return;const Ee=G(we),Re=[];for(let Pe=0;Pe=0;Pe--)(Te=we.sheet)===null||Te===void 0||Te.deleteRule(Re[Pe]);for(const Pe of(ke=pe.get(we))!==null&&ke!==void 0?ke:[])oe(Le,Pe)}e.removeCSSRulesContainingSelector=oe;function ae(Le){return typeof Le.selectorText=="string"}function ue(Le){return Le instanceof MouseEvent||Le instanceof(0,e.getWindow)(Le).MouseEvent}e.isMouseEvent=ue;function ce(Le){return Le instanceof KeyboardEvent||Le instanceof(0,e.getWindow)(Le).KeyboardEvent}e.isKeyboardEvent=ce,e.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:L.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:L.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:L.isWebKit?"webkitAnimationIteration":"animationiteration"};function fe(Le){const we=Le;return!!(we&&typeof we.preventDefault=="function"&&typeof we.stopPropagation=="function")}e.isEventLike=fe,e.EventHelper={stop:(Le,we)=>(Le.preventDefault(),we&&Le.stopPropagation(),Le)};function ve(Le){const we=[];for(let Te=0;Le&&Le.nodeType===Le.ELEMENT_NODE;Te++)we[Te]=Le.scrollTop,Le=Le.parentNode;return we}e.saveParentsScrollTop=ve;function Ce(Le,we){for(let Te=0;Le&&Le.nodeType===Le.ELEMENT_NODE;Te++)Le.scrollTop!==we[Te]&&(Le.scrollTop=we[Te]),Le=Le.parentNode}e.restoreParentsScrollTop=Ce;class Se extends b.Disposable{static hasFocusWithin(we){if(we instanceof HTMLElement){const Te=J(we),ke=Te?Te.activeElement:we.ownerDocument.activeElement;return K(ke,we)}else{const Te=we;return K(Te.document.activeElement,Te.document)}}constructor(we){super(),this._onDidFocus=this._register(new w.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new w.Emitter),this.onDidBlur=this._onDidBlur.event;let Te=Se.hasFocusWithin(we),ke=!1;const Ee=()=>{ke=!1,Te||(Te=!0,this._onDidFocus.fire())},Re=()=>{Te&&(ke=!0,(we instanceof HTMLElement?(0,e.getWindow)(we):we).setTimeout(()=>{ke&&(ke=!1,Te=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{Se.hasFocusWithin(we)!==Te&&(Te?Re():Ee())},this._register(c(we,e.EventType.FOCUS,Ee,!0)),this._register(c(we,e.EventType.BLUR,Re,!0)),we instanceof HTMLElement&&(this._register(c(we,e.EventType.FOCUS_IN,()=>this._refreshStateHandler())),this._register(c(we,e.EventType.FOCUS_OUT,()=>this._refreshStateHandler())))}}function _e(Le){return new Se(Le)}e.trackFocus=_e;function Ie(Le,we){return Le.after(we),we}e.after=Ie;function Ne(Le,...we){if(Le.append(...we),we.length===1&&typeof we[0]!="string")return we[0]}e.append=Ne;function Oe(Le,we){return Le.insertBefore(we,Le.firstChild),we}e.prepend=Oe;function xe(Le,...we){Le.innerText="",Ne(Le,...we)}e.reset=xe;const We=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var ye;(function(Le){Le.HTML="http://www.w3.org/1999/xhtml",Le.SVG="http://www.w3.org/2000/svg"})(ye||(e.Namespace=ye={}));function Me(Le,we,Te,...ke){const Ee=We.exec(we);if(!Ee)throw new Error("Bad use of emmet");const Re=Ee[1]||"div";let Pe;return Le!==ye.HTML?Pe=document.createElementNS(Le,Re):Pe=document.createElement(Re),Ee[3]&&(Pe.id=Ee[3]),Ee[4]&&(Pe.className=Ee[4].replace(/\./g," ").trim()),Te&&Object.entries(Te).forEach(([He,Ue])=>{typeof Ue>"u"||(/^on\w+$/.test(He)?Pe[He]=Ue:He==="selected"?Ue&&Pe.setAttribute(He,"true"):Pe.setAttribute(He,Ue))}),Pe.append(...ke),Pe}function me(Le,we,...Te){return Me(ye.HTML,Le,we,...Te)}e.$=me,me.SVG=function(Le,we,...Te){return Me(ye.SVG,Le,we,...Te)};function be(Le,...we){Le?Ae(...we):Be(...we)}e.setVisibility=be;function Ae(...Le){for(const we of Le)we.style.display="",we.removeAttribute("aria-hidden")}e.show=Ae;function Be(...Le){for(const we of Le)we.style.display="none",we.setAttribute("aria-hidden","true")}e.hide=Be;function Ke(Le,we){const Te=Le.devicePixelRatio*we;return Math.max(1,Math.floor(Te))/Le.devicePixelRatio}e.computeScreenAwareSize=Ke;function qe(Le){t.mainWindow.open(Le,"_blank","noopener")}e.windowOpenNoOpener=qe;function Ge(Le,we){const Te=()=>{we(),ke=(0,e.scheduleAtNextAnimationFrame)(Le,Te)};let ke=(0,e.scheduleAtNextAnimationFrame)(Le,Te);return(0,b.toDisposable)(()=>ke.dispose())}e.animate=Ge,a.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(t.mainWindow.location.href)?"https":"http");function st(Le){return Le?`url('${a.FileAccess.uriToBrowserUri(Le).toString(!0).replace(/'/g,"%27")}')`:"url('')"}e.asCSSUrl=st;function Xe(Le){return`'${Le.replace(/'/g,"%27")}'`}e.asCSSPropertyValue=Xe;function ot(Le,we){if(Le!==void 0){const Te=Le.match(/^\s*var\((.+)\)$/);if(Te){const ke=Te[1].split(",",2);return ke.length===2&&(we=ot(ke[1].trim(),we)),`var(${ke[0]}, ${we})`}return Le}return we}e.asCssValueWithDefault=ot;function nt(Le,we=!1){const Te=document.createElement("a");return v.addHook("afterSanitizeAttributes",ke=>{for(const Ee of["href","src"])if(ke.hasAttribute(Ee)){const Re=ke.getAttribute(Ee);if(Ee==="href"&&Re.startsWith("#"))continue;if(Te.href=Re,!Le.includes(Te.protocol.replace(/:$/,""))){if(we&&Ee==="src"&&Te.href.startsWith("data:"))continue;ke.removeAttribute(Ee)}}}),(0,b.toDisposable)(()=>{v.removeHook("afterSanitizeAttributes")})}e.hookDomPurifyHrefAndSrcSanitizer=nt,e.basicMarkupHtmlTags=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);const rt=Object.freeze({ALLOWED_TAGS:["a","button","blockquote","code","div","h1","h2","h3","h4","h5","h6","hr","input","label","li","p","pre","select","small","span","strong","textarea","ul","ol"],ALLOWED_ATTR:["href","data-href","data-command","target","title","name","src","alt","class","id","role","tabindex","style","data-code","width","height","align","x-dispatch","required","checked","placeholder","type","start"],RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,RETURN_TRUSTED_TYPE:!0});class at extends w.Emitter{constructor(){super(),this._subscriptions=new b.DisposableStore,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(w.Event.runAndSubscribe(e.onDidRegisterWindow,({window:we,disposables:Te})=>this.registerListeners(we,Te),{window:t.mainWindow,disposables:this._subscriptions}))}registerListeners(we,Te){Te.add(c(we,"keydown",ke=>{if(ke.defaultPrevented)return;const Ee=new y.StandardKeyboardEvent(ke);if(!(Ee.keyCode===6&&ke.repeat)){if(ke.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(ke.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(ke.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(ke.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(Ee.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=ke.altKey,this._keyStatus.ctrlKey=ke.ctrlKey,this._keyStatus.metaKey=ke.metaKey,this._keyStatus.shiftKey=ke.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=ke,this.fire(this._keyStatus))}},!0)),Te.add(c(we,"keyup",ke=>{ke.defaultPrevented||(!ke.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!ke.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!ke.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!ke.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=ke.altKey,this._keyStatus.ctrlKey=ke.ctrlKey,this._keyStatus.metaKey=ke.metaKey,this._keyStatus.shiftKey=ke.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=ke,this.fire(this._keyStatus)))},!0)),Te.add(c(we.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Te.add(c(we.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Te.add(c(we.document.body,"mousemove",ke=>{ke.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),Te.add(c(we,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return at.instance||(at.instance=new at),at.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}e.ModifierKeyEmitter=at;class ut extends b.Disposable{constructor(we,Te){super(),this.element=we,this.callbacks=Te,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(c(this.element,e.EventType.DRAG_START,we=>{var Te,ke;(ke=(Te=this.callbacks).onDragStart)===null||ke===void 0||ke.call(Te,we)})),this.callbacks.onDrag&&this._register(c(this.element,e.EventType.DRAG,we=>{var Te,ke;(ke=(Te=this.callbacks).onDrag)===null||ke===void 0||ke.call(Te,we)})),this._register(c(this.element,e.EventType.DRAG_ENTER,we=>{var Te,ke;this.counter++,this.dragStartTime=we.timeStamp,(ke=(Te=this.callbacks).onDragEnter)===null||ke===void 0||ke.call(Te,we)})),this._register(c(this.element,e.EventType.DRAG_OVER,we=>{var Te,ke;we.preventDefault(),(ke=(Te=this.callbacks).onDragOver)===null||ke===void 0||ke.call(Te,we,we.timeStamp-this.dragStartTime)})),this._register(c(this.element,e.EventType.DRAG_LEAVE,we=>{var Te,ke;this.counter--,this.counter===0&&(this.dragStartTime=0,(ke=(Te=this.callbacks).onDragLeave)===null||ke===void 0||ke.call(Te,we))})),this._register(c(this.element,e.EventType.DRAG_END,we=>{var Te,ke;this.counter=0,this.dragStartTime=0,(ke=(Te=this.callbacks).onDragEnd)===null||ke===void 0||ke.call(Te,we)})),this._register(c(this.element,e.EventType.DROP,we=>{var Te,ke;this.counter=0,this.dragStartTime=0,(ke=(Te=this.callbacks).onDrop)===null||ke===void 0||ke.call(Te,we)}))}}e.DragAndDropObserver=ut;const dt=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function vt(Le,...we){let Te,ke;Array.isArray(we[0])?(Te={},ke=we[0]):(Te=we[0]||{},ke=we[1]);const Ee=dt.exec(Le);if(!Ee||!Ee.groups)throw new Error("Bad use of h");const Re=Ee.groups.tag||"div",Pe=document.createElement(Re);Ee.groups.id&&(Pe.id=Ee.groups.id);const He=[];if(Ee.groups.class)for(const Ze of Ee.groups.class.split("."))Ze!==""&&He.push(Ze);if(Te.className!==void 0)for(const Ze of Te.className.split("."))Ze!==""&&He.push(Ze);He.length>0&&(Pe.className=He.join(" "));const Ue={};if(Ee.groups.name&&(Ue[Ee.groups.name]=Pe),ke)for(const Ze of ke)Ze instanceof HTMLElement?Pe.appendChild(Ze):typeof Ze=="string"?Pe.append(Ze):"root"in Ze&&(Object.assign(Ue,Ze),Pe.appendChild(Ze.root));for(const[Ze,Ye]of Object.entries(Te))if(Ze!=="className")if(Ze==="style")for(const[$e,Fe]of Object.entries(Ye))Pe.style.setProperty(mt($e),typeof Fe=="number"?Fe+"px":""+Fe);else Ze==="tabIndex"?Pe.tabIndex=Ye:Pe.setAttribute(mt(Ze),Ye.toString());return Ue.root=Pe,Ue}e.h=vt;function mt(Le){return Le.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}),define(ne[324],se([1,0,6]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createElement=e.renderFormattedText=e.renderText=void 0;function k(a,n={}){const i=D(n);return i.textContent=a,i}e.renderText=k;function y(a,n={}){const i=D(n);return p(i,w(a,!!n.renderCodeSegments),n.actionHandler,n.renderCodeSegments),i}e.renderFormattedText=y;function D(a){const n=a.inline?"span":"div",i=document.createElement(n);return a.className&&(i.className=a.className),i}e.createElement=D;class S{constructor(n){this.source=n,this.index=0}eos(){return this.index>=this.source.length}next(){const n=this.peek();return this.advance(),n}peek(){return this.source[this.index]}advance(){this.index++}}function p(a,n,i,t){let o;if(n.type===2)o=document.createTextNode(n.content||"");else if(n.type===3)o=document.createElement("b");else if(n.type===4)o=document.createElement("i");else if(n.type===7&&t)o=document.createElement("code");else if(n.type===5&&i){const g=document.createElement("a");i.disposables.add(L.addStandardDisposableListener(g,"click",m=>{i.callback(String(n.index),m)})),o=g}else n.type===8?o=document.createElement("br"):n.type===1&&(o=a);o&&a!==o&&a.appendChild(o),o&&Array.isArray(n.children)&&n.children.forEach(g=>{p(o,g,i,t)})}function w(a,n){const i={type:1,children:[]};let t=0,o=i;const g=[],m=new S(a);for(;!m.eos();){let c=m.next();const d=c==="\\"&&b(m.peek(),n)!==0;if(d&&(c=m.next()),!d&&v(c,n)&&c===m.peek()){m.advance(),o.type===2&&(o=g.pop());const s=b(c,n);if(o.type===s||o.type===5&&s===6)o=g.pop();else{const l={type:s,children:[]};s===5&&(l.index=t,t++),o.children.push(l),g.push(o),o=l}}else if(c===` +`)o.type===2&&(o=g.pop()),o.children.push({type:8});else if(o.type!==2){const s={type:2,content:c};o.children.push(s),g.push(o),o=s}else o.content+=c}return o.type===2&&(o=g.pop()),g.length,i}function v(a,n){return b(a,n)!==0}function b(a,n){switch(a){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return n?7:0;default:return 0}}}),define(ne[159],se([1,0,6,2]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalPointerMoveMonitor=void 0;class y{constructor(){this._hooks=new k.DisposableStore,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(S,p){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const w=this._onStopCallback;this._onStopCallback=null,S&&w&&w(p)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(S,p,w,v,b){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=v,this._onStopCallback=b;let a=S;try{S.setPointerCapture(p),this._hooks.add((0,k.toDisposable)(()=>{try{S.releasePointerCapture(p)}catch{}}))}catch{a=L.getWindow(S)}this._hooks.add(L.addDisposableListener(a,L.EventType.POINTER_MOVE,n=>{if(n.buttons!==w){this.stopMonitoring(!0);return}n.preventDefault(),this._pointerMoveCallback(n)})),this._hooks.add(L.addDisposableListener(a,L.EventType.POINTER_UP,n=>this.stopMonitoring(!0)))}}e.GlobalPointerMoveMonitor=y}),define(ne[230],se([1,0,6,7,2]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PixelRatio=void 0;class D extends y.Disposable{constructor(v){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(v,!0),this._mediaQueryList=null,this._handleChange(v,!1)}_handleChange(v,b){var a;(a=this._mediaQueryList)===null||a===void 0||a.removeEventListener("change",this._listener),this._mediaQueryList=v.matchMedia(`(resolution: ${v.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),b&&this._onDidChange.fire()}}class S extends y.Disposable{get value(){return this._value}constructor(v){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(v);const b=this._register(new D(v));this._register(b.onDidChange(()=>{this._value=this._getPixelRatio(v),this._onDidChange.fire(this._value)}))}_getPixelRatio(v){const b=document.createElement("canvas").getContext("2d"),a=v.devicePixelRatio||1,n=b.webkitBackingStorePixelRatio||b.mozBackingStorePixelRatio||b.msBackingStorePixelRatio||b.oBackingStorePixelRatio||b.backingStorePixelRatio||1;return a/n}}class p{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(v){const b=(0,L.getWindowId)(v);let a=this.mapWindowIdToPixelRatioMonitor.get(b);return a||(a=(0,y.markAsSingleton)(new S(v)),this.mapWindowIdToPixelRatioMonitor.set(b,a),(0,y.markAsSingleton)(k.Event.once(L.onDidUnregisterWindow)(({vscodeWindowId:n})=>{n===b&&(a?.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(b))}))),a}getInstance(v){return this._getOrCreatePixelRatioMonitor(v)}}e.PixelRatio=new p}),define(ne[65],se([1,0,6,50,13,111,7,2,67]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Gesture=e.EventType=void 0;var v;(function(a){a.Tap="-monaco-gesturetap",a.Change="-monaco-gesturechange",a.Start="-monaco-gesturestart",a.End="-monaco-gesturesend",a.Contextmenu="-monaco-gesturecontextmenu"})(v||(e.EventType=v={}));class b extends p.Disposable{constructor(){super(),this.dispatched=!1,this.targets=new w.LinkedList,this.ignoreTargets=new w.LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(S.Event.runAndSubscribe(L.onDidRegisterWindow,({window:n,disposables:i})=>{i.add(L.addDisposableListener(n.document,"touchstart",t=>this.onTouchStart(t),{passive:!1})),i.add(L.addDisposableListener(n.document,"touchend",t=>this.onTouchEnd(n,t))),i.add(L.addDisposableListener(n.document,"touchmove",t=>this.onTouchMove(t),{passive:!1}))},{window:k.mainWindow,disposables:this._store}))}static addTarget(n){if(!b.isTouchDevice())return p.Disposable.None;b.INSTANCE||(b.INSTANCE=(0,p.markAsSingleton)(new b));const i=b.INSTANCE.targets.push(n);return(0,p.toDisposable)(i)}static ignoreTarget(n){if(!b.isTouchDevice())return p.Disposable.None;b.INSTANCE||(b.INSTANCE=(0,p.markAsSingleton)(new b));const i=b.INSTANCE.ignoreTargets.push(n);return(0,p.toDisposable)(i)}static isTouchDevice(){return"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(n){const i=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let t=0,o=n.targetTouches.length;t=b.HOLD_DELAY&&Math.abs(d.initialPageX-y.tail(d.rollingPageX))<30&&Math.abs(d.initialPageY-y.tail(d.rollingPageY))<30){const l=this.newGestureEvent(v.Contextmenu,d.initialTarget);l.pageX=y.tail(d.rollingPageX),l.pageY=y.tail(d.rollingPageY),this.dispatchEvent(l)}else if(o===1){const l=y.tail(d.rollingPageX),r=y.tail(d.rollingPageY),h=y.tail(d.rollingTimestamps)-d.rollingTimestamps[0],u=l-d.rollingPageX[0],f=r-d.rollingPageY[0],C=[...this.targets].filter(_=>d.initialTarget instanceof Node&&_.contains(d.initialTarget));this.inertia(n,C,t,Math.abs(u)/h,u>0?1:-1,l,Math.abs(f)/h,f>0?1:-1,r)}this.dispatchEvent(this.newGestureEvent(v.End,d.initialTarget)),delete this.activeTouches[c.identifier]}this.dispatched&&(i.preventDefault(),i.stopPropagation(),this.dispatched=!1)}newGestureEvent(n,i){const t=document.createEvent("CustomEvent");return t.initEvent(n,!1,!0),t.initialTarget=i,t.tapCount=0,t}dispatchEvent(n){if(n.type===v.Tap){const i=new Date().getTime();let t=0;i-this._lastSetTapCountTime>b.CLEAR_TAP_COUNT_TIME?t=1:t=2,this._lastSetTapCountTime=i,n.tapCount=t}else(n.type===v.Change||n.type===v.Contextmenu)&&(this._lastSetTapCountTime=0);if(n.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(n.initialTarget))return;for(const i of this.targets)i.contains(n.initialTarget)&&(i.dispatchEvent(n),this.dispatched=!0)}}inertia(n,i,t,o,g,m,c,d,s){this.handle=L.scheduleAtNextAnimationFrame(n,()=>{const l=Date.now(),r=l-t;let h=0,u=0,f=!0;o+=b.SCROLL_FRICTION*r,c+=b.SCROLL_FRICTION*r,o>0&&(f=!1,h=g*o*r),c>0&&(f=!1,u=d*c*r);const C=this.newGestureEvent(v.Change);C.translationX=h,C.translationY=u,i.forEach(_=>_.dispatchEvent(C)),f||this.inertia(n,i,l,o,g,m+h,c,d,s+u)})}onTouchMove(n){const i=Date.now();for(let t=0,o=n.changedTouches.length;t3&&(m.rollingPageX.shift(),m.rollingPageY.shift(),m.rollingTimestamps.shift()),m.rollingPageX.push(g.pageX),m.rollingPageY.push(g.pageY),m.rollingTimestamps.push(i)}this.dispatched&&(n.preventDefault(),n.stopPropagation(),this.dispatched=!1)}}e.Gesture=b,b.SCROLL_FRICTION=-.005,b.HOLD_DELAY=700,b.CLEAR_TAP_COUNT_TIME=400,De([D.memoize],b,"isTouchDevice",null)}),define(ne[44],se([1,0,6,415]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.status=e.alert=e.setARIAContainer=void 0;const k=2e4;let y,D,S,p,w;function v(i){y=document.createElement("div"),y.className="monaco-aria-container";const t=()=>{const g=document.createElement("div");return g.className="monaco-alert",g.setAttribute("role","alert"),g.setAttribute("aria-atomic","true"),y.appendChild(g),g};D=t(),S=t();const o=()=>{const g=document.createElement("div");return g.className="monaco-status",g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true"),y.appendChild(g),g};p=o(),w=o(),i.appendChild(y)}e.setARIAContainer=v;function b(i){y&&(D.textContent!==i?(L.clearNode(S),n(D,i)):(L.clearNode(D),n(S,i)))}e.alert=b;function a(i){y&&(p.textContent!==i?(L.clearNode(w),n(p,i)):(L.clearNode(p),n(w,i)))}e.status=a;function n(i,t){L.clearNode(i),t.length>k&&(t=t.substr(0,k)),i.textContent=t,i.style.visibility="hidden",i.style.visibility="visible"}}),define(ne[325],se([1,0,225,6,2,17,175,419]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextView=e.layout=e.LayoutAnchorMode=e.isAnchor=void 0;function p(n){const i=n;return!!i&&typeof i.x=="number"&&typeof i.y=="number"}e.isAnchor=p;var w;(function(n){n[n.AVOID=0]="AVOID",n[n.ALIGN=1]="ALIGN"})(w||(e.LayoutAnchorMode=w={}));function v(n,i,t){const o=t.mode===w.ALIGN?t.offset:t.offset+t.size,g=t.mode===w.ALIGN?t.offset+t.size:t.offset;return t.position===0?i<=n-o?o:i<=g?g-i:Math.max(n-i,0):i<=g?g-i:i<=n-o?o:0}e.layout=v;class b extends y.Disposable{constructor(i,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=y.Disposable.None,this.toDisposeOnSetContainer=y.Disposable.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=k.$(".context-view"),k.hide(this.view),this.setContainer(i,t),this._register((0,y.toDisposable)(()=>this.setContainer(null,1)))}setContainer(i,t){var o;this.useFixedPosition=t!==1;const g=this.useShadowDOM;if(this.useShadowDOM=t===3,!(i===this.container&&g===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,(o=this.shadowRootHostElement)===null||o===void 0||o.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),i)){if(this.container=i,this.useShadowDOM){this.shadowRootHostElement=k.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const c=document.createElement("style");c.textContent=a,this.shadowRoot.appendChild(c),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(k.$("slot"))}else this.container.appendChild(this.view);const m=new y.DisposableStore;b.BUBBLE_UP_EVENTS.forEach(c=>{m.add(k.addStandardDisposableListener(this.container,c,d=>{this.onDOMEvent(d,!1)}))}),b.BUBBLE_DOWN_EVENTS.forEach(c=>{m.add(k.addStandardDisposableListener(this.container,c,d=>{this.onDOMEvent(d,!0)},!0))}),this.toDisposeOnSetContainer=m}}show(i){var t,o;this.isVisible()&&this.hide(),k.clearNode(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2575",this.view.style.position=this.useFixedPosition?"fixed":"absolute",k.show(this.view),this.toDisposeOnClean=i.render(this.view)||y.Disposable.None,this.delegate=i,this.doLayout(),(o=(t=this.delegate).focus)===null||o===void 0||o.call(t)}getViewElement(){return this.view}layout(){var i,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(D.isIOS&&L.BrowserFeatures.pointerEvents)){this.hide();return}(t=(i=this.delegate)===null||i===void 0?void 0:i.layout)===null||t===void 0||t.call(i),this.doLayout()}}doLayout(){if(!this.isVisible())return;const i=this.delegate.getAnchor();let t;if(i instanceof HTMLElement){const u=k.getDomNodePagePosition(i),f=k.getDomNodeZoomLevel(i);t={top:u.top*f,left:u.left*f,width:u.width*f,height:u.height*f}}else p(i)?t={top:i.y,left:i.x,width:i.width||1,height:i.height||2}:t={top:i.posy,left:i.posx,width:2,height:2};const o=k.getTotalWidth(this.view),g=k.getTotalHeight(this.view),m=this.delegate.anchorPosition||0,c=this.delegate.anchorAlignment||0,d=this.delegate.anchorAxisAlignment||0;let s,l;const r=k.getActiveWindow();if(d===0){const u={offset:t.top-r.pageYOffset,size:t.height,position:m===0?0:1},f={offset:t.left,size:t.width,position:c===0?0:1,mode:w.ALIGN};s=v(r.innerHeight,g,u)+r.pageYOffset,S.Range.intersects({start:s,end:s+g},{start:u.offset,end:u.offset+u.size})&&(f.mode=w.AVOID),l=v(r.innerWidth,o,f)}else{const u={offset:t.left,size:t.width,position:c===0?0:1},f={offset:t.top,size:t.height,position:m===0?0:1,mode:w.ALIGN};l=v(r.innerWidth,o,u),S.Range.intersects({start:l,end:l+o},{start:u.offset,end:u.offset+u.size})&&(f.mode=w.AVOID),s=v(r.innerHeight,g,f)+r.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(m===0?"bottom":"top"),this.view.classList.add(c===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const h=k.getDomNodePagePosition(this.container);this.view.style.top=`${s-(this.useFixedPosition?k.getDomNodePagePosition(this.view).top:h.top)}px`,this.view.style.left=`${l-(this.useFixedPosition?k.getDomNodePagePosition(this.view).left:h.left)}px`,this.view.style.width="initial"}hide(i){const t=this.delegate;this.delegate=null,t?.onHide&&t.onHide(i),this.toDisposeOnClean.dispose(),k.hide(this.view)}isVisible(){return!!this.delegate}onDOMEvent(i,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(i,k.getWindow(i).document.activeElement):t&&!k.isAncestor(i.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}e.ContextView=b,b.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],b.BUBBLE_DOWN_EVENTS=["click"];const a=` + :host { + all: initial; /* 1st rule so subsequent properties are reset. */ + } + + .codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + } + + :host { + font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; + } + + :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } + :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } + :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } + :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } + :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } + + :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } + :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } + :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } + :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } + :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } + + :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } + :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } +`}),define(ne[326],se([1,0,6,11,420]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CountBadge=void 0;class y{constructor(S,p,w){this.options=p,this.styles=w,this.count=0,this.element=(0,L.append)(S,(0,L.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(S){this.count=S,this.render()}setTitleFormat(S){this.titleFormat=S,this.render()}render(){var S,p;this.element.textContent=(0,k.format)(this.countFormat,this.count),this.element.title=(0,k.format)(this.titleFormat,this.count),this.element.style.backgroundColor=(S=this.styles.badgeBackground)!==null&&S!==void 0?S:"",this.element.style.color=(p=this.styles.badgeForeground)!==null&&p!==void 0?p:"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}e.CountBadge=y}),define(ne[598],se([1,0,6,46,65,42,7,281]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenu=void 0;class p extends D.ActionRunner{constructor(b,a){super(),this._onDidChangeVisibility=this._register(new S.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=(0,L.append)(b,(0,L.$)(".monaco-dropdown")),this._label=(0,L.append)(this._element,(0,L.$)(".dropdown-label"));let n=a.labelRenderer;n||(n=t=>(t.textContent=a.label||"",null));for(const t of[L.EventType.CLICK,L.EventType.MOUSE_DOWN,y.EventType.Tap])this._register((0,L.addDisposableListener)(this.element,t,o=>L.EventHelper.stop(o,!0)));for(const t of[L.EventType.MOUSE_DOWN,y.EventType.Tap])this._register((0,L.addDisposableListener)(this._label,t,o=>{(0,L.isMouseEvent)(o)&&(o.detail>1||o.button!==0)||(this.visible?this.hide():this.show())}));this._register((0,L.addDisposableListener)(this._label,L.EventType.KEY_UP,t=>{const o=new k.StandardKeyboardEvent(t);(o.equals(3)||o.equals(10))&&(L.EventHelper.stop(t,!0),this.visible?this.hide():this.show())}));const i=n(this._label);i&&this._register(i),this._register(y.Gesture.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class w extends p{constructor(b,a){super(b,a),this._options=a,this._actions=[],this.actions=a.actions||[]}set menuOptions(b){this._menuOptions=b}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(b){this._actions=b}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(b,a)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(b,a):void 0,getKeyBinding:b=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(b):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}e.DropdownMenu=w}),define(ne[104],se([1,0,6,29]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderIcon=e.renderLabelWithIcons=void 0;const y=new RegExp(`(\\\\)?\\$\\((${k.ThemeIcon.iconNameExpression}(?:${k.ThemeIcon.iconModifierExpression})?)\\)`,"g");function D(p){const w=new Array;let v,b=0,a=0;for(;(v=y.exec(p))!==null;){a=v.index||0,b{b=a===`\r +`?-1:0,n+=v;for(const i of w)i.end<=n||(i.start>=n&&(i.start+=b),i.end>=n&&(i.end+=b));return v+=b,"\u23CE"})}}e.HighlightedLabel=D}),define(ne[190],se([1,0,6,224,54,583,424]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeybindingLabel=e.unthemedKeybindingLabelOptions=void 0;const S=L.$;e.unthemedKeybindingLabelOptions={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class p{constructor(v,b,a){this.os=b,this.keyElements=new Set,this.options=a||Object.create(null);const n=this.options.keybindingLabelForeground;this.domNode=L.append(v,S(".monaco-keybinding")),n&&(this.domNode.style.color=n),this.didEverRender=!1,v.appendChild(this.domNode)}get element(){return this.domNode}set(v,b){this.didEverRender&&this.keybinding===v&&p.areSame(this.matches,b)||(this.keybinding=v,this.matches=b,this.render())}render(){var v;if(this.clear(),this.keybinding){const b=this.keybinding.getChords();b[0]&&this.renderChord(this.domNode,b[0],this.matches?this.matches.firstPart:null);for(let n=1;n{for(const w of S)this.getRenderer(p).disposeTemplate(w.templateData),w.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(S){const p=this.renderers.get(S);if(!p)throw new Error(`No renderer found for ${S}`);return p}}e.RowCache=y}),define(ne[600],se([1,0,6,15,2,426]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressBar=void 0;const D="done",S="active",p="infinite",w="infinite-long-running",v="discrete";class b extends y.Disposable{constructor(n,i){super(),this.workedVal=0,this.showDelayedScheduler=this._register(new k.RunOnceScheduler(()=>(0,L.show)(this.element),0)),this.longRunningScheduler=this._register(new k.RunOnceScheduler(()=>this.infiniteLongRunning(),b.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(n,i)}create(n,i){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),n.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=i?.progressBarBackground||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(S,p,w,v),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(n){return this.element.classList.add(D),this.element.classList.contains(p)?(this.bit.style.opacity="0",n?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",n?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(v,D,w),this.element.classList.add(S,p),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(w)}getContainer(){return this.element}}e.ProgressBar=b,b.LONG_RUNNING_INFINITE_THRESHOLD=1e4}),define(ne[160],se([1,0,6,84,65,15,111,7,2,17,427]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Sash=e.OrthogonalEdge=void 0;const b=!1;var a;(function(l){l.North="north",l.South="south",l.East="east",l.West="west"})(a||(e.OrthogonalEdge=a={}));let n=4;const i=new p.Emitter;let t=300;const o=new p.Emitter;class g{constructor(r){this.el=r,this.disposables=new w.DisposableStore}get onPointerMove(){return this.disposables.add(new k.DomEmitter((0,L.getWindow)(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter((0,L.getWindow)(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}De([S.memoize],g.prototype,"onPointerMove",null),De([S.memoize],g.prototype,"onPointerUp",null);class m{get onPointerMove(){return this.disposables.add(new k.DomEmitter(this.el,y.EventType.Change)).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter(this.el,y.EventType.End)).event}constructor(r){this.el=r,this.disposables=new w.DisposableStore}dispose(){this.disposables.dispose()}}De([S.memoize],m.prototype,"onPointerMove",null),De([S.memoize],m.prototype,"onPointerUp",null);class c{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(r){this.factory=r}dispose(){}}De([S.memoize],c.prototype,"onPointerMove",null),De([S.memoize],c.prototype,"onPointerUp",null);const d="pointer-events-disabled";class s extends w.Disposable{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(r){this._state!==r&&(this.el.classList.toggle("disabled",r===0),this.el.classList.toggle("minimum",r===1),this.el.classList.toggle("maximum",r===2),this._state=r,this.onDidEnablementChange.fire(r))}set orthogonalStartSash(r){if(this._orthogonalStartSash!==r){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),r){const h=u=>{this.orthogonalStartDragHandleDisposables.clear(),u!==0&&(this._orthogonalStartDragHandle=(0,L.append)(this.el,(0,L.$)(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add((0,w.toDisposable)(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseenter")).event(()=>s.onMouseEnter(r),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseleave")).event(()=>s.onMouseLeave(r),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(r.onDidEnablementChange.event(h,this)),h(r.state)}this._orthogonalStartSash=r}}set orthogonalEndSash(r){if(this._orthogonalEndSash!==r){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),r){const h=u=>{this.orthogonalEndDragHandleDisposables.clear(),u!==0&&(this._orthogonalEndDragHandle=(0,L.append)(this.el,(0,L.$)(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add((0,w.toDisposable)(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseenter")).event(()=>s.onMouseEnter(r),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseleave")).event(()=>s.onMouseLeave(r),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(r.onDidEnablementChange.event(h,this)),h(r.state)}this._orthogonalEndSash=r}}constructor(r,h,u){super(),this.hoverDelay=t,this.hoverDelayer=this._register(new D.Delayer(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new p.Emitter),this._onDidStart=this._register(new p.Emitter),this._onDidChange=this._register(new p.Emitter),this._onDidReset=this._register(new p.Emitter),this._onDidEnd=this._register(new p.Emitter),this.orthogonalStartSashDisposables=this._register(new w.DisposableStore),this.orthogonalStartDragHandleDisposables=this._register(new w.DisposableStore),this.orthogonalEndSashDisposables=this._register(new w.DisposableStore),this.orthogonalEndDragHandleDisposables=this._register(new w.DisposableStore),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=(0,L.append)(r,(0,L.$)(".monaco-sash")),u.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${u.orthogonalEdge}`),v.isMacintosh&&this.el.classList.add("mac");const f=this._register(new k.DomEmitter(this.el,"mousedown")).event;this._register(f(R=>this.onPointerStart(R,new g(r)),this));const C=this._register(new k.DomEmitter(this.el,"dblclick")).event;this._register(C(this.onPointerDoublePress,this));const _=this._register(new k.DomEmitter(this.el,"mouseenter")).event;this._register(_(()=>s.onMouseEnter(this)));const E=this._register(new k.DomEmitter(this.el,"mouseleave")).event;this._register(E(()=>s.onMouseLeave(this))),this._register(y.Gesture.addTarget(this.el));const I=this._register(new k.DomEmitter(this.el,y.EventType.Start)).event;this._register(I(R=>this.onPointerStart(R,new m(this.el)),this));const T=this._register(new k.DomEmitter(this.el,y.EventType.Tap)).event;let A;this._register(T(R=>{if(A){clearTimeout(A),A=void 0,this.onPointerDoublePress(R);return}clearTimeout(A),A=setTimeout(()=>A=void 0,250)},this)),typeof u.size=="number"?(this.size=u.size,u.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=n,this._register(i.event(R=>{this.size=R,this.layout()}))),this._register(o.event(R=>this.hoverDelay=R)),this.layoutProvider=h,this.orthogonalStartSash=u.orthogonalStartSash,this.orthogonalEndSash=u.orthogonalEndSash,this.orientation=u.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",b),this.layout()}onPointerStart(r,h){L.EventHelper.stop(r);let u=!1;if(!r.__orthogonalSashEvent){const P=this.getOrthogonalSash(r);P&&(u=!0,r.__orthogonalSashEvent=!0,P.onPointerStart(r,new c(h)))}if(this.linkedSash&&!r.__linkedSashEvent&&(r.__linkedSashEvent=!0,this.linkedSash.onPointerStart(r,new c(h))),!this.state)return;const f=this.el.ownerDocument.getElementsByTagName("iframe");for(const P of f)P.classList.add(d);const C=r.pageX,_=r.pageY,E=r.altKey,I={startX:C,currentX:C,startY:_,currentY:_,altKey:E};this.el.classList.add("active"),this._onDidStart.fire(I);const T=(0,L.createStyleSheet)(this.el),A=()=>{let P="";u?P="all-scroll":this.orientation===1?this.state===1?P="s-resize":this.state===2?P="n-resize":P=v.isMacintosh?"row-resize":"ns-resize":this.state===1?P="e-resize":this.state===2?P="w-resize":P=v.isMacintosh?"col-resize":"ew-resize",T.textContent=`* { cursor: ${P} !important; }`},R=new w.DisposableStore;A(),u||this.onDidEnablementChange.event(A,null,R);const M=P=>{L.EventHelper.stop(P,!1);const F={startX:C,currentX:P.pageX,startY:_,currentY:P.pageY,altKey:E};this._onDidChange.fire(F)},N=P=>{L.EventHelper.stop(P,!1),this.el.removeChild(T),this.el.classList.remove("active"),this._onDidEnd.fire(),R.dispose();for(const F of f)F.classList.remove(d)};h.onPointerMove(M,null,R),h.onPointerUp(N,null,R),R.add(h)}onPointerDoublePress(r){const h=this.getOrthogonalSash(r);h&&h._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(r,h=!1){r.el.classList.contains("active")?(r.hoverDelayer.cancel(),r.el.classList.add("hover")):r.hoverDelayer.trigger(()=>r.el.classList.add("hover"),r.hoverDelay).then(void 0,()=>{}),!h&&r.linkedSash&&s.onMouseEnter(r.linkedSash,!0)}static onMouseLeave(r,h=!1){r.hoverDelayer.cancel(),r.el.classList.remove("hover"),!h&&r.linkedSash&&s.onMouseLeave(r.linkedSash,!0)}clearSashHoverState(){s.onMouseLeave(this)}layout(){if(this.orientation===0){const r=this.layoutProvider;this.el.style.left=r.getVerticalSashLeft(this)-this.size/2+"px",r.getVerticalSashTop&&(this.el.style.top=r.getVerticalSashTop(this)+"px"),r.getVerticalSashHeight&&(this.el.style.height=r.getVerticalSashHeight(this)+"px")}else{const r=this.layoutProvider;this.el.style.top=r.getHorizontalSashTop(this)-this.size/2+"px",r.getHorizontalSashLeft&&(this.el.style.left=r.getHorizontalSashLeft(this)+"px"),r.getHorizontalSashWidth&&(this.el.style.width=r.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(r){var h;const u=(h=r.initialTarget)!==null&&h!==void 0?h:r.target;if(!(!u||!(u instanceof HTMLElement))&&u.classList.contains("orthogonal-drag-handle"))return u.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}e.Sash=s}),define(ne[231],se([1,0,6,160,7,2]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableHTMLElement=void 0;class S{constructor(){this._onDidWillResize=new y.Emitter,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new y.Emitter,this.onDidResize=this._onDidResize.event,this._sashListener=new D.DisposableStore,this._size=new L.Dimension(0,0),this._minSize=new L.Dimension(0,0),this._maxSize=new L.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:k.OrthogonalEdge.North}),this._southSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:k.OrthogonalEdge.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let w,v=0,b=0;this._sashListener.add(y.Event.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{w===void 0&&(this._onDidWillResize.fire(),w=this._size,v=0,b=0)})),this._sashListener.add(y.Event.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{w!==void 0&&(w=void 0,v=0,b=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(a=>{w&&(b=a.currentX-a.startX,this.layout(w.height+v,w.width+b),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(a=>{w&&(b=-(a.currentX-a.startX),this.layout(w.height+v,w.width+b),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(a=>{w&&(v=-(a.currentY-a.startY),this.layout(w.height+v,w.width+b),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(a=>{w&&(v=a.currentY-a.startY,this.layout(w.height+v,w.width+b),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(y.Event.any(this._eastSash.onDidReset,this._westSash.onDidReset)(a=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(y.Event.any(this._northSash.onDidReset,this._southSash.onDidReset)(a=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(w,v,b,a){this._northSash.state=w?3:0,this._eastSash.state=v?3:0,this._southSash.state=b?3:0,this._westSash.state=a?3:0}layout(w=this.size.height,v=this.size.width){const{height:b,width:a}=this._minSize,{height:n,width:i}=this._maxSize;w=Math.max(b,Math.min(n,w)),v=Math.max(a,Math.min(i,v));const t=new L.Dimension(v,w);L.Dimension.equals(t,this._size)||(this.domNode.style.height=w+"px",this.domNode.style.width=v+"px",this._size=t,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(w){this._maxSize=w}get maxSize(){return this._maxSize}set minSize(w){this._minSize=w}get minSize(){return this._minSize}set preferredSize(w){this._preferredSize=w}get preferredSize(){return this._preferredSize}}e.ResizableHTMLElement=S}),define(ne[601],se([1,0,6,65,13,7,2,17]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectBoxNative=void 0;class w extends S.Disposable{constructor(b,a,n,i){super(),this.selected=0,this.selectBoxOptions=i||Object.create(null),this.options=[],this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new D.Emitter),this.styles=n,this.registerListeners(),this.setOptions(b,a)}registerListeners(){this._register(k.Gesture.addTarget(this.selectElement)),[k.EventType.Tap].forEach(b=>{this._register(L.addDisposableListener(this.selectElement,b,a=>{this.selectElement.focus()}))}),this._register(L.addStandardDisposableListener(this.selectElement,"click",b=>{L.EventHelper.stop(b,!0)})),this._register(L.addStandardDisposableListener(this.selectElement,"change",b=>{this.selectElement.title=b.target.value,this._onDidSelect.fire({index:b.target.selectedIndex,selected:b.target.value})})),this._register(L.addStandardDisposableListener(this.selectElement,"keydown",b=>{let a=!1;p.isMacintosh?(b.keyCode===18||b.keyCode===16||b.keyCode===10)&&(a=!0):(b.keyCode===18&&b.altKey||b.keyCode===10||b.keyCode===3)&&(a=!0),a&&b.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(b,a){(!this.options||!y.equals(this.options,b))&&(this.options=b,this.selectElement.options.length=0,this.options.forEach((n,i)=>{this.selectElement.add(this.createOption(n.text,i,n.isDisabled))})),a!==void 0&&this.select(a)}select(b){this.options.length===0?this.selected=0:b>=0&&bthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selectedb(new y.StandardMouseEvent(L.getWindow(v),a))))}onmousedown(v,b){this._register(L.addDisposableListener(v,L.EventType.MOUSE_DOWN,a=>b(new y.StandardMouseEvent(L.getWindow(v),a))))}onmouseover(v,b){this._register(L.addDisposableListener(v,L.EventType.MOUSE_OVER,a=>b(new y.StandardMouseEvent(L.getWindow(v),a))))}onmouseleave(v,b){this._register(L.addDisposableListener(v,L.EventType.MOUSE_LEAVE,a=>b(new y.StandardMouseEvent(L.getWindow(v),a))))}onkeydown(v,b){this._register(L.addDisposableListener(v,L.EventType.KEY_DOWN,a=>b(new k.StandardKeyboardEvent(a))))}onkeyup(v,b){this._register(L.addDisposableListener(v,L.EventType.KEY_UP,a=>b(new k.StandardKeyboardEvent(a))))}oninput(v,b){this._register(L.addDisposableListener(v,L.EventType.INPUT,b))}onblur(v,b){this._register(L.addDisposableListener(v,L.EventType.BLUR,b))}onfocus(v,b){this._register(L.addDisposableListener(v,L.EventType.FOCUS,b))}ignoreGesture(v){return D.Gesture.ignoreTarget(v)}}e.Widget=p}),define(ne[232],se([1,0,159,77,15,29,6]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarArrow=e.ARROW_IMG_SIZE=void 0,e.ARROW_IMG_SIZE=11;class p extends k.Widget{constructor(v){super(),this._onActivate=v.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=v.bgWidth+"px",this.bgDomNode.style.height=v.bgHeight+"px",typeof v.top<"u"&&(this.bgDomNode.style.top="0px"),typeof v.left<"u"&&(this.bgDomNode.style.left="0px"),typeof v.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof v.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=v.className,this.domNode.classList.add(...D.ThemeIcon.asClassNameArray(v.icon)),this.domNode.style.position="absolute",this.domNode.style.width=e.ARROW_IMG_SIZE+"px",this.domNode.style.height=e.ARROW_IMG_SIZE+"px",typeof v.top<"u"&&(this.domNode.style.top=v.top+"px"),typeof v.left<"u"&&(this.domNode.style.left=v.left+"px"),typeof v.bottom<"u"&&(this.domNode.style.bottom=v.bottom+"px"),typeof v.right<"u"&&(this.domNode.style.right=v.right+"px"),this._pointerMoveMonitor=this._register(new L.GlobalPointerMoveMonitor),this._register(S.addStandardDisposableListener(this.bgDomNode,S.EventType.POINTER_DOWN,b=>this._arrowPointerDown(b))),this._register(S.addStandardDisposableListener(this.domNode,S.EventType.POINTER_DOWN,b=>this._arrowPointerDown(b))),this._pointerdownRepeatTimer=this._register(new S.WindowIntervalTimer),this._pointerdownScheduleRepeatTimer=this._register(new y.TimeoutTimer)}_arrowPointerDown(v){if(!v.target||!(v.target instanceof Element))return;const b=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,S.getWindow(v))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(b,200),this._pointerMoveMonitor.startMonitoring(v.target,v.pointerId,v.buttons,a=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),v.preventDefault()}}e.ScrollbarArrow=p}),define(ne[328],se([1,0,6,41,159,232,593,77,17]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractScrollbar=void 0;const v=140;class b extends p.Widget{constructor(n){super(),this._lazyRender=n.lazyRender,this._host=n.host,this._scrollable=n.scrollable,this._scrollByPage=n.scrollByPage,this._scrollbarState=n.scrollbarState,this._visibilityController=this._register(new S.ScrollbarVisibilityController(n.visibility,"visible scrollbar "+n.extraScrollbarClassName,"invisible scrollbar "+n.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new y.GlobalPointerMoveMonitor),this._shouldRender=!0,this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(L.addDisposableListener(this.domNode.domNode,L.EventType.POINTER_DOWN,i=>this._domNodePointerDown(i)))}_createArrow(n){const i=this._register(new D.ScrollbarArrow(n));this.domNode.domNode.appendChild(i.bgDomNode),this.domNode.domNode.appendChild(i.domNode)}_createSlider(n,i,t,o){this.slider=(0,k.createFastDomNode)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(n),this.slider.setLeft(i),typeof t=="number"&&this.slider.setWidth(t),typeof o=="number"&&this.slider.setHeight(o),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(L.addDisposableListener(this.slider.domNode,L.EventType.POINTER_DOWN,g=>{g.button===0&&(g.preventDefault(),this._sliderPointerDown(g))})),this.onclick(this.slider.domNode,g=>{g.leftButton&&g.stopPropagation()})}_onElementSize(n){return this._scrollbarState.setVisibleSize(n)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(n){return this._scrollbarState.setScrollSize(n)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(n){return this._scrollbarState.setScrollPosition(n)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(n){n.target===this.domNode.domNode&&this._onPointerDown(n)}delegatePointerDown(n){const i=this.domNode.domNode.getClientRects()[0].top,t=i+this._scrollbarState.getSliderPosition(),o=i+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),g=this._sliderPointerPosition(n);t<=g&&g<=o?n.button===0&&(n.preventDefault(),this._sliderPointerDown(n)):this._onPointerDown(n)}_onPointerDown(n){let i,t;if(n.target===this.domNode.domNode&&typeof n.offsetX=="number"&&typeof n.offsetY=="number")i=n.offsetX,t=n.offsetY;else{const g=L.getDomNodePagePosition(this.domNode.domNode);i=n.pageX-g.left,t=n.pageY-g.top}const o=this._pointerDownRelativePosition(i,t);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(o):this._scrollbarState.getDesiredScrollPositionFromOffset(o)),n.button===0&&(n.preventDefault(),this._sliderPointerDown(n))}_sliderPointerDown(n){if(!n.target||!(n.target instanceof Element))return;const i=this._sliderPointerPosition(n),t=this._sliderOrthogonalPointerPosition(n),o=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(n.target,n.pointerId,n.buttons,g=>{const m=this._sliderOrthogonalPointerPosition(g),c=Math.abs(m-t);if(w.isWindows&&c>v){this._setDesiredScrollPositionNow(o.getScrollPosition());return}const s=this._sliderPointerPosition(g)-i;this._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(s))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(n){const i={};this.writeScrollPosition(i,n),this._scrollable.setScrollPositionNow(i)}updateScrollbarSize(n){this._updateScrollbarSize(n),this._scrollbarState.setScrollbarSize(n),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}e.AbstractScrollbar=b}),define(ne[602],se([1,0,69,328,232,203,27]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HorizontalScrollbar=void 0;class p extends k.AbstractScrollbar{constructor(v,b,a){const n=v.getScrollDimensions(),i=v.getCurrentScrollPosition();if(super({lazyRender:b.lazyRender,host:a,scrollbarState:new D.ScrollbarState(b.horizontalHasArrows?b.arrowSize:0,b.horizontal===2?0:b.horizontalScrollbarSize,b.vertical===2?0:b.verticalScrollbarSize,n.width,n.scrollWidth,i.scrollLeft),visibility:b.horizontal,extraScrollbarClassName:"horizontal",scrollable:v,scrollByPage:b.scrollByPage}),b.horizontalHasArrows){const t=(b.arrowSize-y.ARROW_IMG_SIZE)/2,o=(b.horizontalScrollbarSize-y.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:S.Codicon.scrollbarButtonLeft,top:o,left:t,bottom:void 0,right:void 0,bgWidth:b.arrowSize,bgHeight:b.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new L.StandardWheelEvent(null,1,0))}),this._createArrow({className:"scra",icon:S.Codicon.scrollbarButtonRight,top:o,left:void 0,bottom:void 0,right:t,bgWidth:b.arrowSize,bgHeight:b.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new L.StandardWheelEvent(null,-1,0))})}this._createSlider(Math.floor((b.horizontalScrollbarSize-b.horizontalSliderSize)/2),0,void 0,b.horizontalSliderSize)}_updateSlider(v,b){this.slider.setWidth(v),this.slider.setLeft(b)}_renderDomNode(v,b){this.domNode.setWidth(v),this.domNode.setHeight(b),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(v){return this._shouldRender=this._onElementScrollSize(v.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(v.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(v.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(v,b){return v}_sliderPointerPosition(v){return v.pageX}_sliderOrthogonalPointerPosition(v){return v.pageY}_updateScrollbarSize(v){this.slider.setHeight(v)}writeScrollPosition(v,b){v.scrollLeft=b}updateOptions(v){this.updateScrollbarSize(v.horizontal===2?0:v.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(v.vertical===2?0:v.verticalScrollbarSize),this._visibilityController.setVisibility(v.horizontal),this._scrollByPage=v.scrollByPage}}e.HorizontalScrollbar=p}),define(ne[603],se([1,0,69,328,232,203,27]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VerticalScrollbar=void 0;class p extends k.AbstractScrollbar{constructor(v,b,a){const n=v.getScrollDimensions(),i=v.getCurrentScrollPosition();if(super({lazyRender:b.lazyRender,host:a,scrollbarState:new D.ScrollbarState(b.verticalHasArrows?b.arrowSize:0,b.vertical===2?0:b.verticalScrollbarSize,0,n.height,n.scrollHeight,i.scrollTop),visibility:b.vertical,extraScrollbarClassName:"vertical",scrollable:v,scrollByPage:b.scrollByPage}),b.verticalHasArrows){const t=(b.arrowSize-y.ARROW_IMG_SIZE)/2,o=(b.verticalScrollbarSize-y.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:S.Codicon.scrollbarButtonUp,top:t,left:o,bottom:void 0,right:void 0,bgWidth:b.verticalScrollbarSize,bgHeight:b.arrowSize,onActivate:()=>this._host.onMouseWheel(new L.StandardWheelEvent(null,0,1))}),this._createArrow({className:"scra",icon:S.Codicon.scrollbarButtonDown,top:void 0,left:o,bottom:t,right:void 0,bgWidth:b.verticalScrollbarSize,bgHeight:b.arrowSize,onActivate:()=>this._host.onMouseWheel(new L.StandardWheelEvent(null,0,-1))})}this._createSlider(0,Math.floor((b.verticalScrollbarSize-b.verticalSliderSize)/2),b.verticalSliderSize,void 0)}_updateSlider(v,b){this.slider.setHeight(v),this.slider.setTop(b)}_renderDomNode(v,b){this.domNode.setWidth(b),this.domNode.setHeight(v),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(v){return this._shouldRender=this._onElementScrollSize(v.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(v.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(v.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(v,b){return b}_sliderPointerPosition(v){return v.pageY}_sliderOrthogonalPointerPosition(v){return v.pageX}_updateScrollbarSize(v){this.slider.setWidth(v)}writeScrollPosition(v,b){v.scrollTop=b}updateOptions(v){this.updateScrollbarSize(v.vertical===2?0:v.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(v.vertical),this._scrollByPage=v.scrollByPage}}e.VerticalScrollbar=p}),define(ne[78],se([1,0,59,6,41,69,602,603,77,15,7,2,17,151,428]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomScrollableElement=e.SmoothScrollableElement=e.ScrollableElement=e.AbstractScrollableElement=e.MouseWheelClassifier=void 0;const t=500,o=50,g=!0;class m{constructor(f,C,_){this.timestamp=f,this.deltaX=C,this.deltaY=_,this.score=0}}class c{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let f=1,C=0,_=1,E=this._rear;do{const I=E===this._front?f:Math.pow(2,-_);if(f-=I,C+=this._memory[E].score*I,E===this._front)break;E=(this._capacity+E-1)%this._capacity,_++}while(!0);return C<=.5}acceptStandardWheelEvent(f){if(L.isChrome){const C=k.getWindow(f.browserEvent),_=(0,L.getZoomFactor)(C);this.accept(Date.now(),f.deltaX*_,f.deltaY*_)}else this.accept(Date.now(),f.deltaX,f.deltaY)}accept(f,C,_){const E=new m(f,C,_);E.score=this._computeScore(E),this._front===-1&&this._rear===-1?(this._memory[0]=E,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=E)}_computeScore(f){if(Math.abs(f.deltaX)>0&&Math.abs(f.deltaY)>0)return 1;let C=.5;const _=this._front===-1&&this._rear===-1?null:this._memory[this._rear];return(!this._isAlmostInt(f.deltaX)||!this._isAlmostInt(f.deltaY))&&(C+=.25),Math.min(Math.max(C,0),1)}_isAlmostInt(f){return Math.abs(Math.round(f)-f)<.01}}e.MouseWheelClassifier=c,c.INSTANCE=new c;class d extends w.Widget{get options(){return this._options}constructor(f,C,_){super(),this._onScroll=this._register(new b.Emitter),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new b.Emitter),f.style.overflow="hidden",this._options=h(C),this._scrollable=_,this._register(this._scrollable.onScroll(I=>{this._onWillScroll.fire(I),this._onDidScroll(I),this._onScroll.fire(I)}));const E={onMouseWheel:I=>this._onMouseWheel(I),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new p.VerticalScrollbar(this._scrollable,this._options,E)),this._horizontalScrollbar=this._register(new S.HorizontalScrollbar(this._scrollable,this._options,E)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(f),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,y.createFastDomNode)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,y.createFastDomNode)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,y.createFastDomNode)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,I=>this._onMouseOver(I)),this.onmouseleave(this._listenOnDomNode,I=>this._onMouseLeave(I)),this._hideTimeout=this._register(new v.TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=(0,a.dispose)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(f){this._verticalScrollbar.delegatePointerDown(f)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(f){this._scrollable.setScrollDimensions(f,!1)}updateClassName(f){this._options.className=f,n.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(f){typeof f.handleMouseWheel<"u"&&(this._options.handleMouseWheel=f.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof f.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=f.mouseWheelScrollSensitivity),typeof f.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=f.fastScrollSensitivity),typeof f.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=f.scrollPredominantAxis),typeof f.horizontal<"u"&&(this._options.horizontal=f.horizontal),typeof f.vertical<"u"&&(this._options.vertical=f.vertical),typeof f.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=f.horizontalScrollbarSize),typeof f.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=f.verticalScrollbarSize),typeof f.scrollByPage<"u"&&(this._options.scrollByPage=f.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(f){this._onMouseWheel(new D.StandardWheelEvent(f))}_setListeningToMouseWheel(f){if(this._mouseWheelToDispose.length>0!==f&&(this._mouseWheelToDispose=(0,a.dispose)(this._mouseWheelToDispose),f)){const _=E=>{this._onMouseWheel(new D.StandardWheelEvent(E))};this._mouseWheelToDispose.push(k.addDisposableListener(this._listenOnDomNode,k.EventType.MOUSE_WHEEL,_,{passive:!1}))}}_onMouseWheel(f){var C;if(!((C=f.browserEvent)===null||C===void 0)&&C.defaultPrevented)return;const _=c.INSTANCE;g&&_.acceptStandardWheelEvent(f);let E=!1;if(f.deltaY||f.deltaX){let T=f.deltaY*this._options.mouseWheelScrollSensitivity,A=f.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&A+T===0?A=T=0:Math.abs(T)>=Math.abs(A)?A=0:T=0),this._options.flipAxes&&([T,A]=[A,T]);const R=!n.isMacintosh&&f.browserEvent&&f.browserEvent.shiftKey;(this._options.scrollYToX||R)&&!A&&(A=T,T=0),f.browserEvent&&f.browserEvent.altKey&&(A=A*this._options.fastScrollSensitivity,T=T*this._options.fastScrollSensitivity);const M=this._scrollable.getFutureScrollPosition();let N={};if(T){const P=o*T,F=M.scrollTop-(P<0?Math.floor(P):Math.ceil(P));this._verticalScrollbar.writeScrollPosition(N,F)}if(A){const P=o*A,F=M.scrollLeft-(P<0?Math.floor(P):Math.ceil(P));this._horizontalScrollbar.writeScrollPosition(N,F)}N=this._scrollable.validateScrollPosition(N),(M.scrollLeft!==N.scrollLeft||M.scrollTop!==N.scrollTop)&&(g&&this._options.mouseWheelSmoothScroll&&_.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(N):this._scrollable.setScrollPositionNow(N),E=!0)}let I=E;!I&&this._options.alwaysConsumeMouseWheel&&(I=!0),!I&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(I=!0),I&&(f.preventDefault(),f.stopPropagation())}_onDidScroll(f){this._shouldRender=this._horizontalScrollbar.onDidScroll(f)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(f)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const f=this._scrollable.getCurrentScrollPosition(),C=f.scrollTop>0,_=f.scrollLeft>0,E=_?" left":"",I=C?" top":"",T=_||C?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${E}`),this._topShadowDomNode.setClassName(`shadow${I}`),this._topLeftShadowDomNode.setClassName(`shadow${T}${I}${E}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(f){this._mouseIsOver=!1,this._hide()}_onMouseOver(f){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),t)}}e.AbstractScrollableElement=d;class s extends d{constructor(f,C){C=C||{},C.mouseWheelSmoothScroll=!1;const _=new i.Scrollable({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:E=>k.scheduleAtNextAnimationFrame(k.getWindow(f),E)});super(f,C,_),this._register(_)}setScrollPosition(f){this._scrollable.setScrollPositionNow(f)}}e.ScrollableElement=s;class l extends d{constructor(f,C,_){super(f,C,_)}setScrollPosition(f){f.reuseAnimation?this._scrollable.setScrollPositionSmooth(f,f.reuseAnimation):this._scrollable.setScrollPositionNow(f)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}e.SmoothScrollableElement=l;class r extends d{constructor(f,C){C=C||{},C.mouseWheelSmoothScroll=!1;const _=new i.Scrollable({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:E=>k.scheduleAtNextAnimationFrame(k.getWindow(f),E)});super(f,C,_),this._register(_),this._element=f,this._register(this.onScroll(E=>{E.scrollTopChanged&&(this._element.scrollTop=E.scrollTop),E.scrollLeftChanged&&(this._element.scrollLeft=E.scrollLeft)})),this.scanDomNode()}setScrollPosition(f){this._scrollable.setScrollPositionNow(f)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}e.DomScrollableElement=r;function h(u){const f={lazyRender:typeof u.lazyRender<"u"?u.lazyRender:!1,className:typeof u.className<"u"?u.className:"",useShadows:typeof u.useShadows<"u"?u.useShadows:!0,handleMouseWheel:typeof u.handleMouseWheel<"u"?u.handleMouseWheel:!0,flipAxes:typeof u.flipAxes<"u"?u.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof u.consumeMouseWheelIfScrollbarIsNeeded<"u"?u.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof u.alwaysConsumeMouseWheel<"u"?u.alwaysConsumeMouseWheel:!1,scrollYToX:typeof u.scrollYToX<"u"?u.scrollYToX:!1,mouseWheelScrollSensitivity:typeof u.mouseWheelScrollSensitivity<"u"?u.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof u.fastScrollSensitivity<"u"?u.fastScrollSensitivity:5,scrollPredominantAxis:typeof u.scrollPredominantAxis<"u"?u.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof u.mouseWheelSmoothScroll<"u"?u.mouseWheelSmoothScroll:!0,arrowSize:typeof u.arrowSize<"u"?u.arrowSize:11,listenOnDomNode:typeof u.listenOnDomNode<"u"?u.listenOnDomNode:null,horizontal:typeof u.horizontal<"u"?u.horizontal:1,horizontalScrollbarSize:typeof u.horizontalScrollbarSize<"u"?u.horizontalScrollbarSize:10,horizontalSliderSize:typeof u.horizontalSliderSize<"u"?u.horizontalSliderSize:0,horizontalHasArrows:typeof u.horizontalHasArrows<"u"?u.horizontalHasArrows:!1,vertical:typeof u.vertical<"u"?u.vertical:1,verticalScrollbarSize:typeof u.verticalScrollbarSize<"u"?u.verticalScrollbarSize:10,verticalHasArrows:typeof u.verticalHasArrows<"u"?u.verticalHasArrows:!1,verticalSliderSize:typeof u.verticalSliderSize<"u"?u.verticalSliderSize:0,scrollByPage:typeof u.scrollByPage<"u"?u.scrollByPage:!1};return f.horizontalSliderSize=typeof u.horizontalSliderSize<"u"?u.horizontalSliderSize:f.horizontalScrollbarSize,f.verticalSliderSize=typeof u.verticalSliderSize<"u"?u.verticalSliderSize:f.verticalScrollbarSize,n.isMacintosh&&(f.className+=" mac"),f}}),define(ne[233],se([1,0,6,46,78,2,580,421]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getHoverAccessibleViewHint=e.HoverAction=e.HoverWidget=void 0;const p=L.$;class w extends D.Disposable{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new y.DomScrollableElement(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}e.HoverWidget=w;class v extends D.Disposable{static render(n,i,t){return new v(n,i,t)}constructor(n,i,t){super(),this.actionContainer=L.append(n,p("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=L.append(this.actionContainer,p("a.action")),this.action.setAttribute("role","button"),i.iconClass&&L.append(this.action,p(`span.icon.${i.iconClass}`));const o=L.append(this.action,p("span"));o.textContent=t?`${i.label} (${t})`:i.label,this._register(L.addDisposableListener(this.actionContainer,L.EventType.CLICK,g=>{g.stopPropagation(),g.preventDefault(),i.run(this.actionContainer)})),this._register(L.addDisposableListener(this.actionContainer,L.EventType.KEY_DOWN,g=>{const m=new k.StandardKeyboardEvent(g);(m.equals(3)||m.equals(10))&&(g.stopPropagation(),g.preventDefault(),i.run(this.actionContainer))})),this.setEnabled(!0)}setEnabled(n){n?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}e.HoverAction=v;function b(a,n){return a&&n?(0,S.localize)(0,null,n):a?(0,S.localize)(1,null):""}e.getHoverAccessibleViewHint=b}),define(ne[234],se([1,0,204,6,84,65,78,13,15,111,7,2,175,151,412,599,12,128]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListView=e.NativeDragAndDropData=e.ExternalElementsDragAndDropData=e.ElementsDragAndDropData=void 0;const c={CurrentDragAndDropData:void 0},d={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(C){return[C]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class s{constructor(_){this.elements=_}update(){}getData(){return this.elements}}e.ElementsDragAndDropData=s;class l{constructor(_){this.elements=_}update(){}getData(){return this.elements}}e.ExternalElementsDragAndDropData=l;class r{constructor(){this.types=[],this.files=[]}update(_){if(_.types&&this.types.splice(0,this.types.length,..._.types),_.files){this.files.splice(0,this.files.length);for(let E=0;E<_.files.length;E++){const I=_.files.item(E);I&&(I.size||I.type)&&this.files.push(I)}}}getData(){return{types:this.types,files:this.files}}}e.NativeDragAndDropData=r;function h(C,_){return Array.isArray(C)&&Array.isArray(_)?(0,p.equals)(C,_):C===_}class u{constructor(_){_?.getSetSize?this.getSetSize=_.getSetSize.bind(_):this.getSetSize=(E,I,T)=>T,_?.getPosInSet?this.getPosInSet=_.getPosInSet.bind(_):this.getPosInSet=(E,I)=>I+1,_?.getRole?this.getRole=_.getRole.bind(_):this.getRole=E=>"listitem",_?.isChecked?this.isChecked=_.isChecked.bind(_):this.isChecked=E=>{}}}class f{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(_){if(_!==this._horizontalScrolling){if(_&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=_,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const E of this.items)this.measureItemWidth(E);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,k.getContentWidth)(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(_,E,I,T=d){var A,R,M,N,P,F,O,B,W,V,z,K,j;if(this.virtualDelegate=E,this.domId=`list_id_${++f.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new w.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=a.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=a.Disposable.None,this.onDragLeaveTimeout=a.Disposable.None,this.disposables=new a.DisposableStore,this._onDidChangeContentHeight=new b.Emitter,this._onDidChangeContentWidth=new b.Emitter,this.onDidChangeContentHeight=b.Event.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,T.horizontalScrolling&&T.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap((A=T.paddingTop)!==null&&A!==void 0?A:0);for(const re of I)this.renderers.set(re.templateId,re);this.cache=this.disposables.add(new o.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof T.mouseSupport=="boolean"?T.mouseSupport:!0),this._horizontalScrolling=(R=T.horizontalScrolling)!==null&&R!==void 0?R:d.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof T.paddingBottom>"u"?0:T.paddingBottom,this.accessibilityProvider=new u(T.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",((M=T.transformOptimization)!==null&&M!==void 0?M:d.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(D.Gesture.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new i.Scrollable({forceIntegerValues:!0,smoothScrollDuration:(N=T.smoothScrolling)!==null&&N!==void 0&&N?125:0,scheduleAtNextAnimationFrame:re=>(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),re)})),this.scrollableElement=this.disposables.add(new S.SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:(P=T.alwaysConsumeMouseWheel)!==null&&P!==void 0?P:d.alwaysConsumeMouseWheel,horizontal:1,vertical:(F=T.verticalScrollMode)!==null&&F!==void 0?F:d.verticalScrollMode,useShadows:(O=T.useShadows)!==null&&O!==void 0?O:d.useShadows,mouseWheelScrollSensitivity:T.mouseWheelScrollSensitivity,fastScrollSensitivity:T.fastScrollSensitivity,scrollByPage:T.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),_.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add((0,k.addDisposableListener)(this.rowsContainer,D.EventType.Change,re=>this.onTouchChange(re))),this.disposables.add((0,k.addDisposableListener)(this.scrollableElement.getDomNode(),"scroll",re=>re.target.scrollTop=0)),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragover",re=>this.onDragOver(this.toDragEvent(re)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"drop",re=>this.onDrop(this.toDragEvent(re)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragleave",re=>this.onDragLeave(this.toDragEvent(re)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragend",re=>this.onDragEnd(re))),this.setRowLineHeight=(B=T.setRowLineHeight)!==null&&B!==void 0?B:d.setRowLineHeight,this.setRowHeight=(W=T.setRowHeight)!==null&&W!==void 0?W:d.setRowHeight,this.supportDynamicHeights=(V=T.supportDynamicHeights)!==null&&V!==void 0?V:d.supportDynamicHeights,this.dnd=(z=T.dnd)!==null&&z!==void 0?z:this.disposables.add(d.dnd),this.layout((K=T.initialSize)===null||K===void 0?void 0:K.height,(j=T.initialSize)===null||j===void 0?void 0:j.width)}updateOptions(_){_.paddingBottom!==void 0&&(this.paddingBottom=_.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),_.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(_.smoothScrolling?125:0),_.horizontalScrolling!==void 0&&(this.horizontalScrolling=_.horizontalScrolling);let E;if(_.scrollByPage!==void 0&&(E={...E??{},scrollByPage:_.scrollByPage}),_.mouseWheelScrollSensitivity!==void 0&&(E={...E??{},mouseWheelScrollSensitivity:_.mouseWheelScrollSensitivity}),_.fastScrollSensitivity!==void 0&&(E={...E??{},fastScrollSensitivity:_.fastScrollSensitivity}),E&&this.scrollableElement.updateOptions(E),_.paddingTop!==void 0&&_.paddingTop!==this.rangeMap.paddingTop){const I=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),T=_.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=_.paddingTop,this.render(I,Math.max(0,this.lastRenderTop+T),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(_){return new t.RangeMap(_)}splice(_,E,I=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(_,E,I)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(_,E,I=[]){const T=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),A={start:_,end:_+E},R=n.Range.intersect(T,A),M=new Map;for(let J=R.end-1;J>=R.start;J--){const X=this.items[J];if(X.dragStartDisposable.dispose(),X.checkedDisposable.dispose(),X.row){let Y=M.get(X.templateId);Y||(Y=[],M.set(X.templateId,Y));const le=this.renderers.get(X.templateId);le&&le.disposeElement&&le.disposeElement(X.element,J,X.row.templateData,X.size),Y.push(X.row)}X.row=null,X.stale=!0}const N={start:_+E,end:this.items.length},P=n.Range.intersect(N,T),F=n.Range.relativeComplement(N,T),O=I.map(J=>({id:String(this.itemId++),element:J,templateId:this.virtualDelegate.getTemplateId(J),size:this.virtualDelegate.getHeight(J),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(J),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:a.Disposable.None,checkedDisposable:a.Disposable.None,stale:!1}));let B;_===0&&E>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,O),B=this.items,this.items=O):(this.rangeMap.splice(_,E,O),B=this.items.splice(_,E,...O));const W=I.length-E,V=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),z=(0,t.shift)(P,W),K=n.Range.intersect(V,z);for(let J=K.start;J(0,t.shift)(J,W)),ie=[{start:_,end:_+I.length},...x].map(J=>n.Range.intersect(V,J)).reverse();for(const J of ie)for(let X=J.end-1;X>=J.start;X--){const Y=this.items[X],le=M.get(Y.templateId),de=le?.pop();this.insertItemInDOM(X,de)}for(const J of M.values())for(const X of J)this.cache.release(X);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),B.map(J=>J.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let _=0;for(const E of this.items)typeof E.width<"u"&&(_=Math.max(_,E.width));this.scrollWidth=_,this.scrollableElement.setScrollDimensions({scrollWidth:_===0?0:_+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const _ of this.items)_.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(_){return this.items[_].element}indexOf(_){return this.items.findIndex(E=>E.element===_)}domElement(_){const E=this.items[_].row;return E&&E.domNode}elementHeight(_){return this.items[_].size}elementTop(_){return this.rangeMap.positionAt(_)}indexAt(_){return this.rangeMap.indexAt(_)}indexAfter(_){return this.rangeMap.indexAfter(_)}layout(_,E){const I={height:typeof _=="number"?_:(0,k.getContentHeight)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,I.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(I),typeof E<"u"&&(this.renderWidth=E,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof E=="number"?E:(0,k.getContentWidth)(this.domNode)})}render(_,E,I,T,A,R=!1){const M=this.getRenderRange(E,I),N=n.Range.relativeComplement(M,_).reverse(),P=n.Range.relativeComplement(_,M);if(R){const F=n.Range.intersect(_,M);for(let O=F.start;O{for(const F of P)for(let O=F.start;O=F.start;O--)this.insertItemInDOM(O)}),T!==void 0&&(this.rowsContainer.style.left=`-${T}px`),this.rowsContainer.style.top=`-${E}px`,this.horizontalScrolling&&A!==void 0&&(this.rowsContainer.style.width=`${Math.max(A,this.renderWidth)}px`),this.lastRenderTop=E,this.lastRenderHeight=I}insertItemInDOM(_,E){var I,T,A;const R=this.items[_];if(!R.row)if(E)R.row=E,R.stale=!0;else{const O=this.cache.alloc(R.templateId);R.row=O.row,R.stale||(R.stale=O.isReusingConnectedDomNode)}const M=this.accessibilityProvider.getRole(R.element)||"listitem";R.row.domNode.setAttribute("role",M);const N=this.accessibilityProvider.isChecked(R.element);if(typeof N=="boolean")R.row.domNode.setAttribute("aria-checked",String(!!N));else if(N){const O=B=>R.row.domNode.setAttribute("aria-checked",String(!!B));O(N.value),R.checkedDisposable=N.onDidChange(O)}if(R.stale||!R.row.domNode.parentElement){const O=(A=(T=(I=this.items.at(_+1))===null||I===void 0?void 0:I.row)===null||T===void 0?void 0:T.domNode)!==null&&A!==void 0?A:null;this.rowsContainer.insertBefore(R.row.domNode,O),R.stale=!1}this.updateItemInDOM(R,_);const P=this.renderers.get(R.templateId);if(!P)throw new Error(`No renderer found for template id ${R.templateId}`);P?.renderElement(R.element,_,R.row.templateData,R.size);const F=this.dnd.getDragURI(R.element);R.dragStartDisposable.dispose(),R.row.domNode.draggable=!!F,F&&(R.dragStartDisposable=(0,k.addDisposableListener)(R.row.domNode,"dragstart",O=>this.onDragStart(R.element,F,O))),this.horizontalScrolling&&(this.measureItemWidth(R),this.eventuallyUpdateScrollWidth())}measureItemWidth(_){if(!_.row||!_.row.domNode)return;_.row.domNode.style.width="fit-content",_.width=(0,k.getContentWidth)(_.row.domNode);const E=(0,k.getWindow)(_.row.domNode).getComputedStyle(_.row.domNode);E.paddingLeft&&(_.width+=parseFloat(E.paddingLeft)),E.paddingRight&&(_.width+=parseFloat(E.paddingRight)),_.row.domNode.style.width=""}updateItemInDOM(_,E){_.row.domNode.style.top=`${this.elementTop(E)}px`,this.setRowHeight&&(_.row.domNode.style.height=`${_.size}px`),this.setRowLineHeight&&(_.row.domNode.style.lineHeight=`${_.size}px`),_.row.domNode.setAttribute("data-index",`${E}`),_.row.domNode.setAttribute("data-last-element",E===this.length-1?"true":"false"),_.row.domNode.setAttribute("data-parity",E%2===0?"even":"odd"),_.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(_.element,E,this.length))),_.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(_.element,E))),_.row.domNode.setAttribute("id",this.getElementDomId(E)),_.row.domNode.classList.toggle("drop-target",_.dropTarget)}removeItemFromDOM(_){const E=this.items[_];if(E.dragStartDisposable.dispose(),E.checkedDisposable.dispose(),E.row){const I=this.renderers.get(E.templateId);I&&I.disposeElement&&I.disposeElement(E.element,_,E.row.templateData,E.size),this.cache.release(E.row),E.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(_,E){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:_,reuseAnimation:E})}get scrollTop(){return this.getScrollTop()}set scrollTop(_){this.setScrollTop(_)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"click")).event,_=>this.toMouseEvent(_),this.disposables)}get onMouseDblClick(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"dblclick")).event,_=>this.toMouseEvent(_),this.disposables)}get onMouseMiddleClick(){return b.Event.filter(b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"auxclick")).event,_=>this.toMouseEvent(_),this.disposables),_=>_.browserEvent.button===1,this.disposables)}get onMouseDown(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"mousedown")).event,_=>this.toMouseEvent(_),this.disposables)}get onMouseOver(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"mouseover")).event,_=>this.toMouseEvent(_),this.disposables)}get onMouseOut(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"mouseout")).event,_=>this.toMouseEvent(_),this.disposables)}get onContextMenu(){return b.Event.any(b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"contextmenu")).event,_=>this.toMouseEvent(_),this.disposables),b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,D.EventType.Contextmenu)).event,_=>this.toGestureEvent(_),this.disposables))}get onTouchStart(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.domNode,"touchstart")).event,_=>this.toTouchEvent(_),this.disposables)}get onTap(){return b.Event.map(this.disposables.add(new y.DomEmitter(this.rowsContainer,D.EventType.Tap)).event,_=>this.toGestureEvent(_),this.disposables)}toMouseEvent(_){const E=this.getItemIndexFromEventTarget(_.target||null),I=typeof E>"u"?void 0:this.items[E],T=I&&I.element;return{browserEvent:_,index:E,element:T}}toTouchEvent(_){const E=this.getItemIndexFromEventTarget(_.target||null),I=typeof E>"u"?void 0:this.items[E],T=I&&I.element;return{browserEvent:_,index:E,element:T}}toGestureEvent(_){const E=this.getItemIndexFromEventTarget(_.initialTarget||null),I=typeof E>"u"?void 0:this.items[E],T=I&&I.element;return{browserEvent:_,index:E,element:T}}toDragEvent(_){const E=this.getItemIndexFromEventTarget(_.target||null),I=typeof E>"u"?void 0:this.items[E],T=I&&I.element,A=this.getTargetSector(_,E);return{browserEvent:_,index:E,element:T,sector:A}}onScroll(_){try{const E=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(E,_.scrollTop,_.height,_.scrollLeft,_.scrollWidth),this.supportDynamicHeights&&this._rerender(_.scrollTop,_.height,_.inSmoothScrolling)}catch(E){throw console.error("Got bad scroll event:",_),E}}onTouchChange(_){_.preventDefault(),_.stopPropagation(),this.scrollTop-=_.translationY}onDragStart(_,E,I){var T,A;if(!I.dataTransfer)return;const R=this.dnd.getDragElements(_);if(I.dataTransfer.effectAllowed="copyMove",I.dataTransfer.setData(L.DataTransfers.TEXT,E),I.dataTransfer.setDragImage){let M;this.dnd.getDragLabel&&(M=this.dnd.getDragLabel(R,I)),typeof M>"u"&&(M=String(R.length));const N=(0,k.$)(".monaco-drag-image");N.textContent=M;const F=(O=>{for(;O&&!O.classList.contains("monaco-workbench");)O=O.parentElement;return O||this.domNode.ownerDocument})(this.domNode);F.appendChild(N),I.dataTransfer.setDragImage(N,-10,-10),setTimeout(()=>F.removeChild(N),0)}this.domNode.classList.add("dragging"),this.currentDragData=new s(R),c.CurrentDragAndDropData=new l(R),(A=(T=this.dnd).onDragStart)===null||A===void 0||A.call(T,this.currentDragData,I)}onDragOver(_){var E,I;if(_.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),c.CurrentDragAndDropData&&c.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(_.browserEvent),!_.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(c.CurrentDragAndDropData)this.currentDragData=c.CurrentDragAndDropData;else{if(!_.browserEvent.dataTransfer.types)return!1;this.currentDragData=new r}const T=this.dnd.onDragOver(this.currentDragData,_.element,_.index,_.sector,_.browserEvent);if(this.canDrop=typeof T=="boolean"?T:T.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;_.browserEvent.dataTransfer.dropEffect=typeof T!="boolean"&&((E=T.effect)===null||E===void 0?void 0:E.type)===0?"copy":"move";let A;typeof T!="boolean"&&T.feedback?A=T.feedback:typeof _.index>"u"?A=[-1]:A=[_.index],A=(0,p.distinct)(A).filter(M=>M>=-1&&MM-N),A=A[0]===-1?[-1]:A;let R=typeof T!="boolean"&&T.effect&&T.effect.position?T.effect.position:"drop-target";if(h(this.currentDragFeedback,A)&&this.currentDragFeedbackPosition===R)return!0;if(this.currentDragFeedback=A,this.currentDragFeedbackPosition=R,this.currentDragFeedbackDisposable.dispose(),A[0]===-1)this.domNode.classList.add(R),this.rowsContainer.classList.add(R),this.currentDragFeedbackDisposable=(0,a.toDisposable)(()=>{this.domNode.classList.remove(R),this.rowsContainer.classList.remove(R)});else{if(A.length>1&&R!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");R==="drop-target-after"&&A[0]{var M;for(const N of A){const P=this.items[N];P.dropTarget=!1,(M=P.row)===null||M===void 0||M.domNode.classList.remove(R)}})}return!0}onDragLeave(_){var E,I;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,w.disposableTimeout)(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((I=(E=this.dnd).onDragLeave)===null||I===void 0||I.call(E,this.currentDragData,_.element,_.index,_.browserEvent))}onDrop(_){if(!this.canDrop)return;const E=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,c.CurrentDragAndDropData=void 0,!(!E||!_.browserEvent.dataTransfer)&&(_.browserEvent.preventDefault(),E.update(_.browserEvent.dataTransfer),this.dnd.drop(E,_.element,_.index,_.sector,_.browserEvent))}onDragEnd(_){var E,I;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,c.CurrentDragAndDropData=void 0,(I=(E=this.dnd).onDragEnd)===null||I===void 0||I.call(E,_)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=a.Disposable.None}setupDragAndDropScrollTopAnimation(_){if(!this.dragOverAnimationDisposable){const E=(0,k.getTopLeftOffset)(this.domNode).top;this.dragOverAnimationDisposable=(0,k.animate)((0,k.getWindow)(this.domNode),this.animateDragAndDropScrollTop.bind(this,E))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,w.disposableTimeout)(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=_.pageY}animateDragAndDropScrollTop(_){if(this.dragOverMouseY===void 0)return;const E=this.dragOverMouseY-_,I=this.renderHeight-35;E<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(E-35))):E>I&&(this.scrollTop+=Math.min(14,Math.floor(.3*(E-I))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(_,E){if(E===void 0)return;const I=_.offsetY/this.items[E].size,T=Math.floor(I/.25);return(0,m.clamp)(T,0,3)}getItemIndexFromEventTarget(_){const E=this.scrollableElement.getDomNode();let I=_;for(;I instanceof HTMLElement&&I!==this.rowsContainer&&E.contains(I);){const T=I.getAttribute("data-index");if(T){const A=Number(T);if(!isNaN(A))return A}I=I.parentElement}}getRenderRange(_,E){return{start:this.rangeMap.indexAt(_),end:this.rangeMap.indexAfter(_+E-1)}}_rerender(_,E,I){const T=this.getRenderRange(_,E);let A,R;_===this.elementTop(T.start)?(A=T.start,R=0):T.end-T.start>1&&(A=T.start+1,R=this.elementTop(A)-_);let M=0;for(;;){const N=this.getRenderRange(_,E);let P=!1;for(let F=N.start;F=B.start;W--)this.insertItemInDOM(W);for(let B=N.start;Bq.templateData===Z);if(H>=0){const q=this.renderedElements[H];this.trait.unrender(Z),q.index=U}else{const q={index:U,templateData:Z};this.renderedElements.push(q)}this.trait.renderIndex(U,Z)}splice(Q,U,Z){const H=[];for(const q of this.renderedElements)q.index=Q+U&&H.push({index:q.index+Z-U,templateData:q.templateData});this.renderedElements=H}renderIndexes(Q){for(const{index:U,templateData:Z}of this.renderedElements)Q.indexOf(U)>-1&&this.trait.renderIndex(U,Z)}disposeTemplate(Q){const U=this.renderedElements.findIndex(Z=>Z.templateData===Q);U<0||this.renderedElements.splice(U,1)}}class r{get name(){return this._trait}get renderer(){return new l(this)}constructor(Q){this._trait=Q,this.indexes=[],this.sortedIndexes=[],this._onChange=new n.Emitter,this.onChange=this._onChange.event}splice(Q,U,Z){const H=Z.length-U,q=Q+U,te=[];let G=0;for(;G=q;)te.push(this.sortedIndexes[G++]+H);this.renderer.splice(Q,U,Z.length),this._set(te,te)}renderIndex(Q,U){U.classList.toggle(this._trait,this.contains(Q))}unrender(Q){Q.classList.remove(this._trait)}set(Q,U){return this._set(Q,[...Q].sort(X),U)}_set(Q,U,Z){const H=this.indexes,q=this.sortedIndexes;this.indexes=Q,this.sortedIndexes=U;const te=ie(q,Q);return this.renderer.renderIndexes(te),this._onChange.fire({indexes:Q,browserEvent:Z}),H}get(){return this.indexes}contains(Q){return(0,w.binarySearch)(this.sortedIndexes,Q,X)>=0}dispose(){(0,t.dispose)(this._onChange)}}De([a.memoize],r.prototype,"renderer",null);class h extends r{constructor(Q){super("selected"),this.setAriaSelected=Q}renderIndex(Q,U){super.renderIndex(Q,U),this.setAriaSelected&&(this.contains(Q)?U.setAttribute("aria-selected","true"):U.setAttribute("aria-selected","false"))}}class u{constructor(Q,U,Z){this.trait=Q,this.view=U,this.identityProvider=Z}splice(Q,U,Z){if(!this.identityProvider)return this.trait.splice(Q,U,new Array(Z.length).fill(!1));const H=this.trait.get().map(G=>this.identityProvider.getId(this.view.element(G)).toString());if(H.length===0)return this.trait.splice(Q,U,new Array(Z.length).fill(!1));const q=new Set(H),te=Z.map(G=>q.has(this.identityProvider.getId(G).toString()));this.trait.splice(Q,U,te)}}function f(pe){return pe.tagName==="INPUT"||pe.tagName==="TEXTAREA"}e.isInputElement=f;function C(pe,Q){return pe.classList.contains(Q)?!0:pe.classList.contains("monaco-list")||!pe.parentElement?!1:C(pe.parentElement,Q)}function _(pe){return C(pe,"monaco-editor")}e.isMonacoEditor=_;function E(pe){return C(pe,"monaco-custom-toggle")}e.isMonacoCustomToggle=E;function I(pe){return C(pe,"action-item")}e.isActionItem=I;function T(pe){return C(pe,"monaco-tree-sticky-row")}e.isStickyScrollElement=T;function A(pe){return pe.classList.contains("monaco-tree-sticky-container")}e.isStickyScrollContainer=A;function R(pe){return pe.tagName==="A"&&pe.classList.contains("monaco-button")||pe.tagName==="DIV"&&pe.classList.contains("monaco-button-dropdown")?!0:pe.classList.contains("monaco-list")||!pe.parentElement?!1:R(pe.parentElement)}e.isButton=R;class M{get onKeyDown(){return n.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,Q=>Q.filter(U=>!f(U.target)).map(U=>new y.StandardKeyboardEvent(U)))}constructor(Q,U,Z){this.list=Q,this.view=U,this.disposables=new t.DisposableStore,this.multipleSelectionDisposables=new t.DisposableStore,this.multipleSelectionSupport=Z.multipleSelectionSupport,this.disposables.add(this.onKeyDown(H=>{switch(H.keyCode){case 3:return this.onEnter(H);case 16:return this.onUpArrow(H);case 18:return this.onDownArrow(H);case 11:return this.onPageUpArrow(H);case 12:return this.onPageDownArrow(H);case 9:return this.onEscape(H);case 31:this.multipleSelectionSupport&&(g.isMacintosh?H.metaKey:H.ctrlKey)&&this.onCtrlA(H)}}))}updateOptions(Q){Q.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=Q.multipleSelectionSupport)}onEnter(Q){Q.preventDefault(),Q.stopPropagation(),this.list.setSelection(this.list.getFocus(),Q.browserEvent)}onUpArrow(Q){Q.preventDefault(),Q.stopPropagation(),this.list.focusPrevious(1,!1,Q.browserEvent);const U=this.list.getFocus()[0];this.list.setAnchor(U),this.list.reveal(U),this.view.domNode.focus()}onDownArrow(Q){Q.preventDefault(),Q.stopPropagation(),this.list.focusNext(1,!1,Q.browserEvent);const U=this.list.getFocus()[0];this.list.setAnchor(U),this.list.reveal(U),this.view.domNode.focus()}onPageUpArrow(Q){Q.preventDefault(),Q.stopPropagation(),this.list.focusPreviousPage(Q.browserEvent);const U=this.list.getFocus()[0];this.list.setAnchor(U),this.list.reveal(U),this.view.domNode.focus()}onPageDownArrow(Q){Q.preventDefault(),Q.stopPropagation(),this.list.focusNextPage(Q.browserEvent);const U=this.list.getFocus()[0];this.list.setAnchor(U),this.list.reveal(U),this.view.domNode.focus()}onCtrlA(Q){Q.preventDefault(),Q.stopPropagation(),this.list.setSelection((0,w.range)(this.list.length),Q.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(Q){this.list.getSelection().length&&(Q.preventDefault(),Q.stopPropagation(),this.list.setSelection([],Q.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}De([a.memoize],M.prototype,"onKeyDown",null);var N;(function(pe){pe[pe.Automatic=0]="Automatic",pe[pe.Trigger=1]="Trigger"})(N||(e.TypeNavigationMode=N={}));var P;(function(pe){pe[pe.Idle=0]="Idle",pe[pe.Typing=1]="Typing"})(P||(P={})),e.DefaultKeyboardNavigationDelegate=new class{mightProducePrintableCharacter(pe){return pe.ctrlKey||pe.metaKey||pe.altKey?!1:pe.keyCode>=31&&pe.keyCode<=56||pe.keyCode>=21&&pe.keyCode<=30||pe.keyCode>=98&&pe.keyCode<=107||pe.keyCode>=85&&pe.keyCode<=95}};class F{constructor(Q,U,Z,H,q){this.list=Q,this.view=U,this.keyboardNavigationLabelProvider=Z,this.keyboardNavigationEventFilter=H,this.delegate=q,this.enabled=!1,this.state=P.Idle,this.mode=N.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new t.DisposableStore,this.disposables=new t.DisposableStore,this.updateOptions(Q.options)}updateOptions(Q){var U,Z;!((U=Q.typeNavigationEnabled)!==null&&U!==void 0)||U?this.enable():this.disable(),this.mode=(Z=Q.typeNavigationMode)!==null&&Z!==void 0?Z:N.Automatic}enable(){if(this.enabled)return;let Q=!1;const U=n.Event.chain(this.enabledDisposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,q=>q.filter(te=>!f(te.target)).filter(()=>this.mode===N.Automatic||this.triggered).map(te=>new y.StandardKeyboardEvent(te)).filter(te=>Q||this.keyboardNavigationEventFilter(te)).filter(te=>this.delegate.mightProducePrintableCharacter(te)).forEach(te=>L.EventHelper.stop(te,!0)).map(te=>te.browserEvent.key)),Z=n.Event.debounce(U,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);n.Event.reduce(n.Event.any(U,Z),(q,te)=>te===null?null:(q||"")+te,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),Z(this.onClear,this,this.enabledDisposables),U(()=>Q=!0,void 0,this.enabledDisposables),Z(()=>Q=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var Q;const U=this.list.getFocus();if(U.length>0&&U[0]===this.previouslyFocused){const Z=(Q=this.list.options.accessibilityProvider)===null||Q===void 0?void 0:Q.getAriaLabel(this.list.element(U[0]));Z&&(0,S.alert)(Z)}this.previouslyFocused=-1}onInput(Q){if(!Q){this.state=P.Idle,this.triggered=!1;return}const U=this.list.getFocus(),Z=U.length>0?U[0]:0,H=this.state===P.Idle?1:0;this.state=P.Typing;for(let q=0;q1&&oe.length===1){this.previouslyFocused=Z,this.list.setFocus([te]),this.list.reveal(te);return}}}else if(typeof $>"u"||(0,i.matchesPrefix)(Q,$)){this.previouslyFocused=Z,this.list.setFocus([te]),this.list.reveal(te);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class O{constructor(Q,U){this.list=Q,this.view=U,this.disposables=new t.DisposableStore;const Z=n.Event.chain(this.disposables.add(new k.DomEmitter(U.domNode,"keydown")).event,q=>q.filter(te=>!f(te.target)).map(te=>new y.StandardKeyboardEvent(te)));n.Event.chain(Z,q=>q.filter(te=>te.keyCode===2&&!te.ctrlKey&&!te.metaKey&&!te.shiftKey&&!te.altKey))(this.onTab,this,this.disposables)}onTab(Q){if(Q.target!==this.view.domNode)return;const U=this.list.getFocus();if(U.length===0)return;const Z=this.view.domElement(U[0]);if(!Z)return;const H=Z.querySelector("[tabIndex]");if(!H||!(H instanceof HTMLElement)||H.tabIndex===-1)return;const q=(0,L.getWindow)(H).getComputedStyle(H);q.visibility==="hidden"||q.display==="none"||(Q.preventDefault(),Q.stopPropagation(),H.focus())}dispose(){this.disposables.dispose()}}function B(pe){return g.isMacintosh?pe.browserEvent.metaKey:pe.browserEvent.ctrlKey}e.isSelectionSingleChangeEvent=B;function W(pe){return pe.browserEvent.shiftKey}e.isSelectionRangeChangeEvent=W;function V(pe){return(0,L.isMouseEvent)(pe)&&pe.button===2}const z={isSelectionSingleChangeEvent:B,isSelectionRangeChangeEvent:W};class K{constructor(Q){this.list=Q,this.disposables=new t.DisposableStore,this._onPointer=new n.Emitter,this.onPointer=this._onPointer.event,Q.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z),this.mouseSupport=typeof Q.options.mouseSupport>"u"||!!Q.options.mouseSupport,this.mouseSupport&&(Q.onMouseDown(this.onMouseDown,this,this.disposables),Q.onContextMenu(this.onContextMenu,this,this.disposables),Q.onMouseDblClick(this.onDoubleClick,this,this.disposables),Q.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(D.Gesture.addTarget(Q.getHTMLElement()))),n.Event.any(Q.onMouseClick,Q.onMouseMiddleClick,Q.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(Q){Q.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,Q.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z))}isSelectionSingleChangeEvent(Q){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(Q):!1}isSelectionRangeChangeEvent(Q){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(Q):!1}isSelectionChangeEvent(Q){return this.isSelectionSingleChangeEvent(Q)||this.isSelectionRangeChangeEvent(Q)}onMouseDown(Q){_(Q.browserEvent.target)||(0,L.getActiveElement)()!==Q.browserEvent.target&&this.list.domFocus()}onContextMenu(Q){if(f(Q.browserEvent.target)||_(Q.browserEvent.target))return;const U=typeof Q.index>"u"?[]:[Q.index];this.list.setFocus(U,Q.browserEvent)}onViewPointer(Q){if(!this.mouseSupport||f(Q.browserEvent.target)||_(Q.browserEvent.target)||Q.browserEvent.isHandledByList)return;Q.browserEvent.isHandledByList=!0;const U=Q.index;if(typeof U>"u"){this.list.setFocus([],Q.browserEvent),this.list.setSelection([],Q.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(Q))return this.changeSelection(Q);this.list.setFocus([U],Q.browserEvent),this.list.setAnchor(U),V(Q.browserEvent)||this.list.setSelection([U],Q.browserEvent),this._onPointer.fire(Q)}onDoubleClick(Q){if(f(Q.browserEvent.target)||_(Q.browserEvent.target)||this.isSelectionChangeEvent(Q)||Q.browserEvent.isHandledByList)return;Q.browserEvent.isHandledByList=!0;const U=this.list.getFocus();this.list.setSelection(U,Q.browserEvent)}changeSelection(Q){const U=Q.index;let Z=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(Q)){if(typeof Z>"u"){const ae=this.list.getFocus()[0];Z=ae??U,this.list.setAnchor(Z)}const H=Math.min(Z,U),q=Math.max(Z,U),te=(0,w.range)(H,q+1),G=this.list.getSelection(),$=re(ie(G,[Z]),Z);if($.length===0)return;const oe=ie(te,J(G,$));this.list.setSelection(oe,Q.browserEvent),this.list.setFocus([U],Q.browserEvent)}else if(this.isSelectionSingleChangeEvent(Q)){const H=this.list.getSelection(),q=H.filter(te=>te!==U);this.list.setFocus([U]),this.list.setAnchor(U),H.length===q.length?this.list.setSelection([...q,U],Q.browserEvent):this.list.setSelection(q,Q.browserEvent)}}dispose(){this.disposables.dispose()}}e.MouseController=K;class j{constructor(Q,U){this.styleElement=Q,this.selectorSuffix=U}style(Q){var U,Z;const H=this.selectorSuffix&&`.${this.selectorSuffix}`,q=[];Q.listBackground&&q.push(`.monaco-list${H} .monaco-list-rows { background: ${Q.listBackground}; }`),Q.listFocusBackground&&(q.push(`.monaco-list${H}:focus .monaco-list-row.focused { background-color: ${Q.listFocusBackground}; }`),q.push(`.monaco-list${H}:focus .monaco-list-row.focused:hover { background-color: ${Q.listFocusBackground}; }`)),Q.listFocusForeground&&q.push(`.monaco-list${H}:focus .monaco-list-row.focused { color: ${Q.listFocusForeground}; }`),Q.listActiveSelectionBackground&&(q.push(`.monaco-list${H}:focus .monaco-list-row.selected { background-color: ${Q.listActiveSelectionBackground}; }`),q.push(`.monaco-list${H}:focus .monaco-list-row.selected:hover { background-color: ${Q.listActiveSelectionBackground}; }`)),Q.listActiveSelectionForeground&&q.push(`.monaco-list${H}:focus .monaco-list-row.selected { color: ${Q.listActiveSelectionForeground}; }`),Q.listActiveSelectionIconForeground&&q.push(`.monaco-list${H}:focus .monaco-list-row.selected .codicon { color: ${Q.listActiveSelectionIconForeground}; }`),Q.listFocusAndSelectionBackground&&q.push(` + .monaco-drag-image, + .monaco-list${H}:focus .monaco-list-row.selected.focused { background-color: ${Q.listFocusAndSelectionBackground}; } + `),Q.listFocusAndSelectionForeground&&q.push(` + .monaco-drag-image, + .monaco-list${H}:focus .monaco-list-row.selected.focused { color: ${Q.listFocusAndSelectionForeground}; } + `),Q.listInactiveFocusForeground&&(q.push(`.monaco-list${H} .monaco-list-row.focused { color: ${Q.listInactiveFocusForeground}; }`),q.push(`.monaco-list${H} .monaco-list-row.focused:hover { color: ${Q.listInactiveFocusForeground}; }`)),Q.listInactiveSelectionIconForeground&&q.push(`.monaco-list${H} .monaco-list-row.focused .codicon { color: ${Q.listInactiveSelectionIconForeground}; }`),Q.listInactiveFocusBackground&&(q.push(`.monaco-list${H} .monaco-list-row.focused { background-color: ${Q.listInactiveFocusBackground}; }`),q.push(`.monaco-list${H} .monaco-list-row.focused:hover { background-color: ${Q.listInactiveFocusBackground}; }`)),Q.listInactiveSelectionBackground&&(q.push(`.monaco-list${H} .monaco-list-row.selected { background-color: ${Q.listInactiveSelectionBackground}; }`),q.push(`.monaco-list${H} .monaco-list-row.selected:hover { background-color: ${Q.listInactiveSelectionBackground}; }`)),Q.listInactiveSelectionForeground&&q.push(`.monaco-list${H} .monaco-list-row.selected { color: ${Q.listInactiveSelectionForeground}; }`),Q.listHoverBackground&&q.push(`.monaco-list${H}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${Q.listHoverBackground}; }`),Q.listHoverForeground&&q.push(`.monaco-list${H}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${Q.listHoverForeground}; }`);const te=(0,L.asCssValueWithDefault)(Q.listFocusAndSelectionOutline,(0,L.asCssValueWithDefault)(Q.listSelectionOutline,(U=Q.listFocusOutline)!==null&&U!==void 0?U:""));te&&q.push(`.monaco-list${H}:focus .monaco-list-row.focused.selected { outline: 1px solid ${te}; outline-offset: -1px;}`),Q.listFocusOutline&&q.push(` + .monaco-drag-image, + .monaco-list${H}:focus .monaco-list-row.focused { outline: 1px solid ${Q.listFocusOutline}; outline-offset: -1px; } + .monaco-workbench.context-menu-visible .monaco-list${H}.last-focused .monaco-list-row.focused { outline: 1px solid ${Q.listFocusOutline}; outline-offset: -1px; } + `);const G=(0,L.asCssValueWithDefault)(Q.listSelectionOutline,(Z=Q.listInactiveFocusOutline)!==null&&Z!==void 0?Z:"");G&&q.push(`.monaco-list${H} .monaco-list-row.focused.selected { outline: 1px dotted ${G}; outline-offset: -1px; }`),Q.listSelectionOutline&&q.push(`.monaco-list${H} .monaco-list-row.selected { outline: 1px dotted ${Q.listSelectionOutline}; outline-offset: -1px; }`),Q.listInactiveFocusOutline&&q.push(`.monaco-list${H} .monaco-list-row.focused { outline: 1px dotted ${Q.listInactiveFocusOutline}; outline-offset: -1px; }`),Q.listHoverOutline&&q.push(`.monaco-list${H} .monaco-list-row:hover { outline: 1px dashed ${Q.listHoverOutline}; outline-offset: -1px; }`),Q.listDropOverBackground&&q.push(` + .monaco-list${H}.drop-target, + .monaco-list${H} .monaco-list-rows.drop-target, + .monaco-list${H} .monaco-list-row.drop-target { background-color: ${Q.listDropOverBackground} !important; color: inherit !important; } + `),Q.listDropBetweenBackground&&(q.push(` + .monaco-list${H} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, + .monaco-list${H} .monaco-list-row.drop-target-before::before { + content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${Q.listDropBetweenBackground}; + }`),q.push(` + .monaco-list${H} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, + .monaco-list${H} .monaco-list-row.drop-target-after::after { + content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${Q.listDropBetweenBackground}; + }`)),Q.tableColumnsBorder&&q.push(` + .monaco-table > .monaco-split-view2, + .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: ${Q.tableColumnsBorder}; + } + + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: transparent; + } + `),Q.tableOddRowsBackgroundColor&&q.push(` + .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { + background-color: ${Q.tableOddRowsBackgroundColor}; + } + `),this.styleElement.textContent=q.join(` +`)}}e.DefaultStyleController=j,e.unthemedListStyles={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:b.Color.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:b.Color.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:b.Color.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0};const x={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function re(pe,Q){const U=pe.indexOf(Q);if(U===-1)return[];const Z=[];let H=U-1;for(;H>=0&&pe[H]===Q-(U-H);)Z.push(pe[H--]);for(Z.reverse(),H=U;H=pe.length)U.push(Q[H++]);else if(H>=Q.length)U.push(pe[Z++]);else if(pe[Z]===Q[H]){U.push(pe[Z]),Z++,H++;continue}else pe[Z]=pe.length)U.push(Q[H++]);else if(H>=Q.length)U.push(pe[Z++]);else if(pe[Z]===Q[H]){Z++,H++;continue}else pe[Z]pe-Q;class Y{constructor(Q,U){this._templateId=Q,this.renderers=U}get templateId(){return this._templateId}renderTemplate(Q){return this.renderers.map(U=>U.renderTemplate(Q))}renderElement(Q,U,Z,H){let q=0;for(const te of this.renderers)te.renderElement(Q,U,Z[q++],H)}disposeElement(Q,U,Z,H){var q;let te=0;for(const G of this.renderers)(q=G.disposeElement)===null||q===void 0||q.call(G,Q,U,Z[te],H),te+=1}disposeTemplate(Q){let U=0;for(const Z of this.renderers)Z.disposeTemplate(Q[U++])}}class le{constructor(Q){this.accessibilityProvider=Q,this.templateId="a18n"}renderTemplate(Q){return Q}renderElement(Q,U,Z){const H=this.accessibilityProvider.getAriaLabel(Q);H?Z.setAttribute("aria-label",H):Z.removeAttribute("aria-label");const q=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(Q);typeof q=="number"?Z.setAttribute("aria-level",`${q}`):Z.removeAttribute("aria-level")}disposeTemplate(Q){}}class de{constructor(Q,U){this.list=Q,this.dnd=U}getDragElements(Q){const U=this.list.getSelectedElements();return U.indexOf(Q)>-1?U:[Q]}getDragURI(Q){return this.dnd.getDragURI(Q)}getDragLabel(Q,U){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(Q,U)}onDragStart(Q,U){var Z,H;(H=(Z=this.dnd).onDragStart)===null||H===void 0||H.call(Z,Q,U)}onDragOver(Q,U,Z,H,q){return this.dnd.onDragOver(Q,U,Z,H,q)}onDragLeave(Q,U,Z,H){var q,te;(te=(q=this.dnd).onDragLeave)===null||te===void 0||te.call(q,Q,U,Z,H)}onDragEnd(Q){var U,Z;(Z=(U=this.dnd).onDragEnd)===null||Z===void 0||Z.call(U,Q)}drop(Q,U,Z,H,q){this.dnd.drop(Q,U,Z,H,q)}dispose(){this.dnd.dispose()}}class ge{get onDidChangeFocus(){return n.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),Q=>this.toListEvent(Q),this.disposables)}get onDidChangeSelection(){return n.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),Q=>this.toListEvent(Q),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let Q=!1;const U=n.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,q=>q.map(te=>new y.StandardKeyboardEvent(te)).filter(te=>Q=te.keyCode===58||te.shiftKey&&te.keyCode===68).map(te=>L.EventHelper.stop(te,!0)).filter(()=>!1)),Z=n.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keyup")).event,q=>q.forEach(()=>Q=!1).map(te=>new y.StandardKeyboardEvent(te)).filter(te=>te.keyCode===58||te.shiftKey&&te.keyCode===68).map(te=>L.EventHelper.stop(te,!0)).map(({browserEvent:te})=>{const G=this.getFocus(),$=G.length?G[0]:void 0,oe=typeof $<"u"?this.view.element($):void 0,ae=typeof $<"u"?this.view.domElement($):this.view.domNode;return{index:$,element:oe,anchor:ae,browserEvent:te}})),H=n.Event.chain(this.view.onContextMenu,q=>q.filter(te=>!Q).map(({element:te,index:G,browserEvent:$})=>({element:te,index:G,anchor:new s.StandardMouseEvent((0,L.getWindow)(this.view.domNode),$),browserEvent:$})));return n.Event.any(U,Z,H)}get onKeyDown(){return this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event}get onDidFocus(){return n.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return n.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"blur",!0)).event)}constructor(Q,U,Z,H,q=x){var te,G,$,oe;this.user=Q,this._options=q,this.focus=new r("focused"),this.anchor=new r("anchor"),this.eventBufferer=new n.EventBufferer,this._ariaLabel="",this.disposables=new t.DisposableStore,this._onDidDispose=new n.Emitter,this.onDidDispose=this._onDidDispose.event;const ae=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(te=this._options.accessibilityProvider)===null||te===void 0?void 0:te.getWidgetRole():"list";this.selection=new h(ae!=="listbox");const ue=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=q.accessibilityProvider,this.accessibilityProvider&&(ue.push(new le(this.accessibilityProvider)),($=(G=this.accessibilityProvider).onDidChangeActiveDescendant)===null||$===void 0||$.call(G,this.onDidChangeActiveDescendant,this,this.disposables)),H=H.map(fe=>new Y(fe.templateId,[...ue,fe]));const ce={...q,dnd:q.dnd&&new de(this,q.dnd)};if(this.view=this.createListView(U,Z,H,ce),this.view.domNode.setAttribute("role",ae),q.styleController)this.styleController=q.styleController(this.view.domId);else{const fe=(0,L.createStyleSheet)(this.view.domNode);this.styleController=new j(fe,this.view.domId)}if(this.spliceable=new p.CombinedSpliceable([new u(this.focus,this.view,q.identityProvider),new u(this.selection,this.view,q.identityProvider),new u(this.anchor,this.view,q.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new O(this,this.view)),(typeof q.keyboardSupport!="boolean"||q.keyboardSupport)&&(this.keyboardController=new M(this,this.view,q),this.disposables.add(this.keyboardController)),q.keyboardNavigationLabelProvider){const fe=q.keyboardNavigationDelegate||e.DefaultKeyboardNavigationDelegate;this.typeNavigationController=new F(this,this.view,q.keyboardNavigationLabelProvider,(oe=q.keyboardNavigationEventFilter)!==null&&oe!==void 0?oe:()=>!0,fe),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(q),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(Q,U,Z,H){return new d.ListView(Q,U,Z,H)}createMouseController(Q){return new K(this)}updateOptions(Q={}){var U,Z;this._options={...this._options,...Q},(U=this.typeNavigationController)===null||U===void 0||U.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(Q),(Z=this.keyboardController)===null||Z===void 0||Z.updateOptions(Q),this.view.updateOptions(Q)}get options(){return this._options}splice(Q,U,Z=[]){if(Q<0||Q>this.view.length)throw new c.ListError(this.user,`Invalid start index: ${Q}`);if(U<0)throw new c.ListError(this.user,`Invalid delete count: ${U}`);U===0&&Z.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(Q,U,Z))}rerender(){this.view.rerender()}element(Q){return this.view.element(Q)}indexOf(Q){return this.view.indexOf(Q)}indexAt(Q){return this.view.indexAt(Q)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(Q){this.view.setScrollTop(Q)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(Q){this._ariaLabel=Q,this.view.domNode.setAttribute("aria-label",Q)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(Q,U){this.view.layout(Q,U)}setSelection(Q,U){for(const Z of Q)if(Z<0||Z>=this.length)throw new c.ListError(this.user,`Invalid index ${Z}`);this.selection.set(Q,U)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(Q=>this.view.element(Q))}setAnchor(Q){if(typeof Q>"u"){this.anchor.set([]);return}if(Q<0||Q>=this.length)throw new c.ListError(this.user,`Invalid index ${Q}`);this.anchor.set([Q])}getAnchor(){return(0,w.firstOrDefault)(this.anchor.get(),void 0)}getAnchorElement(){const Q=this.getAnchor();return typeof Q>"u"?void 0:this.element(Q)}setFocus(Q,U){for(const Z of Q)if(Z<0||Z>=this.length)throw new c.ListError(this.user,`Invalid index ${Z}`);this.focus.set(Q,U)}focusNext(Q=1,U=!1,Z,H){if(this.length===0)return;const q=this.focus.get(),te=this.findNextIndex(q.length>0?q[0]+Q:0,U,H);te>-1&&this.setFocus([te],Z)}focusPrevious(Q=1,U=!1,Z,H){if(this.length===0)return;const q=this.focus.get(),te=this.findPreviousIndex(q.length>0?q[0]-Q:0,U,H);te>-1&&this.setFocus([te],Z)}async focusNextPage(Q,U){let Z=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);Z=Z===0?0:Z-1;const H=this.getFocus()[0];if(H!==Z&&(H===void 0||Z>H)){const q=this.findPreviousIndex(Z,!1,U);q>-1&&H!==q?this.setFocus([q],Q):this.setFocus([Z],Q)}else{const q=this.view.getScrollTop();let te=q+this.view.renderHeight;Z>H&&(te-=this.view.elementHeight(Z)),this.view.setScrollTop(te),this.view.getScrollTop()!==q&&(this.setFocus([]),await(0,v.timeout)(0),await this.focusNextPage(Q,U))}}async focusPreviousPage(Q,U,Z=()=>0){let H;const q=Z(),te=this.view.getScrollTop()+q;te===0?H=this.view.indexAt(te):H=this.view.indexAfter(te-1);const G=this.getFocus()[0];if(G!==H&&(G===void 0||G>=H)){const $=this.findNextIndex(H,!1,U);$>-1&&G!==$?this.setFocus([$],Q):this.setFocus([H],Q)}else{const $=te;this.view.setScrollTop(te-this.view.renderHeight-q),this.view.getScrollTop()+Z()!==$&&(this.setFocus([]),await(0,v.timeout)(0),await this.focusPreviousPage(Q,U,Z))}}focusLast(Q,U){if(this.length===0)return;const Z=this.findPreviousIndex(this.length-1,!1,U);Z>-1&&this.setFocus([Z],Q)}focusFirst(Q,U){this.focusNth(0,Q,U)}focusNth(Q,U,Z){if(this.length===0)return;const H=this.findNextIndex(Q,!1,Z);H>-1&&this.setFocus([H],U)}findNextIndex(Q,U=!1,Z){for(let H=0;H=this.length&&!U)return-1;if(Q=Q%this.length,!Z||Z(this.element(Q)))return Q;Q++}return-1}findPreviousIndex(Q,U=!1,Z){for(let H=0;Hthis.view.element(Q))}reveal(Q,U,Z=0){if(Q<0||Q>=this.length)throw new c.ListError(this.user,`Invalid index ${Q}`);const H=this.view.getScrollTop(),q=this.view.elementTop(Q),te=this.view.elementHeight(Q);if((0,m.isNumber)(U)){const G=te-this.view.renderHeight+Z;this.view.setScrollTop(G*(0,o.clamp)(U,0,1)+q-Z)}else{const G=q+te,$=H+this.view.renderHeight;q=$||(q=$&&te>=this.view.renderHeight?this.view.setScrollTop(q-Z):G>=$&&this.view.setScrollTop(G-this.view.renderHeight))}}getRelativeTop(Q,U=0){if(Q<0||Q>=this.length)throw new c.ListError(this.user,`Invalid index ${Q}`);const Z=this.view.getScrollTop(),H=this.view.elementTop(Q),q=this.view.elementHeight(Q);if(HZ+this.view.renderHeight)return null;const te=q-this.view.renderHeight+U;return Math.abs((Z+U-H)/te)}isDOMFocused(){return(0,L.isActiveElement)(this.view.domNode)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(Q){return this.view.getElementDomId(Q)}getElementTop(Q){return this.view.elementTop(Q)}style(Q){this.styleController.style(Q)}toListEvent({indexes:Q,browserEvent:U}){return{indexes:Q,elements:Q.map(Z=>this.view.element(Z)),browserEvent:U}}_onFocusChange(){const Q=this.focus.get();this.view.domNode.classList.toggle("element-focused",Q.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var Q;const U=this.focus.get();if(U.length>0){let Z;!((Q=this.accessibilityProvider)===null||Q===void 0)&&Q.getActiveDescendantId&&(Z=this.accessibilityProvider.getActiveDescendantId(this.view.element(U[0]))),this.view.domNode.setAttribute("aria-activedescendant",Z||this.view.getElementDomId(U[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const Q=this.selection.get();this.view.domNode.classList.toggle("selection-none",Q.length===0),this.view.domNode.classList.toggle("selection-single",Q.length===1),this.view.domNode.classList.toggle("selection-multiple",Q.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}e.List=ge,De([a.memoize],ge.prototype,"onDidChangeFocus",null),De([a.memoize],ge.prototype,"onDidChangeSelection",null),De([a.memoize],ge.prototype,"onContextMenu",null),De([a.memoize],ge.prototype,"onKeyDown",null),De([a.memoize],ge.prototype,"onDidFocus",null),De([a.memoize],ge.prototype,"onDidBlur",null)}),define(ne[604],se([1,0,13,19,7,2,105,283]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedList=void 0;class p{get templateId(){return this.renderer.templateId}constructor(n,i){this.renderer=n,this.modelProvider=i}renderTemplate(n){return{data:this.renderer.renderTemplate(n),disposable:D.Disposable.None}}renderElement(n,i,t,o){var g;if((g=t.disposable)===null||g===void 0||g.dispose(),!t.data)return;const m=this.modelProvider();if(m.isResolved(n))return this.renderer.renderElement(m.get(n),n,t.data,o);const c=new k.CancellationTokenSource,d=m.resolve(n,c.token);t.disposable={dispose:()=>c.cancel()},this.renderer.renderPlaceholder(n,t.data),d.then(s=>this.renderer.renderElement(s,n,t.data,o))}disposeTemplate(n){n.disposable&&(n.disposable.dispose(),n.disposable=void 0),n.data&&(this.renderer.disposeTemplate(n.data),n.data=void 0)}}class w{constructor(n,i){this.modelProvider=n,this.accessibilityProvider=i}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(n){const i=this.modelProvider();return i.isResolved(n)?this.accessibilityProvider.getAriaLabel(i.get(n)):null}}function v(a,n){return{...n,accessibilityProvider:n.accessibilityProvider&&new w(a,n.accessibilityProvider)}}class b{constructor(n,i,t,o,g={}){const m=()=>this.model,c=o.map(d=>new p(d,m));this.list=new S.List(n,i,t,c,v(m,g))}updateOptions(n){this.list.updateOptions(n)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return y.Event.map(this.list.onMouseDblClick,({element:n,index:i,browserEvent:t})=>({element:n===void 0?void 0:this._model.get(n),index:i,browserEvent:t}))}get onPointer(){return y.Event.map(this.list.onPointer,({element:n,index:i,browserEvent:t})=>({element:n===void 0?void 0:this._model.get(n),index:i,browserEvent:t}))}get onDidChangeSelection(){return y.Event.map(this.list.onDidChangeSelection,({elements:n,indexes:i,browserEvent:t})=>({elements:n.map(o=>this._model.get(o)),indexes:i,browserEvent:t}))}get model(){return this._model}set model(n){this._model=n,this.list.splice(0,this.list.length,(0,L.range)(n.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(n=>this.model.get(n))}style(n){this.list.style(n)}dispose(){this.list.dispose()}}e.PagedList=b}),define(ne[329],se([1,0,6,84,160,78,13,39,7,2,128,151,20,431]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SplitView=e.Sizing=void 0;const i={separatorBorder:p.Color.transparent};class t{set size(l){this._size=l}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(l,r){var h,u;if(l!==this.visible){l?(this.size=(0,b.clamp)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof r=="number"?r:this.size,this.size=0),this.container.classList.toggle("visible",l);try{(u=(h=this.view).setVisible)===null||u===void 0||u.call(h,l)}catch(f){console.error("Splitview: Failed to set visible view"),console.error(f)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var l;return(l=this.view.proportionalLayout)!==null&&l!==void 0?l:!0}get snap(){return!!this.view.snap}set enabled(l){this.container.style.pointerEvents=l?"":"none"}constructor(l,r,h,u){this.container=l,this.view=r,this.disposable=u,this._cachedVisibleSize=void 0,typeof h=="number"?(this._size=h,this._cachedVisibleSize=void 0,l.classList.add("visible")):(this._size=0,this._cachedVisibleSize=h.cachedVisibleSize)}layout(l,r){this.layoutContainer(l);try{this.view.layout(this.size,l,r)}catch(h){console.error("Splitview: Failed to layout view"),console.error(h)}}dispose(){this.disposable.dispose()}}class o extends t{layoutContainer(l){this.container.style.top=`${l}px`,this.container.style.height=`${this.size}px`}}class g extends t{layoutContainer(l){this.container.style.left=`${l}px`,this.container.style.width=`${this.size}px`}}var m;(function(s){s[s.Idle=0]="Idle",s[s.Busy=1]="Busy"})(m||(m={}));var c;(function(s){s.Distribute={type:"distribute"};function l(u){return{type:"split",index:u}}s.Split=l;function r(u){return{type:"auto",index:u}}s.Auto=r;function h(u){return{type:"invisible",cachedVisibleSize:u}}s.Invisible=h})(c||(e.Sizing=c={}));class d extends v.Disposable{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(l){for(const r of this.sashItems)r.sash.orthogonalStartSash=l;this._orthogonalStartSash=l}set orthogonalEndSash(l){for(const r of this.sashItems)r.sash.orthogonalEndSash=l;this._orthogonalEndSash=l}set startSnappingEnabled(l){this._startSnappingEnabled!==l&&(this._startSnappingEnabled=l,this.updateSashEnablement())}set endSnappingEnabled(l){this._endSnappingEnabled!==l&&(this._endSnappingEnabled=l,this.updateSashEnablement())}constructor(l,r={}){var h,u,f,C,_;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=m.Idle,this._onDidSashChange=this._register(new w.Emitter),this._onDidSashReset=this._register(new w.Emitter),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(h=r.orientation)!==null&&h!==void 0?h:0,this.inverseAltBehavior=(u=r.inverseAltBehavior)!==null&&u!==void 0?u:!1,this.proportionalLayout=(f=r.proportionalLayout)!==null&&f!==void 0?f:!0,this.getSashOrthogonalSize=r.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),l.appendChild(this.el),this.sashContainer=(0,L.append)(this.el,(0,L.$)(".sash-container")),this.viewContainer=(0,L.$)(".split-view-container"),this.scrollable=this._register(new a.Scrollable({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:I=>(0,L.scheduleAtNextAnimationFrame)((0,L.getWindow)(this.el),I)})),this.scrollableElement=this._register(new D.SmoothScrollableElement(this.viewContainer,{vertical:this.orientation===0?(C=r.scrollbarVisibility)!==null&&C!==void 0?C:1:2,horizontal:this.orientation===1?(_=r.scrollbarVisibility)!==null&&_!==void 0?_:1:2},this.scrollable));const E=this._register(new k.DomEmitter(this.viewContainer,"scroll")).event;this._register(E(I=>{const T=this.scrollableElement.getScrollPosition(),A=Math.abs(this.viewContainer.scrollLeft-T.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,R=Math.abs(this.viewContainer.scrollTop-T.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(A!==void 0||R!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:A,scrollTop:R})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(I=>{I.scrollTopChanged&&(this.viewContainer.scrollTop=I.scrollTop),I.scrollLeftChanged&&(this.viewContainer.scrollLeft=I.scrollLeft)})),(0,L.append)(this.el,this.scrollableElement.getDomNode()),this.style(r.styles||i),r.descriptor&&(this.size=r.descriptor.size,r.descriptor.views.forEach((I,T)=>{const A=n.isUndefined(I.visible)||I.visible?I.size:{type:"invisible",cachedVisibleSize:I.size},R=I.view;this.doAddView(R,A,T,!0)}),this._contentSize=this.viewItems.reduce((I,T)=>I+T.size,0),this.saveProportions())}style(l){l.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",l.separatorBorder.toString()))}addView(l,r,h=this.viewItems.length,u){this.doAddView(l,r,h,u)}layout(l,r){const h=Math.max(this.size,this._contentSize);if(this.size=l,this.layoutContext=r,this.proportions){let u=0;for(let f=0;f0&&(C.size=(0,b.clamp)(Math.round(_*l/u),C.minimumSize,C.maximumSize))}}else{const u=(0,S.range)(this.viewItems.length),f=u.filter(_=>this.viewItems[_].priority===1),C=u.filter(_=>this.viewItems[_].priority===2);this.resize(this.viewItems.length-1,l-h,void 0,f,C)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(l=>l.proportionalLayout&&l.visible?l.size/this._contentSize:void 0))}onSashStart({sash:l,start:r,alt:h}){for(const _ of this.viewItems)_.enabled=!1;const u=this.sashItems.findIndex(_=>_.sash===l),f=(0,v.combinedDisposable)((0,L.addDisposableListener)(this.el.ownerDocument.body,"keydown",_=>C(this.sashDragState.current,_.altKey)),(0,L.addDisposableListener)(this.el.ownerDocument.body,"keyup",()=>C(this.sashDragState.current,!1))),C=(_,E)=>{const I=this.viewItems.map(N=>N.size);let T=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(E=!E),E)if(u===this.sashItems.length-1){const P=this.viewItems[u];T=(P.minimumSize-P.size)/2,A=(P.maximumSize-P.size)/2}else{const P=this.viewItems[u+1];T=(P.size-P.maximumSize)/2,A=(P.size-P.minimumSize)/2}let R,M;if(!E){const N=(0,S.range)(u,-1),P=(0,S.range)(u+1,this.viewItems.length),F=N.reduce((x,re)=>x+(this.viewItems[re].minimumSize-I[re]),0),O=N.reduce((x,re)=>x+(this.viewItems[re].viewMaximumSize-I[re]),0),B=P.length===0?Number.POSITIVE_INFINITY:P.reduce((x,re)=>x+(I[re]-this.viewItems[re].minimumSize),0),W=P.length===0?Number.NEGATIVE_INFINITY:P.reduce((x,re)=>x+(I[re]-this.viewItems[re].viewMaximumSize),0),V=Math.max(F,W),z=Math.min(B,O),K=this.findFirstSnapIndex(N),j=this.findFirstSnapIndex(P);if(typeof K=="number"){const x=this.viewItems[K],re=Math.floor(x.viewMinimumSize/2);R={index:K,limitDelta:x.visible?V-re:V+re,size:x.size}}if(typeof j=="number"){const x=this.viewItems[j],re=Math.floor(x.viewMinimumSize/2);M={index:j,limitDelta:x.visible?z+re:z-re,size:x.size}}}this.sashDragState={start:_,current:_,index:u,sizes:I,minDelta:T,maxDelta:A,alt:E,snapBefore:R,snapAfter:M,disposable:f}};C(r,h)}onSashChange({current:l}){const{index:r,start:h,sizes:u,alt:f,minDelta:C,maxDelta:_,snapBefore:E,snapAfter:I}=this.sashDragState;this.sashDragState.current=l;const T=l-h,A=this.resize(r,T,u,void 0,void 0,C,_,E,I);if(f){const R=r===this.sashItems.length-1,M=this.viewItems.map(W=>W.size),N=R?r:r+1,P=this.viewItems[N],F=P.size-P.maximumSize,O=P.size-P.minimumSize,B=R?r-1:r+1;this.resize(B,-A,M,void 0,void 0,F,O)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(l){this._onDidSashChange.fire(l),this.sashDragState.disposable.dispose(),this.saveProportions();for(const r of this.viewItems)r.enabled=!0}onViewChange(l,r){const h=this.viewItems.indexOf(l);h<0||h>=this.viewItems.length||(r=typeof r=="number"?r:l.size,r=(0,b.clamp)(r,l.minimumSize,l.maximumSize),this.inverseAltBehavior&&h>0?(this.resize(h-1,Math.floor((l.size-r)/2)),this.distributeEmptySpace(),this.layoutViews()):(l.size=r,this.relayout([h],void 0)))}resizeView(l,r){if(!(l<0||l>=this.viewItems.length)){if(this.state!==m.Idle)throw new Error("Cant modify splitview");this.state=m.Busy;try{const h=(0,S.range)(this.viewItems.length).filter(_=>_!==l),u=[...h.filter(_=>this.viewItems[_].priority===1),l],f=h.filter(_=>this.viewItems[_].priority===2),C=this.viewItems[l];r=Math.round(r),r=(0,b.clamp)(r,C.minimumSize,Math.min(C.maximumSize,this.size)),C.size=r,this.relayout(u,f)}finally{this.state=m.Idle}}}distributeViewSizes(){const l=[];let r=0;for(const _ of this.viewItems)_.maximumSize-_.minimumSize>0&&(l.push(_),r+=_.size);const h=Math.floor(r/l.length);for(const _ of l)_.size=(0,b.clamp)(h,_.minimumSize,_.maximumSize);const u=(0,S.range)(this.viewItems.length),f=u.filter(_=>this.viewItems[_].priority===1),C=u.filter(_=>this.viewItems[_].priority===2);this.relayout(f,C)}getViewSize(l){return l<0||l>=this.viewItems.length?-1:this.viewItems[l].size}doAddView(l,r,h=this.viewItems.length,u){if(this.state!==m.Idle)throw new Error("Cant modify splitview");this.state=m.Busy;try{const f=(0,L.$)(".split-view-view");h===this.viewItems.length?this.viewContainer.appendChild(f):this.viewContainer.insertBefore(f,this.viewContainer.children.item(h));const C=l.onDidChange(R=>this.onViewChange(T,R)),_=(0,v.toDisposable)(()=>this.viewContainer.removeChild(f)),E=(0,v.combinedDisposable)(C,_);let I;typeof r=="number"?I=r:(r.type==="auto"&&(this.areViewsDistributed()?r={type:"distribute"}:r={type:"split",index:r.index}),r.type==="split"?I=this.getViewSize(r.index)/2:r.type==="invisible"?I={cachedVisibleSize:r.cachedVisibleSize}:I=l.minimumSize);const T=this.orientation===0?new o(f,l,I,E):new g(f,l,I,E);if(this.viewItems.splice(h,0,T),this.viewItems.length>1){const R={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},M=this.orientation===0?new y.Sash(this.sashContainer,{getHorizontalSashTop:x=>this.getSashPosition(x),getHorizontalSashWidth:this.getSashOrthogonalSize},{...R,orientation:1}):new y.Sash(this.sashContainer,{getVerticalSashLeft:x=>this.getSashPosition(x),getVerticalSashHeight:this.getSashOrthogonalSize},{...R,orientation:0}),N=this.orientation===0?x=>({sash:M,start:x.startY,current:x.currentY,alt:x.altKey}):x=>({sash:M,start:x.startX,current:x.currentX,alt:x.altKey}),F=w.Event.map(M.onDidStart,N)(this.onSashStart,this),B=w.Event.map(M.onDidChange,N)(this.onSashChange,this),V=w.Event.map(M.onDidEnd,()=>this.sashItems.findIndex(x=>x.sash===M))(this.onSashEnd,this),z=M.onDidReset(()=>{const x=this.sashItems.findIndex(Y=>Y.sash===M),re=(0,S.range)(x,-1),ie=(0,S.range)(x+1,this.viewItems.length),J=this.findFirstSnapIndex(re),X=this.findFirstSnapIndex(ie);typeof J=="number"&&!this.viewItems[J].visible||typeof X=="number"&&!this.viewItems[X].visible||this._onDidSashReset.fire(x)}),K=(0,v.combinedDisposable)(F,B,V,z,M),j={sash:M,disposable:K};this.sashItems.splice(h-1,0,j)}f.appendChild(l.element);let A;typeof r!="number"&&r.type==="split"&&(A=[r.index]),u||this.relayout([h],A),!u&&typeof r!="number"&&r.type==="distribute"&&this.distributeViewSizes()}finally{this.state=m.Idle}}relayout(l,r){const h=this.viewItems.reduce((u,f)=>u+f.size,0);this.resize(this.viewItems.length-1,this.size-h,void 0,l,r),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(l,r,h=this.viewItems.map(T=>T.size),u,f,C=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY,E,I){if(l<0||l>=this.viewItems.length)return 0;const T=(0,S.range)(l,-1),A=(0,S.range)(l+1,this.viewItems.length);if(f)for(const j of f)(0,S.pushToStart)(T,j),(0,S.pushToStart)(A,j);if(u)for(const j of u)(0,S.pushToEnd)(T,j),(0,S.pushToEnd)(A,j);const R=T.map(j=>this.viewItems[j]),M=T.map(j=>h[j]),N=A.map(j=>this.viewItems[j]),P=A.map(j=>h[j]),F=T.reduce((j,x)=>j+(this.viewItems[x].minimumSize-h[x]),0),O=T.reduce((j,x)=>j+(this.viewItems[x].maximumSize-h[x]),0),B=A.length===0?Number.POSITIVE_INFINITY:A.reduce((j,x)=>j+(h[x]-this.viewItems[x].minimumSize),0),W=A.length===0?Number.NEGATIVE_INFINITY:A.reduce((j,x)=>j+(h[x]-this.viewItems[x].maximumSize),0),V=Math.max(F,W,C),z=Math.min(B,O,_);let K=!1;if(E){const j=this.viewItems[E.index],x=r>=E.limitDelta;K=x!==j.visible,j.setVisible(x,E.size)}if(!K&&I){const j=this.viewItems[I.index],x=r_+E.size,0);let h=this.size-r;const u=(0,S.range)(this.viewItems.length-1,-1),f=u.filter(_=>this.viewItems[_].priority===1),C=u.filter(_=>this.viewItems[_].priority===2);for(const _ of C)(0,S.pushToStart)(u,_);for(const _ of f)(0,S.pushToEnd)(u,_);typeof l=="number"&&(0,S.pushToEnd)(u,l);for(let _=0;h!==0&&_r+h.size,0);let l=0;for(const r of this.viewItems)r.layout(l,this.layoutContext),l+=r.size;this.sashItems.forEach(r=>r.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let l=!1;const r=this.viewItems.map(E=>l=E.size-E.minimumSize>0||l);l=!1;const h=this.viewItems.map(E=>l=E.maximumSize-E.size>0||l),u=[...this.viewItems].reverse();l=!1;const f=u.map(E=>l=E.size-E.minimumSize>0||l).reverse();l=!1;const C=u.map(E=>l=E.maximumSize-E.size>0||l).reverse();let _=0;for(let E=0;E0||this.startSnappingEnabled)?I.state=1:B&&r[E]&&(_0)return;if(!h.visible&&h.snap)return r}}areViewsDistributed(){let l,r;for(const h of this.viewItems)if(l=l===void 0?h.size:Math.min(l,h.size),r=r===void 0?h.size:Math.max(r,h.size),r-l>2)return!1;return!0}dispose(){var l;(l=this.sashDragState)===null||l===void 0||l.disposable.dispose(),(0,v.dispose)(this.viewItems),this.viewItems=[],this.sashItems.forEach(r=>r.disposable.dispose()),this.sashItems=[],super.dispose()}}e.SplitView=d}),define(ne[48],se([1,0,228,47,98,17,11,22]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataUri=e.addTrailingPathSeparator=e.removeTrailingPathSeparator=e.hasTrailingPathSeparator=e.isEqualAuthority=e.isAbsolutePath=e.resolvePath=e.relativePath=e.normalizePath=e.joinPath=e.dirname=e.extname=e.basename=e.basenameOrAuthority=e.getComparisonKey=e.isEqualOrParent=e.isEqual=e.extUriIgnorePathCase=e.extUriBiasedIgnorePathCase=e.extUri=e.ExtUri=e.originalFSPath=void 0;function w(a){return(0,p.uriToFsPath)(a,!0)}e.originalFSPath=w;class v{constructor(n){this._ignorePathCasing=n}compare(n,i,t=!1){return n===i?0:(0,S.compare)(this.getComparisonKey(n,t),this.getComparisonKey(i,t))}isEqual(n,i,t=!1){return n===i?!0:!n||!i?!1:this.getComparisonKey(n,t)===this.getComparisonKey(i,t)}getComparisonKey(n,i=!1){return n.with({path:this._ignorePathCasing(n)?n.path.toLowerCase():void 0,fragment:i?null:void 0}).toString()}isEqualOrParent(n,i,t=!1){if(n.scheme===i.scheme){if(n.scheme===k.Schemas.file)return L.isEqualOrParent(w(n),w(i),this._ignorePathCasing(n))&&n.query===i.query&&(t||n.fragment===i.fragment);if((0,e.isEqualAuthority)(n.authority,i.authority))return L.isEqualOrParent(n.path,i.path,this._ignorePathCasing(n),"/")&&n.query===i.query&&(t||n.fragment===i.fragment)}return!1}joinPath(n,...i){return p.URI.joinPath(n,...i)}basenameOrAuthority(n){return(0,e.basename)(n)||n.authority}basename(n){return y.posix.basename(n.path)}extname(n){return y.posix.extname(n.path)}dirname(n){if(n.path.length===0)return n;let i;return n.scheme===k.Schemas.file?i=p.URI.file(y.dirname(w(n))).path:(i=y.posix.dirname(n.path),n.authority&&i.length&&i.charCodeAt(0)!==47&&(console.error(`dirname("${n.toString})) resulted in a relative path`),i="/")),n.with({path:i})}normalizePath(n){if(!n.path.length)return n;let i;return n.scheme===k.Schemas.file?i=p.URI.file(y.normalize(w(n))).path:i=y.posix.normalize(n.path),n.with({path:i})}relativePath(n,i){if(n.scheme!==i.scheme||!(0,e.isEqualAuthority)(n.authority,i.authority))return;if(n.scheme===k.Schemas.file){const g=y.relative(w(n),w(i));return D.isWindows?L.toSlashes(g):g}let t=n.path||"/";const o=i.path||"/";if(this._ignorePathCasing(n)){let g=0;for(const m=Math.min(t.length,o.length);gL.getRoot(t).length&&t[t.length-1]===i}else{const t=n.path;return t.length>1&&t.charCodeAt(t.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(n.fsPath)}}removeTrailingPathSeparator(n,i=y.sep){return(0,e.hasTrailingPathSeparator)(n,i)?n.with({path:n.path.substr(0,n.path.length-1)}):n}addTrailingPathSeparator(n,i=y.sep){let t=!1;if(n.scheme===k.Schemas.file){const o=w(n);t=o!==void 0&&o.length===L.getRoot(o).length&&o[o.length-1]===i}else{i="/";const o=n.path;t=o.length===1&&o.charCodeAt(o.length-1)===47}return!t&&!(0,e.hasTrailingPathSeparator)(n,i)?n.with({path:n.path+"/"}):n}}e.ExtUri=v,e.extUri=new v(()=>!1),e.extUriBiasedIgnorePathCase=new v(a=>a.scheme===k.Schemas.file?!D.isLinux:!0),e.extUriIgnorePathCase=new v(a=>!0),e.isEqual=e.extUri.isEqual.bind(e.extUri),e.isEqualOrParent=e.extUri.isEqualOrParent.bind(e.extUri),e.getComparisonKey=e.extUri.getComparisonKey.bind(e.extUri),e.basenameOrAuthority=e.extUri.basenameOrAuthority.bind(e.extUri),e.basename=e.extUri.basename.bind(e.extUri),e.extname=e.extUri.extname.bind(e.extUri),e.dirname=e.extUri.dirname.bind(e.extUri),e.joinPath=e.extUri.joinPath.bind(e.extUri),e.normalizePath=e.extUri.normalizePath.bind(e.extUri),e.relativePath=e.extUri.relativePath.bind(e.extUri),e.resolvePath=e.extUri.resolvePath.bind(e.extUri),e.isAbsolutePath=e.extUri.isAbsolutePath.bind(e.extUri),e.isEqualAuthority=e.extUri.isEqualAuthority.bind(e.extUri),e.hasTrailingPathSeparator=e.extUri.hasTrailingPathSeparator.bind(e.extUri),e.removeTrailingPathSeparator=e.extUri.removeTrailingPathSeparator.bind(e.extUri),e.addTrailingPathSeparator=e.extUri.addTrailingPathSeparator.bind(e.extUri);var b;(function(a){a.META_DATA_LABEL="label",a.META_DATA_DESCRIPTION="description",a.META_DATA_SIZE="size",a.META_DATA_MIME="mime";function n(i){const t=new Map;i.path.substring(i.path.indexOf(";")+1,i.path.lastIndexOf(";")).split(";").forEach(m=>{const[c,d]=m.split(":");c&&d&&t.set(c,d)});const g=i.path.substring(0,i.path.indexOf(";"));return g&&t.set(a.META_DATA_MIME,g),t}a.parseMetaData=n})(b||(e.DataUri=b={}))}),define(ne[58],se([1,0,12,130,48,11,22]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseHrefAndDimensions=e.removeMarkdownEscapes=e.escapeDoubleQuotes=e.appendEscapedMarkdownCodeBlockFence=e.escapeMarkdownSyntaxTokens=e.markdownStringEqual=e.isMarkdownString=e.isEmptyMarkdownString=e.MarkdownString=void 0;class p{constructor(m="",c=!1){var d,s,l;if(this.value=m,typeof this.value!="string")throw(0,L.illegalArgument)("value");typeof c=="boolean"?(this.isTrusted=c,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=(d=c.isTrusted)!==null&&d!==void 0?d:void 0,this.supportThemeIcons=(s=c.supportThemeIcons)!==null&&s!==void 0?s:!1,this.supportHtml=(l=c.supportHtml)!==null&&l!==void 0?l:!1)}appendText(m,c=0){return this.value+=a(this.supportThemeIcons?(0,k.escapeIcons)(m):m).replace(/([ \t]+)/g,(d,s)=>" ".repeat(s.length)).replace(/\>/gm,"\\>").replace(/\n/g,c===1?`\\ +`:` + +`),this}appendMarkdown(m){return this.value+=m,this}appendCodeblock(m,c){return this.value+=` +${n(c,m)} +`,this}appendLink(m,c,d){return this.value+="[",this.value+=this._escape(c,"]"),this.value+="](",this.value+=this._escape(String(m),")"),d&&(this.value+=` "${this._escape(this._escape(d,'"'),")")}"`),this.value+=")",this}_escape(m,c){const d=new RegExp((0,D.escapeRegExpCharacters)(c),"g");return m.replace(d,(s,l)=>m.charAt(l-1)!=="\\"?`\\${s}`:s)}}e.MarkdownString=p;function w(g){return v(g)?!g.value:Array.isArray(g)?g.every(w):!0}e.isEmptyMarkdownString=w;function v(g){return g instanceof p?!0:g&&typeof g=="object"?typeof g.value=="string"&&(typeof g.isTrusted=="boolean"||typeof g.isTrusted=="object"||g.isTrusted===void 0)&&(typeof g.supportThemeIcons=="boolean"||g.supportThemeIcons===void 0):!1}e.isMarkdownString=v;function b(g,m){return g===m?!0:!g||!m?!1:g.value===m.value&&g.isTrusted===m.isTrusted&&g.supportThemeIcons===m.supportThemeIcons&&g.supportHtml===m.supportHtml&&(g.baseUri===m.baseUri||!!g.baseUri&&!!m.baseUri&&(0,y.isEqual)(S.URI.from(g.baseUri),S.URI.from(m.baseUri)))}e.markdownStringEqual=b;function a(g){return g.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}e.escapeMarkdownSyntaxTokens=a;function n(g,m){var c,d;const s=(d=(c=g.match(/^`+/gm))===null||c===void 0?void 0:c.reduce((r,h)=>r.length>h.length?r:h).length)!==null&&d!==void 0?d:0,l=s>=3?s+1:3;return[`${"`".repeat(l)}${m}`,g,`${"`".repeat(l)}`].join(` +`)}e.appendEscapedMarkdownCodeBlockFence=n;function i(g){return g.replace(/"/g,""")}e.escapeDoubleQuotes=i;function t(g){return g&&g.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}e.removeMarkdownEscapes=t;function o(g){const m=[],c=g.split("|").map(s=>s.trim());g=c[0];const d=c[1];if(d){const s=/height=(\d+)/.exec(d),l=/width=(\d+)/.exec(d),r=s?s[1]:"",h=l?l[1]:"",u=isFinite(parseInt(h)),f=isFinite(parseInt(r));u&&m.push(`width="${h}"`),f&&m.push(`height="${r}"`)}return{href:g,dimensions:m}}e.parseHrefAndDimensions=o}),define(ne[191],se([1,0,6,323,84,324,46,69,104,12,7,58,130,172,96,2,407,229,47,54,48,11,22]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fillInIncompleteTokens=e.renderMarkdownAsPlaintext=e.renderStringAsPlaintext=e.allowedMarkdownAttr=e.renderMarkdown=void 0;const h=Object.freeze({image:(X,Y,le)=>{let de=[],ge=[];return X&&({href:X,dimensions:de}=(0,a.parseHrefAndDimensions)(X),ge.push(`src="${(0,a.escapeDoubleQuotes)(X)}"`)),le&&ge.push(`alt="${(0,a.escapeDoubleQuotes)(le)}"`),Y&&ge.push(`title="${(0,a.escapeDoubleQuotes)(Y)}"`),de.length&&(ge=ge.concat(de)),""},paragraph:X=>`

    ${X}

    `,link:(X,Y,le)=>typeof X!="string"?"":(X===le&&(le=(0,a.removeMarkdownEscapes)(le)),Y=typeof Y=="string"?(0,a.escapeDoubleQuotes)((0,a.removeMarkdownEscapes)(Y)):"",X=(0,a.removeMarkdownEscapes)(X),X=X.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),`
    ${le}`)});function u(X,Y={},le={}){var de,ge;const pe=new o.DisposableStore;let Q=!1;const U=(0,D.createElement)(Y),Z=function(ce){let fe;try{fe=(0,m.parse)(decodeURIComponent(ce))}catch{}return fe?(fe=(0,d.cloneAndChange)(fe,ve=>{if(X.uris&&X.uris[ve])return r.URI.revive(X.uris[ve])}),encodeURIComponent(JSON.stringify(fe))):ce},H=function(ce,fe){const ve=X.uris&&X.uris[ce];let Ce=r.URI.revive(ve);return fe?ce.startsWith(c.Schemas.data+":")?ce:(Ce||(Ce=r.URI.parse(ce)),c.FileAccess.uriToBrowserUri(Ce).toString(!0)):!Ce||r.URI.parse(ce).toString()===Ce.toString()?ce:(Ce.query&&(Ce=Ce.with({query:Z(Ce.query)})),Ce.toString())},q=new g.marked.Renderer;q.image=h.image,q.link=h.link,q.paragraph=h.paragraph;const te=[],G=[];if(Y.codeBlockRendererSync?q.code=(ce,fe)=>{const ve=i.defaultGenerator.nextId(),Ce=Y.codeBlockRendererSync(f(fe),ce);return G.push([ve,Ce]),`
    ${(0,l.escape)(ce)}
    `}:Y.codeBlockRenderer&&(q.code=(ce,fe)=>{const ve=i.defaultGenerator.nextId(),Ce=Y.codeBlockRenderer(f(fe),ce);return te.push(Ce.then(Se=>[ve,Se])),`
    ${(0,l.escape)(ce)}
    `}),Y.actionHandler){const ce=function(Ce){let Se=Ce.target;if(!(Se.tagName!=="A"&&(Se=Se.parentElement,!Se||Se.tagName!=="A")))try{let _e=Se.dataset.href;_e&&(X.baseUri&&(_e=C(r.URI.from(X.baseUri),_e)),Y.actionHandler.callback(_e,Ce))}catch(_e){(0,v.onUnexpectedError)(_e)}finally{Ce.preventDefault()}},fe=Y.actionHandler.disposables.add(new y.DomEmitter(U,"click")),ve=Y.actionHandler.disposables.add(new y.DomEmitter(U,"auxclick"));Y.actionHandler.disposables.add(b.Event.any(fe.event,ve.event)(Ce=>{const Se=new p.StandardMouseEvent(L.getWindow(U),Ce);!Se.leftButton&&!Se.middleButton||ce(Se)})),Y.actionHandler.disposables.add(L.addDisposableListener(U,"keydown",Ce=>{const Se=new S.StandardKeyboardEvent(Ce);!Se.equals(10)&&!Se.equals(3)||ce(Se)}))}X.supportHtml||(le.sanitizer=ce=>(X.isTrusted?ce.match(/^(]+>)|(<\/\s*span>)$/):void 0)?ce:"",le.sanitize=!0,le.silent=!0),le.renderer=q;let $=(de=X.value)!==null&&de!==void 0?de:"";$.length>1e5&&($=`${$.substr(0,1e5)}\u2026`),X.supportThemeIcons&&($=(0,n.markdownEscapeEscapedIcons)($));let oe;if(Y.fillInIncompleteTokens){const ce={...g.marked.defaults,...le},fe=g.marked.lexer($,ce),ve=F(fe);oe=g.marked.parser(ve,ce)}else oe=g.marked.parse($,le);X.supportThemeIcons&&(oe=(0,w.renderLabelWithIcons)(oe).map(fe=>typeof fe=="string"?fe:fe.outerHTML).join(""));const ue=new DOMParser().parseFromString(_(X,oe),"text/html");if(ue.body.querySelectorAll("img").forEach(ce=>{const fe=ce.getAttribute("src");if(fe){let ve=fe;try{X.baseUri&&(ve=C(r.URI.from(X.baseUri),ve))}catch{}ce.src=H(ve,!0)}}),ue.body.querySelectorAll("a").forEach(ce=>{const fe=ce.getAttribute("href");if(ce.setAttribute("href",""),!fe||/^data:|javascript:/i.test(fe)||/^command:/i.test(fe)&&!X.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(fe))ce.replaceWith(...ce.childNodes);else{let ve=H(fe,!1);X.baseUri&&(ve=C(r.URI.from(X.baseUri),fe)),ce.dataset.href=ve}}),U.innerHTML=_(X,ue.body.innerHTML),te.length>0)Promise.all(te).then(ce=>{var fe,ve;if(Q)return;const Ce=new Map(ce),Se=U.querySelectorAll("div[data-code]");for(const _e of Se){const Ie=Ce.get((fe=_e.dataset.code)!==null&&fe!==void 0?fe:"");Ie&&L.reset(_e,Ie)}(ve=Y.asyncRenderCallback)===null||ve===void 0||ve.call(Y)});else if(G.length>0){const ce=new Map(G),fe=U.querySelectorAll("div[data-code]");for(const ve of fe){const Ce=ce.get((ge=ve.dataset.code)!==null&&ge!==void 0?ge:"");Ce&&L.reset(ve,Ce)}}if(Y.asyncRenderCallback)for(const ce of U.getElementsByTagName("img")){const fe=pe.add(L.addDisposableListener(ce,"load",()=>{fe.dispose(),Y.asyncRenderCallback()}))}return{element:U,dispose:()=>{Q=!0,pe.dispose()}}}e.renderMarkdown=u;function f(X){if(!X)return"";const Y=X.split(/[\s+|:|,|\{|\?]/,1);return Y.length?Y[0]:X}function C(X,Y){return/^\w[\w\d+.-]*:/.test(Y)?Y:X.path.endsWith("/")?(0,s.resolvePath)(X,Y).toString():(0,s.resolvePath)((0,s.dirname)(X),Y).toString()}function _(X,Y){const{config:le,allowedSchemes:de}=E(X);k.addHook("uponSanitizeAttribute",(pe,Q)=>{var U;if(Q.attrName==="style"||Q.attrName==="class"){if(pe.tagName==="SPAN"){if(Q.attrName==="style"){Q.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(Q.attrValue);return}else if(Q.attrName==="class"){Q.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(Q.attrValue);return}}Q.keepAttr=!1;return}else if(pe.tagName==="INPUT"&&((U=pe.attributes.getNamedItem("type"))===null||U===void 0?void 0:U.value)==="checkbox"){if(Q.attrName==="type"&&Q.attrValue==="checkbox"||Q.attrName==="disabled"||Q.attrName==="checked"){Q.keepAttr=!0;return}Q.keepAttr=!1}}),k.addHook("uponSanitizeElement",(pe,Q)=>{var U,Z;Q.tagName==="input"&&(((U=pe.attributes.getNamedItem("type"))===null||U===void 0?void 0:U.value)==="checkbox"?pe.setAttribute("disabled",""):(Z=pe.parentElement)===null||Z===void 0||Z.removeChild(pe))});const ge=L.hookDomPurifyHrefAndSrcSanitizer(de);try{return k.sanitize(Y,{...le,RETURN_TRUSTED_TYPE:!0})}finally{k.removeHook("uponSanitizeAttribute"),ge.dispose()}}e.allowedMarkdownAttr=["align","autoplay","alt","checked","class","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","src","style","target","title","type","width","start"];function E(X){const Y=[c.Schemas.http,c.Schemas.https,c.Schemas.mailto,c.Schemas.data,c.Schemas.file,c.Schemas.vscodeFileResource,c.Schemas.vscodeRemote,c.Schemas.vscodeRemoteResource];return X.isTrusted&&Y.push(c.Schemas.command),{config:{ALLOWED_TAGS:[...L.basicMarkupHtmlTags],ALLOWED_ATTR:e.allowedMarkdownAttr,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:Y}}function I(X){return typeof X=="string"?X:T(X)}e.renderStringAsPlaintext=I;function T(X){var Y;let le=(Y=X.value)!==null&&Y!==void 0?Y:"";le.length>1e5&&(le=`${le.substr(0,1e5)}\u2026`);const de=g.marked.parse(le,{renderer:R.value}).replace(/&(#\d+|[a-zA-Z]+);/g,ge=>{var pe;return(pe=A.get(ge))!==null&&pe!==void 0?pe:ge});return _({isTrusted:!1},de).toString()}e.renderMarkdownAsPlaintext=T;const A=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]),R=new t.Lazy(()=>{const X=new g.marked.Renderer;return X.code=Y=>Y,X.blockquote=Y=>Y,X.html=Y=>"",X.heading=(Y,le,de)=>Y+` +`,X.hr=()=>"",X.list=(Y,le)=>Y,X.listitem=Y=>Y+` +`,X.paragraph=Y=>Y+` +`,X.table=(Y,le)=>Y+le+` +`,X.tablerow=Y=>Y,X.tablecell=(Y,le)=>Y+" ",X.strong=Y=>Y,X.em=Y=>Y,X.codespan=Y=>Y,X.br=()=>` +`,X.del=Y=>Y,X.image=(Y,le,de)=>"",X.text=Y=>Y,X.link=(Y,le,de)=>de,X});function M(X){let Y="";return X.forEach(le=>{Y+=le.raw}),Y}function N(X){var Y,le;for(let de=0;deP(U.raw)))return j(X)}}}}function P(X){return!!X.match(/^[^\[]*\]\([^\)]*$/)}function F(X){let Y,le;for(Y=0;Y"u"&&Q.match(/^\s*\|/)){const U=Q.match(/(\|[^\|]+)(?=\||$)/g);U&&(de=U.length)}else if(typeof de=="number")if(Q.match(/^\s*\|/)){if(pe!==le.length-1)return;ge=!0}else return}if(typeof de=="number"&&de>0){const pe=ge?le.slice(0,-1).join(` +`):Y,Q=!!pe.match(/\|\s*$/),U=pe+(Q?"":"|")+` +|${" --- |".repeat(de)}`;return g.marked.lexer(U)}}}),define(ne[121],se([1,0,6,15,19,58,130,2,20,581]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setupCustomHover=e.setupNativeHover=void 0;function b(i,t){(0,w.isString)(t)?i.title=(0,S.stripIcons)(t):t?.markdownNotSupportedFallback?i.title=t.markdownNotSupportedFallback:i.removeAttribute("title")}e.setupNativeHover=b;class a{constructor(t,o,g){this.hoverDelegate=t,this.target=o,this.fadeInAnimation=g}async update(t,o,g){var m;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let c;if(t===void 0||(0,w.isString)(t)||t instanceof HTMLElement)c=t;else if(!(0,w.isFunction)(t.markdown))c=(m=t.markdown)!==null&&m!==void 0?m:t.markdownNotSupportedFallback;else{this._hoverWidget||this.show((0,v.localize)(0,null),o),this._cancellationTokenSource=new y.CancellationTokenSource;const d=this._cancellationTokenSource.token;if(c=await t.markdown(d),c===void 0&&(c=t.markdownNotSupportedFallback),this.isDisposed||d.isCancellationRequested)return}this.show(c,o,g)}show(t,o,g){const m=this._hoverWidget;if(this.hasContent(t)){const c={content:t,target:this.target,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!m},position:{hoverPosition:2},...g};this._hoverWidget=this.hoverDelegate.showHover(c,o)}m?.dispose()}hasContent(t){return t?(0,D.isMarkdownString)(t)?!!t.value:!0:!1}get isDisposed(){var t;return(t=this._hoverWidget)===null||t===void 0?void 0:t.isDisposed}dispose(){var t,o;(t=this._hoverWidget)===null||t===void 0||t.dispose(),(o=this._cancellationTokenSource)===null||o===void 0||o.dispose(!0),this._cancellationTokenSource=void 0}}function n(i,t,o,g){let m,c;const d=(T,A)=>{var R;const M=c!==void 0;T&&(c?.dispose(),c=void 0),A&&(m?.dispose(),m=void 0),M&&((R=i.onDidHideHover)===null||R===void 0||R.call(i),c=void 0)},s=(T,A,R)=>new k.TimeoutTimer(async()=>{(!c||c.isDisposed)&&(c=new a(i,R||t,T>0),await c.update(typeof o=="function"?o():o,A,g))},T);let l=!1;const r=L.addDisposableListener(t,L.EventType.MOUSE_DOWN,()=>{l=!0,d(!0,!0)},!0),h=L.addDisposableListener(t,L.EventType.MOUSE_UP,()=>{l=!1},!0),u=L.addDisposableListener(t,L.EventType.MOUSE_LEAVE,T=>{l=!1,d(!1,T.fromElement===t)},!0),f=()=>{if(m)return;const T=new p.DisposableStore,A={targetElements:[t],dispose:()=>{}};if(i.placement===void 0||i.placement==="mouse"){const R=M=>{A.x=M.x+10,M.target instanceof HTMLElement&&M.target.classList.contains("action-label")&&d(!0,!0)};T.add(L.addDisposableListener(t,L.EventType.MOUSE_MOVE,R,!0))}T.add(s(i.delay,!1,A)),m=T},C=L.addDisposableListener(t,L.EventType.MOUSE_OVER,f,!0),_=()=>{if(l||m)return;const T={targetElements:[t],dispose:()=>{}},A=new p.DisposableStore,R=()=>d(!0,!0);A.add(L.addDisposableListener(t,L.EventType.BLUR,R,!0)),A.add(s(i.delay,!1,T)),m=A},E=L.addDisposableListener(t,L.EventType.FOCUS,_,!0);return{show:T=>{d(!1,!0),s(0,T)},hide:()=>{d(!0,!0)},update:async(T,A)=>{o=T,await c?.update(o,void 0,A)},dispose:()=>{C.dispose(),u.dispose(),r.dispose(),h.dispose(),E.dispose(),d(!0,!0)}}}e.setupCustomHover=n}),define(ne[235],se([1,0,6,323,46,191,65,91,121,104,39,7,58,2,29,416]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Button=e.unthemedButtonStyles=void 0,e.unthemedButtonStyles={buttonBackground:"#0E639C",buttonHoverBackground:"#006BB3",buttonSeparator:b.Color.white.toString(),buttonForeground:b.Color.white.toString(),buttonBorder:void 0,buttonSecondaryBackground:void 0,buttonSecondaryForeground:void 0,buttonSecondaryHoverBackground:void 0};class o extends i.Disposable{get onDidClick(){return this._onDidClick.event}constructor(m,c){super(),this._label="",this._onDidClick=this._register(new a.Emitter),this._onDidEscape=this._register(new a.Emitter),this.options=c,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!c.secondary);const d=c.secondary?c.buttonSecondaryBackground:c.buttonBackground,s=c.secondary?c.buttonSecondaryForeground:c.buttonForeground;this._element.style.color=s||"",this._element.style.backgroundColor=d||"",c.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof c.ariaLabel=="string"&&this._element.setAttribute("aria-label",c.ariaLabel),m.appendChild(this._element),this._register(S.Gesture.addTarget(this._element)),[L.EventType.CLICK,S.EventType.Tap].forEach(l=>{this._register((0,L.addDisposableListener)(this._element,l,r=>{if(!this.enabled){L.EventHelper.stop(r);return}this._onDidClick.fire(r)}))}),this._register((0,L.addDisposableListener)(this._element,L.EventType.KEY_DOWN,l=>{const r=new y.StandardKeyboardEvent(l);let h=!1;this.enabled&&(r.equals(3)||r.equals(10))?(this._onDidClick.fire(l),h=!0):r.equals(9)&&(this._onDidEscape.fire(l),this._element.blur(),h=!0),h&&L.EventHelper.stop(r,!0)})),this._register((0,L.addDisposableListener)(this._element,L.EventType.MOUSE_OVER,l=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register((0,L.addDisposableListener)(this._element,L.EventType.MOUSE_OUT,l=>{this.updateBackground(!1)})),this.focusTracker=this._register((0,L.trackFocus)(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(m){const c=[];for(let d of(0,v.renderLabelWithIcons)(m))if(typeof d=="string"){if(d=d.trim(),d==="")continue;const s=document.createElement("span");s.textContent=d,c.push(s)}else c.push(d);return c}updateBackground(m){let c;this.options.secondary?c=m?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:c=m?this.options.buttonHoverBackground:this.options.buttonBackground,c&&(this._element.style.backgroundColor=c)}get element(){return this._element}set label(m){var c;if(this._label===m||(0,n.isMarkdownString)(this._label)&&(0,n.isMarkdownString)(m)&&(0,n.markdownStringEqual)(this._label,m))return;this._element.classList.add("monaco-text-button");const d=this.options.supportShortLabel?this._labelElement:this._element;if((0,n.isMarkdownString)(m)){const l=(0,D.renderMarkdown)(m,{inline:!0});l.dispose();const r=(c=l.element.querySelector("p"))===null||c===void 0?void 0:c.innerHTML;if(r){const h=(0,k.sanitize)(r,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});d.innerHTML=h}else(0,L.reset)(d)}else this.options.supportIcons?(0,L.reset)(d,...this.getContentElements(m)):d.textContent=m;let s="";typeof this.options.title=="string"?s=this.options.title:this.options.title&&(s=(0,D.renderStringAsPlaintext)(m)),this._hover?this._hover.update(s):this._hover=this._register((0,w.setupCustomHover)((0,p.getDefaultHoverDelegate)("mouse"),this._element,s)),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",this._element.title),this._label=m}get label(){return this._label}set icon(m){this._element.classList.add(...t.ThemeIcon.asClassNameArray(m))}set enabled(m){m?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}}e.Button=o}),define(ne[236],se([1,0,6,327,121,2,54,175,91,422]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IconLabel=void 0;class v{constructor(o){this._element=o}get element(){return this._element}set textContent(o){this.disposed||o===this._textContent||(this._textContent=o,this._element.textContent=o)}set className(o){this.disposed||o===this._className||(this._className=o,this._element.className=o)}set empty(o){this.disposed||o===this._empty||(this._empty=o,this._element.style.marginLeft=o?"0":"")}dispose(){this.disposed=!0}}class b extends D.Disposable{constructor(o,g){var m;super(),this.customHovers=new Map,this.creationOptions=g,this.domNode=this._register(new v(L.append(o,L.$(".monaco-icon-label")))),this.labelContainer=L.append(this.domNode.element,L.$(".monaco-icon-label-container")),this.nameContainer=L.append(this.labelContainer,L.$("span.monaco-icon-name-container")),g?.supportHighlights||g?.supportIcons?this.nameNode=new i(this.nameContainer,!!g.supportIcons):this.nameNode=new a(this.nameContainer),this.hoverDelegate=(m=g?.hoverDelegate)!==null&&m!==void 0?m:(0,w.getDefaultHoverDelegate)("mouse")}get element(){return this.domNode.element}setLabel(o,g,m){var c;const d=["monaco-icon-label"],s=["monaco-icon-label-container"];let l="";if(m&&(m.extraClasses&&d.push(...m.extraClasses),m.italic&&d.push("italic"),m.strikethrough&&d.push("strikethrough"),m.disabledCommand&&s.push("disabled"),m.title&&(typeof m.title=="string"?l+=m.title:l+=o)),this.domNode.className=d.join(" "),this.domNode.element.setAttribute("aria-label",l),this.labelContainer.className=s.join(" "),this.setupHover(m?.descriptionTitle?this.labelContainer:this.element,m?.title),this.nameNode.setLabel(o,m),g||this.descriptionNode){const r=this.getOrCreateDescriptionNode();r instanceof k.HighlightedLabel?(r.set(g||"",m?m.descriptionMatches:void 0,void 0,m?.labelEscapeNewLines),this.setupHover(r.element,m?.descriptionTitle)):(r.textContent=g&&m?.labelEscapeNewLines?k.HighlightedLabel.escapeNewLines(g,[]):g||"",this.setupHover(r.element,m?.descriptionTitle||""),r.empty=!g)}if(m?.suffix||this.suffixNode){const r=this.getOrCreateSuffixNode();r.textContent=(c=m?.suffix)!==null&&c!==void 0?c:""}}setupHover(o,g){const m=this.customHovers.get(o);if(m&&(m.dispose(),this.customHovers.delete(o)),!g){o.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)(0,y.setupNativeHover)(o,g);else{const c=(0,y.setupCustomHover)(this.hoverDelegate,o,g);c&&this.customHovers.set(o,c)}}dispose(){super.dispose();for(const o of this.customHovers.values())o.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const o=this._register(new v(L.after(this.nameContainer,L.$("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new v(L.append(o.element,L.$("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var o;if(!this.descriptionNode){const g=this._register(new v(L.append(this.labelContainer,L.$("span.monaco-icon-description-container"))));!((o=this.creationOptions)===null||o===void 0)&&o.supportDescriptionHighlights?this.descriptionNode=new k.HighlightedLabel(L.append(g.element,L.$("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons}):this.descriptionNode=this._register(new v(L.append(g.element,L.$("span.label-description"))))}return this.descriptionNode}}e.IconLabel=b;class a{constructor(o){this.container=o,this.label=void 0,this.singleLabel=void 0}setLabel(o,g){if(!(this.label===o&&(0,S.equals)(this.options,g)))if(this.label=o,this.options=g,typeof o=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=L.append(this.container,L.$("a.label-name",{id:g?.domId}))),this.singleLabel.textContent=o;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let m=0;m{const d={start:m,end:m+c.length},s=g.map(l=>p.Range.intersect(d,l)).filter(l=>!p.Range.isEmpty(l)).map(({start:l,end:r})=>({start:l-m,end:r-m}));return m=d.end+o.length,s})}class i{constructor(o,g){this.container=o,this.supportIcons=g,this.label=void 0,this.singleLabel=void 0}setLabel(o,g){if(!(this.label===o&&(0,S.equals)(this.options,g)))if(this.label=o,this.options=g,typeof o=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new k.HighlightedLabel(L.append(this.container,L.$("a.label-name",{id:g?.domId})),{supportIcons:this.supportIcons})),this.singleLabel.set(o,g?.matches,void 0,g?.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const m=g?.separator||"/",c=n(o,m,g?.matches);for(let d=0;d{L.EventHelper.stop(h,!0)}))}registerListeners(){this._register(L.addStandardDisposableListener(this.selectElement,"change",l=>{this.selected=l.target.selectedIndex,this._onDidSelect.fire({index:l.target.selectedIndex,selected:l.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this._hover.update(this.options[this.selected].text)})),this._register(L.addDisposableListener(this.selectElement,L.EventType.CLICK,l=>{L.EventHelper.stop(l),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(L.addDisposableListener(this.selectElement,L.EventType.MOUSE_DOWN,l=>{L.EventHelper.stop(l)}));let s;this._register(L.addDisposableListener(this.selectElement,"touchstart",l=>{s=this._isVisible})),this._register(L.addDisposableListener(this.selectElement,"touchend",l=>{L.EventHelper.stop(l),s?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(L.addDisposableListener(this.selectElement,L.EventType.KEY_DOWN,l=>{const r=new y.StandardKeyboardEvent(l);let h=!1;i.isMacintosh?(r.keyCode===18||r.keyCode===16||r.keyCode===10||r.keyCode===3)&&(h=!0):(r.keyCode===18&&r.altKey||r.keyCode===16&&r.altKey||r.keyCode===10||r.keyCode===3)&&(h=!0),h&&(this.showSelectDropDown(),L.EventHelper.stop(l,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(s,l){v.equals(this.options,s)||(this.options=s,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((r,h)=>{this.selectElement.add(this.createOption(r.text,h,r.isDisabled)),typeof r.description=="string"&&(this._hasDetails=!0)})),l!==void 0&&(this.select(l),this._currentSelection=this.selected)}setOptionsList(){var s;(s=this.selectList)===null||s===void 0||s.splice(0,this.selectList.length,this.options)}select(s){s>=0&&sthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this._hover.update(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(s){this.selectElement.tabIndex=s?0:-1}render(s){this.container=s,s.classList.add("select-container"),s.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const s=[];this.styles.listFocusBackground&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(s.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),s.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),s.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(s.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),s.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&s.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),s.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),s.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=s.join(` +`)}styleSelectElement(){var s,l,r;const h=(s=this.styles.selectBackground)!==null&&s!==void 0?s:"",u=(l=this.styles.selectForeground)!==null&&l!==void 0?l:"",f=(r=this.styles.selectBorder)!==null&&r!==void 0?r:"";this.selectElement.style.backgroundColor=h,this.selectElement.style.color=u,this.selectElement.style.borderColor=f}styleList(){var s,l;const r=(s=this.styles.selectBackground)!==null&&s!==void 0?s:"",h=L.asCssValueWithDefault(this.styles.selectListBackground,r);this.selectDropDownListContainer.style.backgroundColor=h,this.selectionDetailsPane.style.backgroundColor=h;const u=(l=this.styles.focusBorder)!==null&&l!==void 0?l:"";this.selectDropDownContainer.style.outlineColor=u,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(s,l,r){const h=document.createElement("option");return h.value=s,h.text=s,h.disabled=!!r,h}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:s=>this.renderSelectDropDown(s,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:s=>this.renderSelectDropDown(s),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(s){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),s&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(s,l){return s.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(l),{dispose:()=>{try{s.removeChild(this.selectDropDownContainer)}catch{}}}}measureMaxDetailsHeight(){let s=0;return this.options.forEach((l,r)=>{this.updateDetail(r),this.selectionDetailsPane.offsetHeight>s&&(s=this.selectionDetailsPane.offsetHeight)}),s}layoutSelectDropDown(s){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const l=L.getWindow(this.selectElement),r=L.getDomNodePagePosition(this.selectElement),h=L.getWindow(this.selectElement).getComputedStyle(this.selectElement),u=parseFloat(h.getPropertyValue("--dropdown-padding-top"))+parseFloat(h.getPropertyValue("--dropdown-padding-bottom")),f=l.innerHeight-r.top-r.height-(this.selectBoxOptions.minBottomMargin||0),C=r.top-c.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,_=this.selectElement.offsetWidth,E=this.setWidthControlElement(this.widthControlElement),I=Math.max(E,Math.round(_)).toString()+"px";this.selectDropDownContainer.style.width=I,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let T=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const A=this._hasDetails?this._cachedMaxDetailsHeight:0,R=T+u+A,M=Math.floor((f-u-A)/this.getHeight()),N=Math.floor((C-u-A)/this.getHeight());if(s)return r.top+r.height>l.innerHeight-22||r.topM&&this.options.length>M?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(r.top+r.height>l.innerHeight-22||r.topf&&(T=M*this.getHeight())}else R>C&&(T=N*this.getHeight());return this.selectList.layout(T),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=T+u+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=T+u+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=I,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(s){let l=0;if(s){let r=0,h=0;this.options.forEach((u,f)=>{const C=u.detail?u.detail.length:0,_=u.decoratorRight?u.decoratorRight.length:0,E=u.text.length+C+_;E>h&&(r=f,h=E)}),s.textContent=this.options[r].text+(this.options[r].decoratorRight?this.options[r].decoratorRight+" ":""),l=L.getTotalWidth(s)}return l}createSelectList(s){if(this.selectList)return;this.selectDropDownListContainer=L.append(s,o(".select-box-dropdown-list-container")),this.listRenderer=new m,this.selectList=new w.List("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:h=>{let u=h.text;return h.detail&&(u+=`. ${h.detail}`),h.decoratorRight&&(u+=`. ${h.decoratorRight}`),h.description&&(u+=`. ${h.description}`),u},getWidgetAriaLabel:()=>(0,t.localize)(0,null),getRole:()=>i.isMacintosh?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const l=this._register(new k.DomEmitter(this.selectDropDownListContainer,"keydown")),r=b.Event.chain(l.event,h=>h.filter(()=>this.selectList.length>0).map(u=>new y.StandardKeyboardEvent(u)));this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===3))(this.onEnter,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===2))(this.onEnter,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===9))(this.onEscape,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===16))(this.onUpArrow,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===18))(this.onDownArrow,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===12))(this.onPageDown,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===11))(this.onPageUp,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===14))(this.onHome,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode===13))(this.onEnd,this)),this._register(b.Event.chain(r,h=>h.filter(u=>u.keyCode>=21&&u.keyCode<=56||u.keyCode>=85&&u.keyCode<=113))(this.onCharacter,this)),this._register(L.addDisposableListener(this.selectList.getHTMLElement(),L.EventType.POINTER_UP,h=>this.onPointerUp(h))),this._register(this.selectList.onMouseOver(h=>typeof h.index<"u"&&this.selectList.setFocus([h.index]))),this._register(this.selectList.onDidChangeFocus(h=>this.onListFocus(h))),this._register(L.addDisposableListener(this.selectDropDownContainer,L.EventType.FOCUS_OUT,h=>{!this._isVisible||L.isAncestor(h.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(s){if(!this.selectList.length)return;L.EventHelper.stop(s);const l=s.target;if(!l||l.classList.contains("slider"))return;const r=l.closest(".monaco-list-row");if(!r)return;const h=Number(r.getAttribute("data-index")),u=r.classList.contains("option-disabled");h>=0&&h{for(let f=0;fthis.selected+2)this.selected+=2;else{if(l)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(s){this.selected>0&&(L.EventHelper.stop(s,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(s){L.EventHelper.stop(s),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(s){L.EventHelper.stop(s),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(s){L.EventHelper.stop(s),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(s){const l=a.KeyCodeUtils.toString(s.keyCode);let r=-1;for(let h=0;h{this.element&&this.handleActionChangeEvent(l)}))}handleActionChangeEvent(c){c.enabled!==void 0&&this.updateEnabled(),c.checked!==void 0&&this.updateChecked(),c.class!==void 0&&this.updateClass(),c.label!==void 0&&(this.updateLabel(),this.updateTooltip()),c.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new v.ActionRunner)),this._actionRunner}set actionRunner(c){this._actionRunner=c}isEnabled(){return this._action.enabled}setActionContext(c){this._context=c}render(c){const d=this.element=c;this._register(D.Gesture.addTarget(c));const s=this.options&&this.options.draggable;s&&(c.draggable=!0,L.isFirefox&&this._register((0,y.addDisposableListener)(c,y.EventType.DRAG_START,l=>{var r;return(r=l.dataTransfer)===null||r===void 0?void 0:r.setData(k.DataTransfers.TEXT,this._action.label)}))),this._register((0,y.addDisposableListener)(d,D.EventType.Tap,l=>this.onClick(l,!0))),this._register((0,y.addDisposableListener)(d,y.EventType.MOUSE_DOWN,l=>{s||y.EventHelper.stop(l,!0),this._action.enabled&&l.button===0&&d.classList.add("active")})),a.isMacintosh&&this._register((0,y.addDisposableListener)(d,y.EventType.CONTEXT_MENU,l=>{l.button===0&&l.ctrlKey===!0&&this.onClick(l)})),this._register((0,y.addDisposableListener)(d,y.EventType.CLICK,l=>{y.EventHelper.stop(l,!0),this.options&&this.options.isMenu||this.onClick(l)})),this._register((0,y.addDisposableListener)(d,y.EventType.DBLCLICK,l=>{y.EventHelper.stop(l,!0)})),[y.EventType.MOUSE_UP,y.EventType.MOUSE_OUT].forEach(l=>{this._register((0,y.addDisposableListener)(d,l,r=>{y.EventHelper.stop(r),d.classList.remove("active")}))})}onClick(c,d=!1){var s;y.EventHelper.stop(c,!0);const l=n.isUndefinedOrNull(this._context)?!((s=this.options)===null||s===void 0)&&s.useEventAsContext?c:{preserveFocus:d}:this._context;this.actionRunner.run(this._action,l)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(c){this.element&&(this.element.tabIndex=c?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var c,d,s;if(!this.element)return;const l=(c=this.getTooltip())!==null&&c!==void 0?c:"";if(this.updateAriaLabel(),!((d=this.options.hoverDelegate)===null||d===void 0)&&d.showNativeHover)this.element.title=l;else if(this.customHover)this.customHover.update(l);else{const r=(s=this.options.hoverDelegate)!==null&&s!==void 0?s:(0,S.getDefaultHoverDelegate)("element");this.customHover=(0,p.setupCustomHover)(r,this.element,l),this._store.add(this.customHover)}}updateAriaLabel(){var c;if(this.element){const d=(c=this.getTooltip())!==null&&c!==void 0?c:"";this.element.setAttribute("aria-label",d)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}e.BaseActionViewItem=t;class o extends t{constructor(c,d,s){super(c,d,s),this.options=s,this.options.icon=s.icon!==void 0?s.icon:!1,this.options.label=s.label!==void 0?s.label:!0,this.cssClass=""}render(c){super.render(c),n.assertType(this.element);const d=document.createElement("a");if(d.classList.add("action-label"),d.setAttribute("role",this.getDefaultAriaRole()),this.label=d,this.element.appendChild(d),this.options.label&&this.options.keybinding){const s=document.createElement("span");s.classList.add("keybinding"),s.textContent=this.options.keybinding,this.element.appendChild(s)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===v.Separator.ID?"presentation":this.options.isMenu?"menuitem":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(c){this.label&&(this.label.tabIndex=c?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let c=null;return this.action.tooltip?c=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(c=this.action.label,this.options.keybinding&&(c=i.localize(0,null,c,this.options.keybinding))),c??void 0}updateClass(){var c;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(c=this.label)===null||c===void 0||c.classList.remove("codicon")}updateEnabled(){var c,d;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),(c=this.element)===null||c===void 0||c.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(d=this.element)===null||d===void 0||d.classList.add("disabled"))}updateAriaLabel(){var c;if(this.label){const d=(c=this.getTooltip())!==null&&c!==void 0?c:"";this.label.setAttribute("aria-label",d)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.removeAttribute("aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}e.ActionViewItem=o;class g extends t{constructor(c,d,s,l,r,h,u){super(c,d),this.selectBox=new w.SelectBox(s,l,r,h,u),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(c){this.selectBox.select(c)}registerListeners(){this._register(this.selectBox.onDidSelect(c=>this.runAction(c.selected,c.index)))}runAction(c,d){this.actionRunner.run(this._action,this.getActionContext(c,d))}getActionContext(c,d){return c}setFocusable(c){this.selectBox.setFocusable(c)}focus(){var c;(c=this.selectBox)===null||c===void 0||c.focus()}blur(){var c;(c=this.selectBox)===null||c===void 0||c.blur()}render(c){this.selectBox.render(c)}}e.SelectActionViewItem=g}),define(ne[79],se([1,0,6,46,141,91,42,7,2,20,280]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionBar=void 0;class b extends w.Disposable{constructor(n,i={}){var t,o,g,m,c,d,s;super(),this._actionRunnerDisposables=this._register(new w.DisposableStore),this.viewItemDisposables=this._register(new w.DisposableMap),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new p.Emitter),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new p.Emitter({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new p.Emitter),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new p.Emitter),this.onWillRun=this._onWillRun.event,this.options=i,this._context=(t=i.context)!==null&&t!==void 0?t:null,this._orientation=(o=this.options.orientation)!==null&&o!==void 0?o:0,this._triggerKeys={keyDown:(m=(g=this.options.triggerKeys)===null||g===void 0?void 0:g.keyDown)!==null&&m!==void 0?m:!1,keys:(d=(c=this.options.triggerKeys)===null||c===void 0?void 0:c.keys)!==null&&d!==void 0?d:[3,10]},this._hoverDelegate=(s=i.hoverDelegate)!==null&&s!==void 0?s:this._register((0,D.getDefaultHoverDelegate)("element",!0)),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new S.ActionRunner,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(h=>this._onDidRun.fire(h))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(h=>this._onWillRun.fire(h))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let l,r;switch(this._orientation){case 0:l=[15],r=[17];break;case 1:l=[16],r=[18],this.domNode.className+=" vertical";break}this._register(L.addDisposableListener(this.domNode,L.EventType.KEY_DOWN,h=>{const u=new k.StandardKeyboardEvent(h);let f=!0;const C=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;l&&(u.equals(l[0])||u.equals(l[1]))?f=this.focusPrevious():r&&(u.equals(r[0])||u.equals(r[1]))?f=this.focusNext():u.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():u.equals(14)?f=this.focusFirst():u.equals(13)?f=this.focusLast():u.equals(2)&&C instanceof y.BaseActionViewItem&&C.trapsArrowNavigation?f=this.focusNext():this.isTriggerKeyEvent(u)?this._triggerKeys.keyDown?this.doTrigger(u):this.triggerKeyDown=!0:f=!1,f&&(u.preventDefault(),u.stopPropagation())})),this._register(L.addDisposableListener(this.domNode,L.EventType.KEY_UP,h=>{const u=new k.StandardKeyboardEvent(h);this.isTriggerKeyEvent(u)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(u)),u.preventDefault(),u.stopPropagation()):(u.equals(2)||u.equals(1026)||u.equals(16)||u.equals(18)||u.equals(15)||u.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(L.trackFocus(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(L.getActiveElement()===this.domNode||!L.isAncestor(L.getActiveElement(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),n.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(n){if(this.focusable=n,this.focusable){const i=this.viewItems.find(t=>t instanceof y.BaseActionViewItem&&t.isEnabled());i instanceof y.BaseActionViewItem&&i.setFocusable(!0)}else this.viewItems.forEach(i=>{i instanceof y.BaseActionViewItem&&i.setFocusable(!1)})}isTriggerKeyEvent(n){let i=!1;return this._triggerKeys.keys.forEach(t=>{i=i||n.equals(t)}),i}updateFocusedItem(){var n,i;for(let t=0;ti.setActionContext(n))}get actionRunner(){return this._actionRunner}set actionRunner(n){this._actionRunner=n,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(i=>this._onDidRun.fire(i))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(i=>this._onWillRun.fire(i))),this.viewItems.forEach(i=>i.actionRunner=n)}getContainer(){return this.domNode}getAction(n){var i;if(typeof n=="number")return(i=this.viewItems[n])===null||i===void 0?void 0:i.action;if(n instanceof HTMLElement){for(;n.parentElement!==this.actionsList;){if(!n.parentElement)return;n=n.parentElement}for(let t=0;t{const m=document.createElement("li");m.className="action-item",m.setAttribute("role","presentation");let c;const d={hoverDelegate:this._hoverDelegate,...i};this.options.actionViewItemProvider&&(c=this.options.actionViewItemProvider(g,d)),c||(c=new y.ActionViewItem(this.context,g,d)),this.options.allowContextMenu||this.viewItemDisposables.set(c,L.addDisposableListener(m,L.EventType.CONTEXT_MENU,s=>{L.EventHelper.stop(s,!0)})),c.actionRunner=this._actionRunner,c.setActionContext(this.context),c.render(m),this.focusable&&c instanceof y.BaseActionViewItem&&this.viewItems.length===0&&c.setFocusable(!0),o===null||o<0||o>=this.actionsList.children.length?(this.actionsList.appendChild(m),this.viewItems.push(c)):(this.actionsList.insertBefore(m,this.actionsList.children[o]),this.viewItems.splice(o,0,c),o++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=(0,w.dispose)(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),L.clearNode(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(n){let i=!1,t;if(n===void 0?i=!0:typeof n=="number"?t=n:typeof n=="boolean"&&(i=n),i&&typeof this.focusedItem>"u"){const o=this.viewItems.findIndex(g=>g.isEnabled());this.focusedItem=o===-1?void 0:o,this.updateFocus(void 0,void 0,!0)}else t!==void 0&&(this.focusedItem=t),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(n){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let t;do{if(!n&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=i,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,t=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!t.isEnabled()||t.action.id===S.Separator.ID));return this.updateFocus(),!0}focusPrevious(n){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let t;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!n&&this.options.preventLoopNavigation)return this.focusedItem=i,!1;this.focusedItem=this.viewItems.length-1}t=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!t.isEnabled()||t.action.id===S.Separator.ID));return this.updateFocus(!0),!0}updateFocus(n,i,t=!1){var o,g;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:i}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((o=this.viewItems[this.previouslyFocusedItem])===null||o===void 0||o.blur());const m=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(m){let c=!0;v.isFunction(m.focus)||(c=!1),this.options.focusOnlyEnabledItems&&v.isFunction(m.isEnabled)&&!m.isEnabled()&&(c=!1),m.action.id===S.Separator.ID&&(c=!1),c?(t||this.previouslyFocusedItem!==this.focusedItem)&&(m.focus(n),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:i}),this.previouslyFocusedItem=void 0),c&&((g=m.showHover)===null||g===void 0||g.call(m))}}doTrigger(n){if(typeof this.focusedItem>"u")return;const i=this.viewItems[this.focusedItem];if(i instanceof y.BaseActionViewItem){const t=i._context===null||i._context===void 0?n:i._context;this.run(i._action,t)}}async run(n,i){await this._actionRunner.run(n,i)}dispose(){this._context=void 0,this.viewItems=(0,w.dispose)(this.viewItems),this.getContainer().remove(),super.dispose()}}e.ActionBar=b}),define(ne[330],se([1,0,6,141,598,7,121,91,281]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenuActionViewItem=void 0;class w extends k.BaseActionViewItem{constructor(b,a,n,i=Object.create(null)){super(null,b,i),this.actionItem=null,this._onDidChangeVisibility=this._register(new D.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=a,this.contextMenuProvider=n,this.options=i,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(b){this.actionItem=b;const a=t=>{this.element=(0,L.append)(t,(0,L.$)("a.action-label"));let o=[];return typeof this.options.classNames=="string"?o=this.options.classNames.split(/\s+/g).filter(g=>!!g):this.options.classNames&&(o=this.options.classNames),o.find(g=>g==="icon")||o.push("codicon"),this.element.classList.add(...o),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register((0,S.setupCustomHover)((0,p.getDefaultHoverDelegate)("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},n=Array.isArray(this.menuActionsOrProvider),i={contextMenuProvider:this.contextMenuProvider,labelRenderer:a,menuAsChild:this.options.menuAsChild,actions:n?this.menuActionsOrProvider:void 0,actionProvider:n?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new y.DropdownMenu(b,i)),this._register(this.dropdownMenu.onDidChangeVisibility(t=>{var o;(o=this.element)===null||o===void 0||o.setAttribute("aria-expanded",`${t}`),this._onDidChangeVisibility.fire(t)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const t=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return t.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let b=null;return this.action.tooltip?b=this.action.tooltip:this.action.label&&(b=this.action.label),b??void 0}setActionContext(b){super.setActionContext(b),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=b:this.dropdownMenu.menuOptions={context:b})}show(){var b;(b=this.dropdownMenu)===null||b===void 0||b.show()}updateEnabled(){var b,a;const n=!this.action.enabled;(b=this.actionItem)===null||b===void 0||b.classList.toggle("disabled",n),(a=this.element)===null||a===void 0||a.classList.toggle("disabled",n)}}e.DropdownMenuActionViewItem=w}),define(ne[237],se([1,0,6,84,324,79,44,78,77,7,410,54,582,423]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryInputBox=e.InputBox=e.unthemedInboxStyles=void 0;const i=L.$;e.unthemedInboxStyles={inputBackground:"#3C3C3C",inputForeground:"#CCCCCC",inputValidationInfoBorder:"#55AAFF",inputValidationInfoBackground:"#063B49",inputValidationWarningBorder:"#B89500",inputValidationWarningBackground:"#352A05",inputValidationErrorBorder:"#BE1100",inputValidationErrorBackground:"#5A1D1D",inputBorder:void 0,inputValidationErrorForeground:void 0,inputValidationInfoForeground:void 0,inputValidationWarningForeground:void 0};class t extends w.Widget{constructor(m,c,d){var s;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new v.Emitter),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new v.Emitter),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=c,this.options=d,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(s=this.options.tooltip)!==null&&s!==void 0?s:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=L.append(m,i(".monaco-inputbox.idle"));const l=this.options.flexibleHeight?"textarea":"input",r=L.append(this.element,i(".ibwrapper"));if(this.input=L.append(r,i(l+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=L.append(r,i("div.mirror")),this.mirror.innerText="\xA0",this.scrollableElement=new p.ScrollableElement(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),L.append(m,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(f=>this.input.scrollTop=f.scrollTop));const h=this._register(new k.DomEmitter(m.ownerDocument,"selectionchange")),u=v.Event.filter(h.event,()=>{const f=m.ownerDocument.getSelection();return f?.anchorNode===r});this._register(u(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new D.ActionBar(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(m){this.placeholder=m,this.input.setAttribute("placeholder",m)}setTooltip(m){this.tooltip=m,this.input.title=m}get inputElement(){return this.input}get value(){return this.input.value}set value(m){this.input.value!==m&&(this.input.value=m,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:L.getTotalHeight(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return L.isActiveElement(this.input)}select(m=null){this.input.select(),m&&(this.input.setSelectionRange(m.start,m.end),m.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(m){this.input.style.width=`calc(100% - ${m}px)`,this.mirror&&(this.mirror.style.paddingRight=m+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const m=this.cachedContentHeight,c=this.cachedHeight,d=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:m,height:c}),this.scrollableElement.setScrollPosition({scrollTop:d})}showMessage(m,c){if(this.state==="open"&&(0,a.equals)(this.message,m))return;this.message=m,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(m.type));const d=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${L.asCssValueWithDefault(d.border,"transparent")}`,this.message.content&&(this.hasFocus()||c)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let m=null;return this.validation&&(m=this.validation(this.value),m?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(m)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),m?.type}stylesForType(m){const c=this.options.inputBoxStyles;switch(m){case 1:return{border:c.inputValidationInfoBorder,background:c.inputValidationInfoBackground,foreground:c.inputValidationInfoForeground};case 2:return{border:c.inputValidationWarningBorder,background:c.inputValidationWarningBackground,foreground:c.inputValidationWarningForeground};default:return{border:c.inputValidationErrorBorder,background:c.inputValidationErrorBackground,foreground:c.inputValidationErrorForeground}}}classForType(m){switch(m){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let m;const c=()=>m.style.width=L.getTotalWidth(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:s=>{var l,r;if(!this.message)return null;m=L.append(s,i(".monaco-inputbox-container")),c();const h={inline:!0,className:"monaco-inputbox-message"},u=this.message.formatContent?(0,y.renderFormattedText)(this.message.content,h):(0,y.renderText)(this.message.content,h);u.classList.add(this.classForType(this.message.type));const f=this.stylesForType(this.message.type);return u.style.backgroundColor=(l=f.background)!==null&&l!==void 0?l:"",u.style.color=(r=f.foreground)!==null&&r!==void 0?r:"",u.style.border=f.border?`1px solid ${f.border}`:"",L.append(m,u),null},onHide:()=>{this.state="closed"},layout:c});let d;this.message.type===3?d=n.localize(0,null,this.message.content):this.message.type===2?d=n.localize(1,null,this.message.content):d=n.localize(2,null,this.message.content),S.alert(d),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const m=this.value,d=m.charCodeAt(m.length-1)===10?" ":"";(m+d).replace(/\u000c/g,"")?this.mirror.textContent=m+d:this.mirror.innerText="\xA0",this.layout()}applyStyles(){var m,c,d;const s=this.options.inputBoxStyles,l=(m=s.inputBackground)!==null&&m!==void 0?m:"",r=(c=s.inputForeground)!==null&&c!==void 0?c:"",h=(d=s.inputBorder)!==null&&d!==void 0?d:"";this.element.style.backgroundColor=l,this.element.style.color=r,this.input.style.backgroundColor="inherit",this.input.style.color=r,this.element.style.border=`1px solid ${L.asCssValueWithDefault(h,"transparent")}`}layout(){if(!this.mirror)return;const m=this.cachedContentHeight;this.cachedContentHeight=L.getTotalHeight(this.mirror),m!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(m){const c=this.inputElement,d=c.selectionStart,s=c.selectionEnd,l=c.value;d!==null&&s!==null&&(this.value=l.substr(0,d)+m+l.substr(s),c.setSelectionRange(d+1,d+1),this.layout())}dispose(){var m;this._hideMessage(),this.message=null,(m=this.actionbar)===null||m===void 0||m.dispose(),super.dispose()}}e.InputBox=t;class o extends t{constructor(m,c,d){const s=n.localize(3,null,"\u21C5"),l=n.localize(4,null,"\u21C5");super(m,c,d),this._onDidFocus=this._register(new v.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new v.Emitter),this.onDidBlur=this._onDidBlur.event,this.history=new b.HistoryNavigator(d.history,100);const r=()=>{if(d.showHistoryHint&&d.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(l)&&this.history.getHistory().length){const h=this.placeholder.endsWith(")")?s:l,u=this.placeholder+h;d.showPlaceholderOnFocus&&!L.isActiveElement(this.input)?this.placeholder=u:this.setPlaceHolder(u)}};this.observer=new MutationObserver((h,u)=>{h.forEach(f=>{f.target.textContent||r()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>r()),this.onblur(this.input,()=>{const h=u=>{if(this.placeholder.endsWith(u)){const f=this.placeholder.slice(0,this.placeholder.length-u.length);return d.showPlaceholderOnFocus?this.placeholder=f:this.setPlaceHolder(f),!0}else return!1};h(l)||h(s)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(m){this.value&&(m||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let m=this.getNextValue();m&&(m=m===this.value?this.getNextValue():m),this.value=m??"",S.status(this.value?this.value:n.localize(5,null))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let m=this.getPreviousValue();m&&(m=m===this.value?this.getPreviousValue():m),m&&(this.value=m,S.status(this.value))}setPlaceHolder(m){super.setPlaceHolder(m),this.setTooltip(m)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let m=this.history.current();return m||(m=this.history.last(),this.history.next()),m}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}e.HistoryInputBox=o}),define(ne[607],se([1,0,59,65,6,46,69,79,141,325,78,42,15,27,29,130,2,17,11]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.formatRule=e.cleanMnemonic=e.Menu=e.Direction=e.MENU_ESCAPED_MNEMONIC_REGEX=e.MENU_MNEMONIC_REGEX=void 0,e.MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,e.MENU_ESCAPED_MNEMONIC_REGEX=/(&)?(&)([^\s&])/g;var d;(function(_){_[_.Right=0]="Right",_[_.Left=1]="Left"})(d||(e.Direction=d={}));class s extends p.ActionBar{constructor(E,I,T,A){E.classList.add("monaco-menu-container"),E.setAttribute("role","presentation");const R=document.createElement("div");R.classList.add("monaco-menu"),R.setAttribute("role","presentation"),super(R,{orientation:1,actionViewItemProvider:F=>this.doGetActionViewItem(F,T,M),context:T.context,actionRunner:T.actionRunner,ariaLabel:T.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...m.isMacintosh||m.isLinux?[10]:[]],keyDown:!0}}),this.menuStyles=A,this.menuElement=R,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(E,A),this._register(k.Gesture.addTarget(R)),this._register((0,y.addDisposableListener)(R,y.EventType.KEY_DOWN,F=>{new D.StandardKeyboardEvent(F).equals(2)&&F.preventDefault()})),T.enableMnemonics&&this._register((0,y.addDisposableListener)(R,y.EventType.KEY_DOWN,F=>{const O=F.key.toLocaleLowerCase();if(this.mnemonics.has(O)){y.EventHelper.stop(F,!0);const B=this.mnemonics.get(O);if(B.length===1&&(B[0]instanceof r&&B[0].container&&this.focusItemByElement(B[0].container),B[0].onClick(F)),B.length>1){const W=B.shift();W&&W.container&&(this.focusItemByElement(W.container),B.push(W)),this.mnemonics.set(O,B)}}})),m.isLinux&&this._register((0,y.addDisposableListener)(R,y.EventType.KEY_DOWN,F=>{const O=new D.StandardKeyboardEvent(F);O.equals(14)||O.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),y.EventHelper.stop(F,!0)):(O.equals(13)||O.equals(12))&&(this.focusedItem=0,this.focusPrevious(),y.EventHelper.stop(F,!0))})),this._register((0,y.addDisposableListener)(this.domNode,y.EventType.MOUSE_OUT,F=>{const O=F.relatedTarget;(0,y.isAncestor)(O,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),F.stopPropagation())})),this._register((0,y.addDisposableListener)(this.actionsList,y.EventType.MOUSE_OVER,F=>{let O=F.target;if(!(!O||!(0,y.isAncestor)(O,this.actionsList)||O===this.actionsList)){for(;O.parentElement!==this.actionsList&&O.parentElement!==null;)O=O.parentElement;if(O.classList.contains("action-item")){const B=this.focusedItem;this.setFocusedItem(O),B!==this.focusedItem&&this.updateFocus()}}})),this._register(k.Gesture.addTarget(this.actionsList)),this._register((0,y.addDisposableListener)(this.actionsList,k.EventType.Tap,F=>{let O=F.initialTarget;if(!(!O||!(0,y.isAncestor)(O,this.actionsList)||O===this.actionsList)){for(;O.parentElement!==this.actionsList&&O.parentElement!==null;)O=O.parentElement;if(O.classList.contains("action-item")){const B=this.focusedItem;this.setFocusedItem(O),B!==this.focusedItem&&this.updateFocus()}}}));const M={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new b.DomScrollableElement(R,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const N=this.scrollableElement.getDomNode();N.style.position="",this.styleScrollElement(N,A),this._register((0,y.addDisposableListener)(R,k.EventType.Change,F=>{y.EventHelper.stop(F,!0);const O=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:O-F.translationY})})),this._register((0,y.addDisposableListener)(N,y.EventType.MOUSE_UP,F=>{F.preventDefault()}));const P=(0,y.getWindow)(E);R.style.maxHeight=`${Math.max(10,P.innerHeight-E.getBoundingClientRect().top-35)}px`,I=I.filter((F,O)=>{var B;return!((B=T.submenuIds)===null||B===void 0)&&B.has(F.id)?(console.warn(`Found submenu cycle: ${F.id}`),!1):!(F instanceof a.Separator&&(O===I.length-1||O===0||I[O-1]instanceof a.Separator))}),this.push(I,{icon:!0,label:!0,isMenu:!0}),E.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(F=>!(F instanceof h)).forEach((F,O,B)=>{F.updatePositionInSet(O+1,B.length)})}initializeOrUpdateStyleSheet(E,I){this.styleSheet||((0,y.isInShadowDOM)(E)?this.styleSheet=(0,y.createStyleSheet)(E):(s.globalStyleSheet||(s.globalStyleSheet=(0,y.createStyleSheet)()),this.styleSheet=s.globalStyleSheet)),this.styleSheet.textContent=C(I,(0,y.isInShadowDOM)(E))}styleScrollElement(E,I){var T,A;const R=(T=I.foregroundColor)!==null&&T!==void 0?T:"",M=(A=I.backgroundColor)!==null&&A!==void 0?A:"",N=I.borderColor?`1px solid ${I.borderColor}`:"",P="5px",F=I.shadowColor?`0 2px 8px ${I.shadowColor}`:"";E.style.outline=N,E.style.borderRadius=P,E.style.color=R,E.style.backgroundColor=M,E.style.boxShadow=F}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(E){const I=this.focusedItem;this.setFocusedItem(E),I!==this.focusedItem&&this.updateFocus()}setFocusedItem(E){for(let I=0;I{this.element&&(this._register((0,y.addDisposableListener)(this.element,y.EventType.MOUSE_UP,R=>{if(y.EventHelper.stop(R,!0),L.isFirefox){if(new S.StandardMouseEvent((0,y.getWindow)(this.element),R).rightButton)return;this.onClick(R)}else setTimeout(()=>{this.onClick(R)},0)})),this._register((0,y.addDisposableListener)(this.element,y.EventType.CONTEXT_MENU,R=>{y.EventHelper.stop(R,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(E){super.render(E),this.element&&(this.container=E,this.item=(0,y.append)(this.element,(0,y.$)("a.action-menu-item")),this._action.id===a.Separator.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=(0,y.append)(this.item,(0,y.$)("span.menu-item-check"+t.ThemeIcon.asCSSSelector(i.Codicon.menuSelection))),this.check.setAttribute("role","none"),this.label=(0,y.append)(this.item,(0,y.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,y.append)(this.item,(0,y.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var E;super.focus(),(E=this.item)===null||E===void 0||E.focus(),this.applyStyle()}updatePositionInSet(E,I){this.item&&(this.item.setAttribute("aria-posinset",`${E}`),this.item.setAttribute("aria-setsize",`${I}`))}updateLabel(){var E;if(this.label&&this.options.label){(0,y.clearNode)(this.label);let I=(0,o.stripIcons)(this.action.label);if(I){const T=u(I);this.options.enableMnemonics||(I=T),this.label.setAttribute("aria-label",T.replace(/&&/g,"&"));const A=e.MENU_MNEMONIC_REGEX.exec(I);if(A){I=c.escape(I),e.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let R=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(I);for(;R&&R[1];)R=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(I);const M=N=>N.replace(/&&/g,"&");R?this.label.append(c.ltrim(M(I.substr(0,R.index))," "),(0,y.$)("u",{"aria-hidden":"true"},R[3]),c.rtrim(M(I.substr(R.index+R[0].length))," ")):this.label.innerText=M(I).trim(),(E=this.item)===null||E===void 0||E.setAttribute("aria-keyshortcuts",(A[1]?A[1]:A[3]).toLocaleLowerCase())}else this.label.innerText=I.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const E=this.action.checked;this.item.classList.toggle("checked",!!E),E!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",E?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const E=this.element&&this.element.classList.contains("focused"),I=E&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,T=E&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,A=E&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",R=E&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=I??"",this.item.style.backgroundColor=T??"",this.item.style.outline=A,this.item.style.outlineOffset=R),this.check&&(this.check.style.color=I??"")}}class r extends l{constructor(E,I,T,A,R){super(E,E,A,R),this.submenuActions=I,this.parentData=T,this.submenuOptions=A,this.mysubmenu=null,this.submenuDisposables=this._register(new g.DisposableStore),this.mouseOver=!1,this.expandDirection=A&&A.expandDirection!==void 0?A.expandDirection:d.Right,this.showScheduler=new n.RunOnceScheduler(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new n.RunOnceScheduler(()=>{this.element&&!(0,y.isAncestor)((0,y.getActiveElement)(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(E){super.render(E),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,y.append)(this.item,(0,y.$)("span.submenu-indicator"+t.ThemeIcon.asCSSSelector(i.Codicon.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,y.addDisposableListener)(this.element,y.EventType.KEY_UP,I=>{const T=new D.StandardKeyboardEvent(I);(T.equals(17)||T.equals(3))&&(y.EventHelper.stop(I,!0),this.createSubmenu(!0))})),this._register((0,y.addDisposableListener)(this.element,y.EventType.KEY_DOWN,I=>{const T=new D.StandardKeyboardEvent(I);(0,y.getActiveElement)()===this.item&&(T.equals(17)||T.equals(3))&&y.EventHelper.stop(I,!0)})),this._register((0,y.addDisposableListener)(this.element,y.EventType.MOUSE_OVER,I=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register((0,y.addDisposableListener)(this.element,y.EventType.MOUSE_LEAVE,I=>{this.mouseOver=!1})),this._register((0,y.addDisposableListener)(this.element,y.EventType.FOCUS_OUT,I=>{this.element&&!(0,y.isAncestor)((0,y.getActiveElement)(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(E){y.EventHelper.stop(E,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(E){if(this.parentData.submenu&&(E||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(E,I,T,A){const R={top:0,left:0};return R.left=(0,v.layout)(E.width,I.width,{position:A===d.Right?0:1,offset:T.left,size:T.width}),R.left>=T.left&&R.left{new D.StandardKeyboardEvent(O).equals(15)&&(y.EventHelper.stop(O,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add((0,y.addDisposableListener)(this.submenuContainer,y.EventType.KEY_DOWN,O=>{new D.StandardKeyboardEvent(O).equals(15)&&y.EventHelper.stop(O,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(E),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(E){var I;this.item&&((I=this.item)===null||I===void 0||I.setAttribute("aria-expanded",E))}applyStyle(){super.applyStyle();const I=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=I??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class h extends w.ActionViewItem{constructor(E,I,T,A){super(E,I,T),this.menuStyles=A}render(E){super.render(E),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function u(_){const E=e.MENU_MNEMONIC_REGEX,I=E.exec(_);if(!I)return _;const T=!I[1];return _.replace(E,T?"$2$3":"").trim()}e.cleanMnemonic=u;function f(_){const E=(0,i.getCodiconFontCharacters)()[_.id];return`.codicon-${_.id}:before { content: '\\${E.toString(16)}'; }`}e.formatRule=f;function C(_,E){let I=` +.monaco-menu { + font-size: 13px; + border-radius: 5px; + min-width: 160px; +} + +${f(i.Codicon.menuSelection)} +${f(i.Codicon.menuSubmenu)} + +.monaco-menu .monaco-action-bar { + text-align: right; + overflow: hidden; + white-space: nowrap; +} + +.monaco-menu .monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + width: 100%; + justify-content: flex-end; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: inline-block; +} + +.monaco-menu .monaco-action-bar.reverse .actions-container { + flex-direction: row-reverse; +} + +.monaco-menu .monaco-action-bar .action-item { + cursor: pointer; + display: inline-block; + transition: transform 50ms ease; + position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ +} + +.monaco-menu .monaco-action-bar .action-item.disabled { + cursor: default; +} + +.monaco-menu .monaco-action-bar .action-item .icon, +.monaco-menu .monaco-action-bar .action-item .codicon { + display: inline-block; +} + +.monaco-menu .monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar .action-label { + font-size: 11px; + margin-right: 4px; +} + +.monaco-menu .monaco-action-bar .action-item.disabled .action-label, +.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { + color: var(--vscode-disabledForeground); +} + +/* Vertical actions */ + +.monaco-menu .monaco-action-bar.vertical { + text-align: left; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid var(--vscode-menu-separatorBackground); + padding-top: 1px; + padding: 30px; +} + +.monaco-menu .secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} + +/* Action Items */ +.monaco-menu .monaco-action-bar .action-item.select-container { + overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.monaco-menu .monaco-action-bar.vertical { + margin-left: 0; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + padding: 0; + transform: none; + display: flex; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.active { + transform: none; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + flex: 1 1 auto; + display: flex; + height: 2em; + align-items: center; + position: relative; + margin: 0 4px; + border-radius: 4px; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { + opacity: unset; +} + +.monaco-menu .monaco-action-bar.vertical .action-label { + flex: 1 1 auto; + text-decoration: none; + padding: 0 1em; + background: none; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .keybinding, +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + display: inline-block; + flex: 2 1 auto; + padding: 0 1em; + text-align: right; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { + font-size: 16px !important; + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { + margin-left: auto; + margin-right: -20px; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { + opacity: 0.4; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { + display: inline-block; + box-sizing: border-box; + margin: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + position: static; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { + position: absolute; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + width: 100%; + height: 0px !important; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { + padding: 0.7em 1em 0.1em 1em; + font-weight: bold; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:hover { + color: inherit; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + position: absolute; + visibility: hidden; + width: 1em; + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { + visibility: visible; + display: flex; + align-items: center; + justify-content: center; +} + +/* Context Menu */ + +.context-view.monaco-menu-container { + outline: 0; + border: none; + animation: fadeIn 0.083s linear; + -webkit-app-region: no-drag; +} + +.context-view.monaco-menu-container :focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { + outline: 0; +} + +.hc-black .context-view.monaco-menu-container, +.hc-light .context-view.monaco-menu-container, +:host-context(.hc-black) .context-view.monaco-menu-container, +:host-context(.hc-light) .context-view.monaco-menu-container { + box-shadow: none; +} + +.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, +.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { + background: none; +} + +/* Vertical Action Bar Styles */ + +.monaco-menu .monaco-action-bar.vertical { + padding: 4px 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + height: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), +.monaco-menu .monaco-action-bar.vertical .keybinding { + font-size: inherit; + padding: 0 2em; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + font-size: inherit; + width: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + font-size: inherit; + margin: 5px 0 !important; + padding: 0; + border-radius: 0; +} + +.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { + margin-left: 0; + margin-right: 0; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + font-size: 60%; + padding: 0 1.8em; +} + +.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; + mask-size: 10px 10px; + -webkit-mask-size: 10px 10px; +} + +.monaco-menu .action-item { + cursor: default; +}`;if(E){I+=` + /* Arrows */ + .monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; + } + + .monaco-scrollable-element > .visible { + opacity: 1; + + /* Background rule added for IE9 - to allow clicks on dom node */ + background:rgba(0,0,0,0); + + transition: opacity 100ms linear; + } + .monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; + } + .monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; + } + + /* Scrollable Content Inset Shadow */ + .monaco-scrollable-element > .shadow { + position: absolute; + display: none; + } + .monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + } + .monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + } + .monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; + } + `;const T=_.scrollbarShadow;T&&(I+=` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${T} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${T} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${T} 6px 6px 6px -6px inset; + } + `);const A=_.scrollbarSliderBackground;A&&(I+=` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${A}; + } + `);const R=_.scrollbarSliderHoverBackground;R&&(I+=` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${R}; + } + `);const M=_.scrollbarSliderActiveBackground;M&&(I+=` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${M}; + } + `)}return I}}),define(ne[608],se([1,0,6,91,121,105,329,7,2,432]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Table=void 0;class v{constructor(t,o,g){this.columns=t,this.getColumnSize=g,this.templateId=v.TemplateId,this.renderedTemplates=new Set;const m=new Map(o.map(c=>[c.templateId,c]));this.renderers=[];for(const c of t){const d=m.get(c.templateId);if(!d)throw new Error(`Table cell renderer for template id ${c.templateId} not found.`);this.renderers.push(d)}}renderTemplate(t){const o=(0,L.append)(t,(0,L.$)(".monaco-table-tr")),g=[],m=[];for(let d=0;dthis.disposables.add(new a(h,u))),l={size:s.reduce((h,u)=>h+u.column.weight,0),views:s.map(h=>({size:h.column.weight,view:h}))};this.splitview=this.disposables.add(new S.SplitView(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${g.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${g.headerRowHeight}px`;const r=new v(m,c,h=>this.splitview.getViewSize(h));this.list=this.disposables.add(new D.List(t,this.domNode,b(g),[r],d)),p.Event.any(...s.map(h=>h.onDidLayout))(([h,u])=>r.layoutColumn(h,u),null,this.disposables),this.splitview.onDidSashReset(h=>{const u=m.reduce((C,_)=>C+_.weight,0),f=m[h].weight/u*this.cachedWidth;this.splitview.resizeView(h,f)},null,this.disposables),this.styleElement=(0,L.createStyleSheet)(this.domNode),this.style(D.unthemedListStyles)}updateOptions(t){this.list.updateOptions(t)}splice(t,o,g=[]){this.list.splice(t,o,g)}getHTMLElement(){return this.domNode}style(t){const o=[];o.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { + top: ${this.virtualDelegate.headerRowHeight+1}px; + height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); + }`),this.styleElement.textContent=o.join(` +`),this.list.style(t)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}e.Table=n,n.InstanceCount=0}),define(ne[161],se([1,0,77,29,7,121,91,433]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Toggle=e.unthemedToggleStyles=void 0,e.unthemedToggleStyles={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class p extends L.Widget{constructor(v){super(),this._onChange=this._register(new y.Emitter),this.onChange=this._onChange.event,this._onKeyDown=this._register(new y.Emitter),this.onKeyDown=this._onKeyDown.event,this._opts=v,this._checked=this._opts.isChecked;const b=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,b.push(...k.ThemeIcon.asClassNameArray(this._icon))),this._opts.actionClassName&&b.push(...this._opts.actionClassName.split(" ")),this._checked&&b.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register((0,D.setupCustomHover)((0,S.getDefaultHoverDelegate)("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...b),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,a=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),a.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,a=>{if(a.keyCode===10||a.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),a.preventDefault(),a.stopPropagation();return}this._onKeyDown.fire(a)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(v){this._checked=v,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}e.Toggle=p}),define(ne[331],se([1,0,161,27,578]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RegexToggle=e.WholeWordsToggle=e.CaseSensitiveToggle=void 0;const D=y.localize(0,null),S=y.localize(1,null),p=y.localize(2,null);class w extends L.Toggle{constructor(n){super({icon:k.Codicon.caseSensitive,title:D+n.appendTitle,isChecked:n.isChecked,inputActiveOptionBorder:n.inputActiveOptionBorder,inputActiveOptionForeground:n.inputActiveOptionForeground,inputActiveOptionBackground:n.inputActiveOptionBackground})}}e.CaseSensitiveToggle=w;class v extends L.Toggle{constructor(n){super({icon:k.Codicon.wholeWord,title:S+n.appendTitle,isChecked:n.isChecked,inputActiveOptionBorder:n.inputActiveOptionBorder,inputActiveOptionForeground:n.inputActiveOptionForeground,inputActiveOptionBackground:n.inputActiveOptionBackground})}}e.WholeWordsToggle=v;class b extends L.Toggle{constructor(n){super({icon:k.Codicon.regex,title:p+n.appendTitle,isChecked:n.isChecked,inputActiveOptionBorder:n.inputActiveOptionBorder,inputActiveOptionForeground:n.inputActiveOptionForeground,inputActiveOptionBackground:n.inputActiveOptionBackground})}}e.RegexToggle=b}),define(ne[238],se([1,0,6,331,237,77,7,577,2,282]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindInput=void 0;const v=p.localize(0,null);class b extends D.Widget{constructor(n,i,t){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new w.MutableDisposable),this.additionalToggles=[],this._onDidOptionChange=this._register(new S.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new S.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new S.Emitter),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new S.Emitter),this._onKeyUp=this._register(new S.Emitter),this._onCaseSensitiveKeyDown=this._register(new S.Emitter),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new S.Emitter),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=t.placeholder||"",this.validation=t.validation,this.label=t.label||v,this.showCommonFindToggles=!!t.showCommonFindToggles;const o=t.appendCaseSensitiveLabel||"",g=t.appendWholeWordsLabel||"",m=t.appendRegexLabel||"",c=t.history||[],d=!!t.flexibleHeight,s=!!t.flexibleWidth,l=t.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new y.HistoryInputBox(this.domNode,i,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:c,showHistoryHint:t.showHistoryHint,flexibleHeight:d,flexibleWidth:s,flexibleMaxHeight:l,inputBoxStyles:t.inputBoxStyles})),this.showCommonFindToggles){this.regex=this._register(new k.RegexToggle({appendTitle:m,isChecked:!1,...t.toggleStyles})),this._register(this.regex.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(h=>{this._onRegexKeyDown.fire(h)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:g,isChecked:!1,...t.toggleStyles})),this._register(this.wholeWords.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:o,isChecked:!1,...t.toggleStyles})),this._register(this.caseSensitive.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(h=>{this._onCaseSensitiveKeyDown.fire(h)}));const r=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const u=r.indexOf(this.domNode.ownerDocument.activeElement);if(u>=0){let f=-1;h.equals(17)?f=(u+1)%r.length:h.equals(15)&&(u===0?f=r.length-1:f=u-1),h.equals(9)?(r[u].blur(),this.inputBox.focus()):f>=0&&r[f].focus(),L.EventHelper.stop(h,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(t?.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),n?.appendChild(this.domNode),this._register(L.addDisposableListener(this.inputBox.inputElement,"compositionstart",r=>{this.imeSessionInProgress=!0})),this._register(L.addDisposableListener(this.inputBox.inputElement,"compositionend",r=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,r=>this._onKeyDown.fire(r)),this.onkeyup(this.inputBox.inputElement,r=>this._onKeyUp.fire(r)),this.oninput(this.inputBox.inputElement,r=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,r=>this._onMouseDown.fire(r))}get onDidChange(){return this.inputBox.onDidChange}layout(n){this.inputBox.layout(),this.updateInputBoxPadding(n.collapsedFindWidget)}enable(){var n,i,t;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(n=this.regex)===null||n===void 0||n.enable(),(i=this.wholeWords)===null||i===void 0||i.enable(),(t=this.caseSensitive)===null||t===void 0||t.enable();for(const o of this.additionalToggles)o.enable()}disable(){var n,i,t;this.domNode.classList.add("disabled"),this.inputBox.disable(),(n=this.regex)===null||n===void 0||n.disable(),(i=this.wholeWords)===null||i===void 0||i.disable(),(t=this.caseSensitive)===null||t===void 0||t.disable();for(const o of this.additionalToggles)o.disable()}setFocusInputOnOptionClick(n){this.fixFocusOnOptionClickEnabled=n}setEnabled(n){n?this.enable():this.disable()}setAdditionalToggles(n){for(const i of this.additionalToggles)i.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new w.DisposableStore;for(const i of n??[])this.additionalTogglesDisposables.value.add(i),this.controls.appendChild(i.domNode),this.additionalTogglesDisposables.value.add(i.onChange(t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(i);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(n=!1){var i,t,o,g,m,c;n?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((t=(i=this.caseSensitive)===null||i===void 0?void 0:i.width())!==null&&t!==void 0?t:0)+((g=(o=this.wholeWords)===null||o===void 0?void 0:o.width())!==null&&g!==void 0?g:0)+((c=(m=this.regex)===null||m===void 0?void 0:m.width())!==null&&c!==void 0?c:0)+this.additionalToggles.reduce((d,s)=>d+s.width(),0)}getValue(){return this.inputBox.value}setValue(n){this.inputBox.value!==n&&(this.inputBox.value=n)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var n,i;return(i=(n=this.caseSensitive)===null||n===void 0?void 0:n.checked)!==null&&i!==void 0?i:!1}setCaseSensitive(n){this.caseSensitive&&(this.caseSensitive.checked=n)}getWholeWords(){var n,i;return(i=(n=this.wholeWords)===null||n===void 0?void 0:n.checked)!==null&&i!==void 0?i:!1}setWholeWords(n){this.wholeWords&&(this.wholeWords.checked=n)}getRegex(){var n,i;return(i=(n=this.regex)===null||n===void 0?void 0:n.checked)!==null&&i!==void 0?i:!1}setRegex(n){this.regex&&(this.regex.checked=n,this.validate())}focusOnCaseSensitive(){var n;(n=this.caseSensitive)===null||n===void 0||n.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(n){this.inputBox.showMessage(n)}clearMessage(){this.inputBox.hideMessage()}}e.FindInput=b}),define(ne[609],se([1,0,6,161,237,77,27,7,579,282]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReplaceInput=void 0;const v=w.localize(0,null),b=w.localize(1,null);class a extends k.Toggle{constructor(t){super({icon:S.Codicon.preserveCase,title:b+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class n extends D.Widget{constructor(t,o,g,m){super(),this._showOptionButtons=g,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new p.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new p.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new p.Emitter),this._onInput=this._register(new p.Emitter),this._onKeyUp=this._register(new p.Emitter),this._onPreserveCaseKeyDown=this._register(new p.Emitter),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=o,this.placeholder=m.placeholder||"",this.validation=m.validation,this.label=m.label||v;const c=m.appendPreserveCaseLabel||"",d=m.history||[],s=!!m.flexibleHeight,l=!!m.flexibleWidth,r=m.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new y.HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:d,showHistoryHint:m.showHistoryHint,flexibleHeight:s,flexibleWidth:l,flexibleMaxHeight:r,inputBoxStyles:m.inputBoxStyles})),this.preserveCase=this._register(new a({appendTitle:c,isChecked:!1,...m.toggleStyles})),this._register(this.preserveCase.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(f=>{this._onPreserveCaseKeyDown.fire(f)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const h=[this.preserveCase.domNode];this.onkeydown(this.domNode,f=>{if(f.equals(15)||f.equals(17)||f.equals(9)){const C=h.indexOf(this.domNode.ownerDocument.activeElement);if(C>=0){let _=-1;f.equals(17)?_=(C+1)%h.length:f.equals(15)&&(C===0?_=h.length-1:_=C-1),f.equals(9)?(h[C].blur(),this.inputBox.focus()):_>=0&&h[_].focus(),L.EventHelper.stop(f,!0)}}});const u=document.createElement("div");u.className="controls",u.style.display=this._showOptionButtons?"block":"none",u.appendChild(this.preserveCase.domNode),this.domNode.appendChild(u),t?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,f=>this._onKeyDown.fire(f)),this.onkeyup(this.inputBox.inputElement,f=>this._onKeyUp.fire(f)),this.oninput(this.inputBox.inputElement,f=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,f=>this._onMouseDown.fire(f))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(t){t?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(t){this.preserveCase.checked=t}focusOnPreserve(){this.preserveCase.focus()}validate(){var t;(t=this.inputBox)===null||t===void 0||t.validate()}set width(t){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=t+"px"}dispose(){super.dispose()}}e.ReplaceInput=n}),define(ne[610],se([1,0,79,330,42,27,29,7,2,585,91,434]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleMenuAction=e.ToolBar=void 0;class a extends w.Disposable{constructor(t,o,g={orientation:0}){var m;super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new p.EventMultiplexer),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new w.DisposableStore),g.hoverDelegate=(m=g.hoverDelegate)!==null&&m!==void 0?m:this._register((0,b.getDefaultHoverDelegate)("element",!0)),this.options=g,this.lookupKeybindings=typeof this.options.getKeyBinding=="function",this.toggleMenuAction=this._register(new n(()=>{var c;return(c=this.toggleMenuActionViewItem)===null||c===void 0?void 0:c.show()},g.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",t.appendChild(this.element),this.actionBar=this._register(new L.ActionBar(this.element,{orientation:g.orientation,ariaLabel:g.ariaLabel,actionRunner:g.actionRunner,allowContextMenu:g.allowContextMenu,highlightToggledItems:g.highlightToggledItems,hoverDelegate:g.hoverDelegate,actionViewItemProvider:(c,d)=>{var s;if(c.id===n.ID)return this.toggleMenuActionViewItem=new k.DropdownMenuActionViewItem(c,c.menuActions,o,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:S.ThemeIcon.asClassNameArray((s=g.moreIcon)!==null&&s!==void 0?s:D.Codicon.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(g.actionViewItemProvider){const l=g.actionViewItemProvider(c,d);if(l)return l}if(c instanceof y.SubmenuAction){const l=new k.DropdownMenuActionViewItem(c,c.actions,o,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:c.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return l.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(l),this.disposables.add(this._onDidChangeDropdownVisibility.add(l.onDidChangeVisibility)),l}}}))}set actionRunner(t){this.actionBar.actionRunner=t}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(t){return this.actionBar.getAction(t)}setActions(t,o){this.clear();const g=t?t.slice(0):[];this.hasSecondaryActions=!!(o&&o.length>0),this.hasSecondaryActions&&o&&(this.toggleMenuAction.menuActions=o.slice(0),g.push(this.toggleMenuAction)),g.forEach(m=>{this.actionBar.push(m,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(m)})})}getKeybindingLabel(t){var o,g,m;const c=this.lookupKeybindings?(g=(o=this.options).getKeyBinding)===null||g===void 0?void 0:g.call(o,t):void 0;return(m=c?.getLabel())!==null&&m!==void 0?m:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}e.ToolBar=a;class n extends y.Action{constructor(t,o){o=o||v.localize(0,null),super(n.ID,o,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=t}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(t){this._menuActions=t}}e.ToggleMenuAction=n,n.ID="toolbar.toggle.more"}),define(ne[192],se([1,0,6,84,46,79,238,237,234,105,161,226,148,42,13,15,27,29,53,7,73,2,128,20,586,435]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractTree=e.TreeFindMatchType=e.TreeFindMode=e.FuzzyToggle=e.ModeToggle=e.TreeRenderer=e.RenderIndentGuides=e.ComposedTreeDelegate=void 0;class f extends w.ElementsDragAndDropData{constructor(U){super(U.elements.map(Z=>Z.element)),this.data=U}}function C(Q){return Q instanceof w.ElementsDragAndDropData?new f(Q):Q}class _{constructor(U,Z){this.modelProvider=U,this.dnd=Z,this.autoExpandDisposable=l.Disposable.None,this.disposables=new l.DisposableStore}getDragURI(U){return this.dnd.getDragURI(U.element)}getDragLabel(U,Z){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(U.map(H=>H.element),Z)}onDragStart(U,Z){var H,q;(q=(H=this.dnd).onDragStart)===null||q===void 0||q.call(H,C(U),Z)}onDragOver(U,Z,H,q,te,G=!0){const $=this.dnd.onDragOver(C(U),Z&&Z.element,H,q,te),oe=this.autoExpandNode!==Z;if(oe&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=Z),typeof Z>"u")return $;if(oe&&typeof $!="boolean"&&$.autoExpand&&(this.autoExpandDisposable=(0,o.disposableTimeout)(()=>{const ve=this.modelProvider(),Ce=ve.getNodeLocation(Z);ve.isCollapsed(Ce)&&ve.setCollapsed(Ce,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof $=="boolean"||!$.accept||typeof $.bubble>"u"||$.feedback){if(!G){const ve=typeof $=="boolean"?$:$.accept,Ce=typeof $=="boolean"?void 0:$.effect;return{accept:ve,effect:Ce,feedback:[H]}}return $}if($.bubble===1){const ve=this.modelProvider(),Ce=ve.getNodeLocation(Z),Se=ve.getParentNodeLocation(Ce),_e=ve.getNode(Se),Ie=Se&&ve.getListIndex(Se);return this.onDragOver(U,_e,Ie,q,te,!1)}const ae=this.modelProvider(),ue=ae.getNodeLocation(Z),ce=ae.getListIndex(ue),fe=ae.getListRenderCount(ue);return{...$,feedback:(0,t.range)(ce,ce+fe)}}drop(U,Z,H,q,te){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(C(U),Z&&Z.element,H,q,te)}onDragEnd(U){var Z,H;(H=(Z=this.dnd).onDragEnd)===null||H===void 0||H.call(Z,U)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function E(Q,U){return U&&{...U,identityProvider:U.identityProvider&&{getId(Z){return U.identityProvider.getId(Z.element)}},dnd:U.dnd&&new _(Q,U.dnd),multipleSelectionController:U.multipleSelectionController&&{isSelectionSingleChangeEvent(Z){return U.multipleSelectionController.isSelectionSingleChangeEvent({...Z,element:Z.element})},isSelectionRangeChangeEvent(Z){return U.multipleSelectionController.isSelectionRangeChangeEvent({...Z,element:Z.element})}},accessibilityProvider:U.accessibilityProvider&&{...U.accessibilityProvider,getSetSize(Z){const H=Q(),q=H.getNodeLocation(Z),te=H.getParentNodeLocation(q);return H.getNode(te).visibleChildrenCount},getPosInSet(Z){return Z.visibleChildIndex+1},isChecked:U.accessibilityProvider&&U.accessibilityProvider.isChecked?Z=>U.accessibilityProvider.isChecked(Z.element):void 0,getRole:U.accessibilityProvider&&U.accessibilityProvider.getRole?Z=>U.accessibilityProvider.getRole(Z.element):()=>"treeitem",getAriaLabel(Z){return U.accessibilityProvider.getAriaLabel(Z.element)},getWidgetAriaLabel(){return U.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:U.accessibilityProvider&&U.accessibilityProvider.getWidgetRole?()=>U.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:U.accessibilityProvider&&U.accessibilityProvider.getAriaLevel?Z=>U.accessibilityProvider.getAriaLevel(Z.element):Z=>Z.depth,getActiveDescendantId:U.accessibilityProvider.getActiveDescendantId&&(Z=>U.accessibilityProvider.getActiveDescendantId(Z.element))},keyboardNavigationLabelProvider:U.keyboardNavigationLabelProvider&&{...U.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(Z){return U.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(Z.element)}}}}class I{constructor(U){this.delegate=U}getHeight(U){return this.delegate.getHeight(U.element)}getTemplateId(U){return this.delegate.getTemplateId(U.element)}hasDynamicHeight(U){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(U.element)}setDynamicHeight(U,Z){var H,q;(q=(H=this.delegate).setDynamicHeight)===null||q===void 0||q.call(H,U.element,Z)}}e.ComposedTreeDelegate=I;var T;(function(Q){Q.None="none",Q.OnHover="onHover",Q.Always="always"})(T||(e.RenderIndentGuides=T={}));class A{get elements(){return this._elements}constructor(U,Z=[]){this._elements=Z,this.disposables=new l.DisposableStore,this.onDidChange=d.Event.forEach(U,H=>this._elements=H,this.disposables)}dispose(){this.disposables.dispose()}}class R{constructor(U,Z,H,q,te,G={}){var $;this.renderer=U,this.modelProvider=Z,this.activeNodes=q,this.renderedIndentGuides=te,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=R.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=l.Disposable.None,this.disposables=new l.DisposableStore,this.templateId=U.templateId,this.updateOptions(G),d.Event.map(H,oe=>oe.node)(this.onDidChangeNodeTwistieState,this,this.disposables),($=U.onDidChangeTwistieState)===null||$===void 0||$.call(U,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(U={}){if(typeof U.indent<"u"){const Z=(0,r.clamp)(U.indent,0,40);if(Z!==this.indent){this.indent=Z;for(const[H,q]of this.renderedNodes)this.renderTreeElement(H,q)}}if(typeof U.renderIndentGuides<"u"){const Z=U.renderIndentGuides!==T.None;if(Z!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=Z;for(const[H,q]of this.renderedNodes)this._renderIndentGuides(H,q);if(this.indentGuidesDisposable.dispose(),Z){const H=new l.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,H),this.indentGuidesDisposable=H,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof U.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=U.hideTwistiesOfChildlessElements)}renderTemplate(U){const Z=(0,L.append)(U,(0,L.$)(".monaco-tl-row")),H=(0,L.append)(Z,(0,L.$)(".monaco-tl-indent")),q=(0,L.append)(Z,(0,L.$)(".monaco-tl-twistie")),te=(0,L.append)(Z,(0,L.$)(".monaco-tl-contents")),G=this.renderer.renderTemplate(te);return{container:U,indent:H,twistie:q,indentGuidesDisposable:l.Disposable.None,templateData:G}}renderElement(U,Z,H,q){this.renderedNodes.set(U,H),this.renderedElements.set(U.element,U),this.renderTreeElement(U,H),this.renderer.renderElement(U,Z,H.templateData,q)}disposeElement(U,Z,H,q){var te,G;H.indentGuidesDisposable.dispose(),(G=(te=this.renderer).disposeElement)===null||G===void 0||G.call(te,U,Z,H.templateData,q),typeof q=="number"&&(this.renderedNodes.delete(U),this.renderedElements.delete(U.element))}disposeTemplate(U){this.renderer.disposeTemplate(U.templateData)}onDidChangeTwistieState(U){const Z=this.renderedElements.get(U);Z&&this.onDidChangeNodeTwistieState(Z)}onDidChangeNodeTwistieState(U){const Z=this.renderedNodes.get(U);Z&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(U,Z))}renderTreeElement(U,Z){const H=R.DefaultIndent+(U.depth-1)*this.indent;Z.twistie.style.paddingLeft=`${H}px`,Z.indent.style.width=`${H+this.indent-16}px`,U.collapsible?Z.container.setAttribute("aria-expanded",String(!U.collapsed)):Z.container.removeAttribute("aria-expanded"),Z.twistie.classList.remove(...m.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded));let q=!1;this.renderer.renderTwistie&&(q=this.renderer.renderTwistie(U.element,Z.twistie)),U.collapsible&&(!this.hideTwistiesOfChildlessElements||U.visibleChildrenCount>0)?(q||Z.twistie.classList.add(...m.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded)),Z.twistie.classList.add("collapsible"),Z.twistie.classList.toggle("collapsed",U.collapsed)):Z.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(U,Z)}_renderIndentGuides(U,Z){if((0,L.clearNode)(Z.indent),Z.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const H=new l.DisposableStore,q=this.modelProvider();for(;;){const te=q.getNodeLocation(U),G=q.getParentNodeLocation(te);if(!G)break;const $=q.getNode(G),oe=(0,L.$)(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has($)&&oe.classList.add("active"),Z.indent.childElementCount===0?Z.indent.appendChild(oe):Z.indent.insertBefore(oe,Z.indent.firstElementChild),this.renderedIndentGuides.add($,oe),H.add((0,l.toDisposable)(()=>this.renderedIndentGuides.delete($,oe))),U=$}Z.indentGuidesDisposable=H}_onDidChangeActiveNodes(U){if(!this.shouldRenderIndentGuides)return;const Z=new Set,H=this.modelProvider();U.forEach(q=>{const te=H.getNodeLocation(q);try{const G=H.getParentNodeLocation(te);q.collapsible&&q.children.length>0&&!q.collapsed?Z.add(q):G&&Z.add(H.getNode(G))}catch{}}),this.activeIndentNodes.forEach(q=>{Z.has(q)||this.renderedIndentGuides.forEach(q,te=>te.classList.remove("active"))}),Z.forEach(q=>{this.activeIndentNodes.has(q)||this.renderedIndentGuides.forEach(q,te=>te.classList.add("active"))}),this.activeIndentNodes=Z}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,l.dispose)(this.disposables)}}e.TreeRenderer=R,R.DefaultIndent=8;class M{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(U,Z,H){this.tree=U,this.keyboardNavigationLabelProvider=Z,this._filter=H,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new l.DisposableStore,U.onWillRefilter(this.reset,this,this.disposables)}filter(U,Z){let H=1;if(this._filter){const G=this._filter.filter(U,Z);if(typeof G=="boolean"?H=G?1:0:(0,a.isFilterResult)(G)?H=(0,a.getVisibleState)(G.visibility):H=G,H===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:s.FuzzyScore.Default,visibility:H};const q=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(U),te=Array.isArray(q)?q:[q];for(const G of te){const $=G&&G.toString();if(typeof $>"u")return{data:s.FuzzyScore.Default,visibility:H};let oe;if(this.tree.findMatchType===B.Contiguous){const ae=$.toLowerCase().indexOf(this._lowercasePattern);if(ae>-1){oe=[Number.MAX_SAFE_INTEGER,0];for(let ue=this._lowercasePattern.length;ue>0;ue--)oe.push(ae+ue-1)}}else oe=(0,s.fuzzyScore)(this._pattern,this._lowercasePattern,0,$,$.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(oe)return this._matchCount++,te.length===1?{data:oe,visibility:H}:{data:{label:$,score:oe},visibility:H}}return this.tree.findMode===O.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(U):2:{data:s.FuzzyScore.Default,visibility:H}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,l.dispose)(this.disposables)}}class N extends b.Toggle{constructor(U){var Z;super({icon:g.Codicon.listFilter,title:(0,u.localize)(0,null),isChecked:(Z=U.isChecked)!==null&&Z!==void 0?Z:!1,inputActiveOptionBorder:U.inputActiveOptionBorder,inputActiveOptionForeground:U.inputActiveOptionForeground,inputActiveOptionBackground:U.inputActiveOptionBackground})}}e.ModeToggle=N;class P extends b.Toggle{constructor(U){var Z;super({icon:g.Codicon.searchFuzzy,title:(0,u.localize)(1,null),isChecked:(Z=U.isChecked)!==null&&Z!==void 0?Z:!1,inputActiveOptionBorder:U.inputActiveOptionBorder,inputActiveOptionForeground:U.inputActiveOptionForeground,inputActiveOptionBackground:U.inputActiveOptionBackground})}}e.FuzzyToggle=P;const F={inputBoxStyles:p.unthemedInboxStyles,toggleStyles:b.unthemedToggleStyles,listFilterWidgetBackground:void 0,listFilterWidgetNoMatchesOutline:void 0,listFilterWidgetOutline:void 0,listFilterWidgetShadow:void 0};var O;(function(Q){Q[Q.Highlight=0]="Highlight",Q[Q.Filter=1]="Filter"})(O||(e.TreeFindMode=O={}));var B;(function(Q){Q[Q.Fuzzy=0]="Fuzzy",Q[Q.Contiguous=1]="Contiguous"})(B||(e.TreeFindMatchType=B={}));class W extends l.Disposable{set mode(U){this.modeToggle.checked=U===O.Filter,this.findInput.inputBox.setPlaceHolder(U===O.Filter?(0,u.localize)(2,null):(0,u.localize)(3,null))}set matchType(U){this.matchTypeToggle.checked=U===B.Fuzzy}constructor(U,Z,H,q,te,G){var $;super(),this.tree=Z,this.elements=(0,L.h)(".monaco-tree-type-filter",[(0,L.h)(".monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab",{tabIndex:0}),(0,L.h)(".monaco-tree-type-filter-input@findInput"),(0,L.h)(".monaco-tree-type-filter-actionbar@actionbar")]),this.width=0,this.right=0,this.top=0,this._onDidDisable=new d.Emitter,U.appendChild(this.elements.root),this._register((0,l.toDisposable)(()=>U.removeChild(this.elements.root)));const oe=($=G?.styles)!==null&&$!==void 0?$:F;oe.listFilterWidgetBackground&&(this.elements.root.style.backgroundColor=oe.listFilterWidgetBackground),oe.listFilterWidgetShadow&&(this.elements.root.style.boxShadow=`0 0 8px 2px ${oe.listFilterWidgetShadow}`),this.modeToggle=this._register(new N({...oe.toggleStyles,isChecked:q===O.Filter})),this.matchTypeToggle=this._register(new P({...oe.toggleStyles,isChecked:te===B.Fuzzy})),this.onDidChangeMode=d.Event.map(this.modeToggle.onChange,()=>this.modeToggle.checked?O.Filter:O.Highlight,this._store),this.onDidChangeMatchType=d.Event.map(this.matchTypeToggle.onChange,()=>this.matchTypeToggle.checked?B.Fuzzy:B.Contiguous,this._store),this.findInput=this._register(new S.FindInput(this.elements.findInput,H,{label:(0,u.localize)(4,null),additionalToggles:[this.modeToggle,this.matchTypeToggle],showCommonFindToggles:!1,inputBoxStyles:oe.inputBoxStyles,toggleStyles:oe.toggleStyles,history:G?.history})),this.actionbar=this._register(new D.ActionBar(this.elements.actionbar)),this.mode=q;const ae=this._register(new k.DomEmitter(this.findInput.inputBox.inputElement,"keydown")),ue=d.Event.chain(ae.event,Ce=>Ce.map(Se=>new y.StandardKeyboardEvent(Se)));this._register(ue(Ce=>{if(Ce.equals(3)){Ce.preventDefault(),Ce.stopPropagation(),this.findInput.inputBox.addToHistory(),this.tree.domFocus();return}if(Ce.equals(18)){Ce.preventDefault(),Ce.stopPropagation(),this.findInput.inputBox.isAtLastInHistory()||this.findInput.inputBox.isNowhereInHistory()?(this.findInput.inputBox.addToHistory(),this.tree.domFocus()):this.findInput.inputBox.showNextValue();return}if(Ce.equals(16)){Ce.preventDefault(),Ce.stopPropagation(),this.findInput.inputBox.showPreviousValue();return}}));const ce=this._register(new i.Action("close",(0,u.localize)(5,null),"codicon codicon-close",!0,()=>this.dispose()));this.actionbar.push(ce,{icon:!0,label:!1});const fe=this._register(new k.DomEmitter(this.elements.grab,"mousedown"));this._register(fe.event(Ce=>{const Se=new l.DisposableStore,_e=Se.add(new k.DomEmitter((0,L.getWindow)(Ce),"mousemove")),Ie=Se.add(new k.DomEmitter((0,L.getWindow)(Ce),"mouseup")),Ne=this.right,Oe=Ce.pageX,xe=this.top,We=Ce.pageY;this.elements.grab.classList.add("grabbing");const ye=this.elements.root.style.transition;this.elements.root.style.transition="unset";const Me=me=>{const be=me.pageX-Oe;this.right=Ne-be;const Ae=me.pageY-We;this.top=xe+Ae,this.layout()};Se.add(_e.event(Me)),Se.add(Ie.event(me=>{Me(me),this.elements.grab.classList.remove("grabbing"),this.elements.root.style.transition=ye,Se.dispose()}))}));const ve=d.Event.chain(this._register(new k.DomEmitter(this.elements.grab,"keydown")).event,Ce=>Ce.map(Se=>new y.StandardKeyboardEvent(Se)));this._register(ve(Ce=>{let Se,_e;if(Ce.keyCode===15?Se=Number.POSITIVE_INFINITY:Ce.keyCode===17?Se=0:Ce.keyCode===10&&(Se=this.right===0?Number.POSITIVE_INFINITY:0),Ce.keyCode===16?_e=0:Ce.keyCode===18&&(_e=Number.POSITIVE_INFINITY),Se!==void 0&&(Ce.preventDefault(),Ce.stopPropagation(),this.right=Se,this.layout()),_e!==void 0){Ce.preventDefault(),Ce.stopPropagation(),this.top=_e;const Ie=this.elements.root.style.transition;this.elements.root.style.transition="unset",this.layout(),setTimeout(()=>{this.elements.root.style.transition=Ie},0)}})),this.onDidChangeValue=this.findInput.onDidChange}layout(U=this.width){this.width=U,this.right=(0,r.clamp)(this.right,0,Math.max(0,U-212)),this.elements.root.style.right=`${this.right}px`,this.top=(0,r.clamp)(this.top,0,24),this.elements.root.style.top=`${this.top}px`}showMessage(U){this.findInput.showMessage(U)}clearMessage(){this.findInput.clearMessage()}async dispose(){this._onDidDisable.fire(),this.elements.root.classList.add("disabled"),await(0,o.timeout)(300),super.dispose()}}class V{get pattern(){return this._pattern}get mode(){return this._mode}set mode(U){U!==this._mode&&(this._mode=U,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(U))}get matchType(){return this._matchType}set matchType(U){U!==this._matchType&&(this._matchType=U,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(U))}constructor(U,Z,H,q,te,G={}){var $,oe;this.tree=U,this.view=H,this.filter=q,this.contextViewProvider=te,this.options=G,this._pattern="",this.width=0,this._onDidChangeMode=new d.Emitter,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new d.Emitter,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new d.Emitter,this._onDidChangeOpenState=new d.Emitter,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new l.DisposableStore,this.disposables=new l.DisposableStore,this._mode=($=U.options.defaultFindMode)!==null&&$!==void 0?$:O.Highlight,this._matchType=(oe=U.options.defaultFindMatchType)!==null&&oe!==void 0?oe:B.Fuzzy,Z.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(U={}){U.defaultFindMode!==void 0&&(this.mode=U.defaultFindMode),U.defaultFindMatchType!==void 0&&(this.matchType=U.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var U,Z,H,q;const te=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&te?!((U=this.tree.options.showNotFoundMessage)!==null&&U!==void 0)||U?(Z=this.widget)===null||Z===void 0||Z.showMessage({type:2,content:(0,u.localize)(6,null)}):(H=this.widget)===null||H===void 0||H.showMessage({type:2}):(q=this.widget)===null||q===void 0||q.clearMessage()}shouldAllowFocus(U){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!s.FuzzyScore.isDefault(U.filterData)}layout(U){var Z;this.width=U,(Z=this.widget)===null||Z===void 0||Z.layout(U)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function z(Q,U){return Q.position===U.position&&K(Q,U)}function K(Q,U){return Q.node.element===U.node.element&&Q.startIndex===U.startIndex&&Q.height===U.height&&Q.endIndex===U.endIndex}class j{constructor(U=[]){this.stickyNodes=U}get count(){return this.stickyNodes.length}equal(U){return(0,t.equals)(this.stickyNodes,U.stickyNodes,z)}lastNodePartiallyVisible(){if(this.count===0)return!1;const U=this.stickyNodes[this.count-1];if(this.count===1)return U.position!==0;const Z=this.stickyNodes[this.count-2];return Z.position+Z.height!==U.position}animationStateChanged(U){if(!(0,t.equals)(this.stickyNodes,U.stickyNodes,K)||this.count===0)return!1;const Z=this.stickyNodes[this.count-1],H=U.stickyNodes[U.count-1];return Z.position!==H.position}}class x{constrainStickyScrollNodes(U,Z,H){for(let q=0;qH||q>=Z)return U.slice(0,q)}return U}}class re extends l.Disposable{constructor(U,Z,H,q,te,G={}){var $;super(),this.tree=U,this.model=Z,this.view=H,this.treeDelegate=te,this.maxWidgetViewRatio=.4;const oe=this.validateStickySettings(G);this.stickyScrollMaxItemCount=oe.stickyScrollMaxItemCount,this.stickyScrollDelegate=($=G.stickyScrollDelegate)!==null&&$!==void 0?$:new x,this._widget=this._register(new ie(H.getScrollableElement(),H,U,q,te,G.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(H.onDidScroll(()=>this.update())),this._register(H.onDidChangeContentHeight(()=>this.update())),this._register(U.onDidChangeCollapseState(()=>this.update())),this.update()}getNodeAtHeight(U){let Z;if(U===0?Z=this.view.firstVisibleIndex:Z=this.view.indexAt(U+this.view.scrollTop),!(Z<0||Z>=this.view.length))return this.view.element(Z)}update(){const U=this.getNodeAtHeight(0);if(!U||this.tree.scrollTop===0){this._widget.setState(void 0);return}const Z=this.findStickyState(U);this._widget.setState(Z)}findStickyState(U){const Z=[];let H=U,q=0,te=this.getNextStickyNode(H,void 0,q);for(;te&&(Z.push(te),q+=te.height,!(Z.length<=this.stickyScrollMaxItemCount&&(H=this.getNextVisibleNode(te),!H)));)te=this.getNextStickyNode(H,te.node,q);const G=this.constrainStickyNodes(Z);return G.length?new j(G):void 0}getNextVisibleNode(U){return this.getNodeAtHeight(U.position+U.height)}getNextStickyNode(U,Z,H){const q=this.getAncestorUnderPrevious(U,Z);if(q&&!(q===U&&(!this.nodeIsUncollapsedParent(U)||this.nodeTopAlignsWithStickyNodesBottom(U,H))))return this.createStickyScrollNode(q,H)}nodeTopAlignsWithStickyNodesBottom(U,Z){const H=this.getNodeIndex(U),q=this.view.getElementTop(H),te=Z;return this.view.scrollTop===q-te}createStickyScrollNode(U,Z){const H=this.treeDelegate.getHeight(U),{startIndex:q,endIndex:te}=this.getNodeRange(U),G=this.calculateStickyNodePosition(te,Z,H);return{node:U,position:G,height:H,startIndex:q,endIndex:te}}getAncestorUnderPrevious(U,Z=void 0){let H=U,q=this.getParentNode(H);for(;q;){if(q===Z)return H;H=q,q=this.getParentNode(H)}if(Z===void 0)return H}calculateStickyNodePosition(U,Z,H){let q=this.view.getRelativeTop(U);if(q===null&&this.view.firstVisibleIndex===U&&U+1oe&&Z<=oe?oe-H:Z}constrainStickyNodes(U){if(U.length===0)return[];const Z=this.view.renderHeight*this.maxWidgetViewRatio,H=U[U.length-1];if(U.length<=this.stickyScrollMaxItemCount&&H.position+H.height<=Z)return U;const q=this.stickyScrollDelegate.constrainStickyScrollNodes(U,this.stickyScrollMaxItemCount,Z);if(!q.length)return[];const te=q[q.length-1];if(q.length>this.stickyScrollMaxItemCount||te.position+te.height>Z)throw new Error("stickyScrollDelegate violates constraints");return q}getParentNode(U){const Z=this.model.getNodeLocation(U),H=this.model.getParentNodeLocation(Z);return H?this.model.getNode(H):void 0}nodeIsUncollapsedParent(U){const Z=this.model.getNodeLocation(U);return this.model.getListRenderCount(Z)>1}getNodeIndex(U){const Z=this.model.getNodeLocation(U);return this.model.getListIndex(Z)}getNodeRange(U){const Z=this.model.getNodeLocation(U),H=this.model.getListIndex(Z);if(H<0)throw new Error("Node not found in tree");const q=this.model.getListRenderCount(Z),te=H+q-1;return{startIndex:H,endIndex:te}}nodePositionTopBelowWidget(U){const Z=[];let H=this.getParentNode(U);for(;H;)Z.push(H),H=this.getParentNode(H);let q=0;for(let te=0;te0,H=!!U&&U.count>0;if(!Z&&!H||Z&&H&&this._previousState.equal(U))return;if(Z!==H&&this.setVisible(H),!H){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const q=U.stickyNodes[U.count-1];if(this._previousState&&U.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${q.position}px`;else{this._previousStateDisposables.clear();const te=Array(U.count);for(let G=U.count-1;G>=0;G--){const $=U.stickyNodes[G],{element:oe,disposable:ae}=this.createElement($,G,U.count);te[G]=oe,this._rootDomNode.appendChild(oe),this._previousStateDisposables.add(ae)}this.stickyScrollFocus.updateElements(te,U),this._previousElements=te}this._previousState=U,this._rootDomNode.style.height=`${q.position+q.height}px`}createElement(U,Z,H){const q=U.startIndex,te=document.createElement("div");te.style.top=`${U.position}px`,te.style.height=`${U.height}px`,te.style.lineHeight=`${U.height}px`,te.classList.add("monaco-tree-sticky-row"),te.classList.add("monaco-list-row"),te.setAttribute("data-index",`${q}`),te.setAttribute("data-parity",q%2===0?"even":"odd"),te.setAttribute("id",this.view.getElementID(q)),this.setAccessibilityAttributes(te,U.node.element,Z,H);const G=this.treeDelegate.getTemplateId(U.node),$=this.treeRenderers.find(ce=>ce.templateId===G);if(!$)throw new Error(`No renderer found for template id ${G}`);let oe=U.node;oe===this.tree.getNode(this.tree.getNodeLocation(U.node))&&(oe=new Proxy(U.node,{}));const ae=$.renderTemplate(te);$.renderElement(oe,U.startIndex,ae,U.height);const ue=(0,l.toDisposable)(()=>{$.disposeElement(oe,U.startIndex,ae,U.height),$.disposeTemplate(ae),te.remove()});return{element:te,disposable:ue}}setAccessibilityAttributes(U,Z,H,q){var te;if(!this.accessibilityProvider)return;this.accessibilityProvider.getSetSize&&U.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(Z,H,q))),this.accessibilityProvider.getPosInSet&&U.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(Z,H))),this.accessibilityProvider.getRole&&U.setAttribute("role",(te=this.accessibilityProvider.getRole(Z))!==null&&te!==void 0?te:"treeitem");const G=this.accessibilityProvider.getAriaLabel(Z);G&&U.setAttribute("aria-label",G);const $=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(Z);typeof $=="number"&&U.setAttribute("aria-level",`${$}`),U.setAttribute("aria-selected",String(!1))}setVisible(U){this._rootDomNode.classList.toggle("empty",!U),U||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}}class J extends l.Disposable{get domHasFocus(){return this._domHasFocus}set domHasFocus(U){U!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(U),this._domHasFocus=U)}constructor(U,Z){super(),this.container=U,this.view=Z,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new d.Emitter,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new d.Emitter,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this.container.addEventListener("focus",()=>this.onFocus()),this.container.addEventListener("blur",()=>this.onBlur()),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(H=>this.onKeyDown(H))),this._register(this.view.onMouseDown(H=>this.onMouseDown(H))),this._register(this.view.onContextMenu(H=>this.handleContextMenu(H)))}handleContextMenu(U){const Z=U.browserEvent.target;if(!(0,v.isStickyScrollContainer)(Z)&&!(0,v.isStickyScrollElement)(Z)){this.focusedLast()&&this.view.domFocus();return}if(!(0,L.isKeyboardEvent)(U.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const G=this.state.stickyNodes.findIndex($=>{var oe;return $.node.element===((oe=U.element)===null||oe===void 0?void 0:oe.element)});if(G===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(G);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const q=this.state.stickyNodes[this.focusedIndex].node.element,te=this.elements[this.focusedIndex];this._onContextMenu.fire({element:q,anchor:te,browserEvent:U.browserEvent,isStickyScroll:!0})}onKeyDown(U){if(this.domHasFocus&&this.state){if(U.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),U.preventDefault(),U.stopPropagation();else if(U.key==="ArrowDown"||U.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const Z=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([Z]),this.scrollNodeUnderWidget(Z,this.state)}else this.setFocusedElement(this.focusedIndex+1);U.preventDefault(),U.stopPropagation()}}}onMouseDown(U){const Z=U.browserEvent.target;!(0,v.isStickyScrollContainer)(Z)&&!(0,v.isStickyScrollElement)(Z)||(U.browserEvent.preventDefault(),U.browserEvent.stopPropagation())}updateElements(U,Z){if(Z&&Z.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(Z&&Z.count!==U.length)throw new Error("Sticky scroll focus received illigel state");const H=this.focusedIndex;if(this.removeFocus(),this.elements=U,this.state=Z,Z){const q=(0,r.clamp)(H,0,Z.count-1);this.setFocus(q)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=Z?0:-1}setFocusedElement(U){const Z=this.state;if(!Z)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(U),!(U1?Z.stickyNodes[Z.count-2]:void 0,te=this.view.getElementTop(U),G=q?q.position+q.height+H.height:H.height;this.view.scrollTop=te-G}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(U){if(0>U)throw new Error("addFocus() can not remove focus");if(!this.state&&U>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&U>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const Z=this.focusedIndex;Z>=0&&this.toggleElementFocus(this.elements[Z],!1),U>=0&&this.toggleElementFocus(this.elements[U],!0),this.focusedIndex=U}toggleElementFocus(U,Z){U.classList.toggle("focused",Z)}toggleStickyScrollFocused(U){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",U)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function X(Q){let U=n.TreeMouseEventTarget.Unknown;return(0,L.hasParentWithClass)(Q.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?U=n.TreeMouseEventTarget.Twistie:(0,L.hasParentWithClass)(Q.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?U=n.TreeMouseEventTarget.Element:(0,L.hasParentWithClass)(Q.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(U=n.TreeMouseEventTarget.Filter),{browserEvent:Q.browserEvent,element:Q.element?Q.element.element:null,target:U}}function Y(Q,U){U(Q),Q.children.forEach(Z=>Y(Z,U))}class le{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(U,Z){this.getFirstViewElementWithTrait=U,this.identityProvider=Z,this.nodes=[],this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event}set(U,Z){!Z?.__forceEvent&&(0,t.equals)(this.nodes,U)||this._set(U,!1,Z)}_set(U,Z,H){if(this.nodes=[...U],this.elements=void 0,this._nodeSet=void 0,!Z){const q=this;this._onDidChange.fire({get elements(){return q.get()},browserEvent:H})}}get(){return this.elements||(this.elements=this.nodes.map(U=>U.element)),[...this.elements]}getNodes(){return this.nodes}has(U){return this.nodeSet.has(U)}onDidModelSplice({insertedNodes:U,deletedNodes:Z}){if(!this.identityProvider){const oe=this.createNodeSet(),ae=ue=>oe.delete(ue);Z.forEach(ue=>Y(ue,ae)),this.set([...oe.values()]);return}const H=new Set,q=oe=>H.add(this.identityProvider.getId(oe.element).toString());Z.forEach(oe=>Y(oe,q));const te=new Map,G=oe=>te.set(this.identityProvider.getId(oe.element).toString(),oe);U.forEach(oe=>Y(oe,G));const $=[];for(const oe of this.nodes){const ae=this.identityProvider.getId(oe.element).toString();if(!H.has(ae))$.push(oe);else{const ce=te.get(ae);ce&&ce.visible&&$.push(ce)}}if(this.nodes.length>0&&$.length===0){const oe=this.getFirstViewElementWithTrait();oe&&$.push(oe)}this._set($,!0)}createNodeSet(){const U=new Set;for(const Z of this.nodes)U.add(Z);return U}}class de extends v.MouseController{constructor(U,Z,H){super(U),this.tree=Z,this.stickyScrollProvider=H}onViewPointer(U){if((0,v.isButton)(U.browserEvent.target)||(0,v.isInputElement)(U.browserEvent.target)||(0,v.isMonacoEditor)(U.browserEvent.target)||U.browserEvent.isHandledByList)return;const Z=U.element;if(!Z)return super.onViewPointer(U);if(this.isSelectionRangeChangeEvent(U)||this.isSelectionSingleChangeEvent(U))return super.onViewPointer(U);const H=U.browserEvent.target,q=H.classList.contains("monaco-tl-twistie")||H.classList.contains("monaco-icon-label")&&H.classList.contains("folder-icon")&&U.browserEvent.offsetX<16,te=(0,v.isStickyScrollElement)(U.browserEvent.target);let G=!1;if(te?G=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?G=this.tree.expandOnlyOnTwistieClick(Z.element):G=!!this.tree.expandOnlyOnTwistieClick,te)this.handleStickyScrollMouseEvent(U,Z);else{if(G&&!q&&U.browserEvent.detail!==2)return super.onViewPointer(U);if(!this.tree.expandOnDoubleClick&&U.browserEvent.detail===2)return super.onViewPointer(U)}if(Z.collapsible&&(!te||q)){const $=this.tree.getNodeLocation(Z),oe=U.browserEvent.altKey;if(this.tree.setFocus([$]),this.tree.toggleCollapsed($,oe),G&&q){U.browserEvent.isHandledByList=!0;return}}te||super.onViewPointer(U)}handleStickyScrollMouseEvent(U,Z){if((0,v.isMonacoCustomToggle)(U.browserEvent.target)||(0,v.isActionItem)(U.browserEvent.target))return;const H=this.stickyScrollProvider();if(!H)throw new Error("Sticky scroll controller not found");const q=this.list.indexOf(Z),te=this.list.getElementTop(q),G=H.nodePositionTopBelowWidget(Z);this.tree.scrollTop=te-G,this.list.domFocus(),this.list.setFocus([q]),this.list.setSelection([q])}onDoubleClick(U){U.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||U.browserEvent.isHandledByList||super.onDoubleClick(U)}onMouseDown(U){const Z=U.browserEvent.target;if(!(0,v.isStickyScrollContainer)(Z)&&!(0,v.isStickyScrollElement)(Z)){super.onMouseDown(U);return}}onContextMenu(U){const Z=U.browserEvent.target;if(!(0,v.isStickyScrollContainer)(Z)&&!(0,v.isStickyScrollElement)(Z)){super.onContextMenu(U);return}}}class ge extends v.List{constructor(U,Z,H,q,te,G,$,oe){super(U,Z,H,q,oe),this.focusTrait=te,this.selectionTrait=G,this.anchorTrait=$}createMouseController(U){return new de(this,U.tree,U.stickyScrollProvider)}splice(U,Z,H=[]){if(super.splice(U,Z,H),H.length===0)return;const q=[],te=[];let G;H.forEach(($,oe)=>{this.focusTrait.has($)&&q.push(U+oe),this.selectionTrait.has($)&&te.push(U+oe),this.anchorTrait.has($)&&(G=U+oe)}),q.length>0&&super.setFocus((0,t.distinct)([...super.getFocus(),...q])),te.length>0&&super.setSelection((0,t.distinct)([...super.getSelection(),...te])),typeof G=="number"&&super.setAnchor(G)}setFocus(U,Z,H=!1){super.setFocus(U,Z),H||this.focusTrait.set(U.map(q=>this.element(q)),Z)}setSelection(U,Z,H=!1){super.setSelection(U,Z),H||this.selectionTrait.set(U.map(q=>this.element(q)),Z)}setAnchor(U,Z=!1){super.setAnchor(U),Z||(typeof U>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(U)]))}}class pe{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return d.Event.filter(d.Event.map(this.view.onMouseDblClick,X),U=>U.target!==n.TreeMouseEventTarget.Filter)}get onPointer(){return d.Event.map(this.view.onPointer,X)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return d.Event.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var U,Z;return(Z=(U=this.findController)===null||U===void 0?void 0:U.mode)!==null&&Z!==void 0?Z:O.Highlight}set findMode(U){this.findController&&(this.findController.mode=U)}get findMatchType(){var U,Z;return(Z=(U=this.findController)===null||U===void 0?void 0:U.matchType)!==null&&Z!==void 0?Z:B.Fuzzy}set findMatchType(U){this.findController&&(this.findController.matchType=U)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(U,Z,H,q,te={}){var G;this._user=U,this._options=te,this.eventBufferer=new d.EventBufferer,this.onDidChangeFindOpenState=d.Event.None,this.onDidChangeStickyScrollFocused=d.Event.None,this.disposables=new l.DisposableStore,this._onWillRefilter=new d.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new d.Emitter,this.treeDelegate=new I(H);const $=new d.Relay,oe=new d.Relay,ae=this.disposables.add(new A(oe.event)),ue=new c.SetMap;this.renderers=q.map(Se=>new R(Se,()=>this.model,$.event,ae,ue,te));for(const Se of this.renderers)this.disposables.add(Se);let ce;te.keyboardNavigationLabelProvider&&(ce=new M(this,te.keyboardNavigationLabelProvider,te.filter),te={...te,filter:ce},this.disposables.add(ce)),this.focus=new le(()=>this.view.getFocusedElements()[0],te.identityProvider),this.selection=new le(()=>this.view.getSelectedElements()[0],te.identityProvider),this.anchor=new le(()=>this.view.getAnchorElement(),te.identityProvider),this.view=new ge(U,Z,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...E(()=>this.model,te),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(U,this.view,te),$.input=this.model.onDidChangeCollapseState;const fe=d.Event.forEach(this.model.onDidSplice,Se=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(Se),this.selection.onDidModelSplice(Se)})},this.disposables);fe(()=>null,null,this.disposables);const ve=this.disposables.add(new d.Emitter),Ce=this.disposables.add(new o.Delayer(0));if(this.disposables.add(d.Event.any(fe,this.focus.onDidChange,this.selection.onDidChange)(()=>{Ce.trigger(()=>{const Se=new Set;for(const _e of this.focus.getNodes())Se.add(_e);for(const _e of this.selection.getNodes())Se.add(_e);ve.fire([...Se.values()])})})),oe.input=ve.event,te.keyboardSupport!==!1){const Se=d.Event.chain(this.view.onKeyDown,_e=>_e.filter(Ie=>!(0,v.isInputElement)(Ie.target)).map(Ie=>new y.StandardKeyboardEvent(Ie)));d.Event.chain(Se,_e=>_e.filter(Ie=>Ie.keyCode===15))(this.onLeftArrow,this,this.disposables),d.Event.chain(Se,_e=>_e.filter(Ie=>Ie.keyCode===17))(this.onRightArrow,this,this.disposables),d.Event.chain(Se,_e=>_e.filter(Ie=>Ie.keyCode===10))(this.onSpace,this,this.disposables)}if((!((G=te.findWidgetEnabled)!==null&&G!==void 0)||G)&&te.keyboardNavigationLabelProvider&&te.contextViewProvider){const Se=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new V(this,this.model,this.view,ce,te.contextViewProvider,Se),this.focusNavigationFilter=_e=>this.findController.shouldAllowFocus(_e),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=d.Event.None,this.onDidChangeFindMatchType=d.Event.None;te.enableStickyScroll&&(this.stickyScrollController=new re(this,this.model,this.view,this.renderers,this.treeDelegate,te),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=(0,L.createStyleSheet)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===T.Always)}updateOptions(U={}){var Z;this._options={...this._options,...U};for(const H of this.renderers)H.updateOptions(U);this.view.updateOptions(this._options),(Z=this.findController)===null||Z===void 0||Z.updateOptions(U),this.updateStickyScroll(U),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===T.Always)}get options(){return this._options}updateStickyScroll(U){var Z;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new re(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=d.Event.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(Z=this.stickyScrollController)===null||Z===void 0||Z.updateOptions(U)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(U){this.view.scrollTop=U}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}domFocus(){var U;!((U=this.stickyScrollController)===null||U===void 0)&&U.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(U,Z){var H;this.view.layout(U,Z),(0,h.isNumber)(Z)&&((H=this.findController)===null||H===void 0||H.layout(Z))}style(U){var Z;const H=`.${this.view.domId}`,q=[];U.treeIndentGuidesStroke&&(q.push(`.monaco-list${H}:hover .monaco-tl-indent > .indent-guide, .monaco-list${H}.always .monaco-tl-indent > .indent-guide { border-color: ${U.treeInactiveIndentGuidesStroke}; }`),q.push(`.monaco-list${H} .monaco-tl-indent > .indent-guide.active { border-color: ${U.treeIndentGuidesStroke}; }`)),U.listBackground&&(q.push(`.monaco-list${H} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${U.listBackground}; }`),q.push(`.monaco-list${H} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${U.listBackground}; }`)),U.listFocusForeground&&(q.push(`.monaco-list${H}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${U.listFocusForeground}; }`),q.push(`.monaco-list${H}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const te=(0,L.asCssValueWithDefault)(U.listFocusAndSelectionOutline,(0,L.asCssValueWithDefault)(U.listSelectionOutline,(Z=U.listFocusOutline)!==null&&Z!==void 0?Z:""));te&&(q.push(`.monaco-list${H}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${te}; outline-offset: -1px;}`),q.push(`.monaco-list${H}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),U.listFocusOutline&&(q.push(`.monaco-list${H}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${U.listFocusOutline}; outline-offset: -1px; }`),q.push(`.monaco-list${H}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),q.push(`.monaco-workbench.context-menu-visible .monaco-list${H}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),q.push(`.monaco-workbench.context-menu-visible .monaco-list${H}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=q.join(` +`),this.view.style(U)}getParentElement(U){const Z=this.model.getParentNodeLocation(U);return this.model.getNode(Z).element}getFirstElementChild(U){return this.model.getFirstElementChild(U)}getNode(U){return this.model.getNode(U)}getNodeLocation(U){return this.model.getNodeLocation(U)}collapse(U,Z=!1){return this.model.setCollapsed(U,!0,Z)}expand(U,Z=!1){return this.model.setCollapsed(U,!1,Z)}toggleCollapsed(U,Z=!1){return this.model.setCollapsed(U,void 0,Z)}isCollapsible(U){return this.model.isCollapsible(U)}setCollapsible(U,Z){return this.model.setCollapsible(U,Z)}isCollapsed(U){return this.model.isCollapsed(U)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(U,Z){this.eventBufferer.bufferEvents(()=>{const H=U.map(te=>this.model.getNode(te));this.selection.set(H,Z);const q=U.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setSelection(q,Z,!0)})}getSelection(){return this.selection.get()}setFocus(U,Z){this.eventBufferer.bufferEvents(()=>{const H=U.map(te=>this.model.getNode(te));this.focus.set(H,Z);const q=U.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setFocus(q,Z,!0)})}getFocus(){return this.focus.get()}reveal(U,Z){this.model.expandTo(U);const H=this.model.getListIndex(U);if(H!==-1)if(!this.stickyScrollController)this.view.reveal(H,Z);else{const q=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(U));this.view.reveal(H,Z,q)}}onLeftArrow(U){U.preventDefault(),U.stopPropagation();const Z=this.view.getFocusedElements();if(Z.length===0)return;const H=Z[0],q=this.model.getNodeLocation(H);if(!this.model.setCollapsed(q,!0)){const G=this.model.getParentNodeLocation(q);if(!G)return;const $=this.model.getListIndex(G);this.view.reveal($),this.view.setFocus([$])}}onRightArrow(U){U.preventDefault(),U.stopPropagation();const Z=this.view.getFocusedElements();if(Z.length===0)return;const H=Z[0],q=this.model.getNodeLocation(H);if(!this.model.setCollapsed(q,!1)){if(!H.children.some(oe=>oe.visible))return;const[G]=this.view.getFocus(),$=G+1;this.view.reveal($),this.view.setFocus([$])}}onSpace(U){U.preventDefault(),U.stopPropagation();const Z=this.view.getFocusedElements();if(Z.length===0)return;const H=Z[0],q=this.model.getNodeLocation(H),te=U.browserEvent.altKey;this.model.setCollapsed(q,void 0,te)}dispose(){var U;(0,l.dispose)(this.disposables),(U=this.stickyScrollController)===null||U===void 0||U.dispose(),this.view.dispose()}}e.AbstractTree=pe}),define(ne[611],se([1,0,192,227]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTree=void 0;class y extends L.AbstractTree{constructor(S,p,w,v,b,a={}){super(S,p,w,v,a),this.user=S,this.dataSource=b,this.identityProvider=a.identityProvider}createModel(S,p,w){return new k.ObjectTreeModel(S,p,w)}}e.DataTree=y}),define(ne[332],se([1,0,192,594,227,111,52]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTree=e.ObjectTree=void 0;class p extends L.AbstractTree{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(i,t,o,g,m={}){super(i,t,o,g,m),this.user=i}setChildren(i,t=S.Iterable.empty(),o){this.model.setChildren(i,t,o)}rerender(i){if(i===void 0){this.view.rerender();return}this.model.rerender(i)}hasElement(i){return this.model.has(i)}createModel(i,t,o){return new y.ObjectTreeModel(i,t,o)}}e.ObjectTree=p;class w{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(i,t,o){this._compressedTreeNodeProvider=i,this.stickyScrollDelegate=t,this.renderer=o,this.templateId=o.templateId,o.onDidChangeTwistieState&&(this.onDidChangeTwistieState=o.onDidChangeTwistieState)}renderTemplate(i){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(i)}}renderElement(i,t,o,g){let m=this.stickyScrollDelegate.getCompressedNode(i);m||(m=this.compressedTreeNodeProvider.getCompressedTreeNode(i.element)),m.element.elements.length===1?(o.compressedTreeNode=void 0,this.renderer.renderElement(i,t,o.data,g)):(o.compressedTreeNode=m,this.renderer.renderCompressedElements(m,t,o.data,g))}disposeElement(i,t,o,g){var m,c,d,s;o.compressedTreeNode?(c=(m=this.renderer).disposeCompressedElements)===null||c===void 0||c.call(m,o.compressedTreeNode,t,o.data,g):(s=(d=this.renderer).disposeElement)===null||s===void 0||s.call(d,i,t,o.data,g)}disposeTemplate(i){this.renderer.disposeTemplate(i.data)}renderTwistie(i,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(i,t):!1}}De([D.memoize],w.prototype,"compressedTreeNodeProvider",null);class v{constructor(i){this.modelProvider=i,this.compressedStickyNodes=new Map}getCompressedNode(i){return this.compressedStickyNodes.get(i)}constrainStickyScrollNodes(i,t,o){if(this.compressedStickyNodes.clear(),i.length===0)return[];for(let g=0;go||g>=t-1&&tthis,d=new v(()=>this.model),s=g.map(l=>new w(c,d,l));super(i,t,o,s,{...b(c,m),stickyScrollDelegate:d})}setChildren(i,t=S.Iterable.empty(),o){this.model.setChildren(i,t,o)}createModel(i,t,o){return new k.CompressibleObjectTreeModel(i,t,o)}updateOptions(i={}){super.updateOptions(i),typeof i.compressionEnabled<"u"&&this.model.setCompressionEnabled(i.compressionEnabled)}getCompressedTreeNode(i=null){return this.model.getCompressedTreeNode(i)}}e.CompressibleObjectTree=a}),define(ne[612],se([1,0,234,192,226,332,148,15,27,29,12,7,52,2,20]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleAsyncDataTree=e.AsyncDataTree=void 0;function o(M){return{...M,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function g(M,N){return N.parent?N.parent===M?!0:g(M,N.parent):!1}function m(M,N){return M===N||g(M,N)||g(N,M)}class c{get element(){return this.node.element.element}get children(){return this.node.children.map(N=>new c(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class d{constructor(N,P,F){this.renderer=N,this.nodeMapper=P,this.onDidChangeTwistieState=F,this.renderedNodes=new Map,this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,P,F,O){this.renderer.renderElement(this.nodeMapper.map(N),P,F.templateData,O)}renderTwistie(N,P){return N.slow?(P.classList.add(...v.ThemeIcon.asClassNameArray(w.Codicon.treeItemLoading)),!0):(P.classList.remove(...v.ThemeIcon.asClassNameArray(w.Codicon.treeItemLoading)),!1)}disposeElement(N,P,F,O){var B,W;(W=(B=this.renderer).disposeElement)===null||W===void 0||W.call(B,this.nodeMapper.map(N),P,F.templateData,O)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear()}}function s(M){return{browserEvent:M.browserEvent,elements:M.elements.map(N=>N.element)}}function l(M){return{browserEvent:M.browserEvent,element:M.element&&M.element.element,target:M.target}}class r extends L.ElementsDragAndDropData{constructor(N){super(N.elements.map(P=>P.element)),this.data=N}}function h(M){return M instanceof L.ElementsDragAndDropData?new r(M):M}class u{constructor(N){this.dnd=N}getDragURI(N){return this.dnd.getDragURI(N.element)}getDragLabel(N,P){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(N.map(F=>F.element),P)}onDragStart(N,P){var F,O;(O=(F=this.dnd).onDragStart)===null||O===void 0||O.call(F,h(N),P)}onDragOver(N,P,F,O,B,W=!0){return this.dnd.onDragOver(h(N),P&&P.element,F,O,B)}drop(N,P,F,O,B){this.dnd.drop(h(N),P&&P.element,F,O,B)}onDragEnd(N){var P,F;(F=(P=this.dnd).onDragEnd)===null||F===void 0||F.call(P,N)}dispose(){this.dnd.dispose()}}function f(M){return M&&{...M,collapseByDefault:!0,identityProvider:M.identityProvider&&{getId(N){return M.identityProvider.getId(N.element)}},dnd:M.dnd&&new u(M.dnd),multipleSelectionController:M.multipleSelectionController&&{isSelectionSingleChangeEvent(N){return M.multipleSelectionController.isSelectionSingleChangeEvent({...N,element:N.element})},isSelectionRangeChangeEvent(N){return M.multipleSelectionController.isSelectionRangeChangeEvent({...N,element:N.element})}},accessibilityProvider:M.accessibilityProvider&&{...M.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:M.accessibilityProvider.getRole?N=>M.accessibilityProvider.getRole(N.element):()=>"treeitem",isChecked:M.accessibilityProvider.isChecked?N=>{var P;return!!(!((P=M.accessibilityProvider)===null||P===void 0)&&P.isChecked(N.element))}:void 0,getAriaLabel(N){return M.accessibilityProvider.getAriaLabel(N.element)},getWidgetAriaLabel(){return M.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:M.accessibilityProvider.getWidgetRole?()=>M.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:M.accessibilityProvider.getAriaLevel&&(N=>M.accessibilityProvider.getAriaLevel(N.element)),getActiveDescendantId:M.accessibilityProvider.getActiveDescendantId&&(N=>M.accessibilityProvider.getActiveDescendantId(N.element))},filter:M.filter&&{filter(N,P){return M.filter.filter(N.element,P)}},keyboardNavigationLabelProvider:M.keyboardNavigationLabelProvider&&{...M.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(N){return M.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(N.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof M.expandOnlyOnTwistieClick>"u"?void 0:typeof M.expandOnlyOnTwistieClick!="function"?M.expandOnlyOnTwistieClick:N=>M.expandOnlyOnTwistieClick(N.element),defaultFindVisibility:N=>N.hasChildren&&N.stale?1:typeof M.defaultFindVisibility=="number"?M.defaultFindVisibility:typeof M.defaultFindVisibility>"u"?2:M.defaultFindVisibility(N.element)}}function C(M,N){N(M),M.children.forEach(P=>C(P,N))}class _{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return a.Event.map(this.tree.onDidChangeFocus,s)}get onDidChangeSelection(){return a.Event.map(this.tree.onDidChangeSelection,s)}get onMouseDblClick(){return a.Event.map(this.tree.onMouseDblClick,l)}get onPointer(){return a.Event.map(this.tree.onPointer,l)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(N,P,F,O,B,W={}){this.user=N,this.dataSource=B,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new a.Emitter,this._onDidChangeNodeSlowState=new a.Emitter,this.nodeMapper=new S.WeakMapper(V=>new c(V)),this.disposables=new i.DisposableStore,this.identityProvider=W.identityProvider,this.autoExpandSingleChildren=typeof W.autoExpandSingleChildren>"u"?!1:W.autoExpandSingleChildren,this.sorter=W.sorter,this.getDefaultCollapseState=V=>W.collapseByDefault?W.collapseByDefault(V)?S.ObjectTreeElementCollapseState.PreserveOrCollapsed:S.ObjectTreeElementCollapseState.PreserveOrExpanded:void 0,this.tree=this.createTree(N,P,F,O,W),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=o({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(N,P,F,O,B){const W=new k.ComposedTreeDelegate(F),V=O.map(K=>new d(K,this.nodeMapper,this._onDidChangeNodeSlowState.event)),z=f(B)||{};return new D.ObjectTree(N,P,W,V,z)}updateOptions(N={}){this.tree.updateOptions(N)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(N){this.tree.scrollTop=N}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(N,P){this.tree.layout(N,P)}style(N){this.tree.style(N)}getInput(){return this.root.element}async setInput(N,P){this.refreshPromises.forEach(O=>O.cancel()),this.refreshPromises.clear(),this.root.element=N;const F=P&&{viewState:P,focus:[],selection:[]};await this._updateChildren(N,!0,!1,F),F&&(this.tree.setFocus(F.focus),this.tree.setSelection(F.selection)),P&&typeof P.scrollTop=="number"&&(this.scrollTop=P.scrollTop)}async _updateChildren(N=this.root.element,P=!0,F=!1,O,B){if(typeof this.root.element>"u")throw new S.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await a.Event.toPromise(this._onDidRender.event));const W=this.getDataNode(N);if(await this.refreshAndRenderNode(W,P,O,B),F)try{this.tree.rerender(W)}catch{}}rerender(N){if(N===void 0||N===this.root.element){this.tree.rerender();return}const P=this.getDataNode(N);this.tree.rerender(P)}getNode(N=this.root.element){const P=this.getDataNode(N),F=this.tree.getNode(P===this.root?null:P);return this.nodeMapper.map(F)}collapse(N,P=!1){const F=this.getDataNode(N);return this.tree.collapse(F===this.root?null:F,P)}async expand(N,P=!1){if(typeof this.root.element>"u")throw new S.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await a.Event.toPromise(this._onDidRender.event));const F=this.getDataNode(N);if(this.tree.hasElement(F)&&!this.tree.isCollapsible(F)||(F.refreshPromise&&(await this.root.refreshPromise,await a.Event.toPromise(this._onDidRender.event)),F!==this.root&&!F.refreshPromise&&!this.tree.isCollapsed(F)))return!1;const O=this.tree.expand(F===this.root?null:F,P);return F.refreshPromise&&(await this.root.refreshPromise,await a.Event.toPromise(this._onDidRender.event)),O}setSelection(N,P){const F=N.map(O=>this.getDataNode(O));this.tree.setSelection(F,P)}getSelection(){return this.tree.getSelection().map(P=>P.element)}setFocus(N,P){const F=N.map(O=>this.getDataNode(O));this.tree.setFocus(F,P)}getFocus(){return this.tree.getFocus().map(P=>P.element)}reveal(N,P){this.tree.reveal(this.getDataNode(N),P)}getParentElement(N){const P=this.tree.getParentElement(this.getDataNode(N));return P&&P.element}getFirstElementChild(N=this.root.element){const P=this.getDataNode(N),F=this.tree.getFirstElementChild(P===this.root?null:P);return F&&F.element}getDataNode(N){const P=this.nodes.get(N===this.root.element?null:N);if(!P)throw new S.TreeError(this.user,`Data tree node not found: ${N}`);return P}async refreshAndRenderNode(N,P,F,O){await this.refreshNode(N,P,F),!this.disposables.isDisposed&&this.render(N,F,O)}async refreshNode(N,P,F){let O;if(this.subTreeRefreshPromises.forEach((B,W)=>{!O&&m(W,N)&&(O=B.then(()=>this.refreshNode(N,P,F)))}),O)return O;if(N!==this.root&&this.tree.getNode(N).collapsed){N.hasChildren=!!this.dataSource.hasChildren(N.element),N.stale=!0,this.setChildren(N,[],P,F);return}return this.doRefreshSubTree(N,P,F)}async doRefreshSubTree(N,P,F){let O;N.refreshPromise=new Promise(B=>O=B),this.subTreeRefreshPromises.set(N,N.refreshPromise),N.refreshPromise.finally(()=>{N.refreshPromise=void 0,this.subTreeRefreshPromises.delete(N)});try{const B=await this.doRefreshNode(N,P,F);N.stale=!1,await p.Promises.settled(B.map(W=>this.doRefreshSubTree(W,P,F)))}finally{O()}}async doRefreshNode(N,P,F){N.hasChildren=!!this.dataSource.hasChildren(N.element);let O;if(!N.hasChildren)O=Promise.resolve(n.Iterable.empty());else{const B=this.doGetChildren(N);if((0,t.isIterable)(B))O=Promise.resolve(B);else{const W=(0,p.timeout)(800);W.then(()=>{N.slow=!0,this._onDidChangeNodeSlowState.fire(N)},V=>null),O=B.finally(()=>W.cancel())}}try{const B=await O;return this.setChildren(N,B,P,F)}catch(B){if(N!==this.root&&this.tree.hasElement(N)&&this.tree.collapse(N),(0,b.isCancellationError)(B))return[];throw B}finally{N.slow&&(N.slow=!1,this._onDidChangeNodeSlowState.fire(N))}}doGetChildren(N){let P=this.refreshPromises.get(N);if(P)return P;const F=this.dataSource.getChildren(N.element);return(0,t.isIterable)(F)?this.processChildren(F):(P=(0,p.createCancelablePromise)(async()=>this.processChildren(await F)),this.refreshPromises.set(N,P),P.finally(()=>{this.refreshPromises.delete(N)}))}_onDidChangeCollapseState({node:N,deep:P}){N.element!==null&&!N.collapsed&&N.element.stale&&(P?this.collapse(N.element.element):this.refreshAndRenderNode(N.element,!1).catch(b.onUnexpectedError))}setChildren(N,P,F,O){const B=[...P];if(N.children.length===0&&B.length===0)return[];const W=new Map,V=new Map;for(const j of N.children)W.set(j.element,j),this.identityProvider&&V.set(j.id,{node:j,collapsed:this.tree.hasElement(j)&&this.tree.isCollapsed(j)});const z=[],K=B.map(j=>{const x=!!this.dataSource.hasChildren(j);if(!this.identityProvider){const X=o({element:j,parent:N,hasChildren:x,defaultCollapseState:this.getDefaultCollapseState(j)});return x&&X.defaultCollapseState===S.ObjectTreeElementCollapseState.PreserveOrExpanded&&z.push(X),X}const re=this.identityProvider.getId(j).toString(),ie=V.get(re);if(ie){const X=ie.node;return W.delete(X.element),this.nodes.delete(X.element),this.nodes.set(j,X),X.element=j,X.hasChildren=x,F?ie.collapsed?(X.children.forEach(Y=>C(Y,le=>this.nodes.delete(le.element))),X.children.splice(0,X.children.length),X.stale=!0):z.push(X):x&&!ie.collapsed&&z.push(X),X}const J=o({element:j,parent:N,id:re,hasChildren:x,defaultCollapseState:this.getDefaultCollapseState(j)});return O&&O.viewState.focus&&O.viewState.focus.indexOf(re)>-1&&O.focus.push(J),O&&O.viewState.selection&&O.viewState.selection.indexOf(re)>-1&&O.selection.push(J),(O&&O.viewState.expanded&&O.viewState.expanded.indexOf(re)>-1||x&&J.defaultCollapseState===S.ObjectTreeElementCollapseState.PreserveOrExpanded)&&z.push(J),J});for(const j of W.values())C(j,x=>this.nodes.delete(x.element));for(const j of K)this.nodes.set(j.element,j);return N.children.splice(0,N.children.length,...K),N!==this.root&&this.autoExpandSingleChildren&&K.length===1&&z.length===0&&(K[0].forceExpanded=!0,z.push(K[0])),z}render(N,P,F){const O=N.children.map(W=>this.asTreeElement(W,P)),B=F&&{...F,diffIdentityProvider:F.diffIdentityProvider&&{getId(W){return F.diffIdentityProvider.getId(W.element)}}};this.tree.setChildren(N===this.root?null:N,O,B),N!==this.root&&this.tree.setCollapsible(N,N.hasChildren),this._onDidRender.fire()}asTreeElement(N,P){if(N.stale)return{element:N,collapsible:N.hasChildren,collapsed:!0};let F;return P&&P.viewState.expanded&&N.id&&P.viewState.expanded.indexOf(N.id)>-1?F=!1:N.forceExpanded?(F=!1,N.forceExpanded=!1):F=N.defaultCollapseState,{element:N,children:N.hasChildren?n.Iterable.map(N.children,O=>this.asTreeElement(O,P)):[],collapsible:N.hasChildren,collapsed:F}}processChildren(N){return this.sorter&&(N=[...N].sort(this.sorter.compare.bind(this.sorter))),N}dispose(){this.disposables.dispose(),this.tree.dispose()}}e.AsyncDataTree=_;class E{get element(){return{elements:this.node.element.elements.map(N=>N.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(N=>new E(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class I{constructor(N,P,F,O){this.renderer=N,this.nodeMapper=P,this.compressibleNodeMapperProvider=F,this.onDidChangeTwistieState=O,this.renderedNodes=new Map,this.disposables=[],this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,P,F,O){this.renderer.renderElement(this.nodeMapper.map(N),P,F.templateData,O)}renderCompressedElements(N,P,F,O){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(N),P,F.templateData,O)}renderTwistie(N,P){return N.slow?(P.classList.add(...v.ThemeIcon.asClassNameArray(w.Codicon.treeItemLoading)),!0):(P.classList.remove(...v.ThemeIcon.asClassNameArray(w.Codicon.treeItemLoading)),!1)}disposeElement(N,P,F,O){var B,W;(W=(B=this.renderer).disposeElement)===null||W===void 0||W.call(B,this.nodeMapper.map(N),P,F.templateData,O)}disposeCompressedElements(N,P,F,O){var B,W;(W=(B=this.renderer).disposeCompressedElements)===null||W===void 0||W.call(B,this.compressibleNodeMapperProvider().map(N),P,F.templateData,O)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,i.dispose)(this.disposables)}}function T(M){const N=M&&f(M);return N&&{...N,keyboardNavigationLabelProvider:N.keyboardNavigationLabelProvider&&{...N.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(P){return M.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(P.map(F=>F.element))}}}}class A extends _{constructor(N,P,F,O,B,W,V={}){super(N,P,F,B,W,V),this.compressionDelegate=O,this.compressibleNodeMapper=new S.WeakMapper(z=>new E(z)),this.filter=V.filter}createTree(N,P,F,O,B){const W=new k.ComposedTreeDelegate(F),V=O.map(K=>new I(K,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),z=T(B)||{};return new D.CompressibleObjectTree(N,P,W,V,z)}asTreeElement(N,P){return{incompressible:this.compressionDelegate.isIncompressible(N.element),...super.asTreeElement(N,P)}}updateOptions(N={}){this.tree.updateOptions(N)}render(N,P,F){if(!this.identityProvider)return super.render(N,P);const O=ie=>this.identityProvider.getId(ie).toString(),B=ie=>{const J=new Set;for(const X of ie){const Y=this.tree.getCompressedTreeNode(X===this.root?null:X);if(Y.element)for(const le of Y.element.elements)J.add(O(le.element))}return J},W=B(this.tree.getSelection()),V=B(this.tree.getFocus());super.render(N,P,F);const z=this.getSelection();let K=!1;const j=this.getFocus();let x=!1;const re=ie=>{const J=ie.element;if(J)for(let X=0;X{const F=this.filter.filter(P,1),O=R(F);if(O===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return O===1})),super.processChildren(N)}}e.CompressibleAsyncDataTree=A;function R(M){return typeof M=="boolean"?M?1:0:(0,y.isFilterResult)(M)?(0,y.getVisibleState)(M.visibility):(0,y.getVisibleState)(M)}}),define(ne[333],se([1,0,12,7,2,54,17,11]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.SimpleWorkerServer=e.SimpleWorkerClient=e.logOnceWebWorkerWarning=void 0;const w="$initialize";let v=!1;function b(h){S.isWeb&&(v||(v=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(h.message))}e.logOnceWebWorkerWarning=b;class a{constructor(u,f,C,_){this.vsWorker=u,this.req=f,this.method=C,this.args=_,this.type=0}}class n{constructor(u,f,C,_){this.vsWorker=u,this.seq=f,this.res=C,this.err=_,this.type=1}}class i{constructor(u,f,C,_){this.vsWorker=u,this.req=f,this.eventName=C,this.arg=_,this.type=2}}class t{constructor(u,f,C){this.vsWorker=u,this.req=f,this.event=C,this.type=3}}class o{constructor(u,f){this.vsWorker=u,this.req=f,this.type=4}}class g{constructor(u){this._workerId=-1,this._handler=u,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(u){this._workerId=u}sendMessage(u,f){const C=String(++this._lastSentReq);return new Promise((_,E)=>{this._pendingReplies[C]={resolve:_,reject:E},this._send(new a(this._workerId,C,u,f))})}listen(u,f){let C=null;const _=new k.Emitter({onWillAddFirstListener:()=>{C=String(++this._lastSentReq),this._pendingEmitters.set(C,_),this._send(new i(this._workerId,C,u,f))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(C),this._send(new o(this._workerId,C)),C=null}});return _.event}handleMessage(u){!u||!u.vsWorker||this._workerId!==-1&&u.vsWorker!==this._workerId||this._handleMessage(u)}_handleMessage(u){switch(u.type){case 1:return this._handleReplyMessage(u);case 0:return this._handleRequestMessage(u);case 2:return this._handleSubscribeEventMessage(u);case 3:return this._handleEventMessage(u);case 4:return this._handleUnsubscribeEventMessage(u)}}_handleReplyMessage(u){if(!this._pendingReplies[u.seq]){console.warn("Got reply to unknown seq");return}const f=this._pendingReplies[u.seq];if(delete this._pendingReplies[u.seq],u.err){let C=u.err;u.err.$isError&&(C=new Error,C.name=u.err.name,C.message=u.err.message,C.stack=u.err.stack),f.reject(C);return}f.resolve(u.res)}_handleRequestMessage(u){const f=u.req;this._handler.handleMessage(u.method,u.args).then(_=>{this._send(new n(this._workerId,f,_,void 0))},_=>{_.detail instanceof Error&&(_.detail=(0,L.transformErrorForSerialization)(_.detail)),this._send(new n(this._workerId,f,void 0,(0,L.transformErrorForSerialization)(_)))})}_handleSubscribeEventMessage(u){const f=u.req,C=this._handler.handleEvent(u.eventName,u.arg)(_=>{this._send(new t(this._workerId,f,_))});this._pendingEvents.set(f,C)}_handleEventMessage(u){if(!this._pendingEmitters.has(u.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(u.req).fire(u.event)}_handleUnsubscribeEventMessage(u){if(!this._pendingEvents.has(u.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(u.req).dispose(),this._pendingEvents.delete(u.req)}_send(u){const f=[];if(u.type===0)for(let C=0;C{this._protocol.handleMessage(M)},M=>{_?.(M)})),this._protocol=new g({sendMessage:(M,N)=>{this._worker.postMessage(M,N)},handleMessage:(M,N)=>{if(typeof C[M]!="function")return Promise.reject(new Error("Missing method "+M+" on main thread host."));try{return Promise.resolve(C[M].apply(C,N))}catch(P){return Promise.reject(P)}},handleEvent:(M,N)=>{if(d(M)){const P=C[M].call(C,N);if(typeof P!="function")throw new Error(`Missing dynamic event ${M} on main thread host.`);return P}if(c(M)){const P=C[M];if(typeof P!="function")throw new Error(`Missing event ${M} on main thread host.`);return P}throw new Error(`Malformed event name ${M}`)}}),this._protocol.setWorkerId(this._worker.getId());let E=null;const I=globalThis.require;typeof I<"u"&&typeof I.getConfig=="function"?E=I.getConfig():typeof globalThis.requirejs<"u"&&(E=globalThis.requirejs.s.contexts._.config);const T=(0,D.getAllMethodNames)(C);this._onModuleLoaded=this._protocol.sendMessage(w,[this._worker.getId(),JSON.parse(JSON.stringify(E)),f,T]);const A=(M,N)=>this._request(M,N),R=(M,N)=>this._protocol.listen(M,N);this._lazyProxy=new Promise((M,N)=>{_=N,this._onModuleLoaded.then(P=>{M(s(P,A,R))},P=>{N(P),this._onError("Worker failed to load "+f,P)})})}getProxyObject(){return this._lazyProxy}_request(u,f){return new Promise((C,_)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(u,f).then(C,_)},_)})}_onError(u,f){console.error(u),console.info(f)}}e.SimpleWorkerClient=m;function c(h){return h[0]==="o"&&h[1]==="n"&&p.isUpperAsciiLetter(h.charCodeAt(2))}function d(h){return/^onDynamic/.test(h)&&p.isUpperAsciiLetter(h.charCodeAt(9))}function s(h,u,f){const C=I=>function(){const T=Array.prototype.slice.call(arguments,0);return u(I,T)},_=I=>function(T){return f(I,T)},E={};for(const I of h){if(d(I)){E[I]=_(I);continue}if(c(I)){E[I]=f(I,void 0);continue}E[I]=C(I)}return E}class l{constructor(u,f){this._requestHandlerFactory=f,this._requestHandler=null,this._protocol=new g({sendMessage:(C,_)=>{u(C,_)},handleMessage:(C,_)=>this._handleMessage(C,_),handleEvent:(C,_)=>this._handleEvent(C,_)})}onmessage(u){this._protocol.handleMessage(u)}_handleMessage(u,f){if(u===w)return this.initialize(f[0],f[1],f[2],f[3]);if(!this._requestHandler||typeof this._requestHandler[u]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+u));try{return Promise.resolve(this._requestHandler[u].apply(this._requestHandler,f))}catch(C){return Promise.reject(C)}}_handleEvent(u,f){if(!this._requestHandler)throw new Error("Missing requestHandler");if(d(u)){const C=this._requestHandler[u].call(this._requestHandler,f);if(typeof C!="function")throw new Error(`Missing dynamic event ${u} on request handler.`);return C}if(c(u)){const C=this._requestHandler[u];if(typeof C!="function")throw new Error(`Missing event ${u} on request handler.`);return C}throw new Error(`Malformed event name ${u}`)}initialize(u,f,C,_){this._protocol.setWorkerId(u);const T=s(_,(A,R)=>this._protocol.sendMessage(A,R),(A,R)=>this._protocol.listen(A,R));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(T),Promise.resolve((0,D.getAllMethodNames)(this._requestHandler))):(f&&(typeof f.baseUrl<"u"&&delete f.baseUrl,typeof f.paths<"u"&&typeof f.paths.vs<"u"&&delete f.paths.vs,typeof f.trustedTypesPolicy<"u"&&delete f.trustedTypesPolicy,f.catchError=!0,globalThis.require.config(f)),new Promise((A,R)=>{(globalThis.require||ee)([C],N=>{if(this._requestHandler=N.create(T),!this._requestHandler){R(new Error("No RequestHandler!"));return}A((0,D.getAllMethodNames)(this._requestHandler))},R)}))}}e.SimpleWorkerServer=l;function r(h){return new l(h,null)}e.create=r}),define(ne[613],se([1,0,95,12,47,333,2]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultWorkerFactory=e.getWorkerBootstrapUrl=void 0;const p=(0,L.createTrustedTypesPolicy)("defaultWorkerFactory",{createScriptURL:i=>i});function w(i){const t=globalThis.MonacoEnvironment;if(t){if(typeof t.getWorker=="function")return t.getWorker("workerMain.js",i);if(typeof t.getWorkerUrl=="function"){const o=t.getWorkerUrl("workerMain.js",i);return new Worker(p?p.createScriptURL(o):o,{name:i})}}if(typeof ee=="function"){const o=ee.toUrl("vs/base/worker/workerMain.js"),g=v(o,i);return new Worker(p?p.createScriptURL(g):g,{name:i})}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function v(i,t){if(/^((http:)|(https:)|(file:))/.test(i)&&i.substring(0,globalThis.origin.length)!==globalThis.origin){const d="vs/base/worker/defaultWorkerFactory.js",s=ee.toUrl(d).slice(0,-d.length),l=`/*${t}*/globalThis.MonacoEnvironment={baseUrl: '${s}'};const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });importScripts(ttPolicy?.createScriptURL('${i}') ?? '${i}');/*${t}*/`,r=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(r)}const o=i.lastIndexOf("?"),g=i.lastIndexOf("#",o),m=o>0?new URLSearchParams(i.substring(o+1,~g?g:void 0)):new URLSearchParams;return y.COI.addSearchParam(m,!0,!0),m.toString()?`${i}?${m.toString()}#${t}`:`${i}#${t}`}e.getWorkerBootstrapUrl=v;function b(i){return typeof i.then=="function"}class a extends S.Disposable{constructor(t,o,g,m,c){super(),this.id=o,this.label=g;const d=w(g);b(d)?this.worker=d:this.worker=Promise.resolve(d),this.postMessage(t,[]),this.worker.then(s=>{s.onmessage=function(l){m(l.data)},s.onmessageerror=c,typeof s.addEventListener=="function"&&s.addEventListener("error",c)}),this._register((0,S.toDisposable)(()=>{var s;(s=this.worker)===null||s===void 0||s.then(l=>{l.onmessage=null,l.onmessageerror=null,l.removeEventListener("error",c),l.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(t,o){var g;(g=this.worker)===null||g===void 0||g.then(m=>{try{m.postMessage(t,o)}catch(c){(0,k.onUnexpectedError)(c),(0,k.onUnexpectedError)(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:c}))}})}}class n{constructor(t){this._label=t,this._webWorkerFailedBeforeError=!1}create(t,o,g){const m=++n.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new a(t,m,this._label||"anonymous"+m,o,c=>{(0,D.logOnceWebWorkerWarning)(c),this._webWorkerFailedBeforeError=c,g(c)})}}e.DefaultWorkerFactory=n,n.LAST_WORKER_ID=0}),define(ne[614],se([1,0,15,7,2,229,20]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageDatabase=e.Storage=e.StorageState=e.StorageHint=void 0;var p;(function(a){a[a.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",a[a.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(p||(e.StorageHint=p={}));var w;(function(a){a[a.None=0]="None",a[a.Initialized=1]="Initialized",a[a.Closed=2]="Closed"})(w||(e.StorageState=w={}));class v extends y.Disposable{constructor(n,i=Object.create(null)){super(),this.database=n,this.options=i,this._onDidChangeStorage=this._register(new k.PauseableEmitter),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=w.None,this.cache=new Map,this.flushDelayer=this._register(new L.ThrottledDelayer(v.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(n=>this.onDidChangeItemsExternal(n)))}onDidChangeItemsExternal(n){var i,t;this._onDidChangeStorage.pause();try{(i=n.changed)===null||i===void 0||i.forEach((o,g)=>this.acceptExternal(g,o)),(t=n.deleted)===null||t===void 0||t.forEach(o=>this.acceptExternal(o,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(n,i){if(this.state===w.Closed)return;let t=!1;(0,S.isUndefinedOrNull)(i)?t=this.cache.delete(n):this.cache.get(n)!==i&&(this.cache.set(n,i),t=!0),t&&this._onDidChangeStorage.fire({key:n,external:!0})}get(n,i){const t=this.cache.get(n);return(0,S.isUndefinedOrNull)(t)?i:t}getBoolean(n,i){const t=this.get(n);return(0,S.isUndefinedOrNull)(t)?i:t==="true"}getNumber(n,i){const t=this.get(n);return(0,S.isUndefinedOrNull)(t)?i:parseInt(t,10)}async set(n,i,t=!1){if(this.state===w.Closed)return;if((0,S.isUndefinedOrNull)(i))return this.delete(n,t);const o=(0,S.isObject)(i)||Array.isArray(i)?(0,D.stringify)(i):String(i);if(this.cache.get(n)!==o)return this.cache.set(n,o),this.pendingInserts.set(n,o),this.pendingDeletes.delete(n),this._onDidChangeStorage.fire({key:n,external:t}),this.doFlush()}async delete(n,i=!1){if(!(this.state===w.Closed||!this.cache.delete(n)))return this.pendingDeletes.has(n)||this.pendingDeletes.add(n),this.pendingInserts.delete(n),this._onDidChangeStorage.fire({key:n,external:i}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const n={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(n).finally(()=>{var i;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(i=this.whenFlushedCallbacks.pop())===null||i===void 0||i()})}async doFlush(n){return this.options.hint===p.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),n)}}e.Storage=v,v.DEFAULT_FLUSH_DELAY=100;class b{constructor(){this.onDidChangeItemsExternal=k.Event.None,this.items=new Map}async updateItems(n){var i,t;(i=n.insert)===null||i===void 0||i.forEach((o,g)=>this.items.set(g,o)),(t=n.delete)===null||t===void 0||t.forEach(o=>this.items.delete(o))}}e.InMemoryStorageDatabase=b}),define(ne[334],se([1,0,2,7,6]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ElementSizeObserver=void 0;class D extends L.Disposable{constructor(p,w){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._referenceDomElement=p,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,w)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let p=null;const w=()=>{p?this.observe({width:p.width,height:p.height}):this.observe()};let v=!1,b=!1;const a=()=>{if(v&&!b)try{v=!1,b=!0,w()}finally{(0,y.scheduleAtNextAnimationFrame)((0,y.getWindow)(this._referenceDomElement),()=>{b=!1,a()})}};this._resizeObserver=new ResizeObserver(n=>{n&&n[0]&&n[0].contentRect?p={width:n[0].contentRect.width,height:n[0].contentRect.height}:p=null,v=!0,a()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(p){this.measureReferenceDomElement(!0,p)}measureReferenceDomElement(p,w){let v=0,b=0;w?(v=w.width,b=w.height):this._referenceDomElement&&(v=this._referenceDomElement.clientWidth,b=this._referenceDomElement.clientHeight),v=Math.max(5,v),b=Math.max(5,b),(this._width!==v||this._height!==b)&&(this._width=v,this._height=b,p&&this._onDidChange.fire())}}e.ElementSizeObserver=D}),define(ne[615],se([1,0,6,41,55]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContentWidgets=void 0;class D extends y.ViewPart{constructor(n,i){super(n),this._viewDomNode=i,this._widgets={},this.domNode=(0,k.createFastDomNode)(document.createElement("div")),y.PartFingerprints.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=(0,k.createFastDomNode)(document.createElement("div")),y.PartFingerprints.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(n){const i=Object.keys(this._widgets);for(const t of i)this._widgets[t].onConfigurationChanged(n);return!0}onDecorationsChanged(n){return!0}onFlushed(n){return!0}onLineMappingChanged(n){return this._updateAnchorsViewPositions(),!0}onLinesChanged(n){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(n){return this._updateAnchorsViewPositions(),!0}onLinesInserted(n){return this._updateAnchorsViewPositions(),!0}onScrollChanged(n){return!0}onZonesChanged(n){return!0}_updateAnchorsViewPositions(){const n=Object.keys(this._widgets);for(const i of n)this._widgets[i].updateAnchorViewPosition()}addWidget(n){const i=new S(this._context,this._viewDomNode,n);this._widgets[i.id]=i,i.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(i.domNode):this.domNode.appendChild(i.domNode),this.setShouldRender()}setWidgetPosition(n,i,t,o,g){this._widgets[n.getId()].setPosition(i,t,o,g),this.setShouldRender()}removeWidget(n){const i=n.getId();if(this._widgets.hasOwnProperty(i)){const t=this._widgets[i];delete this._widgets[i];const o=t.domNode.domNode;o.parentNode.removeChild(o),o.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(n){return this._widgets.hasOwnProperty(n)?this._widgets[n].suppressMouseDown:!1}onBeforeRender(n){const i=Object.keys(this._widgets);for(const t of i)this._widgets[t].onBeforeRender(n)}prepareRender(n){const i=Object.keys(this._widgets);for(const t of i)this._widgets[t].prepareRender(n)}render(n){const i=Object.keys(this._widgets);for(const t of i)this._widgets[t].render(n)}}e.ViewContentWidgets=D;class S{constructor(n,i,t){this._primaryAnchor=new p(null,null),this._secondaryAnchor=new p(null,null),this._context=n,this._viewDomNode=i,this._actual=t,this.domNode=(0,k.createFastDomNode)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const o=this._context.configuration.options,g=o.get(144);this._fixedOverflowWidgets=o.get(42),this._contentWidth=g.contentWidth,this._contentLeft=g.contentLeft,this._lineHeight=o.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(n){const i=this._context.configuration.options;if(this._lineHeight=i.get(67),n.hasChanged(144)){const t=i.get(144);this._contentLeft=t.contentLeft,this._contentWidth=t.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(n,i,t){this._affinity=n,this._primaryAnchor=o(i,this._context.viewModel,this._affinity),this._secondaryAnchor=o(t,this._context.viewModel,this._affinity);function o(g,m,c){if(!g)return new p(null,null);const d=m.model.validatePosition(g);if(m.coordinatesConverter.modelPositionIsVisible(d)){const s=m.coordinatesConverter.convertModelPositionToViewPosition(d,c??void 0);return new p(g,s)}return new p(g,null)}}_getMaxWidth(){const n=this.domNode.domNode.ownerDocument,i=n.defaultView;return this.allowEditorOverflow?i?.innerWidth||n.documentElement.offsetWidth||n.body.offsetWidth:this._contentWidth}setPosition(n,i,t,o){this._setPosition(o,n,i),this._preference=t,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(n,i,t,o){const g=n.top,m=g,c=n.top+n.height,d=o.viewportHeight-c,s=g-t,l=m>=t,r=c,h=d>=t;let u=n.left;return u+i>o.scrollLeft+o.viewportWidth&&(u=o.scrollLeft+o.viewportWidth-i),us){const u=h-(s-o);h-=u,t-=u}if(h=E,A=u+t<=f.height-I;return this._fixedOverflowWidgets?{fitsAbove:T,aboveTop:Math.max(h,E),fitsBelow:A,belowTop:u,left:_}:{fitsAbove:T,aboveTop:c,fitsBelow:A,belowTop:d,left:C}}_prepareRenderWidgetAtExactPositionOverflowing(n){return new w(n.top,n.left+this._contentLeft)}_getAnchorsCoordinates(n){var i,t;const o=c(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),g=((i=this._secondaryAnchor.viewPosition)===null||i===void 0?void 0:i.lineNumber)===((t=this._primaryAnchor.viewPosition)===null||t===void 0?void 0:t.lineNumber)?this._secondaryAnchor.viewPosition:null,m=c(g,this._affinity,this._lineHeight);return{primary:o,secondary:m};function c(d,s,l){if(!d)return null;const r=n.visibleRangeForPosition(d);if(!r)return null;const h=d.column===1&&s===3?0:r.left,u=n.getVerticalOffsetForLineNumber(d.lineNumber)-n.scrollTop;return new v(u,h,l)}}_reduceAnchorCoordinates(n,i,t){if(!i)return n;const o=this._context.configuration.options.get(50);let g=i.left;return gn.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(n){this._renderData=this._prepareRenderWidget(n)}render(n){if(!this._renderData){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&b(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+n.scrollTop-n.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&b(this._actual.afterRender,this._actual,this._renderData.position)}}class p{constructor(n,i){this.modelPosition=n,this.viewPosition=i}}class w{constructor(n,i){this.top=n,this.left=i,this._coordinateBrand=void 0}}class v{constructor(n,i,t){this.top=n,this.left=i,this.height=t,this._anchorCoordinateBrand=void 0}}function b(a,n,...i){try{return a.call(n,...i)}catch{return null}}}),define(ne[616],se([1,0,41,55,6,448]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewOverlayWidgets=void 0;class D extends k.ViewPart{constructor(p,w){super(p),this._viewDomNode=w;const b=this._context.configuration.options.get(144);this._widgets={},this._verticalScrollbarWidth=b.verticalScrollbarWidth,this._minimapWidth=b.minimap.minimapWidth,this._horizontalScrollbarHeight=b.horizontalScrollbarHeight,this._editorHeight=b.height,this._editorWidth=b.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=(0,L.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=(0,L.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(p){const v=this._context.configuration.options.get(144);return this._verticalScrollbarWidth=v.verticalScrollbarWidth,this._minimapWidth=v.minimap.minimapWidth,this._horizontalScrollbarHeight=v.horizontalScrollbarHeight,this._editorHeight=v.height,this._editorWidth=v.width,!0}addWidget(p){const w=(0,L.createFastDomNode)(p.getDomNode());this._widgets[p.getId()]={widget:p,preference:null,domNode:w},w.setPosition("absolute"),w.setAttribute("widgetId",p.getId()),p.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(w):this._domNode.appendChild(w),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(p,w){const v=this._widgets[p.getId()];return v.preference===w?(this._updateMaxMinWidth(),!1):(v.preference=w,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(p){const w=p.getId();if(this._widgets.hasOwnProperty(w)){const b=this._widgets[w].domNode.domNode;delete this._widgets[w],b.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var p,w;let v=0;const b=Object.keys(this._widgets);for(let a=0,n=b.length;a{this._instantiateSome(1)})),this._register((0,L.runWhenWindowIdle)((0,L.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register((0,L.runWhenWindowIdle)((0,L.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const p={};for(const[w,v]of this._instances)typeof v.saveViewState=="function"&&(p[w]=v.saveViewState());return p}restoreViewState(p){for(const[w,v]of this._instances)typeof v.restoreViewState=="function"&&v.restoreViewState(p[w])}get(p){return this._instantiateById(p),this._instances.get(p)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var p;return(0,L.runWhenWindowIdle)((0,L.getWindow)((p=this._editor)===null||p===void 0?void 0:p.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(p){if(this._finishedInstantiation[p])return;this._finishedInstantiation[p]=!0;const w=this._findPendingContributionsByInstantiation(p);for(const v of w)this._instantiateById(v.id)}_findPendingContributionsByInstantiation(p){const w=[];for(const[,v]of this._pending)v.instantiation===p&&w.push(v);return w}_instantiateById(p){const w=this._pending.get(p);if(w){if(this._pending.delete(p),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const v=this._instantiationService.createInstance(w.ctor,this._editor);this._instances.set(w.id,v),typeof v.restoreViewState=="function"&&w.instantiation!==0&&console.warn(`Editor contribution '${w.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(v){(0,k.onUnexpectedError)(v)}}}}e.CodeEditorContributions=D}),define(ne[618],se([1,0,160,2,32]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorSash=void 0;class D extends k.Disposable{constructor(p,w,v,b){super(),this._options=p,this._domNode=w,this._dimensions=v,this._sashes=b,this._sashRatio=(0,y.observableValue)(this,void 0),this.sashLeft=(0,y.derived)(this,a=>{var n;const i=(n=this._sashRatio.read(a))!==null&&n!==void 0?n:this._options.splitViewDefaultRatio.read(a);return this._computeSashLeft(i,a)}),this._sash=this._register(new L.Sash(this._domNode,{getVerticalSashTop:a=>0,getVerticalSashLeft:a=>this.sashLeft.get(),getVerticalSashHeight:a=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(a=>{const n=this._dimensions.width.get(),i=this._computeSashLeft((this._startSashPosition+(a.currentX-a.startX))/n,void 0);this._sashRatio.set(i/n,void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._sashRatio.set(void 0,void 0))),this._register((0,y.autorun)(a=>{const n=this._sashes.read(a);n&&(this._sash.orthogonalEndSash=n.bottom)})),this._register((0,y.autorun)(a=>{const n=this._options.enableSplitViewResizing.read(a);this._sash.state=n?3:0,this.sashLeft.read(a),this._dimensions.height.read(a),this._sash.layout()}))}_computeSashLeft(p,w){const v=this._dimensions.width.read(w),b=Math.floor(this._options.splitViewDefaultRatio.read(w)*v),a=this._options.enableSplitViewResizing.read(w)?Math.floor(p*v):b,n=100;return v<=n*2?b:av-n?v-n:a}}e.DiffEditorSash=D}),define(ne[87],se([1,0,62,19,595,2,32,334,9,5,92]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.filterWithPrevious=e.bindContextKey=e.translatePosition=e.DisposableCancellationTokenSource=e.applyViewZones=e.observeHotReloadableExports=e.readHotReloadableExport=e.applyStyle=e.ManagedOverlayWidget=e.PlaceholderViewZone=e.ViewZoneOverlayWidget=e.animatedObservable=e.ObservableElementSizeObserver=e.appendRemoveOnDispose=e.applyObservableDecorations=e.joinCombine=void 0;function a(T,A,R,M){if(T.length===0)return A;if(A.length===0)return T;const N=[];let P=0,F=0;for(;PV?(N.push(B),F++):(N.push(M(O,B)),P++,F++)}for(;P`Apply decorations from ${A.debugName}`},N=>{const P=A.read(N);M.set(P)})),R.add({dispose:()=>{M.clear()}}),R}e.applyObservableDecorations=n;function i(T,A){return T.appendChild(A),(0,D.toDisposable)(()=>{T.removeChild(A)})}e.appendRemoveOnDispose=i;class t extends D.Disposable{get width(){return this._width}get height(){return this._height}constructor(A,R){super(),this.elementSizeObserver=this._register(new p.ElementSizeObserver(A,R)),this._width=(0,S.observableValue)(this,this.elementSizeObserver.getWidth()),this._height=(0,S.observableValue)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(M=>(0,S.transaction)(N=>{this._width.set(this.elementSizeObserver.getWidth(),N),this._height.set(this.elementSizeObserver.getHeight(),N)})))}observe(A){this.elementSizeObserver.observe(A)}setAutomaticLayout(A){A?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}e.ObservableElementSizeObserver=t;function o(T,A,R){let M=A.get(),N=M,P=M;const F=(0,S.observableValue)("animatedValue",M);let O=-1;const B=300;let W;R.add((0,S.autorunHandleChanges)({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(z,K)=>(z.didChange(A)&&(K.animate=K.animate||z.change),!0)},(z,K)=>{W!==void 0&&(T.cancelAnimationFrame(W),W=void 0),N=P,M=A.read(z),O=Date.now()-(K.animate?0:B),V()}));function V(){const z=Date.now()-O;P=Math.floor(g(z,N,M-N,B)),z{this._actualTop.set(M,void 0)},this.onComputedHeight=M=>{this._actualHeight.set(M,void 0)}}}e.PlaceholderViewZone=c;class d{constructor(A,R){this._editor=A,this._domElement=R,this._overlayWidgetId=`managedOverlayWidget-${d._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}e.ManagedOverlayWidget=d,d._counter=0;function s(T,A){return(0,S.autorun)(R=>{for(let[M,N]of Object.entries(A))N&&typeof N=="object"&&"read"in N&&(N=N.read(R)),typeof N=="number"&&(N=`${N}px`),M=M.replace(/[A-Z]/g,P=>"-"+P.toLowerCase()),T.style[M]=N})}e.applyStyle=s;function l(T,A){return r([T],A),T}e.readHotReloadableExport=l;function r(T,A){(0,y.isHotReloadEnabled)()&&(0,S.observableSignalFromEvent)("reload",M=>(0,y.registerHotReloadHandler)(({oldExports:N})=>{if([...Object.values(N)].some(P=>T.includes(P)))return P=>(M(void 0),!0)})).read(A)}e.observeHotReloadableExports=r;function h(T,A,R,M){const N=new D.DisposableStore,P=[];return N.add((0,S.autorunWithStore)((F,O)=>{const B=A.read(F),W=new Map,V=new Map;R&&R(!0),T.changeViewZones(z=>{for(const K of P)z.removeZone(K),M?.delete(K);P.length=0;for(const K of B){const j=z.addZone(K);K.setZoneId&&K.setZoneId(j),P.push(j),M?.add(j),W.set(K,j)}}),R&&R(!1),O.add((0,S.autorunHandleChanges)({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(z,K){const j=V.get(z.changedObservable);return j!==void 0&&K.zoneIds.push(j),!0}},(z,K)=>{for(const j of B)j.onChange&&(V.set(j.onChange,W.get(j)),j.onChange.read(z));R&&R(!0),T.changeViewZones(j=>{for(const x of K.zoneIds)j.layoutZone(x)}),R&&R(!1)}))})),N.add({dispose(){R&&R(!0),T.changeViewZones(F=>{for(const O of P)F.removeZone(O)}),M?.clear(),R&&R(!1)}}),N}e.applyViewZones=h;class u extends k.CancellationTokenSource{dispose(){super.dispose(!0)}}e.DisposableCancellationTokenSource=u;function f(T,A){const R=(0,L.findLast)(A,N=>N.original.startLineNumber<=T.lineNumber);if(!R)return v.Range.fromPositions(T);if(R.original.endLineNumberExclusive<=T.lineNumber){const N=T.lineNumber-R.original.endLineNumberExclusive+R.modified.endLineNumberExclusive;return v.Range.fromPositions(new w.Position(N,T.column))}if(!R.innerChanges)return v.Range.fromPositions(new w.Position(R.modified.startLineNumber,1));const M=(0,L.findLast)(R.innerChanges,N=>N.originalRange.getStartPosition().isBeforeOrEqual(T));if(!M){const N=T.lineNumber-R.original.startLineNumber+R.modified.startLineNumber;return v.Range.fromPositions(new w.Position(N,T.column))}if(M.originalRange.containsPosition(T))return M.modifiedRange;{const N=C(M.originalRange.getEndPosition(),T);return v.Range.fromPositions(_(M.modifiedRange.getEndPosition(),N))}}e.translatePosition=f;function C(T,A){return T.lineNumber===A.lineNumber?new b.LengthObj(0,A.column-T.column):new b.LengthObj(A.lineNumber-T.lineNumber,A.column-1)}function _(T,A){return A.lineCount===0?new w.Position(T.lineNumber,T.column+A.columnCount):new w.Position(T.lineNumber+A.lineCount,A.columnCount+1)}function E(T,A,R){const M=T.bindTo(A);return(0,S.autorunOpts)({debugName:()=>`Set Context Key "${T.key}"`},N=>{M.set(R(N))})}e.bindContextKey=E;function I(T,A){let R;return T.filter(M=>{const N=A(M,R);return R=M,N})}e.filterWithPrevious=I}),define(ne[106],se([1,0,11,17,149]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringBuilder=e.decodeUTF16LE=e.getPlatformTextDecoder=void 0;let D;function S(){return D||(D=new TextDecoder("UTF-16LE")),D}let p;function w(){return p||(p=new TextDecoder("UTF-16BE")),p}let v;function b(){return v||(v=k.isLittleEndian()?S():w()),v}e.getPlatformTextDecoder=b;function a(t,o,g){const m=new Uint16Array(t.buffer,o,g);return g>0&&(m[0]===65279||m[0]===65534)?n(t,o,g):S().decode(m)}e.decodeUTF16LE=a;function n(t,o,g){const m=[];let c=0;for(let d=0;d=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=o;return}for(let m=0;mg});class b{static create(m){return new b(new WeakRef(m))}constructor(m){this.targetWindow=m}createLineBreaksComputer(m,c,d,s,l){const r=[],h=[];return{addRequest:(u,f,C)=>{r.push(u),h.push(f)},finalize:()=>a((0,y.assertIsDefined)(this.targetWindow.deref()),r,m,c,d,s,l,h)}}}e.DOMLineBreaksComputerFactory=b;function a(g,m,c,d,s,l,r,h){var u;function f(K){const j=h[K];if(j){const x=w.LineInjectedText.applyInjectedText(m[K],j),re=j.map(J=>J.options),ie=j.map(J=>J.column-1);return new p.ModelLineProjectionData(ie,re,[x.length],[],0)}else return null}if(s===-1){const K=[];for(let j=0,x=m.length;jC?(x=0,re=0):ie=C-Y}const J=j.substr(x),X=n(J,re,d,ie,A,I);R[K]=x,M[K]=re,N[K]=J,P[K]=X[0],F[K]=X[1]}const O=A.build(),B=(u=v?.createHTML(O))!==null&&u!==void 0?u:O;T.innerHTML=B,T.style.position="absolute",T.style.top="10000",r==="keepAll"?(T.style.wordBreak="keep-all",T.style.overflowWrap="anywhere"):(T.style.wordBreak="inherit",T.style.overflowWrap="break-word"),g.document.body.appendChild(T);const W=document.createRange(),V=Array.prototype.slice.call(T.children,0),z=[];for(let K=0;Kge.options),le=de.map(ge=>ge.column-1)):(Y=null,le=null),z[K]=new p.ModelLineProjectionData(le,Y,x,X,ie)}return g.document.body.removeChild(T),z}function n(g,m,c,d,s,l){if(l!==0){const E=String(l);s.appendString('
    ');const r=g.length;let h=m,u=0;const f=[],C=[];let _=0");for(let E=0;E"),f[E]=u,C[E]=h;const I=_;_=E+1"),f[g.length]=u,C[g.length]=h,s.appendString("
    "),[f,C]}function i(g,m,c,d){if(c.length<=1)return null;const s=Array.prototype.slice.call(m.children,0),l=[];try{t(g,s,d,0,null,c.length-1,null,l)}catch(r){return console.log(r),null}return l.length===0?null:(l.push(c.length),l)}function t(g,m,c,d,s,l,r,h){if(d===l||(s=s||o(g,m,c[d],c[d+1]),r=r||o(g,m,c[l],c[l+1]),Math.abs(s[0].top-r[0].top)<=.1))return;if(d+1===l){h.push(l);return}const u=d+(l-d)/2|0,f=o(g,m,c[u],c[u+1]);t(g,m,c,d,s,u,f,h),t(g,m,c,u,f,l,r,h)}function o(g,m,c,d){return g.setStart(m[c/16384|0].firstChild,c%16384),g.setEnd(m[d/16384|0].firstChild,d%16384),g.getClientRects()}}),define(ne[239],se([1,0,41,95,12,106]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleLinesCollection=e.RenderedLinesCollection=void 0;class S{constructor(b){this._createLine=b,this._set(1,[])}flush(){this._set(1,[])}_set(b,a){this._lines=a,this._rendLineNumberStart=b}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(b){const a=b-this._rendLineNumberStart;if(a<0||a>=this._lines.length)throw new y.BugIndicatingError("Illegal value for lineNumber");return this._lines[a]}onLinesDeleted(b,a){if(this.getCount()===0)return null;const n=this.getStartLineNumber(),i=this.getEndLineNumber();if(ai)return null;let t=0,o=0;for(let m=n;m<=i;m++){const c=m-this._rendLineNumberStart;b<=m&&m<=a&&(o===0?(t=c,o=1):o++)}if(b=i&&g<=t&&(this._lines[g-this._rendLineNumberStart].onContentChanged(),o=!0);return o}onLinesInserted(b,a){if(this.getCount()===0)return null;const n=a-b+1,i=this.getStartLineNumber(),t=this.getEndLineNumber();if(b<=i)return this._rendLineNumberStart+=n,null;if(b>t)return null;if(n+b>t)return this._lines.splice(b-this._rendLineNumberStart,t-b+1);const o=[];for(let s=0;sn)continue;const m=Math.max(a,g.fromLineNumber),c=Math.min(n,g.toLineNumber);for(let d=m;d<=c;d++){const s=d-this._rendLineNumberStart;this._lines[s].onTokensChanged(),i=!0}}return i}}e.RenderedLinesCollection=S;class p{constructor(b){this._host=b,this.domNode=this._createDomNode(),this._linesCollection=new S(()=>this._host.createVisibleLine())}_createDomNode(){const b=(0,L.createFastDomNode)(document.createElement("div"));return b.setClassName("view-layer"),b.setPosition("absolute"),b.domNode.setAttribute("role","presentation"),b.domNode.setAttribute("aria-hidden","true"),b}onConfigurationChanged(b){return!!b.hasChanged(144)}onFlushed(b){return this._linesCollection.flush(),!0}onLinesChanged(b){return this._linesCollection.onLinesChanged(b.fromLineNumber,b.count)}onLinesDeleted(b){const a=this._linesCollection.onLinesDeleted(b.fromLineNumber,b.toLineNumber);if(a)for(let n=0,i=a.length;na){const o=a,g=Math.min(n,t.rendLineNumberStart-1);o<=g&&(this._insertLinesBefore(t,o,g,i,a),t.linesLength+=g-o+1)}else if(t.rendLineNumberStart0&&(this._removeLinesBefore(t,o),t.linesLength-=o)}if(t.rendLineNumberStart=a,t.rendLineNumberStart+t.linesLength-1n){const o=Math.max(0,n-t.rendLineNumberStart+1),m=t.linesLength-1-o+1;m>0&&(this._removeLinesAfter(t,m),t.linesLength-=m)}return this._finishRendering(t,!1,i),t}_renderUntouchedLines(b,a,n,i,t){const o=b.rendLineNumberStart,g=b.lines;for(let m=a;m<=n;m++){const c=o+m;g[m].layoutLine(c,i[c-t])}}_insertLinesBefore(b,a,n,i,t){const o=[];let g=0;for(let m=a;m<=n;m++)o[g++]=this.host.createVisibleLine();b.lines=o.concat(b.lines)}_removeLinesBefore(b,a){for(let n=0;n=0;g--){const m=b.lines[g];i[g]&&(m.setDomNode(o),o=o.previousSibling)}}_finishRenderingInvalidLines(b,a,n){const i=document.createElement("div");w._ttPolicy&&(a=w._ttPolicy.createHTML(a)),i.innerHTML=a;for(let t=0;tv}),w._sb=new D.StringBuilder(1e5)}),define(ne[620],se([1,0,41,74,239,55]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginViewOverlays=e.ContentViewOverlays=e.ViewOverlayLine=e.ViewOverlays=void 0;class S extends D.ViewPart{constructor(a){super(a),this._visibleLines=new y.VisibleLinesCollection(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);(0,k.applyFontInfo)(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let a=0,n=this._dynamicOverlays.length;ai.shouldRender());for(let i=0,t=n.length;i'),t.appendString(o),t.appendString(""),!0)}layoutLine(a,n){this._domNode&&(this._domNode.setTop(n),this._domNode.setHeight(this._lineHeight))}}e.ViewOverlayLine=p;class w extends S{constructor(a){super(a);const i=this._context.configuration.options.get(144);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(a){const i=this._context.configuration.options.get(144);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(a)||!0}onScrollChanged(a){return super.onScrollChanged(a)||a.scrollWidthChanged}_viewOverlaysRender(a){super._viewOverlaysRender(a),this.domNode.setWidth(Math.max(a.scrollWidth,this._contentWidth))}}e.ContentViewOverlays=w;class v extends S{constructor(a){super(a);const n=this._context.configuration.options,i=n.get(144);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),(0,k.applyFontInfo)(this.domNode,n.get(50))}onConfigurationChanged(a){const n=this._context.configuration.options;(0,k.applyFontInfo)(this.domNode,n.get(50));const i=n.get(144);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(a)||!0}onScrollChanged(a){return super.onScrollChanged(a)||a.scrollHeightChanged}_viewOverlaysRender(a){super._viewOverlaysRender(a);const n=Math.min(a.scrollHeight,1e6);this.domNode.setHeight(n),this.domNode.setWidth(this._contentLeft)}}e.MarginViewOverlays=v}),define(ne[335],se([1,0,149,106]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compressConsecutiveTextChanges=e.TextChange=void 0;function y(w){return w.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class D{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(v,b,a,n){this.oldPosition=v,this.oldText=b,this.newPosition=a,this.newText=n}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${y(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${y(this.oldText)}")`:`(replace@${this.oldPosition} "${y(this.oldText)}" with "${y(this.newText)}")`}static _writeStringSize(v){return 4+2*v.length}static _writeString(v,b,a){const n=b.length;L.writeUInt32BE(v,n,a),a+=4;for(let i=0;ia&&(a=i)}return a}else{if(typeof D=="string")return w?D==="*"?5:D===p?10:0:0;if(D){const{language:a,pattern:n,scheme:i,hasAccessToAllModels:t,notebookType:o}=D;if(!w&&!t)return 0;o&&v&&(S=v);let g=0;if(i)if(i===S.scheme)g=10;else if(i==="*")g=5;else return 0;if(a)if(a===p)g=10;else if(a==="*")g=Math.max(g,5);else return 0;if(o)if(o===b)g=10;else if(o==="*"&&b!==void 0)g=Math.max(g,5);else return 0;if(n){let m;if(typeof n=="string"?m=n:m={...n,base:(0,k.normalize)(n.base)},m===S.fsPath||(0,L.match)(m,S.fsPath))g=10;else return 0}return g}else return 0}}e.score=y}),define(ne[621],se([1,0,7,2,40,336]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureRegistry=void 0;function S(b){return typeof b=="string"?!1:Array.isArray(b)?b.every(S):!!b.exclusive}class p{constructor(a,n,i,t){this.uri=a,this.languageId=n,this.notebookUri=i,this.notebookType=t}equals(a){var n,i;return this.notebookType===a.notebookType&&this.languageId===a.languageId&&this.uri.toString()===a.uri.toString()&&((n=this.notebookUri)===null||n===void 0?void 0:n.toString())===((i=a.notebookUri)===null||i===void 0?void 0:i.toString())}}class w{constructor(a){this._notebookInfoResolver=a,this._clock=0,this._entries=[],this._onDidChange=new L.Emitter,this.onDidChange=this._onDidChange.event}register(a,n){let i={selector:a,provider:n,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,k.toDisposable)(()=>{if(i){const t=this._entries.indexOf(i);t>=0&&(this._entries.splice(t,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(a){return this.all(a).length>0}all(a){if(!a)return[];this._updateScores(a);const n=[];for(const i of this._entries)i._score>0&&n.push(i.provider);return n}ordered(a){const n=[];return this._orderedForEach(a,i=>n.push(i.provider)),n}orderedGroups(a){const n=[];let i,t;return this._orderedForEach(a,o=>{i&&t===o._score?i.push(o.provider):(t=o._score,i=[o.provider],n.push(i))}),n}_orderedForEach(a,n){this._updateScores(a);for(const i of this._entries)i._score>0&&n(i)}_updateScores(a){var n,i;const t=(n=this._notebookInfoResolver)===null||n===void 0?void 0:n.call(this,a.uri),o=t?new p(a.uri,a.getLanguageId(),t.uri,t.type):new p(a.uri,a.getLanguageId(),void 0,void 0);if(!(!((i=this._lastCandidate)===null||i===void 0)&&i.equals(o))){this._lastCandidate=o;for(const g of this._entries)if(g._score=(0,D.score)(g.selector,o.uri,o.languageId,(0,y.shouldSynchronizeModel)(a),o.notebookUri,o.notebookType),S(g.selector)&&g._score>0){for(const m of this._entries)m._score=0;g._score=1e3;break}this._entries.sort(w._compareByScoreAndTime)}}static _compareByScoreAndTime(a,n){return a._scoren._score?-1:v(a.selector)&&!v(n.selector)?1:!v(a.selector)&&v(n.selector)?-1:a._timen._time?-1:0}}e.LanguageFeatureRegistry=w;function v(b){return typeof b=="string"?!1:Array.isArray(b)?b.some(v):!!b.isBuiltin}}),define(ne[240],se([1,0,11,106,5]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketsUtils=e.RichEditBrackets=e.RichEditBracket=void 0;class D{constructor(s,l,r,h,u,f){this._richEditBracketBrand=void 0,this.languageId=s,this.index=l,this.open=r,this.close=h,this.forwardRegex=u,this.reversedRegex=f,this._openSet=D._toSet(this.open),this._closeSet=D._toSet(this.close)}isOpen(s){return this._openSet.has(s)}isClose(s){return this._closeSet.has(s)}static _toSet(s){const l=new Set;for(const r of s)l.add(r);return l}}e.RichEditBracket=D;function S(d){const s=d.length;d=d.map(f=>[f[0].toLowerCase(),f[1].toLowerCase()]);const l=[];for(let f=0;f{const[_,E]=f,[I,T]=C;return _===I||_===T||E===I||E===T},h=(f,C)=>{const _=Math.min(f,C),E=Math.max(f,C);for(let I=0;I0&&u.push({open:C,close:_})}return u}class p{constructor(s,l){this._richEditBracketsBrand=void 0;const r=S(l);this.brackets=r.map((h,u)=>new D(s,u,h.open,h.close,a(h.open,h.close,r,u),n(h.open,h.close,r,u))),this.forwardRegex=i(this.brackets),this.reversedRegex=t(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const h of this.brackets){for(const u of h.open)this.textIsBracket[u]=h,this.textIsOpenBracket[u]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,u.length);for(const u of h.close)this.textIsBracket[u]=h,this.textIsOpenBracket[u]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,u.length)}}}e.RichEditBrackets=p;function w(d,s,l,r){for(let h=0,u=s.length;h=0&&r.push(C);for(const C of f.close)C.indexOf(d)>=0&&r.push(C)}}function v(d,s){return d.length-s.length}function b(d){if(d.length<=1)return d;const s=[],l=new Set;for(const r of d)l.has(r)||(s.push(r),l.add(r));return s}function a(d,s,l,r){let h=[];h=h.concat(d),h=h.concat(s);for(let u=0,f=h.length;u=0;f--)h[u++]=r.charCodeAt(f);return k.getPlatformTextDecoder().decode(h)}let s=null,l=null;return function(h){return s!==h&&(s=h,l=d(s)),l}}();class c{static _findPrevBracketInText(s,l,r,h){const u=r.match(s);if(!u)return null;const f=r.length-(u.index||0),C=u[0].length,_=h+f;return new y.Range(l,_-C+1,l,_+1)}static findPrevBracketInRange(s,l,r,h,u){const C=m(r).substring(r.length-u,r.length-h);return this._findPrevBracketInText(s,l,C,h)}static findNextBracketInText(s,l,r,h){const u=r.match(s);if(!u)return null;const f=u.index||0,C=u[0].length;if(C===0)return null;const _=h+f;return new y.Range(l,_+1,l,_+1+C)}static findNextBracketInRange(s,l,r,h,u){const f=r.substring(h,u);return this.findNextBracketInText(s,l,f,h)}}e.BracketsUtils=c}),define(ne[622],se([1,0,13,137,240]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketElectricCharacterSupport=void 0;class D{constructor(p){this._richEditBrackets=p}getElectricCharacters(){const p=[];if(this._richEditBrackets)for(const w of this._richEditBrackets.brackets)for(const v of w.close){const b=v.charAt(v.length-1);p.push(b)}return(0,L.distinct)(p)}onElectricCharacter(p,w,v){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const b=w.findTokenIndexAtOffset(v-1);if((0,k.ignoreBracketsInToken)(w.getStandardTokenType(b)))return null;const a=this._richEditBrackets.reversedRegex,n=w.getLineContent().substring(0,v-1)+p,i=y.BracketsUtils.findPrevBracketInRange(a,1,n,0,n.length);if(!i)return null;const t=n.substring(i.startColumn-1,i.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[t])return null;const g=w.getActualLineContentBefore(i.startColumn-1);return/^\s*$/.test(g)?{matchOpenBracket:t}:null}}e.BracketElectricCharacterSupport=D}),define(ne[623],se([1,0,13,7,2,5,137,240,538]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTextModelPart=void 0;class v extends y.Disposable{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(o,g){super(),this.textModel=o,this.languageConfigurationService=g,this.bracketPairsTree=this._register(new y.MutableDisposable),this.onDidChangeEmitter=new k.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(m=>{var c;(!m.languageId||!((c=this.bracketPairsTree.value)===null||c===void 0)&&c.object.didLanguageChange(m.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}handleDidChangeOptions(o){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(o){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(o){var g;(g=this.bracketPairsTree.value)===null||g===void 0||g.object.handleContentChanged(o)}handleDidChangeBackgroundTokenizationState(){var o;(o=this.bracketPairsTree.value)===null||o===void 0||o.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(o){var g;(g=this.bracketPairsTree.value)===null||g===void 0||g.object.handleDidChangeTokens(o)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const o=new y.DisposableStore;this.bracketPairsTree.value=b(o.add(new w.BracketPairsTree(this.textModel,g=>this.languageConfigurationService.getLanguageConfiguration(g))),o),o.add(this.bracketPairsTree.value.object.onDidChange(g=>this.onDidChangeEmitter.fire(g))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(o){var g;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((g=this.bracketPairsTree.value)===null||g===void 0?void 0:g.object.getBracketPairsInRange(o,!1))||L.CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(o){var g;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((g=this.bracketPairsTree.value)===null||g===void 0?void 0:g.object.getBracketPairsInRange(o,!0))||L.CallbackIterable.empty}getBracketsInRange(o,g=!1){var m;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((m=this.bracketPairsTree.value)===null||m===void 0?void 0:m.object.getBracketsInRange(o,g))||L.CallbackIterable.empty}findMatchingBracketUp(o,g,m){const c=this.textModel.validatePosition(g),d=this.textModel.getLanguageIdAtPosition(c.lineNumber,c.column);if(this.canBuildAST){const s=this.languageConfigurationService.getLanguageConfiguration(d).bracketsNew.getClosingBracketInfo(o);if(!s)return null;const l=this.getBracketPairsInRange(D.Range.fromPositions(g,g)).findLast(r=>s.closes(r.openingBracketInfo));return l?l.openingBracketRange:null}else{const s=o.toLowerCase(),l=this.languageConfigurationService.getLanguageConfiguration(d).brackets;if(!l)return null;const r=l.textIsBracket[s];return r?i(this._findMatchingBracketUp(r,c,a(m))):null}}matchBracket(o,g){if(this.canBuildAST){const m=this.getBracketPairsInRange(D.Range.fromPositions(o,o)).filter(c=>c.closingBracketRange!==void 0&&(c.openingBracketRange.containsPosition(o)||c.closingBracketRange.containsPosition(o))).findLastMaxBy((0,L.compareBy)(c=>c.openingBracketRange.containsPosition(o)?c.openingBracketRange:c.closingBracketRange,D.Range.compareRangesUsingStarts));return m?[m.openingBracketRange,m.closingBracketRange]:null}else{const m=a(g);return this._matchBracket(this.textModel.validatePosition(o),m)}}_establishBracketSearchOffsets(o,g,m,c){const d=g.getCount(),s=g.getLanguageId(c);let l=Math.max(0,o.column-1-m.maxBracketLength);for(let h=c-1;h>=0;h--){const u=g.getEndOffset(h);if(u<=l)break;if((0,S.ignoreBracketsInToken)(g.getStandardTokenType(h))||g.getLanguageId(h)!==s){l=u;break}}let r=Math.min(g.getLineContent().length,o.column-1+m.maxBracketLength);for(let h=c+1;h=r)break;if((0,S.ignoreBracketsInToken)(g.getStandardTokenType(h))||g.getLanguageId(h)!==s){r=u;break}}return{searchStartOffset:l,searchEndOffset:r}}_matchBracket(o,g){const m=o.lineNumber,c=this.textModel.tokenization.getLineTokens(m),d=this.textModel.getLineContent(m),s=c.findTokenIndexAtOffset(o.column-1);if(s<0)return null;const l=this.languageConfigurationService.getLanguageConfiguration(c.getLanguageId(s)).brackets;if(l&&!(0,S.ignoreBracketsInToken)(c.getStandardTokenType(s))){let{searchStartOffset:r,searchEndOffset:h}=this._establishBracketSearchOffsets(o,c,l,s),u=null;for(;;){const f=p.BracketsUtils.findNextBracketInRange(l.forwardRegex,m,d,r,h);if(!f)break;if(f.startColumn<=o.column&&o.column<=f.endColumn){const C=d.substring(f.startColumn-1,f.endColumn-1).toLowerCase(),_=this._matchFoundBracket(f,l.textIsBracket[C],l.textIsOpenBracket[C],g);if(_){if(_ instanceof n)return null;u=_}}r=f.endColumn-1}if(u)return u}if(s>0&&c.getStartOffset(s)===o.column-1){const r=s-1,h=this.languageConfigurationService.getLanguageConfiguration(c.getLanguageId(r)).brackets;if(h&&!(0,S.ignoreBracketsInToken)(c.getStandardTokenType(r))){const{searchStartOffset:u,searchEndOffset:f}=this._establishBracketSearchOffsets(o,c,h,r),C=p.BracketsUtils.findPrevBracketInRange(h.reversedRegex,m,d,u,f);if(C&&C.startColumn<=o.column&&o.column<=C.endColumn){const _=d.substring(C.startColumn-1,C.endColumn-1).toLowerCase(),E=this._matchFoundBracket(C,h.textIsBracket[_],h.textIsOpenBracket[_],g);if(E)return E instanceof n?null:E}}}return null}_matchFoundBracket(o,g,m,c){if(!g)return null;const d=m?this._findMatchingBracketDown(g,o.getEndPosition(),c):this._findMatchingBracketUp(g,o.getStartPosition(),c);return d?d instanceof n?d:[o,d]:null}_findMatchingBracketUp(o,g,m){const c=o.languageId,d=o.reversedRegex;let s=-1,l=0;const r=(h,u,f,C)=>{for(;;){if(m&&++l%100===0&&!m())return n.INSTANCE;const _=p.BracketsUtils.findPrevBracketInRange(d,h,u,f,C);if(!_)break;const E=u.substring(_.startColumn-1,_.endColumn-1).toLowerCase();if(o.isOpen(E)?s++:o.isClose(E)&&s--,s===0)return _;C=_.startColumn-1}return null};for(let h=g.lineNumber;h>=1;h--){const u=this.textModel.tokenization.getLineTokens(h),f=u.getCount(),C=this.textModel.getLineContent(h);let _=f-1,E=C.length,I=C.length;h===g.lineNumber&&(_=u.findTokenIndexAtOffset(g.column-1),E=g.column-1,I=g.column-1);let T=!0;for(;_>=0;_--){const A=u.getLanguageId(_)===c&&!(0,S.ignoreBracketsInToken)(u.getStandardTokenType(_));if(A)T?E=u.getStartOffset(_):(E=u.getStartOffset(_),I=u.getEndOffset(_));else if(T&&E!==I){const R=r(h,C,E,I);if(R)return R}T=A}if(T&&E!==I){const A=r(h,C,E,I);if(A)return A}}return null}_findMatchingBracketDown(o,g,m){const c=o.languageId,d=o.forwardRegex;let s=1,l=0;const r=(u,f,C,_)=>{for(;;){if(m&&++l%100===0&&!m())return n.INSTANCE;const E=p.BracketsUtils.findNextBracketInRange(d,u,f,C,_);if(!E)break;const I=f.substring(E.startColumn-1,E.endColumn-1).toLowerCase();if(o.isOpen(I)?s++:o.isClose(I)&&s--,s===0)return E;C=E.endColumn-1}return null},h=this.textModel.getLineCount();for(let u=g.lineNumber;u<=h;u++){const f=this.textModel.tokenization.getLineTokens(u),C=f.getCount(),_=this.textModel.getLineContent(u);let E=0,I=0,T=0;u===g.lineNumber&&(E=f.findTokenIndexAtOffset(g.column-1),I=g.column-1,T=g.column-1);let A=!0;for(;E=1;l--){const r=this.textModel.tokenization.getLineTokens(l),h=r.getCount(),u=this.textModel.getLineContent(l);let f=h-1,C=u.length,_=u.length;if(l===m.lineNumber){f=r.findTokenIndexAtOffset(m.column-1),C=m.column-1,_=m.column-1;const I=r.getLanguageId(f);c!==I&&(c=I,d=this.languageConfigurationService.getLanguageConfiguration(c).brackets,s=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew)}let E=!0;for(;f>=0;f--){const I=r.getLanguageId(f);if(c!==I){if(d&&s&&E&&C!==_){const A=p.BracketsUtils.findPrevBracketInRange(d.reversedRegex,l,u,C,_);if(A)return this._toFoundBracket(s,A);E=!1}c=I,d=this.languageConfigurationService.getLanguageConfiguration(c).brackets,s=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew}const T=!!d&&!(0,S.ignoreBracketsInToken)(r.getStandardTokenType(f));if(T)E?C=r.getStartOffset(f):(C=r.getStartOffset(f),_=r.getEndOffset(f));else if(s&&d&&E&&C!==_){const A=p.BracketsUtils.findPrevBracketInRange(d.reversedRegex,l,u,C,_);if(A)return this._toFoundBracket(s,A)}E=T}if(s&&d&&E&&C!==_){const I=p.BracketsUtils.findPrevBracketInRange(d.reversedRegex,l,u,C,_);if(I)return this._toFoundBracket(s,I)}}return null}findNextBracket(o){var g;const m=this.textModel.validatePosition(o);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((g=this.bracketPairsTree.value)===null||g===void 0?void 0:g.object.getFirstBracketAfter(m))||null;const c=this.textModel.getLineCount();let d=null,s=null,l=null;for(let r=m.lineNumber;r<=c;r++){const h=this.textModel.tokenization.getLineTokens(r),u=h.getCount(),f=this.textModel.getLineContent(r);let C=0,_=0,E=0;if(r===m.lineNumber){C=h.findTokenIndexAtOffset(m.column-1),_=m.column-1,E=m.column-1;const T=h.getLanguageId(C);d!==T&&(d=T,s=this.languageConfigurationService.getLanguageConfiguration(d).brackets,l=this.languageConfigurationService.getLanguageConfiguration(d).bracketsNew)}let I=!0;for(;CI.closingBracketRange!==void 0&&I.range.strictContainsRange(_));return E?[E.openingBracketRange,E.closingBracketRange]:null}const c=a(g),d=this.textModel.getLineCount(),s=new Map;let l=[];const r=(_,E)=>{if(!s.has(_)){const I=[];for(let T=0,A=E?E.brackets.length:0;T{for(;;){if(c&&++h%100===0&&!c())return n.INSTANCE;const R=p.BracketsUtils.findNextBracketInRange(_.forwardRegex,E,I,T,A);if(!R)break;const M=I.substring(R.startColumn-1,R.endColumn-1).toLowerCase(),N=_.textIsBracket[M];if(N&&(N.isOpen(M)?l[N.index]++:N.isClose(M)&&l[N.index]--,l[N.index]===-1))return this._matchFoundBracket(R,N,!1,c);T=R.endColumn-1}return null};let f=null,C=null;for(let _=m.lineNumber;_<=d;_++){const E=this.textModel.tokenization.getLineTokens(_),I=E.getCount(),T=this.textModel.getLineContent(_);let A=0,R=0,M=0;if(_===m.lineNumber){A=E.findTokenIndexAtOffset(m.column-1),R=m.column-1,M=m.column-1;const P=E.getLanguageId(A);f!==P&&(f=P,C=this.languageConfigurationService.getLanguageConfiguration(f).brackets,r(f,C))}let N=!0;for(;Ao?.dispose()}}function a(t){if(typeof t>"u")return()=>!0;{const o=Date.now();return()=>Date.now()-o<=t}}class n{constructor(){this._searchCanceledBrand=void 0}}n.INSTANCE=new n;function i(t){return t instanceof n?null:t}}),define(ne[337],se([1,0,7,11,5,40,301,133,335,2]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBuffer=void 0;class b extends v.Disposable{constructor(n,i,t,o,g,m,c){super(),this._onDidChangeContent=this._register(new L.Emitter),this._BOM=i,this._mightContainNonBasicASCII=!m,this._mightContainRTL=o,this._mightContainUnusualLineTerminators=g,this._pieceTree=new S.PieceTreeBase(n,t,c)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(n){return this._pieceTree.createSnapshot(n?this._BOM:"")}getOffsetAt(n,i){return this._pieceTree.getOffsetAt(n,i)}getPositionAt(n){return this._pieceTree.getPositionAt(n)}getRangeAt(n,i){const t=n+i,o=this.getPositionAt(n),g=this.getPositionAt(t);return new y.Range(o.lineNumber,o.column,g.lineNumber,g.column)}getValueInRange(n,i=0){if(n.isEmpty())return"";const t=this._getEndOfLine(i);return this._pieceTree.getValueInRange(n,t)}getValueLengthInRange(n,i=0){if(n.isEmpty())return 0;if(n.startLineNumber===n.endLineNumber)return n.endColumn-n.startColumn;const t=this.getOffsetAt(n.startLineNumber,n.startColumn),o=this.getOffsetAt(n.endLineNumber,n.endColumn);let g=0;const m=this._getEndOfLine(i),c=this.getEOL();if(m.length!==c.length){const d=m.length-c.length,s=n.endLineNumber-n.startLineNumber;g=d*s}return o-t+g}getCharacterCountInRange(n,i=0){if(this._mightContainNonBasicASCII){let t=0;const o=n.startLineNumber,g=n.endLineNumber;for(let m=o;m<=g;m++){const c=this.getLineContent(m),d=m===o?n.startColumn-1:0,s=m===g?n.endColumn-1:c.length;for(let l=d;l_.sortIndex-E.sortIndex)}this._mightContainRTL=o,this._mightContainUnusualLineTerminators=g,this._mightContainNonBasicASCII=m;const u=this._doApplyEdits(d);let f=null;if(i&&r.length>0){r.sort((C,_)=>_.lineNumber-C.lineNumber),f=[];for(let C=0,_=r.length;C<_;C++){const E=r[C].lineNumber;if(C>0&&r[C-1].lineNumber===E)continue;const I=r[C].oldContent,T=this.getLineContent(E);T.length===0||T===I||k.firstNonWhitespaceIndex(T)!==-1||f.push(E)}}return this._onDidChangeContent.fire(),new D.ApplyEditsResult(h,u,f)}_reduceOperations(n){return n.length<1e3?n:[this._toSingleEditOperation(n)]}_toSingleEditOperation(n){let i=!1;const t=n[0].range,o=n[n.length-1].range,g=new y.Range(t.startLineNumber,t.startColumn,o.endLineNumber,o.endColumn);let m=t.startLineNumber,c=t.startColumn;const d=[];for(let u=0,f=n.length;u0&&d.push(C.text),m=_.endLineNumber,c=_.endColumn}const s=d.join(""),[l,r,h]=(0,p.countEOL)(s);return{sortIndex:0,identifier:n[0].identifier,range:g,rangeOffset:this.getOffsetAt(g.startLineNumber,g.startColumn),rangeLength:this.getValueLengthInRange(g,0),text:s,eolCount:l,firstLineLength:r,lastLineLength:h,forceMoveMarkers:i,isAutoWhitespaceEdit:!1}}_doApplyEdits(n){n.sort(b._sortOpsDescending);const i=[];for(let t=0;t0){const h=d.eolCount+1;h===1?r=new y.Range(s,l,s,l+d.firstLineLength):r=new y.Range(s,l,s+h-1,d.lastLineLength+1)}else r=new y.Range(s,l,s,l);t=r.endLineNumber,o=r.endColumn,i.push(r),g=d}return i}static _sortOpsAscending(n,i){const t=y.Range.compareRangesUsingEnds(n.range,i.range);return t===0?n.sortIndex-i.sortIndex:t}static _sortOpsDescending(n,i){const t=y.Range.compareRangesUsingEnds(n.range,i.range);return t===0?i.sortIndex-n.sortIndex:-t}}e.PieceTreeTextBuffer=b}),define(ne[624],se([1,0,11,301,337]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBufferBuilder=void 0;class D{constructor(w,v,b,a,n,i,t,o,g){this._chunks=w,this._bom=v,this._cr=b,this._lf=a,this._crlf=n,this._containsRTL=i,this._containsUnusualLineTerminators=t,this._isBasicASCII=o,this._normalizeEOL=g}_getEOL(w){const v=this._cr+this._lf+this._crlf,b=this._cr+this._crlf;return v===0?w===1?` +`:`\r +`:b>v/2?`\r +`:` +`}create(w){const v=this._getEOL(w),b=this._chunks;if(this._normalizeEOL&&(v===`\r +`&&(this._cr>0||this._lf>0)||v===` +`&&(this._cr>0||this._crlf>0)))for(let n=0,i=b.length;n=55296&&v<=56319?(this._acceptChunk1(w.substr(0,w.length-1),!1),this._hasPreviousChar=!0,this._previousChar=v):(this._acceptChunk1(w,!1),this._hasPreviousChar=!1,this._previousChar=v)}_acceptChunk1(w,v){!v&&w.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+w):this._acceptChunk2(w))}_acceptChunk2(w){const v=(0,k.createLineStarts)(this._tmpLineStarts,w);this.chunks.push(new k.StringBuffer(w,v.lineStarts)),this.cr+=v.cr,this.lf+=v.lf,this.crlf+=v.crlf,v.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=L.containsRTL(w)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=L.containsUnusualLineTerminators(w)))}finish(w=!0){return this._finish(),new D(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,w)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const w=this.chunks[this.chunks.length-1];w.buffer+=String.fromCharCode(this._previousChar);const v=(0,k.createLineStartsFast)(w.buffer);w.lineStarts=v,this._previousChar===13&&this.cr++}}}e.PieceTreeTextBufferBuilder=S}),define(ne[625],se([1,0,149,17]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.encodeSemanticTokensDto=void 0;function y(w){for(let v=0,b=w.length;vo.target.position?o.target.position.lineNumber:0,this._opts=v(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(o=>{if(o.hasChanged(78)){const g=v(this._editor.getOption(78));if(this._opts.equals(g))return;this._opts=g,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(o=>this._onEditorMouseMove(new S(o,this._opts)))),this._register(this._editor.onMouseDown(o=>this._onEditorMouseDown(new S(o,this._opts)))),this._register(this._editor.onMouseUp(o=>this._onEditorMouseUp(new S(o,this._opts)))),this._register(this._editor.onKeyDown(o=>this._onEditorKeyDown(new p(o,this._opts)))),this._register(this._editor.onKeyUp(o=>this._onEditorKeyUp(new p(o,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(o=>this._onDidChangeCursorSelection(o))),this._register(this._editor.onDidChangeModel(o=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(o=>{(o.scrollTopChanged||o.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(n){n.selection&&n.selection.startColumn!==n.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(n){this._lastMouseMoveEvent=n,this._onMouseMoveOrRelevantKeyDown.fire([n,null])}_onEditorMouseDown(n){this._hasTriggerKeyOnMouseDown=n.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(n)}_onEditorMouseUp(n){const i=this._extractLineNumberFromMouseEvent(n);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===i&&this._onExecute.fire(n)}_onEditorKeyDown(n){this._lastMouseMoveEvent&&(n.keyCodeIsTriggerKey||n.keyCodeIsSideBySideKey&&n.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,n]):n.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(n){n.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}e.ClickLinkGesture=b}),define(ne[338],se([1,0,15,12,7,2]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverOperation=e.HoverResult=void 0;class S{constructor(v,b,a){this.value=v,this.isComplete=b,this.hasLoadingMessage=a}}e.HoverResult=S;class p extends D.Disposable{constructor(v,b){super(),this._editor=v,this._computer=b,this._onResult=this._register(new y.Emitter),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new L.RunOnceScheduler(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new L.RunOnceScheduler(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new L.RunOnceScheduler(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(v,b=!0){this._state=v,b&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=(0,L.createCancelableAsyncIterable)(v=>this._computer.computeAsync(v)),(async()=>{try{for await(const v of this._asyncIterable)v&&(this._result.push(v),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(v){(0,k.onUnexpectedError)(v)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const v=this._state===0,b=this._state===4;this._onResult.fire(new S(this._result.slice(0),v,b))}start(v){if(v===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}e.HoverOperation=p}),define(ne[626],se([1,0,231,2,9,6]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableContentWidget=void 0;const S=30,p=24;class w extends k.Disposable{constructor(b,a=new D.Dimension(10,10)){super(),this._editor=b,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new L.ResizableHTMLElement),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=D.Dimension.lift(a),this._resizableNode.layout(a.height,a.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(n=>{this._resize(new D.Dimension(n.dimension.width,n.dimension.height)),n.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var b;return!((b=this._contentPosition)===null||b===void 0)&&b.position?y.Position.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(b){const a=this._editor.getDomNode(),n=this._editor.getScrolledVisiblePosition(b);return!a||!n?void 0:D.getDomNodePagePosition(a).top+n.top-S}_availableVerticalSpaceBelow(b){const a=this._editor.getDomNode(),n=this._editor.getScrolledVisiblePosition(b);if(!a||!n)return;const i=D.getDomNodePagePosition(a),t=D.getClientArea(a.ownerDocument.body),o=i.top+n.top+n.height;return t.height-o-p}_findPositionPreference(b,a){var n,i;const t=Math.min((n=this._availableVerticalSpaceBelow(a))!==null&&n!==void 0?n:1/0,b),o=Math.min((i=this._availableVerticalSpaceAbove(a))!==null&&i!==void 0?i:1/0,b),g=Math.min(Math.max(o,t),b),m=Math.min(b,g);let c;return this._editor.getOption(60).above?c=m<=o?1:2:c=m<=t?2:1,c===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(b){this._resizableNode.layout(b.height,b.width)}}e.ResizableContentWidget=w}),define(ne[339],se([1,0,12,2,9,5,47,22]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.asCommandLink=e.InlayHintsFragments=e.InlayHintItem=e.InlayHintAnchor=void 0;class w{constructor(i,t){this.range=i,this.direction=t}}e.InlayHintAnchor=w;class v{constructor(i,t,o){this.hint=i,this.anchor=t,this.provider=o,this._isResolved=!1}with(i){const t=new v(this.hint,i.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(i){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,i.isCancellationRequested?void 0:this.resolve(i);this._isResolved||(this._currentResolve=this._doResolve(i).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(i){var t,o,g;try{const m=await Promise.resolve(this.provider.resolveInlayHint(this.hint,i));this.hint.tooltip=(t=m?.tooltip)!==null&&t!==void 0?t:this.hint.tooltip,this.hint.label=(o=m?.label)!==null&&o!==void 0?o:this.hint.label,this.hint.textEdits=(g=m?.textEdits)!==null&&g!==void 0?g:this.hint.textEdits,this._isResolved=!0}catch(m){(0,L.onUnexpectedExternalError)(m),this._isResolved=!1}}}e.InlayHintItem=v;class b{static async create(i,t,o,g){const m=[],c=i.ordered(t).reverse().map(d=>o.map(async s=>{try{const l=await d.provideInlayHints(t,s,g);(l?.hints.length||d.onDidChangeInlayHints)&&m.push([l??b._emptyInlayHintList,d])}catch(l){(0,L.onUnexpectedExternalError)(l)}}));if(await Promise.all(c.flat()),g.isCancellationRequested||t.isDisposed())throw new L.CancellationError;return new b(o,m,t)}constructor(i,t,o){this._disposables=new k.DisposableStore,this.ranges=i,this.provider=new Set;const g=[];for(const[m,c]of t){this._disposables.add(m),this.provider.add(c);for(const d of m.hints){const s=o.validatePosition(d.position);let l="before";const r=b._getRangeAtPosition(o,s);let h;r.getStartPosition().isBefore(s)?(h=D.Range.fromPositions(r.getStartPosition(),s),l="after"):(h=D.Range.fromPositions(s,r.getEndPosition()),l="before"),g.push(new v(d,new w(h,l),c))}}this.items=g.sort((m,c)=>y.Position.compare(m.hint.position,c.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(i,t){const o=t.lineNumber,g=i.getWordAtPosition(t);if(g)return new D.Range(o,g.startColumn,o,g.endColumn);i.tokenization.tokenizeIfCheap(o);const m=i.tokenization.getLineTokens(o),c=t.column-1,d=m.findTokenIndexAtOffset(c);let s=m.getStartOffset(d),l=m.getEndOffset(d);return l-s===1&&(s===c&&d>1?(s=m.getStartOffset(d-1),l=m.getEndOffset(d-1)):l===c&&dB.toString?B.toString():""+B).join(" -> ")}`));const O=new k.DeferredPromise;return _.set(N,O.p),(async()=>{if(!F){const B=C(N);for(const W of B){const V=await T(W);if(V&&V.items.length>0)return}}try{return await N.provideInlineCompletions(d,c,s,l)}catch(B){(0,S.onUnexpectedExternalError)(B);return}})().then(B=>O.complete(B),B=>O.error(B)),O.p}const A=await Promise.all(u.map(async N=>({provider:N,completions:await T(N)}))),R=new Map,M=[];for(const N of A){const P=N.completions;if(!P)continue;const F=new i(P,N.provider);M.push(F);for(const O of P.items){const B=t.from(O,F,h,d,r);R.set(B.hash(),B)}}return new n(Array.from(R.values()),new Set(R.keys()),M)}e.provideInlineCompletions=a;class n{constructor(c,d,s){this.completions=c,this.hashs=d,this.providerResults=s}has(c){return this.hashs.has(c.hash())}dispose(){for(const c of this.providerResults)c.removeRef()}}e.InlineCompletionProviderResult=n;class i{constructor(c,d){this.inlineCompletions=c,this.provider=d,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}e.InlineCompletionList=i;class t{static from(c,d,s,l,r){let h,u,f=c.range?p.Range.lift(c.range):s;if(typeof c.insertText=="string"){if(h=c.insertText,r&&c.completeBracketPairs){h=g(h,f.getStartPosition(),l,r);const C=h.length-c.insertText.length;C!==0&&(f=new p.Range(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn+C))}u=void 0}else if("snippet"in c.insertText){const C=c.insertText.snippet.length;if(r&&c.completeBracketPairs){c.insertText.snippet=g(c.insertText.snippet,f.getStartPosition(),l,r);const E=c.insertText.snippet.length-C;E!==0&&(f=new p.Range(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn+E))}const _=new b.SnippetParser().parse(c.insertText.snippet);_.children.length===1&&_.children[0]instanceof b.Text?(h=_.children[0].value,u=void 0):(h=_.toString(),u={snippet:c.insertText.snippet,range:f})}else(0,L.assertNever)(c.insertText);return new t(h,c.command,f,h,u,c.additionalTextEdits||(0,v.getReadonlyEmptyArray)(),c,d)}constructor(c,d,s,l,r,h,u,f){this.filterText=c,this.command=d,this.range=s,this.insertText=l,this.snippetInfo=r,this.additionalTextEdits=h,this.sourceInlineCompletion=u,this.source=f,c=c.replace(/\r\n|\r/g,` +`),l=c.replace(/\r\n|\r/g,` +`)}withRange(c){return new t(this.filterText,this.command,c,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}e.InlineCompletionItem=t;function o(m,c){const d=c.getWordAtPosition(m),s=c.getLineMaxColumn(m.lineNumber);return d?new p.Range(m.lineNumber,d.startColumn,m.lineNumber,s):p.Range.fromPositions(m,m.with(void 0,s))}function g(m,c,d,s){const r=d.getLineContent(c.lineNumber).substring(0,c.column-1)+m,h=d.tokenization.tokenizeLineWithEdit(c,r.length-(c.column-1),m),u=h?.sliceAndInflate(c.column-1,r.length,0);return u?(0,w.fixBracketsInLine)(u,s):m}}),define(ne[628],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/controller/textAreaHandler",e)}),define(ne[629],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/coreCommands",e)}),define(ne[630],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/editorExtensions",e)}),define(ne[631],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/codeEditorWidget",e)}),define(ne[632],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer",e)}),define(ne[633],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/diffEditor/components/diffEditorEditors",e)}),define(ne[634],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin",e)}),define(ne[635],se([1,0,6,42,27,2,17,29,634]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineDiffDeletedCodeMargin=void 0;class v extends D.Disposable{get visibility(){return this._visibility}set visibility(a){this._visibility!==a&&(this._visibility=a,this._diffActions.style.visibility=a?"visible":"hidden")}constructor(a,n,i,t,o,g,m,c,d){super(),this._getViewZoneId=a,this._marginDomNode=n,this._modifiedEditor=i,this._diff=t,this._editor=o,this._viewLineCounts=g,this._originalTextModel=m,this._contextMenuService=c,this._clipboardService=d,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=p.ThemeIcon.asClassName(y.Codicon.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const s=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${s}px`,this._diffActions.style.lineHeight=`${s}px`,this._marginDomNode.appendChild(this._diffActions);let l=0;const r=i.getOption(127)&&!S.isIOS,h=(u,f)=>{var C;this._contextMenuService.showContextMenu({domForShadowRoot:r&&(C=i.getDomNode())!==null&&C!==void 0?C:void 0,getAnchor:()=>({x:u,y:f}),getActions:()=>{const _=[],E=t.modified.isEmpty;return _.push(new k.Action("diff.clipboard.copyDeletedContent",E?t.original.length>1?(0,w.localize)(0,null):(0,w.localize)(1,null):t.original.length>1?(0,w.localize)(2,null):(0,w.localize)(3,null),void 0,!0,async()=>{const T=this._originalTextModel.getValueInRange(t.original.toExclusiveRange());await this._clipboardService.writeText(T)})),t.original.length>1&&_.push(new k.Action("diff.clipboard.copyDeletedLineContent",E?(0,w.localize)(4,null,t.original.startLineNumber+l):(0,w.localize)(5,null,t.original.startLineNumber+l),void 0,!0,async()=>{let T=this._originalTextModel.getLineContent(t.original.startLineNumber+l);T===""&&(T=this._originalTextModel.getEndOfLineSequence()===0?` +`:`\r +`),await this._clipboardService.writeText(T)})),i.getOption(91)||_.push(new k.Action("diff.inline.revertChange",(0,w.localize)(6,null),void 0,!0,async()=>{this._editor.revert(this._diff)})),_},autoSelectFirstItem:!0})};this._register((0,L.addStandardDisposableListener)(this._diffActions,"mousedown",u=>{if(!u.leftButton)return;const{top:f,height:C}=(0,L.getDomNodePagePosition)(this._diffActions),_=Math.floor(s/3);u.preventDefault(),h(u.posx,f+C+_)})),this._register(i.onMouseMove(u=>{(u.target.type===8||u.target.type===5)&&u.target.detail.viewZoneId===this._getViewZoneId()?(l=this._updateLightBulbPosition(this._marginDomNode,u.event.browserEvent.y,s),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(u=>{u.event.leftButton&&(u.target.type===8||u.target.type===5)&&u.target.detail.viewZoneId===this._getViewZoneId()&&(u.event.preventDefault(),l=this._updateLightBulbPosition(this._marginDomNode,u.event.browserEvent.y,s),h(u.event.posx,u.event.posy+s))}))}_updateLightBulbPosition(a,n,i){const{top:t}=(0,L.getDomNodePagePosition)(a),o=n-t,g=Math.floor(o/i),m=g*i;if(this._diffActions.style.top=`${m}px`,this._viewLineCounts){let c=0;for(let d=0;dthis._editors.original.getScrollTop()),this._modifiedScrollTop=(0,v.observableFromEvent)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=(0,v.observableSignalFromEvent)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,v.observableValue)(this,0),this._modifiedViewZonesChangedSignal=(0,v.observableSignalFromEvent)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,v.observableSignalFromEvent)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,v.derivedWithStore)(this,(_,E)=>{var I;this._element.replaceChildren();const T=this._diffModel.read(_),A=(I=T?.diff.read(_))===null||I===void 0?void 0:I.movedTexts;if(!A||A.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(_);const R=this._originalEditorLayoutInfo.read(_),M=this._modifiedEditorLayoutInfo.read(_);if(!R||!M){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(_),this._originalViewZonesChangedSignal.read(_);const N=A.map(z=>{function K(de,ge){const pe=ge.getTopForLineNumber(de.startLineNumber,!0),Q=ge.getTopForLineNumber(de.endLineNumberExclusive,!0);return(pe+Q)/2}const j=K(z.lineRangeMapping.original,this._editors.original),x=this._originalScrollTop.read(_),re=K(z.lineRangeMapping.modified,this._editors.modified),ie=this._modifiedScrollTop.read(_),J=j-x,X=re-ie,Y=Math.min(j,re),le=Math.max(j,re);return{range:new n.OffsetRange(Y,le),from:J,to:X,fromWithoutScroll:j,toWithoutScroll:re,move:z}});N.sort((0,D.tieBreakComparators)((0,D.compareBy)(z=>z.fromWithoutScroll>z.toWithoutScroll,D.booleanComparator),(0,D.compareBy)(z=>z.fromWithoutScroll>z.toWithoutScroll?z.fromWithoutScroll:-z.toWithoutScroll,D.numberComparator)));const P=o.compute(N.map(z=>z.range)),F=10,O=R.verticalScrollbarWidth,B=(P.getTrackCount()-1)*10+F*2,W=O+B+(M.contentLeft-t.movedCodeBlockPadding);let V=0;for(const z of N){const K=P.getTrack(V),j=O+F+K*10,x=15,re=15,ie=W,J=M.glyphMarginWidth+M.lineNumbersWidth,X=18,Y=document.createElementNS("http://www.w3.org/2000/svg","rect");Y.classList.add("arrow-rectangle"),Y.setAttribute("x",`${ie-J}`),Y.setAttribute("y",`${z.to-X/2}`),Y.setAttribute("width",`${J}`),Y.setAttribute("height",`${X}`),this._element.appendChild(Y);const le=document.createElementNS("http://www.w3.org/2000/svg","g"),de=document.createElementNS("http://www.w3.org/2000/svg","path");de.setAttribute("d",`M 0 ${z.from} L ${j} ${z.from} L ${j} ${z.to} L ${ie-re} ${z.to}`),de.setAttribute("fill","none"),le.appendChild(de);const ge=document.createElementNS("http://www.w3.org/2000/svg","polygon");ge.classList.add("arrow"),E.add((0,v.autorun)(pe=>{de.classList.toggle("currentMove",z.move===T.activeMovedText.read(pe)),ge.classList.toggle("currentMove",z.move===T.activeMovedText.read(pe))})),ge.setAttribute("points",`${ie-re},${z.to-x/2} ${ie},${z.to} ${ie-re},${z.to+x/2}`),le.appendChild(ge),this._element.appendChild(le),V++}this.width.set(B,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,w.toDisposable)(()=>this._element.remove())),this._register((0,v.autorun)(_=>{const E=this._originalEditorLayoutInfo.read(_),I=this._modifiedEditorLayoutInfo.read(_);!E||!I||(this._element.style.left=`${E.width-E.verticalScrollbarWidth}px`,this._element.style.height=`${E.height}px`,this._element.style.width=`${E.verticalScrollbarWidth+E.contentLeft-t.movedCodeBlockPadding+this.width.read(_)}px`)})),this._register((0,v.recomputeInitiallyAndOnChange)(this._state));const h=(0,v.derived)(_=>{const E=this._diffModel.read(_),I=E?.diff.read(_);return I?I.movedTexts.map(T=>({move:T,original:new a.PlaceholderViewZone((0,v.constObservable)(T.lineRangeMapping.original.startLineNumber-1),18),modified:new a.PlaceholderViewZone((0,v.constObservable)(T.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register((0,a.applyViewZones)(this._editors.original,h.map(_=>_.map(E=>E.original)))),this._register((0,a.applyViewZones)(this._editors.modified,h.map(_=>_.map(E=>E.modified)))),this._register((0,v.autorunWithStore)((_,E)=>{const I=h.read(_);for(const T of I)E.add(new g(this._editors.original,T.original,T.move,"original",this._diffModel.get())),E.add(new g(this._editors.modified,T.modified,T.move,"modified",this._diffModel.get()))}));const u=(0,v.observableSignalFromEvent)("original.onDidFocusEditorWidget",_=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>_(void 0),0))),f=(0,v.observableSignalFromEvent)("modified.onDidFocusEditorWidget",_=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>_(void 0),0)));let C="modified";this._register((0,v.autorunHandleChanges)({createEmptyChangeSummary:()=>{},handleChange:(_,E)=>(_.didChange(u)&&(C="original"),_.didChange(f)&&(C="modified"),!0)},_=>{u.read(_),f.read(_);const E=this._diffModel.read(_);if(!E)return;const I=E.diff.read(_);let T;if(I&&C==="original"){const A=this._editors.originalCursor.read(_);A&&(T=I.movedTexts.find(R=>R.lineRangeMapping.original.contains(A.lineNumber)))}if(I&&C==="modified"){const A=this._editors.modifiedCursor.read(_);A&&(T=I.movedTexts.find(R=>R.lineRangeMapping.modified.contains(A.lineNumber)))}T!==E.movedTextToCompare.get()&&E.movedTextToCompare.set(void 0,void 0),E.setActiveMovedText(T)}))}}e.MovedBlocksLinesFeature=t,t.movedCodeBlockPadding=4;class o{static compute(c){const d=[],s=[];for(const l of c){let r=d.findIndex(h=>!h.intersectsStrict(l));r===-1&&(d.length>=6?r=(0,S.findMaxIdxBy)(d,(0,D.compareBy)(u=>u.intersectWithRangeLength(l),D.numberComparator)):(r=d.length,d.push(new n.OffsetRangeSet))),d[r].addRange(l),s.push(r)}return new o(d.length,s)}constructor(c,d){this._trackCount=c,this.trackPerLineIdx=d}getTrack(c){return this.trackPerLineIdx[c]}getTrackCount(){return this._trackCount}}class g extends a.ViewZoneOverlayWidget{constructor(c,d,s,l,r){const h=(0,L.h)("div.diff-hidden-lines-widget");super(c,d,h.root),this._editor=c,this._move=s,this._kind=l,this._diffModel=r,this._nodes=(0,L.h)("div.diff-moved-code-block",{style:{marginRight:"4px"}},[(0,L.h)("div.text-content@textContent"),(0,L.h)("div.action-bar@actionBar")]),h.root.appendChild(this._nodes.root);const u=(0,v.observableFromEvent)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register((0,a.applyStyle)(this._nodes.root,{paddingRight:u.map(I=>I.verticalScrollbarWidth)}));let f;s.changes.length>0?f=this._kind==="original"?(0,i.localize)(0,null,this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,i.localize)(1,null,this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):f=this._kind==="original"?(0,i.localize)(2,null,this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,i.localize)(3,null,this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const C=this._register(new k.ActionBar(this._nodes.actionBar,{highlightToggledItems:!0})),_=new y.Action("",f,"",!1);C.push(_,{icon:!1,label:!0});const E=new y.Action("","Compare",b.ThemeIcon.asClassName(p.Codicon.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===s?void 0:this._move,void 0)});this._register((0,v.autorun)(I=>{const T=this._diffModel.movedTextToCompare.read(I)===s;E.checked=T})),C.push(E,{icon:!1,label:!0})}}}),define(ne[639],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/diffEditor/features/revertButtonsFeature",e)}),define(ne[640],se([1,0,6,104,27,2,32,64,5,40,639]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RevertButton=e.RevertButtonsFeature=void 0;const a=[];class n extends D.Disposable{constructor(o,g,m,c){super(),this._editors=o,this._diffModel=g,this._options=m,this._widget=c,this._selectedDiffs=(0,S.derived)(this,d=>{const s=this._diffModel.read(d),l=s?.diff.read(d);if(!l)return a;const r=this._editors.modifiedSelections.read(d);if(r.every(C=>C.isEmpty()))return a;const h=new p.LineRangeSet(r.map(C=>p.LineRange.fromRangeInclusive(C))),f=l.mappings.filter(C=>C.lineRangeMapping.innerChanges&&h.intersects(C.lineRangeMapping.modified)).map(C=>({mapping:C,rangeMappings:C.lineRangeMapping.innerChanges.filter(_=>r.some(E=>w.Range.areIntersecting(_.modifiedRange,E)))}));return f.length===0||f.every(C=>C.rangeMappings.length===0)?a:f}),this._register((0,S.autorunWithStore)((d,s)=>{if(!this._options.shouldRenderRevertArrows.read(d))return;const l=this._diffModel.read(d),r=l?.diff.read(d);if(!l||!r||l.movedTextToCompare.read(d))return;const h=[],u=this._selectedDiffs.read(d),f=new Set(u.map(C=>C.mapping));if(u.length>0){const C=this._editors.modifiedSelections.read(d),_=s.add(new i(C[C.length-1].positionLineNumber,this._widget,u.flatMap(E=>E.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(_),h.push(_)}for(const C of r.mappings)if(!f.has(C)&&!C.lineRangeMapping.modified.isEmpty&&C.lineRangeMapping.innerChanges){const _=s.add(new i(C.lineRangeMapping.modified.startLineNumber,this._widget,C.lineRangeMapping.innerChanges,!1));this._editors.modified.addGlyphMarginWidget(_),h.push(_)}s.add((0,D.toDisposable)(()=>{for(const C of h)this._editors.modified.removeGlyphMarginWidget(C)}))}))}}e.RevertButtonsFeature=n;class i extends D.Disposable{getId(){return this._id}constructor(o,g,m,c){super(),this._lineNumber=o,this._widget=g,this._diffs=m,this._revertSelection=c,this._id=`revertButton${i.counter++}`,this._domNode=(0,L.h)("div.revertButton",{title:this._revertSelection?(0,b.localize)(0,null):(0,b.localize)(1,null)},[(0,k.renderIcon)(y.Codicon.arrowRight)]).root,this._register((0,L.addDisposableListener)(this._domNode,L.EventType.MOUSE_DOWN,d=>{d.button!==2&&(d.stopPropagation(),d.preventDefault())})),this._register((0,L.addDisposableListener)(this._domNode,L.EventType.MOUSE_UP,d=>{d.stopPropagation(),d.preventDefault()})),this._register((0,L.addDisposableListener)(this._domNode,L.EventType.CLICK,d=>{this._widget.revertRangeMappings(this._diffs),d.stopPropagation(),d.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:v.GlyphMarginLane.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}e.RevertButton=i,i.counter=0}),define(ne[641],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/diffEditor/registrations.contribution",e)}),define(ne[642],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/hoverWidget/hoverWidget",e)}),define(ne[643],se([3,4]),function(ee,e){return ee.create("vs/editor/browser/widget/multiDiffEditorWidget/colors",e)}),define(ne[644],se([3,4]),function(ee,e){return ee.create("vs/editor/common/config/editorConfigurationSchema",e)}),define(ne[645],se([3,4]),function(ee,e){return ee.create("vs/editor/common/config/editorOptions",e)}),define(ne[36],se([1,0,13,54,17,182,155,645]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOptions=e.editorOptionsRegistry=e.EDITOR_FONT_DEFAULTS=e.unicodeHighlightConfigKeys=e.inUntrustedWorkspace=e.filterValidationDecorations=e.ShowLightbulbIconMode=e.EditorLayoutInfoComputer=e.EditorFontVariations=e.EditorFontLigatures=e.TextEditorCursorStyle=e.stringSet=e.clampedFloat=e.clampedInt=e.boolean=e.ApplyUpdateResult=e.ComputeOptionsMemory=e.ConfigurationChangedEvent=e.MINIMAP_GUTTER_WIDTH=void 0,e.MINIMAP_GUTTER_WIDTH=8;class w{constructor(me){this._values=me}hasChanged(me){return this._values[me]}}e.ConfigurationChangedEvent=w;class v{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}e.ComputeOptionsMemory=v;class b{constructor(me,be,Ae,Be){this.id=me,this.name=be,this.defaultValue=Ae,this.schema=Be}applyUpdate(me,be){return n(me,be)}compute(me,be,Ae){return Ae}}class a{constructor(me,be){this.newValue=me,this.didChange=be}}e.ApplyUpdateResult=a;function n(Me,me){if(typeof Me!="object"||typeof me!="object"||!Me||!me)return new a(me,Me!==me);if(Array.isArray(Me)||Array.isArray(me)){const Ae=Array.isArray(Me)&&Array.isArray(me)&&L.equals(Me,me);return new a(me,!Ae)}let be=!1;for(const Ae in me)if(me.hasOwnProperty(Ae)){const Be=n(Me[Ae],me[Ae]);Be.didChange&&(Me[Ae]=Be.newValue,be=!0)}return new a(Me,be)}class i{constructor(me){this.schema=void 0,this.id=me,this.name="_never_",this.defaultValue=void 0}applyUpdate(me,be){return n(me,be)}validate(me){return this.defaultValue}}class t{constructor(me,be,Ae,Be){this.id=me,this.name=be,this.defaultValue=Ae,this.schema=Be}applyUpdate(me,be){return n(me,be)}validate(me){return typeof me>"u"?this.defaultValue:me}compute(me,be,Ae){return Ae}}function o(Me,me){return typeof Me>"u"?me:Me==="false"?!1:!!Me}e.boolean=o;class g extends t{constructor(me,be,Ae,Be=void 0){typeof Be<"u"&&(Be.type="boolean",Be.default=Ae),super(me,be,Ae,Be)}validate(me){return o(me,this.defaultValue)}}function m(Me,me,be,Ae){if(typeof Me>"u")return me;let Be=parseInt(Me,10);return isNaN(Be)?me:(Be=Math.max(be,Be),Be=Math.min(Ae,Be),Be|0)}e.clampedInt=m;class c extends t{static clampedInt(me,be,Ae,Be){return m(me,be,Ae,Be)}constructor(me,be,Ae,Be,Ke,qe=void 0){typeof qe<"u"&&(qe.type="integer",qe.default=Ae,qe.minimum=Be,qe.maximum=Ke),super(me,be,Ae,qe),this.minimum=Be,this.maximum=Ke}validate(me){return c.clampedInt(me,this.defaultValue,this.minimum,this.maximum)}}function d(Me,me,be,Ae){if(typeof Me>"u")return me;const Be=s.float(Me,me);return s.clamp(Be,be,Ae)}e.clampedFloat=d;class s extends t{static clamp(me,be,Ae){return meAe?Ae:me}static float(me,be){if(typeof me=="number")return me;if(typeof me>"u")return be;const Ae=parseFloat(me);return isNaN(Ae)?be:Ae}constructor(me,be,Ae,Be,Ke){typeof Ke<"u"&&(Ke.type="number",Ke.default=Ae),super(me,be,Ae,Ke),this.validationFn=Be}validate(me){return this.validationFn(s.float(me,this.defaultValue))}}class l extends t{static string(me,be){return typeof me!="string"?be:me}constructor(me,be,Ae,Be=void 0){typeof Be<"u"&&(Be.type="string",Be.default=Ae),super(me,be,Ae,Be)}validate(me){return l.string(me,this.defaultValue)}}function r(Me,me,be,Ae){return typeof Me!="string"?me:Ae&&Me in Ae?Ae[Me]:be.indexOf(Me)===-1?me:Me}e.stringSet=r;class h extends t{constructor(me,be,Ae,Be,Ke=void 0){typeof Ke<"u"&&(Ke.type="string",Ke.enum=Be,Ke.default=Ae),super(me,be,Ae,Ke),this._allowedValues=Be}validate(me){return r(me,this.defaultValue,this._allowedValues)}}class u extends b{constructor(me,be,Ae,Be,Ke,qe,Ge=void 0){typeof Ge<"u"&&(Ge.type="string",Ge.enum=Ke,Ge.default=Be),super(me,be,Ae,Ge),this._allowedValues=Ke,this._convert=qe}validate(me){return typeof me!="string"?this.defaultValue:this._allowedValues.indexOf(me)===-1?this.defaultValue:this._convert(me)}}function f(Me){switch(Me){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class C extends b{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[p.localize(0,null),p.localize(1,null),p.localize(2,null)],default:"auto",tags:["accessibility"],description:p.localize(3,null)})}validate(me){switch(me){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(me,be,Ae){return Ae===0?me.accessibilitySupport:Ae}}class _ extends b{constructor(){const me={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",me,{"editor.comments.insertSpace":{type:"boolean",default:me.insertSpace,description:p.localize(4,null)},"editor.comments.ignoreEmptyLines":{type:"boolean",default:me.ignoreEmptyLines,description:p.localize(5,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{insertSpace:o(be.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:o(be.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function E(Me){switch(Me){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var I;(function(Me){Me[Me.Line=1]="Line",Me[Me.Block=2]="Block",Me[Me.Underline=3]="Underline",Me[Me.LineThin=4]="LineThin",Me[Me.BlockOutline=5]="BlockOutline",Me[Me.UnderlineThin=6]="UnderlineThin"})(I||(e.TextEditorCursorStyle=I={}));function T(Me){switch(Me){case"line":return I.Line;case"block":return I.Block;case"underline":return I.Underline;case"line-thin":return I.LineThin;case"block-outline":return I.BlockOutline;case"underline-thin":return I.UnderlineThin}}class A extends i{constructor(){super(141)}compute(me,be,Ae){const Be=["monaco-editor"];return be.get(39)&&Be.push(be.get(39)),me.extraEditorClassName&&Be.push(me.extraEditorClassName),be.get(74)==="default"?Be.push("mouse-default"):be.get(74)==="copy"&&Be.push("mouse-copy"),be.get(111)&&Be.push("showUnused"),be.get(139)&&Be.push("showDeprecated"),Be.join(" ")}}class R extends g{constructor(){super(37,"emptySelectionClipboard",!0,{description:p.localize(6,null)})}compute(me,be,Ae){return Ae&&me.emptySelectionClipboard}}class M extends b{constructor(){const me={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",me,{"editor.find.cursorMoveOnType":{type:"boolean",default:me.cursorMoveOnType,description:p.localize(7,null)},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:me.seedSearchStringFromSelection,enumDescriptions:[p.localize(8,null),p.localize(9,null),p.localize(10,null)],description:p.localize(11,null)},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:me.autoFindInSelection,enumDescriptions:[p.localize(12,null),p.localize(13,null),p.localize(14,null)],description:p.localize(15,null)},"editor.find.globalFindClipboard":{type:"boolean",default:me.globalFindClipboard,description:p.localize(16,null),included:y.isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:me.addExtraSpaceOnTop,description:p.localize(17,null)},"editor.find.loop":{type:"boolean",default:me.loop,description:p.localize(18,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{cursorMoveOnType:o(be.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof me.seedSearchStringFromSelection=="boolean"?me.seedSearchStringFromSelection?"always":"never":r(be.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof me.autoFindInSelection=="boolean"?me.autoFindInSelection?"always":"never":r(be.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:o(be.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:o(be.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:o(be.loop,this.defaultValue.loop)}}}class N extends b{constructor(){super(51,"fontLigatures",N.OFF,{anyOf:[{type:"boolean",description:p.localize(19,null)},{type:"string",description:p.localize(20,null)}],description:p.localize(21,null),default:!1})}validate(me){return typeof me>"u"?this.defaultValue:typeof me=="string"?me==="false"||me.length===0?N.OFF:me==="true"?N.ON:me:me?N.ON:N.OFF}}e.EditorFontLigatures=N,N.OFF='"liga" off, "calt" off',N.ON='"liga" on, "calt" on';class P extends b{constructor(){super(54,"fontVariations",P.OFF,{anyOf:[{type:"boolean",description:p.localize(22,null)},{type:"string",description:p.localize(23,null)}],description:p.localize(24,null),default:!1})}validate(me){return typeof me>"u"?this.defaultValue:typeof me=="string"?me==="false"?P.OFF:me==="true"?P.TRANSLATE:me:me?P.TRANSLATE:P.OFF}compute(me,be,Ae){return me.fontInfo.fontVariationSettings}}e.EditorFontVariations=P,P.OFF="normal",P.TRANSLATE="translate";class F extends i{constructor(){super(50)}compute(me,be,Ae){return me.fontInfo}}class O extends t{constructor(){super(52,"fontSize",e.EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:e.EDITOR_FONT_DEFAULTS.fontSize,description:p.localize(25,null)})}validate(me){const be=s.float(me,this.defaultValue);return be===0?e.EDITOR_FONT_DEFAULTS.fontSize:s.clamp(be,6,100)}compute(me,be,Ae){return me.fontInfo.fontSize}}class B extends b{constructor(){super(53,"fontWeight",e.EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:B.MINIMUM_VALUE,maximum:B.MAXIMUM_VALUE,errorMessage:p.localize(26,null)},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:B.SUGGESTION_VALUES}],default:e.EDITOR_FONT_DEFAULTS.fontWeight,description:p.localize(27,null)})}validate(me){return me==="normal"||me==="bold"?me:String(c.clampedInt(me,e.EDITOR_FONT_DEFAULTS.fontWeight,B.MINIMUM_VALUE,B.MAXIMUM_VALUE))}}B.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],B.MINIMUM_VALUE=1,B.MAXIMUM_VALUE=1e3;class W extends b{constructor(){const me={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},be={type:"string",enum:["peek","gotoAndPeek","goto"],default:me.multiple,enumDescriptions:[p.localize(28,null),p.localize(29,null),p.localize(30,null)]},Ae=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",me,{"editor.gotoLocation.multiple":{deprecationMessage:p.localize(31,null)},"editor.gotoLocation.multipleDefinitions":{description:p.localize(32,null),...be},"editor.gotoLocation.multipleTypeDefinitions":{description:p.localize(33,null),...be},"editor.gotoLocation.multipleDeclarations":{description:p.localize(34,null),...be},"editor.gotoLocation.multipleImplementations":{description:p.localize(35,null),...be},"editor.gotoLocation.multipleReferences":{description:p.localize(36,null),...be},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:me.alternativeDefinitionCommand,enum:Ae,description:p.localize(37,null)},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:me.alternativeTypeDefinitionCommand,enum:Ae,description:p.localize(38,null)},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:me.alternativeDeclarationCommand,enum:Ae,description:p.localize(39,null)},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:me.alternativeImplementationCommand,enum:Ae,description:p.localize(40,null)},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:me.alternativeReferenceCommand,enum:Ae,description:p.localize(41,null)}})}validate(me){var be,Ae,Be,Ke,qe;if(!me||typeof me!="object")return this.defaultValue;const Ge=me;return{multiple:r(Ge.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(be=Ge.multipleDefinitions)!==null&&be!==void 0?be:r(Ge.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(Ae=Ge.multipleTypeDefinitions)!==null&&Ae!==void 0?Ae:r(Ge.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(Be=Ge.multipleDeclarations)!==null&&Be!==void 0?Be:r(Ge.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(Ke=Ge.multipleImplementations)!==null&&Ke!==void 0?Ke:r(Ge.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(qe=Ge.multipleReferences)!==null&&qe!==void 0?qe:r(Ge.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:l.string(Ge.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:l.string(Ge.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:l.string(Ge.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:l.string(Ge.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:l.string(Ge.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class V extends b{constructor(){const me={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",me,{"editor.hover.enabled":{type:"boolean",default:me.enabled,description:p.localize(42,null)},"editor.hover.delay":{type:"number",default:me.delay,minimum:0,maximum:1e4,description:p.localize(43,null)},"editor.hover.sticky":{type:"boolean",default:me.sticky,description:p.localize(44,null)},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:me.hidingDelay,description:p.localize(45,null)},"editor.hover.above":{type:"boolean",default:me.above,description:p.localize(46,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),delay:c.clampedInt(be.delay,this.defaultValue.delay,0,1e4),sticky:o(be.sticky,this.defaultValue.sticky),hidingDelay:c.clampedInt(be.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:o(be.above,this.defaultValue.above)}}}class z extends i{constructor(){super(144)}compute(me,be,Ae){return z.computeLayout(be,{memory:me.memory,outerWidth:me.outerWidth,outerHeight:me.outerHeight,isDominatedByLongLines:me.isDominatedByLongLines,lineHeight:me.fontInfo.lineHeight,viewLineCount:me.viewLineCount,lineNumbersDigitCount:me.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:me.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:me.fontInfo.maxDigitWidth,pixelRatio:me.pixelRatio,glyphMarginDecorationLaneCount:me.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(me){const be=me.height/me.lineHeight,Ae=Math.floor(me.paddingTop/me.lineHeight);let Be=Math.floor(me.paddingBottom/me.lineHeight);me.scrollBeyondLastLine&&(Be=Math.max(Be,be-1));const Ke=(Ae+me.viewLineCount+Be)/(me.pixelRatio*me.height),qe=Math.floor(me.viewLineCount/Ke);return{typicalViewportLineCount:be,extraLinesBeforeFirstLine:Ae,extraLinesBeyondLastLine:Be,desiredRatio:Ke,minimapLineCount:qe}}static _computeMinimapLayout(me,be){const Ae=me.outerWidth,Be=me.outerHeight,Ke=me.pixelRatio;if(!me.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(Ke*Be),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:Be};const qe=be.stableMinimapLayoutInput,Ge=qe&&me.outerHeight===qe.outerHeight&&me.lineHeight===qe.lineHeight&&me.typicalHalfwidthCharacterWidth===qe.typicalHalfwidthCharacterWidth&&me.pixelRatio===qe.pixelRatio&&me.scrollBeyondLastLine===qe.scrollBeyondLastLine&&me.paddingTop===qe.paddingTop&&me.paddingBottom===qe.paddingBottom&&me.minimap.enabled===qe.minimap.enabled&&me.minimap.side===qe.minimap.side&&me.minimap.size===qe.minimap.size&&me.minimap.showSlider===qe.minimap.showSlider&&me.minimap.renderCharacters===qe.minimap.renderCharacters&&me.minimap.maxColumn===qe.minimap.maxColumn&&me.minimap.scale===qe.minimap.scale&&me.verticalScrollbarWidth===qe.verticalScrollbarWidth&&me.isViewportWrapping===qe.isViewportWrapping,st=me.lineHeight,Xe=me.typicalHalfwidthCharacterWidth,ot=me.scrollBeyondLastLine,nt=me.minimap.renderCharacters;let rt=Ke>=2?Math.round(me.minimap.scale*2):me.minimap.scale;const at=me.minimap.maxColumn,ut=me.minimap.size,dt=me.minimap.side,vt=me.verticalScrollbarWidth,mt=me.viewLineCount,Le=me.remainingWidth,we=me.isViewportWrapping,Te=nt?2:3;let ke=Math.floor(Ke*Be);const Ee=ke/Ke;let Re=!1,Pe=!1,He=Te*rt,Ue=rt/Ke,Ze=1;if(ut==="fill"||ut==="fit"){const{typicalViewportLineCount:et,extraLinesBeforeFirstLine:Je,extraLinesBeyondLastLine:lt,desiredRatio:tt,minimapLineCount:it}=z.computeContainedMinimapLineCount({viewLineCount:mt,scrollBeyondLastLine:ot,paddingTop:me.paddingTop,paddingBottom:me.paddingBottom,height:Be,lineHeight:st,pixelRatio:Ke});if(mt/it>1)Re=!0,Pe=!0,rt=1,He=1,Ue=rt/Ke;else{let ht=!1,wt=rt+1;if(ut==="fit"){const ct=Math.ceil((Je+mt+lt)*He);we&&Ge&&Le<=be.stableFitRemainingWidth?(ht=!0,wt=be.stableFitMaxMinimapScale):ht=ct>ke}if(ut==="fill"||ht){Re=!0;const ct=rt;He=Math.min(st*Ke,Math.max(1,Math.floor(1/tt))),we&&Ge&&Le<=be.stableFitRemainingWidth&&(wt=be.stableFitMaxMinimapScale),rt=Math.min(wt,Math.max(1,Math.floor(He/Te))),rt>ct&&(Ze=Math.min(2,rt/ct)),Ue=rt/Ke/Ze,ke=Math.ceil(Math.max(et,Je+mt+lt)*He),we?(be.stableMinimapLayoutInput=me,be.stableFitRemainingWidth=Le,be.stableFitMaxMinimapScale=rt):(be.stableMinimapLayoutInput=null,be.stableFitRemainingWidth=0)}}}const Ye=Math.floor(at*Ue),$e=Math.min(Ye,Math.max(0,Math.floor((Le-vt-2)*Ue/(Xe+Ue)))+e.MINIMAP_GUTTER_WIDTH);let Fe=Math.floor(Ke*$e);const Ve=Fe/Ke;Fe=Math.floor(Fe*Ze);const ze=nt?1:2,je=dt==="left"?0:Ae-$e-vt;return{renderMinimap:ze,minimapLeft:je,minimapWidth:$e,minimapHeightIsEditorHeight:Re,minimapIsSampling:Pe,minimapScale:rt,minimapLineHeight:He,minimapCanvasInnerWidth:Fe,minimapCanvasInnerHeight:ke,minimapCanvasOuterWidth:Ve,minimapCanvasOuterHeight:Ee}}static computeLayout(me,be){const Ae=be.outerWidth|0,Be=be.outerHeight|0,Ke=be.lineHeight|0,qe=be.lineNumbersDigitCount|0,Ge=be.typicalHalfwidthCharacterWidth,st=be.maxDigitWidth,Xe=be.pixelRatio,ot=be.viewLineCount,nt=me.get(136),rt=nt==="inherit"?me.get(135):nt,at=rt==="inherit"?me.get(131):rt,ut=me.get(134),dt=be.isDominatedByLongLines,vt=me.get(57),mt=me.get(68).renderType!==0,Le=me.get(69),we=me.get(105),Te=me.get(84),ke=me.get(73),Ee=me.get(103),Re=Ee.verticalScrollbarSize,Pe=Ee.verticalHasArrows,He=Ee.arrowSize,Ue=Ee.horizontalScrollbarSize,Ze=me.get(43),Ye=me.get(110)!=="never";let $e=me.get(66);Ze&&Ye&&($e+=16);let Fe=0;if(mt){const yt=Math.max(qe,Le);Fe=Math.round(yt*st)}let Ve=0;vt&&(Ve=Ke*be.glyphMarginDecorationLaneCount);let ze=0,je=ze+Ve,et=je+Fe,Je=et+$e;const lt=Ae-Ve-Fe-$e;let tt=!1,it=!1,gt=-1;rt==="inherit"&&dt?(tt=!0,it=!0):at==="on"||at==="bounded"?it=!0:at==="wordWrapColumn"&&(gt=ut);const ht=z._computeMinimapLayout({outerWidth:Ae,outerHeight:Be,lineHeight:Ke,typicalHalfwidthCharacterWidth:Ge,pixelRatio:Xe,scrollBeyondLastLine:we,paddingTop:Te.top,paddingBottom:Te.bottom,minimap:ke,verticalScrollbarWidth:Re,viewLineCount:ot,remainingWidth:lt,isViewportWrapping:it},be.memory||new v);ht.renderMinimap!==0&&ht.minimapLeft===0&&(ze+=ht.minimapWidth,je+=ht.minimapWidth,et+=ht.minimapWidth,Je+=ht.minimapWidth);const wt=lt-ht.minimapWidth,ct=Math.max(1,Math.floor((wt-Re-2)/Ge)),St=Pe?He:0;return it&&(gt=Math.max(1,ct),at==="bounded"&&(gt=Math.min(gt,ut))),{width:Ae,height:Be,glyphMarginLeft:ze,glyphMarginWidth:Ve,glyphMarginDecorationLaneCount:be.glyphMarginDecorationLaneCount,lineNumbersLeft:je,lineNumbersWidth:Fe,decorationsLeft:et,decorationsWidth:$e,contentLeft:Je,contentWidth:wt,minimap:ht,viewportColumn:ct,isWordWrapMinified:tt,isViewportWrapping:it,wrappingColumn:gt,verticalScrollbarWidth:Re,horizontalScrollbarHeight:Ue,overviewRuler:{top:St,width:Re,height:Be-2*St,right:0}}}}e.EditorLayoutInfoComputer=z;class K extends b{constructor(){super(138,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[p.localize(47,null),p.localize(48,null)],type:"string",enum:["simple","advanced"],default:"simple",description:p.localize(49,null)}})}validate(me){return r(me,"simple",["simple","advanced"])}compute(me,be,Ae){return be.get(2)===2?"advanced":Ae}}var j;(function(Me){Me.Off="off",Me.OnCode="onCode",Me.On="on"})(j||(e.ShowLightbulbIconMode=j={}));class x extends b{constructor(){const me={enabled:j.OnCode};super(65,"lightbulb",me,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[j.Off,j.OnCode,j.On],default:me.enabled,enumDescriptions:[p.localize(50,null),p.localize(51,null),p.localize(52,null)],description:p.localize(53,null)}})}validate(me){return!me||typeof me!="object"?this.defaultValue:{enabled:r(me.enabled,this.defaultValue.enabled,[j.Off,j.OnCode,j.On])}}}class re extends b{constructor(){const me={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(115,"stickyScroll",me,{"editor.stickyScroll.enabled":{type:"boolean",default:me.enabled,description:p.localize(54,null),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:me.maxLineCount,minimum:1,maximum:20,description:p.localize(55,null)},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:me.defaultModel,description:p.localize(56,null)},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:me.scrollWithEditor,description:p.localize(57,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),maxLineCount:c.clampedInt(be.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:r(be.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:o(be.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class ie extends b{constructor(){const me={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(140,"inlayHints",me,{"editor.inlayHints.enabled":{type:"string",default:me.enabled,description:p.localize(58,null),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[p.localize(59,null),p.localize(60,null,y.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),p.localize(61,null,y.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),p.localize(62,null)]},"editor.inlayHints.fontSize":{type:"number",default:me.fontSize,markdownDescription:p.localize(63,null,"`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:me.fontFamily,markdownDescription:p.localize(64,null,"`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:me.padding,description:p.localize(65,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return typeof be.enabled=="boolean"&&(be.enabled=be.enabled?"on":"off"),{enabled:r(be.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:c.clampedInt(be.fontSize,this.defaultValue.fontSize,0,100),fontFamily:l.string(be.fontFamily,this.defaultValue.fontFamily),padding:o(be.padding,this.defaultValue.padding)}}}class J extends b{constructor(){super(66,"lineDecorationsWidth",10)}validate(me){return typeof me=="string"&&/^\d+(\.\d+)?ch$/.test(me)?-parseFloat(me.substring(0,me.length-2)):c.clampedInt(me,this.defaultValue,0,1e3)}compute(me,be,Ae){return Ae<0?c.clampedInt(-Ae*me.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):Ae}}class X extends s{constructor(){super(67,"lineHeight",e.EDITOR_FONT_DEFAULTS.lineHeight,me=>s.clamp(me,0,150),{markdownDescription:p.localize(66,null)})}compute(me,be,Ae){return me.fontInfo.lineHeight}}class Y extends b{constructor(){const me={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(73,"minimap",me,{"editor.minimap.enabled":{type:"boolean",default:me.enabled,description:p.localize(67,null)},"editor.minimap.autohide":{type:"boolean",default:me.autohide,description:p.localize(68,null)},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[p.localize(69,null),p.localize(70,null),p.localize(71,null)],default:me.size,description:p.localize(72,null)},"editor.minimap.side":{type:"string",enum:["left","right"],default:me.side,description:p.localize(73,null)},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:me.showSlider,description:p.localize(74,null)},"editor.minimap.scale":{type:"number",default:me.scale,minimum:1,maximum:3,enum:[1,2,3],description:p.localize(75,null)},"editor.minimap.renderCharacters":{type:"boolean",default:me.renderCharacters,description:p.localize(76,null)},"editor.minimap.maxColumn":{type:"number",default:me.maxColumn,description:p.localize(77,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),autohide:o(be.autohide,this.defaultValue.autohide),size:r(be.size,this.defaultValue.size,["proportional","fill","fit"]),side:r(be.side,this.defaultValue.side,["right","left"]),showSlider:r(be.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:o(be.renderCharacters,this.defaultValue.renderCharacters),scale:c.clampedInt(be.scale,1,1,3),maxColumn:c.clampedInt(be.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}function le(Me){return Me==="ctrlCmd"?y.isMacintosh?"metaKey":"ctrlKey":"altKey"}class de extends b{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:p.localize(78,null)},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:p.localize(79,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{top:c.clampedInt(be.top,0,0,1e3),bottom:c.clampedInt(be.bottom,0,0,1e3)}}}class ge extends b{constructor(){const me={enabled:!0,cycle:!0};super(86,"parameterHints",me,{"editor.parameterHints.enabled":{type:"boolean",default:me.enabled,description:p.localize(80,null)},"editor.parameterHints.cycle":{type:"boolean",default:me.cycle,description:p.localize(81,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),cycle:o(be.cycle,this.defaultValue.cycle)}}}class pe extends i{constructor(){super(142)}compute(me,be,Ae){return me.pixelRatio}}class Q extends b{constructor(){const me={other:"on",comments:"off",strings:"off"},be=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[p.localize(82,null),p.localize(83,null),p.localize(84,null)]}];super(89,"quickSuggestions",me,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:be,default:me.strings,description:p.localize(85,null)},comments:{anyOf:be,default:me.comments,description:p.localize(86,null)},other:{anyOf:be,default:me.other,description:p.localize(87,null)}},default:me,markdownDescription:p.localize(88,null,"#editor.suggestOnTriggerCharacters#")}),this.defaultValue=me}validate(me){if(typeof me=="boolean"){const Xe=me?"on":"off";return{comments:Xe,strings:Xe,other:Xe}}if(!me||typeof me!="object")return this.defaultValue;const{other:be,comments:Ae,strings:Be}=me,Ke=["on","inline","off"];let qe,Ge,st;return typeof be=="boolean"?qe=be?"on":"off":qe=r(be,this.defaultValue.other,Ke),typeof Ae=="boolean"?Ge=Ae?"on":"off":Ge=r(Ae,this.defaultValue.comments,Ke),typeof Be=="boolean"?st=Be?"on":"off":st=r(Be,this.defaultValue.strings,Ke),{other:qe,comments:Ge,strings:st}}}class U extends b{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[p.localize(89,null),p.localize(90,null),p.localize(91,null),p.localize(92,null)],default:"on",description:p.localize(93,null)})}validate(me){let be=this.defaultValue.renderType,Ae=this.defaultValue.renderFn;return typeof me<"u"&&(typeof me=="function"?(be=4,Ae=me):me==="interval"?be=3:me==="relative"?be=2:me==="on"?be=1:be=0),{renderType:be,renderFn:Ae}}}function Z(Me){const me=Me.get(98);return me==="editable"?Me.get(91):me!=="on"}e.filterValidationDecorations=Z;class H extends b{constructor(){const me=[],be={type:"number",description:p.localize(94,null)};super(102,"rulers",me,{type:"array",items:{anyOf:[be,{type:["object"],properties:{column:be,color:{type:"string",description:p.localize(95,null),format:"color-hex"}}}]},default:me,description:p.localize(96,null)})}validate(me){if(Array.isArray(me)){const be=[];for(const Ae of me)if(typeof Ae=="number")be.push({column:c.clampedInt(Ae,0,0,1e4),color:null});else if(Ae&&typeof Ae=="object"){const Be=Ae;be.push({column:c.clampedInt(Be.column,0,0,1e4),color:Be.color})}return be.sort((Ae,Be)=>Ae.column-Be.column),be}return this.defaultValue}}class q extends b{constructor(){super(92,"readOnlyMessage",void 0)}validate(me){return!me||typeof me!="object"?this.defaultValue:me}}function te(Me,me){if(typeof Me!="string")return me;switch(Me){case"hidden":return 2;case"visible":return 3;default:return 1}}class G extends b{constructor(){const me={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(103,"scrollbar",me,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p.localize(97,null),p.localize(98,null),p.localize(99,null)],default:"auto",description:p.localize(100,null)},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p.localize(101,null),p.localize(102,null),p.localize(103,null)],default:"auto",description:p.localize(104,null)},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:me.verticalScrollbarSize,description:p.localize(105,null)},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:me.horizontalScrollbarSize,description:p.localize(106,null)},"editor.scrollbar.scrollByPage":{type:"boolean",default:me.scrollByPage,description:p.localize(107,null)},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:me.ignoreHorizontalScrollbarInContentHeight,description:p.localize(108,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me,Ae=c.clampedInt(be.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),Be=c.clampedInt(be.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:c.clampedInt(be.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:te(be.vertical,this.defaultValue.vertical),horizontal:te(be.horizontal,this.defaultValue.horizontal),useShadows:o(be.useShadows,this.defaultValue.useShadows),verticalHasArrows:o(be.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:o(be.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:o(be.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:o(be.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:Ae,horizontalSliderSize:c.clampedInt(be.horizontalSliderSize,Ae,0,1e3),verticalScrollbarSize:Be,verticalSliderSize:c.clampedInt(be.verticalSliderSize,Be,0,1e3),scrollByPage:o(be.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:o(be.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}e.inUntrustedWorkspace="inUntrustedWorkspace",e.unicodeHighlightConfigKeys={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class $ extends b{constructor(){const me={nonBasicASCII:e.inUntrustedWorkspace,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:e.inUntrustedWorkspace,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(125,"unicodeHighlight",me,{[e.unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:me.nonBasicASCII,description:p.localize(109,null)},[e.unicodeHighlightConfigKeys.invisibleCharacters]:{restricted:!0,type:"boolean",default:me.invisibleCharacters,description:p.localize(110,null)},[e.unicodeHighlightConfigKeys.ambiguousCharacters]:{restricted:!0,type:"boolean",default:me.ambiguousCharacters,description:p.localize(111,null)},[e.unicodeHighlightConfigKeys.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:me.includeComments,description:p.localize(112,null)},[e.unicodeHighlightConfigKeys.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:me.includeStrings,description:p.localize(113,null)},[e.unicodeHighlightConfigKeys.allowedCharacters]:{restricted:!0,type:"object",default:me.allowedCharacters,description:p.localize(114,null),additionalProperties:{type:"boolean"}},[e.unicodeHighlightConfigKeys.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:me.allowedLocales,description:p.localize(115,null)}})}applyUpdate(me,be){let Ae=!1;be.allowedCharacters&&me&&(k.equals(me.allowedCharacters,be.allowedCharacters)||(me={...me,allowedCharacters:be.allowedCharacters},Ae=!0)),be.allowedLocales&&me&&(k.equals(me.allowedLocales,be.allowedLocales)||(me={...me,allowedLocales:be.allowedLocales},Ae=!0));const Be=super.applyUpdate(me,be);return Ae?new a(Be.newValue,!0):Be}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{nonBasicASCII:fe(be.nonBasicASCII,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),invisibleCharacters:o(be.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:o(be.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:fe(be.includeComments,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),includeStrings:fe(be.includeStrings,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),allowedCharacters:this.validateBooleanMap(me.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(me.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(me,be){if(typeof me!="object"||!me)return be;const Ae={};for(const[Be,Ke]of Object.entries(me))Ke===!0&&(Ae[Be]=!0);return Ae}}class oe extends b{constructor(){const me={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",me,{"editor.inlineSuggest.enabled":{type:"boolean",default:me.enabled,description:p.localize(116,null)},"editor.inlineSuggest.showToolbar":{type:"string",default:me.showToolbar,enum:["always","onHover","never"],enumDescriptions:[p.localize(117,null),p.localize(118,null),p.localize(119,null)],description:p.localize(120,null)},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:me.suppressSuggestions,description:p.localize(121,null)},"editor.inlineSuggest.fontFamily":{type:"string",default:me.fontFamily,description:p.localize(122,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),mode:r(be.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:r(be.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:o(be.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:o(be.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:l.string(be.fontFamily,this.defaultValue.fontFamily)}}}class ae extends b{constructor(){const me={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1,backgroundColoring:!1};super(63,"experimentalInlineEdit",me,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:me.enabled,description:p.localize(123,null)},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:me.showToolbar,enum:["always","onHover","never"],enumDescriptions:[p.localize(124,null),p.localize(125,null),p.localize(126,null)],description:p.localize(127,null)},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:me.fontFamily,description:p.localize(128,null)},"editor.experimentalInlineEdit.backgroundColoring":{type:"boolean",default:me.backgroundColoring,description:p.localize(129,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),showToolbar:r(be.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:l.string(be.fontFamily,this.defaultValue.fontFamily),keepOnBlur:o(be.keepOnBlur,this.defaultValue.keepOnBlur),backgroundColoring:o(be.backgroundColoring,this.defaultValue.backgroundColoring)}}}class ue extends b{constructor(){const me={enabled:D.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:D.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",me,{"editor.bracketPairColorization.enabled":{type:"boolean",default:me.enabled,markdownDescription:p.localize(130,null,"`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:me.independentColorPoolPerBracketType,description:p.localize(131,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:o(be.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class ce extends b{constructor(){const me={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",me,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p.localize(132,null),p.localize(133,null),p.localize(134,null)],default:me.bracketPairs,description:p.localize(135,null)},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p.localize(136,null),p.localize(137,null),p.localize(138,null)],default:me.bracketPairsHorizontal,description:p.localize(139,null)},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:me.highlightActiveBracketPair,description:p.localize(140,null)},"editor.guides.indentation":{type:"boolean",default:me.indentation,description:p.localize(141,null)},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[p.localize(142,null),p.localize(143,null),p.localize(144,null)],default:me.highlightActiveIndentation,description:p.localize(145,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{bracketPairs:fe(be.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:fe(be.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:o(be.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:o(be.indentation,this.defaultValue.indentation),highlightActiveIndentation:fe(be.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function fe(Me,me,be){const Ae=be.indexOf(Me);return Ae===-1?me:be[Ae]}class ve extends b{constructor(){const me={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(118,"suggest",me,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[p.localize(146,null),p.localize(147,null)],default:me.insertMode,description:p.localize(148,null)},"editor.suggest.filterGraceful":{type:"boolean",default:me.filterGraceful,description:p.localize(149,null)},"editor.suggest.localityBonus":{type:"boolean",default:me.localityBonus,description:p.localize(150,null)},"editor.suggest.shareSuggestSelections":{type:"boolean",default:me.shareSuggestSelections,markdownDescription:p.localize(151,null)},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[p.localize(152,null),p.localize(153,null),p.localize(154,null),p.localize(155,null)],default:me.selectionMode,markdownDescription:p.localize(156,null)},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:me.snippetsPreventQuickSuggestions,description:p.localize(157,null)},"editor.suggest.showIcons":{type:"boolean",default:me.showIcons,description:p.localize(158,null)},"editor.suggest.showStatusBar":{type:"boolean",default:me.showStatusBar,description:p.localize(159,null)},"editor.suggest.preview":{type:"boolean",default:me.preview,description:p.localize(160,null)},"editor.suggest.showInlineDetails":{type:"boolean",default:me.showInlineDetails,description:p.localize(161,null)},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:p.localize(162,null)},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:p.localize(163,null)},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:p.localize(164,null)},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:p.localize(165,null)},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:p.localize(166,null)},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:p.localize(167,null)},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:p.localize(168,null)},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:p.localize(169,null)},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:p.localize(170,null)},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:p.localize(171,null)},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:p.localize(172,null)},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:p.localize(173,null)},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:p.localize(174,null)},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:p.localize(175,null)},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:p.localize(176,null)},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:p.localize(177,null)},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:p.localize(178,null)},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:p.localize(179,null)},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:p.localize(180,null)},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:p.localize(181,null)},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:p.localize(182,null)},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:p.localize(183,null)},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:p.localize(184,null)},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:p.localize(185,null)},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:p.localize(186,null)},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:p.localize(187,null)},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:p.localize(188,null)},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:p.localize(189,null)},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:p.localize(190,null)},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:p.localize(191,null)},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:p.localize(192,null)},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:p.localize(193,null)}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{insertMode:r(be.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:o(be.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:o(be.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:o(be.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:o(be.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:r(be.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:o(be.showIcons,this.defaultValue.showIcons),showStatusBar:o(be.showStatusBar,this.defaultValue.showStatusBar),preview:o(be.preview,this.defaultValue.preview),previewMode:r(be.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:o(be.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:o(be.showMethods,this.defaultValue.showMethods),showFunctions:o(be.showFunctions,this.defaultValue.showFunctions),showConstructors:o(be.showConstructors,this.defaultValue.showConstructors),showDeprecated:o(be.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:o(be.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:o(be.showFields,this.defaultValue.showFields),showVariables:o(be.showVariables,this.defaultValue.showVariables),showClasses:o(be.showClasses,this.defaultValue.showClasses),showStructs:o(be.showStructs,this.defaultValue.showStructs),showInterfaces:o(be.showInterfaces,this.defaultValue.showInterfaces),showModules:o(be.showModules,this.defaultValue.showModules),showProperties:o(be.showProperties,this.defaultValue.showProperties),showEvents:o(be.showEvents,this.defaultValue.showEvents),showOperators:o(be.showOperators,this.defaultValue.showOperators),showUnits:o(be.showUnits,this.defaultValue.showUnits),showValues:o(be.showValues,this.defaultValue.showValues),showConstants:o(be.showConstants,this.defaultValue.showConstants),showEnums:o(be.showEnums,this.defaultValue.showEnums),showEnumMembers:o(be.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:o(be.showKeywords,this.defaultValue.showKeywords),showWords:o(be.showWords,this.defaultValue.showWords),showColors:o(be.showColors,this.defaultValue.showColors),showFiles:o(be.showFiles,this.defaultValue.showFiles),showReferences:o(be.showReferences,this.defaultValue.showReferences),showFolders:o(be.showFolders,this.defaultValue.showFolders),showTypeParameters:o(be.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:o(be.showSnippets,this.defaultValue.showSnippets),showUsers:o(be.showUsers,this.defaultValue.showUsers),showIssues:o(be.showIssues,this.defaultValue.showIssues)}}}class Ce extends b{constructor(){super(113,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:p.localize(194,null),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:p.localize(195,null),default:!0,type:"boolean"}})}validate(me){return!me||typeof me!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:o(me.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:o(me.selectSubwords,this.defaultValue.selectSubwords)}}}class Se extends b{constructor(){super(137,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[p.localize(196,null),p.localize(197,null),p.localize(198,null),p.localize(199,null)],description:p.localize(200,null),default:"same"}})}validate(me){switch(me){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(me,be,Ae){return be.get(2)===2?0:Ae}}class _e extends i{constructor(){super(145)}compute(me,be,Ae){const Be=be.get(144);return{isDominatedByLongLines:me.isDominatedByLongLines,isWordWrapMinified:Be.isWordWrapMinified,isViewportWrapping:Be.isViewportWrapping,wrappingColumn:Be.wrappingColumn}}}class Ie extends b{constructor(){const me={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",me,{"editor.dropIntoEditor.enabled":{type:"boolean",default:me.enabled,markdownDescription:p.localize(201,null)},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:p.localize(202,null),enum:["afterDrop","never"],enumDescriptions:[p.localize(203,null),p.localize(204,null)],default:"afterDrop"}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),showDropSelector:r(be.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class Ne extends b{constructor(){const me={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",me,{"editor.pasteAs.enabled":{type:"boolean",default:me.enabled,markdownDescription:p.localize(205,null)},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:p.localize(206,null),enum:["afterPaste","never"],enumDescriptions:[p.localize(207,null),p.localize(208,null)],default:"afterPaste"}})}validate(me){if(!me||typeof me!="object")return this.defaultValue;const be=me;return{enabled:o(be.enabled,this.defaultValue.enabled),showPasteSelector:r(be.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const Oe="Consolas, 'Courier New', monospace",xe="Menlo, Monaco, 'Courier New', monospace",We="'Droid Sans Mono', 'monospace', monospace";e.EDITOR_FONT_DEFAULTS={fontFamily:y.isMacintosh?xe:y.isLinux?We:Oe,fontWeight:"normal",fontSize:y.isMacintosh?12:14,lineHeight:0,letterSpacing:0},e.editorOptionsRegistry=[];function ye(Me){return e.editorOptionsRegistry[Me.id]=Me,Me}e.EditorOptions={acceptSuggestionOnCommitCharacter:ye(new g(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:p.localize(209,null)})),acceptSuggestionOnEnter:ye(new h(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",p.localize(210,null),""],markdownDescription:p.localize(211,null)})),accessibilitySupport:ye(new C),accessibilityPageSize:ye(new c(3,"accessibilityPageSize",10,1,1073741824,{description:p.localize(212,null),tags:["accessibility"]})),ariaLabel:ye(new l(4,"ariaLabel",p.localize(213,null))),ariaRequired:ye(new g(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:ye(new g(8,"screenReaderAnnounceInlineSuggestion",!0,{description:p.localize(214,null),tags:["accessibility"]})),autoClosingBrackets:ye(new h(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p.localize(215,null),p.localize(216,null),""],description:p.localize(217,null)})),autoClosingComments:ye(new h(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p.localize(218,null),p.localize(219,null),""],description:p.localize(220,null)})),autoClosingDelete:ye(new h(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",p.localize(221,null),""],description:p.localize(222,null)})),autoClosingOvertype:ye(new h(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",p.localize(223,null),""],description:p.localize(224,null)})),autoClosingQuotes:ye(new h(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p.localize(225,null),p.localize(226,null),""],description:p.localize(227,null)})),autoIndent:ye(new u(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],f,{enumDescriptions:[p.localize(228,null),p.localize(229,null),p.localize(230,null),p.localize(231,null),p.localize(232,null)],description:p.localize(233,null)})),automaticLayout:ye(new g(13,"automaticLayout",!1)),autoSurround:ye(new h(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[p.localize(234,null),p.localize(235,null),p.localize(236,null),""],description:p.localize(237,null)})),bracketPairColorization:ye(new ue),bracketPairGuides:ye(new ce),stickyTabStops:ye(new g(116,"stickyTabStops",!1,{description:p.localize(238,null)})),codeLens:ye(new g(17,"codeLens",!0,{description:p.localize(239,null)})),codeLensFontFamily:ye(new l(18,"codeLensFontFamily","",{description:p.localize(240,null)})),codeLensFontSize:ye(new c(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:p.localize(241,null)})),colorDecorators:ye(new g(20,"colorDecorators",!0,{description:p.localize(242,null)})),colorDecoratorActivatedOn:ye(new h(147,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[p.localize(243,null),p.localize(244,null),p.localize(245,null)],description:p.localize(246,null)})),colorDecoratorsLimit:ye(new c(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:p.localize(247,null)})),columnSelection:ye(new g(22,"columnSelection",!1,{description:p.localize(248,null)})),comments:ye(new _),contextmenu:ye(new g(24,"contextmenu",!0)),copyWithSyntaxHighlighting:ye(new g(25,"copyWithSyntaxHighlighting",!0,{description:p.localize(249,null)})),cursorBlinking:ye(new u(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],E,{description:p.localize(250,null)})),cursorSmoothCaretAnimation:ye(new h(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[p.localize(251,null),p.localize(252,null),p.localize(253,null)],description:p.localize(254,null)})),cursorStyle:ye(new u(28,"cursorStyle",I.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],T,{description:p.localize(255,null)})),cursorSurroundingLines:ye(new c(29,"cursorSurroundingLines",0,0,1073741824,{description:p.localize(256,null)})),cursorSurroundingLinesStyle:ye(new h(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[p.localize(257,null),p.localize(258,null)],markdownDescription:p.localize(259,null)})),cursorWidth:ye(new c(31,"cursorWidth",0,0,1073741824,{markdownDescription:p.localize(260,null)})),disableLayerHinting:ye(new g(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:ye(new g(33,"disableMonospaceOptimizations",!1)),domReadOnly:ye(new g(34,"domReadOnly",!1)),dragAndDrop:ye(new g(35,"dragAndDrop",!0,{description:p.localize(261,null)})),emptySelectionClipboard:ye(new R),dropIntoEditor:ye(new Ie),stickyScroll:ye(new re),experimentalWhitespaceRendering:ye(new h(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[p.localize(262,null),p.localize(263,null),p.localize(264,null)],description:p.localize(265,null)})),extraEditorClassName:ye(new l(39,"extraEditorClassName","")),fastScrollSensitivity:ye(new s(40,"fastScrollSensitivity",5,Me=>Me<=0?5:Me,{markdownDescription:p.localize(266,null)})),find:ye(new M),fixedOverflowWidgets:ye(new g(42,"fixedOverflowWidgets",!1)),folding:ye(new g(43,"folding",!0,{description:p.localize(267,null)})),foldingStrategy:ye(new h(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[p.localize(268,null),p.localize(269,null)],description:p.localize(270,null)})),foldingHighlight:ye(new g(45,"foldingHighlight",!0,{description:p.localize(271,null)})),foldingImportsByDefault:ye(new g(46,"foldingImportsByDefault",!1,{description:p.localize(272,null)})),foldingMaximumRegions:ye(new c(47,"foldingMaximumRegions",5e3,10,65e3,{description:p.localize(273,null)})),unfoldOnClickAfterEndOfLine:ye(new g(48,"unfoldOnClickAfterEndOfLine",!1,{description:p.localize(274,null)})),fontFamily:ye(new l(49,"fontFamily",e.EDITOR_FONT_DEFAULTS.fontFamily,{description:p.localize(275,null)})),fontInfo:ye(new F),fontLigatures2:ye(new N),fontSize:ye(new O),fontWeight:ye(new B),fontVariations:ye(new P),formatOnPaste:ye(new g(55,"formatOnPaste",!1,{description:p.localize(276,null)})),formatOnType:ye(new g(56,"formatOnType",!1,{description:p.localize(277,null)})),glyphMargin:ye(new g(57,"glyphMargin",!0,{description:p.localize(278,null)})),gotoLocation:ye(new W),hideCursorInOverviewRuler:ye(new g(59,"hideCursorInOverviewRuler",!1,{description:p.localize(279,null)})),hover:ye(new V),inDiffEditor:ye(new g(61,"inDiffEditor",!1)),letterSpacing:ye(new s(64,"letterSpacing",e.EDITOR_FONT_DEFAULTS.letterSpacing,Me=>s.clamp(Me,-5,20),{description:p.localize(280,null)})),lightbulb:ye(new x),lineDecorationsWidth:ye(new J),lineHeight:ye(new X),lineNumbers:ye(new U),lineNumbersMinChars:ye(new c(69,"lineNumbersMinChars",5,1,300)),linkedEditing:ye(new g(70,"linkedEditing",!1,{description:p.localize(281,null)})),links:ye(new g(71,"links",!0,{description:p.localize(282,null)})),matchBrackets:ye(new h(72,"matchBrackets","always",["always","near","never"],{description:p.localize(283,null)})),minimap:ye(new Y),mouseStyle:ye(new h(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:ye(new s(75,"mouseWheelScrollSensitivity",1,Me=>Me===0?1:Me,{markdownDescription:p.localize(284,null)})),mouseWheelZoom:ye(new g(76,"mouseWheelZoom",!1,{markdownDescription:y.isMacintosh?p.localize(285,null):p.localize(286,null)})),multiCursorMergeOverlapping:ye(new g(77,"multiCursorMergeOverlapping",!0,{description:p.localize(287,null)})),multiCursorModifier:ye(new u(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],le,{markdownEnumDescriptions:[p.localize(288,null),p.localize(289,null)],markdownDescription:p.localize(290,null)})),multiCursorPaste:ye(new h(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[p.localize(291,null),p.localize(292,null)],markdownDescription:p.localize(293,null)})),multiCursorLimit:ye(new c(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:p.localize(294,null)})),occurrencesHighlight:ye(new h(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[p.localize(295,null),p.localize(296,null),p.localize(297,null)],markdownDescription:p.localize(298,null)})),overviewRulerBorder:ye(new g(82,"overviewRulerBorder",!0,{description:p.localize(299,null)})),overviewRulerLanes:ye(new c(83,"overviewRulerLanes",3,0,3)),padding:ye(new de),pasteAs:ye(new Ne),parameterHints:ye(new ge),peekWidgetDefaultFocus:ye(new h(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[p.localize(300,null),p.localize(301,null)],description:p.localize(302,null)})),definitionLinkOpensInPeek:ye(new g(88,"definitionLinkOpensInPeek",!1,{description:p.localize(303,null)})),quickSuggestions:ye(new Q),quickSuggestionsDelay:ye(new c(90,"quickSuggestionsDelay",10,0,1073741824,{description:p.localize(304,null)})),readOnly:ye(new g(91,"readOnly",!1)),readOnlyMessage:ye(new q),renameOnType:ye(new g(93,"renameOnType",!1,{description:p.localize(305,null),markdownDeprecationMessage:p.localize(306,null)})),renderControlCharacters:ye(new g(94,"renderControlCharacters",!0,{description:p.localize(307,null),restricted:!0})),renderFinalNewline:ye(new h(95,"renderFinalNewline",y.isLinux?"dimmed":"on",["off","on","dimmed"],{description:p.localize(308,null)})),renderLineHighlight:ye(new h(96,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",p.localize(309,null)],description:p.localize(310,null)})),renderLineHighlightOnlyWhenFocus:ye(new g(97,"renderLineHighlightOnlyWhenFocus",!1,{description:p.localize(311,null)})),renderValidationDecorations:ye(new h(98,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:ye(new h(99,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",p.localize(312,null),p.localize(313,null),p.localize(314,null),""],description:p.localize(315,null)})),revealHorizontalRightPadding:ye(new c(100,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:ye(new g(101,"roundedSelection",!0,{description:p.localize(316,null)})),rulers:ye(new H),scrollbar:ye(new G),scrollBeyondLastColumn:ye(new c(104,"scrollBeyondLastColumn",4,0,1073741824,{description:p.localize(317,null)})),scrollBeyondLastLine:ye(new g(105,"scrollBeyondLastLine",!0,{description:p.localize(318,null)})),scrollPredominantAxis:ye(new g(106,"scrollPredominantAxis",!0,{description:p.localize(319,null)})),selectionClipboard:ye(new g(107,"selectionClipboard",!0,{description:p.localize(320,null),included:y.isLinux})),selectionHighlight:ye(new g(108,"selectionHighlight",!0,{description:p.localize(321,null)})),selectOnLineNumbers:ye(new g(109,"selectOnLineNumbers",!0)),showFoldingControls:ye(new h(110,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[p.localize(322,null),p.localize(323,null),p.localize(324,null)],description:p.localize(325,null)})),showUnused:ye(new g(111,"showUnused",!0,{description:p.localize(326,null)})),showDeprecated:ye(new g(139,"showDeprecated",!0,{description:p.localize(327,null)})),inlayHints:ye(new ie),snippetSuggestions:ye(new h(112,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[p.localize(328,null),p.localize(329,null),p.localize(330,null),p.localize(331,null)],description:p.localize(332,null)})),smartSelect:ye(new Ce),smoothScrolling:ye(new g(114,"smoothScrolling",!1,{description:p.localize(333,null)})),stopRenderingLineAfter:ye(new c(117,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:ye(new ve),inlineSuggest:ye(new oe),inlineEdit:ye(new ae),inlineCompletionsAccessibilityVerbose:ye(new g(148,"inlineCompletionsAccessibilityVerbose",!1,{description:p.localize(334,null)})),suggestFontSize:ye(new c(119,"suggestFontSize",0,0,1e3,{markdownDescription:p.localize(335,null,"`0`","`#editor.fontSize#`")})),suggestLineHeight:ye(new c(120,"suggestLineHeight",0,0,1e3,{markdownDescription:p.localize(336,null,"`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:ye(new g(121,"suggestOnTriggerCharacters",!0,{description:p.localize(337,null)})),suggestSelection:ye(new h(122,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[p.localize(338,null),p.localize(339,null),p.localize(340,null)],description:p.localize(341,null)})),tabCompletion:ye(new h(123,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[p.localize(342,null),p.localize(343,null),p.localize(344,null)],description:p.localize(345,null)})),tabIndex:ye(new c(124,"tabIndex",0,-1,1073741824)),unicodeHighlight:ye(new $),unusualLineTerminators:ye(new h(126,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[p.localize(346,null),p.localize(347,null),p.localize(348,null)],description:p.localize(349,null)})),useShadowDOM:ye(new g(127,"useShadowDOM",!0)),useTabStops:ye(new g(128,"useTabStops",!0,{description:p.localize(350,null)})),wordBreak:ye(new h(129,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[p.localize(351,null),p.localize(352,null)],description:p.localize(353,null)})),wordSeparators:ye(new l(130,"wordSeparators",S.USUAL_WORD_SEPARATORS,{description:p.localize(354,null)})),wordWrap:ye(new h(131,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[p.localize(355,null),p.localize(356,null),p.localize(357,null),p.localize(358,null)],description:p.localize(359,null)})),wordWrapBreakAfterCharacters:ye(new l(132,"wordWrapBreakAfterCharacters"," })]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:ye(new l(133,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:ye(new c(134,"wordWrapColumn",80,1,1073741824,{markdownDescription:p.localize(360,null)})),wordWrapOverride1:ye(new h(135,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:ye(new h(136,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:ye(new A),defaultColorDecorators:ye(new g(146,"defaultColorDecorators",!1,{markdownDescription:p.localize(361,null)})),pixelRatio:ye(new pe),tabFocusMode:ye(new g(143,"tabFocusMode",!1,{markdownDescription:p.localize(362,null)})),layoutInfo:ye(new z),wrappingInfo:ye(new _e),wrappingIndent:ye(new Se),wrappingStrategy:ye(new K)}}),define(ne[646],se([1,0,6,41,11,74,36,9,5,206]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursor=void 0;class b{constructor(i,t,o,g,m,c,d){this.top=i,this.left=t,this.paddingLeft=o,this.width=g,this.height=m,this.textContent=c,this.textContentClassName=d}}class a{constructor(i){this._context=i;const t=this._context.configuration.options,o=t.get(50);this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,k.createFastDomNode)(document.createElement("div")),this._domNode.setClassName(`cursor ${v.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),(0,D.applyFontInfo)(this._domNode,o),this._domNode.setDisplay("none"),this._position=new p.Position(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(i){const t=this._context.configuration.options,o=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),(0,D.applyFontInfo)(this._domNode,o),!0}onCursorPositionChanged(i,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=i,!0}_getGraphemeAwarePosition(){const{lineNumber:i,column:t}=this._position,o=this._context.viewModel.getLineContent(i),[g,m]=y.getCharContainingOffset(o,t-1);return[new p.Position(i,g+1),o.substring(g,m)]}_prepareRender(i){let t="",o="";const[g,m]=this._getGraphemeAwarePosition();if(this._cursorStyle===S.TextEditorCursorStyle.Line||this._cursorStyle===S.TextEditorCursorStyle.LineThin){const u=i.visibleRangeForPosition(g);if(!u||u.outsideRenderedLine)return null;const f=L.getWindow(this._domNode.domNode);let C;this._cursorStyle===S.TextEditorCursorStyle.Line?(C=L.computeScreenAwareSize(f,this._lineCursorWidth>0?this._lineCursorWidth:2),C>2&&(t=m,o=this._getTokenClassName(g))):C=L.computeScreenAwareSize(f,1);let _=u.left,E=0;C>=2&&_>=1&&(E=1,_-=E);const I=i.getVerticalOffsetForLineNumber(g.lineNumber)-i.bigNumbersDelta;return new b(I,_,E,C,this._lineHeight,t,o)}const c=i.linesVisibleRangesForRange(new w.Range(g.lineNumber,g.column,g.lineNumber,g.column+m.length),!1);if(!c||c.length===0)return null;const d=c[0];if(d.outsideRenderedLine||d.ranges.length===0)return null;const s=d.ranges[0],l=m===" "?this._typicalHalfwidthCharacterWidth:s.width<1?this._typicalHalfwidthCharacterWidth:s.width;this._cursorStyle===S.TextEditorCursorStyle.Block&&(t=m,o=this._getTokenClassName(g));let r=i.getVerticalOffsetForLineNumber(g.lineNumber)-i.bigNumbersDelta,h=this._lineHeight;return(this._cursorStyle===S.TextEditorCursorStyle.Underline||this._cursorStyle===S.TextEditorCursorStyle.UnderlineThin)&&(r+=this._lineHeight-2,h=2),new b(r,s.left,0,l,h,t,o)}_getTokenClassName(i){const t=this._context.viewModel.getViewLineData(i.lineNumber),o=t.tokens.findTokenIndexAtOffset(i.column-1);return t.tokens.getClassName(o)}prepareRender(i){this._renderData=this._prepareRender(i)}render(i){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${v.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}e.ViewCursor=a}),define(ne[647],se([1,0,32,286,36]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorOptions=void 0;class D{get editorOptions(){return this._options}constructor(w){this._diffEditorWidth=(0,L.observableValue)(this,0),this.couldShowInlineViewBecauseOfSize=(0,L.derived)(this,b=>this._options.read(b).renderSideBySide&&this._diffEditorWidth.read(b)<=this._options.read(b).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=(0,L.derived)(this,b=>this._options.read(b).renderOverviewRuler),this.renderSideBySide=(0,L.derived)(this,b=>this._options.read(b).renderSideBySide&&!(this._options.read(b).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(b))),this.readOnly=(0,L.derived)(this,b=>this._options.read(b).readOnly),this.shouldRenderRevertArrows=(0,L.derived)(this,b=>!(!this._options.read(b).renderMarginRevertIcon||!this.renderSideBySide.read(b)||this.readOnly.read(b))),this.renderIndicators=(0,L.derived)(this,b=>this._options.read(b).renderIndicators),this.enableSplitViewResizing=(0,L.derived)(this,b=>this._options.read(b).enableSplitViewResizing),this.splitViewDefaultRatio=(0,L.derived)(this,b=>this._options.read(b).splitViewDefaultRatio),this.ignoreTrimWhitespace=(0,L.derived)(this,b=>this._options.read(b).ignoreTrimWhitespace),this.maxComputationTimeMs=(0,L.derived)(this,b=>this._options.read(b).maxComputationTime),this.showMoves=(0,L.derived)(this,b=>this._options.read(b).experimental.showMoves&&this.renderSideBySide.read(b)),this.isInEmbeddedEditor=(0,L.derived)(this,b=>this._options.read(b).isInEmbeddedEditor),this.diffWordWrap=(0,L.derived)(this,b=>this._options.read(b).diffWordWrap),this.originalEditable=(0,L.derived)(this,b=>this._options.read(b).originalEditable),this.diffCodeLens=(0,L.derived)(this,b=>this._options.read(b).diffCodeLens),this.accessibilityVerbose=(0,L.derived)(this,b=>this._options.read(b).accessibilityVerbose),this.diffAlgorithm=(0,L.derived)(this,b=>this._options.read(b).diffAlgorithm),this.showEmptyDecorations=(0,L.derived)(this,b=>this._options.read(b).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=(0,L.derived)(this,b=>this._options.read(b).onlyShowAccessibleDiffViewer),this.hideUnchangedRegions=(0,L.derived)(this,b=>this._options.read(b).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=(0,L.derived)(this,b=>this._options.read(b).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=(0,L.derived)(this,b=>this._options.read(b).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=(0,L.derived)(this,b=>this._options.read(b).hideUnchangedRegions.minimumLineCount);const v={...w,...S(w,k.diffEditorDefaultOptions)};this._options=(0,L.observableValue)(this,v)}updateOptions(w){const v=S(w,this._options.get()),b={...this._options.get(),...w,...v};this._options.set(b,void 0,{changedOptions:w})}setWidth(w){this._diffEditorWidth.set(w,void 0)}}e.DiffEditorOptions=D;function S(p,w){var v,b,a,n,i,t,o,g;return{enableSplitViewResizing:(0,y.boolean)(p.enableSplitViewResizing,w.enableSplitViewResizing),splitViewDefaultRatio:(0,y.clampedFloat)(p.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:(0,y.boolean)(p.renderSideBySide,w.renderSideBySide),renderMarginRevertIcon:(0,y.boolean)(p.renderMarginRevertIcon,w.renderMarginRevertIcon),maxComputationTime:(0,y.clampedInt)(p.maxComputationTime,w.maxComputationTime,0,1073741824),maxFileSize:(0,y.clampedInt)(p.maxFileSize,w.maxFileSize,0,1073741824),ignoreTrimWhitespace:(0,y.boolean)(p.ignoreTrimWhitespace,w.ignoreTrimWhitespace),renderIndicators:(0,y.boolean)(p.renderIndicators,w.renderIndicators),originalEditable:(0,y.boolean)(p.originalEditable,w.originalEditable),diffCodeLens:(0,y.boolean)(p.diffCodeLens,w.diffCodeLens),renderOverviewRuler:(0,y.boolean)(p.renderOverviewRuler,w.renderOverviewRuler),diffWordWrap:(0,y.stringSet)(p.diffWordWrap,w.diffWordWrap,["off","on","inherit"]),diffAlgorithm:(0,y.stringSet)(p.diffAlgorithm,w.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:(0,y.boolean)(p.accessibilityVerbose,w.accessibilityVerbose),experimental:{showMoves:(0,y.boolean)((v=p.experimental)===null||v===void 0?void 0:v.showMoves,w.experimental.showMoves),showEmptyDecorations:(0,y.boolean)((b=p.experimental)===null||b===void 0?void 0:b.showEmptyDecorations,w.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:(0,y.boolean)((n=(a=p.hideUnchangedRegions)===null||a===void 0?void 0:a.enabled)!==null&&n!==void 0?n:(i=p.experimental)===null||i===void 0?void 0:i.collapseUnchangedRegions,w.hideUnchangedRegions.enabled),contextLineCount:(0,y.clampedInt)((t=p.hideUnchangedRegions)===null||t===void 0?void 0:t.contextLineCount,w.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:(0,y.clampedInt)((o=p.hideUnchangedRegions)===null||o===void 0?void 0:o.minimumLineCount,w.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:(0,y.clampedInt)((g=p.hideUnchangedRegions)===null||g===void 0?void 0:g.revealLineCount,w.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:(0,y.boolean)(p.isInEmbeddedEditor,w.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:(0,y.boolean)(p.onlyShowAccessibleDiffViewer,w.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:(0,y.clampedInt)(p.renderSideBySideInlineBreakpoint,w.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:(0,y.boolean)(p.useInlineViewWhenSpaceIsLimited,w.useInlineViewWhenSpaceIsLimited)}}}),define(ne[241],se([1,0,17,36,153]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FontInfo=e.SERIALIZED_FONT_INFO_VERSION=e.BareFontInfo=void 0;const D=L.isMacintosh?1.5:1.35,S=8;class p{static createFromValidatedSettings(b,a,n){const i=b.get(49),t=b.get(53),o=b.get(52),g=b.get(51),m=b.get(54),c=b.get(67),d=b.get(64);return p._create(i,t,o,g,m,c,d,a,n)}static _create(b,a,n,i,t,o,g,m,c){o===0?o=D*n:o{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(n)},5e3))}_evictUntrustedReadings(n){const i=this._ensureCache(n),t=i.getValues();let o=!1;for(const g of t)g.isTrusted||(o=!0,i.remove(g));o&&this._onDidChange.fire()}readFontInfo(n,i){const t=this._ensureCache(n);if(!t.has(i)){let o=this._actualReadFontInfo(n,i);(o.typicalHalfwidthCharacterWidth<=2||o.typicalFullwidthCharacterWidth<=2||o.spaceWidth<=2||o.maxDigitWidth<=2)&&(o=new w.FontInfo({pixelRatio:k.PixelRatio.getInstance(n).value,fontFamily:o.fontFamily,fontWeight:o.fontWeight,fontSize:o.fontSize,fontFeatureSettings:o.fontFeatureSettings,fontVariationSettings:o.fontVariationSettings,lineHeight:o.lineHeight,letterSpacing:o.letterSpacing,isMonospace:o.isMonospace,typicalHalfwidthCharacterWidth:Math.max(o.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(o.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:o.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(o.spaceWidth,5),middotWidth:Math.max(o.middotWidth,5),wsmiddotWidth:Math.max(o.wsmiddotWidth,5),maxDigitWidth:Math.max(o.maxDigitWidth,5)},!1)),this._writeToCache(n,i,o)}return t.get(i)}_createRequest(n,i,t,o){const g=new S.CharWidthRequest(n,i);return t.push(g),o?.push(g),g}_actualReadFontInfo(n,i){const t=[],o=[],g=this._createRequest("n",0,t,o),m=this._createRequest("\uFF4D",0,t,null),c=this._createRequest(" ",0,t,o),d=this._createRequest("0",0,t,o),s=this._createRequest("1",0,t,o),l=this._createRequest("2",0,t,o),r=this._createRequest("3",0,t,o),h=this._createRequest("4",0,t,o),u=this._createRequest("5",0,t,o),f=this._createRequest("6",0,t,o),C=this._createRequest("7",0,t,o),_=this._createRequest("8",0,t,o),E=this._createRequest("9",0,t,o),I=this._createRequest("\u2192",0,t,o),T=this._createRequest("\uFFEB",0,t,null),A=this._createRequest("\xB7",0,t,o),R=this._createRequest("\u2E31",0,t,null),M="|/-_ilm%";for(let B=0,W=M.length;B.001){P=!1;break}}let O=!0;return P&&T.width!==F&&(O=!1),T.width>I.width&&(O=!1),new w.FontInfo({pixelRatio:k.PixelRatio.getInstance(n).value,fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,fontVariationSettings:i.fontVariationSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:P,typicalHalfwidthCharacterWidth:g.width,typicalFullwidthCharacterWidth:m.width,canUseHalfwidthRightwardsArrow:O,spaceWidth:c.width,middotWidth:A.width,wsmiddotWidth:R.width,maxDigitWidth:N},!0)}}e.FontMeasurementsImpl=v;class b{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(n){const i=n.getId();return!!this._values[i]}get(n){const i=n.getId();return this._values[i]}put(n,i){const t=n.getId();this._keys[t]=n,this._values[t]=i}remove(n){const i=n.getId();delete this._keys[i],delete this._values[i]}getValues(){return Object.keys(this._keys).map(n=>this._values[n])}}e.FontMeasurements=new v}),define(ne[342],se([1,0,9,5,86,36]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isModelDecorationInString=e.isModelDecorationInComment=e.isModelDecorationVisible=e.ViewModelDecorations=void 0;class S{constructor(n,i,t,o,g){this.editorId=n,this.model=i,this.configuration=t,this._linesCollection=o,this._coordinatesConverter=g,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(n){const i=n.id;let t=this._decorationsCache[i];if(!t){const o=n.range,g=n.options;let m;if(g.isWholeLine){const c=this._coordinatesConverter.convertModelPositionToViewPosition(new L.Position(o.startLineNumber,1),0,!1,!0),d=this._coordinatesConverter.convertModelPositionToViewPosition(new L.Position(o.endLineNumber,this.model.getLineMaxColumn(o.endLineNumber)),1);m=new k.Range(c.lineNumber,c.column,d.lineNumber,d.column)}else m=this._coordinatesConverter.convertModelRangeToViewRange(o,1);t=new y.ViewModelDecoration(m,g),this._decorationsCache[i]=t}return t}getMinimapDecorationsInRange(n){return this._getDecorationsInRange(n,!0,!1).decorations}getDecorationsViewportData(n){let i=this._cachedModelDecorationsResolver!==null;return i=i&&n.equalsRange(this._cachedModelDecorationsResolverViewRange),i||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(n,!1,!1),this._cachedModelDecorationsResolverViewRange=n),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(n,i=!1,t=!1){const o=new k.Range(n,this._linesCollection.getViewLineMinColumn(n),n,this._linesCollection.getViewLineMaxColumn(n));return this._getDecorationsInRange(o,i,t).inlineDecorations[0]}_getDecorationsInRange(n,i,t){const o=this._linesCollection.getDecorationsInRange(n,this.editorId,(0,D.filterValidationDecorations)(this.configuration.options),i,t),g=n.startLineNumber,m=n.endLineNumber,c=[];let d=0;const s=[];for(let l=g;l<=m;l++)s[l-g]=[];for(let l=0,r=o.length;li===1)}e.isModelDecorationInComment=w;function v(a,n){return b(a,n.range,i=>i===2)}e.isModelDecorationInString=v;function b(a,n,i){for(let t=n.startLineNumber;t<=n.endLineNumber;t++){const o=a.tokenization.getLineTokens(t),g=t===n.startLineNumber,m=t===n.endLineNumber;let c=g?o.findTokenIndexAtOffset(n.startColumn-1):0;for(;cn.endColumn-1);){if(!i(o.getStandardTokenType(c)))return!1;c++}}return!0}}),define(ne[648],se([3,4]),function(ee,e){return ee.create("vs/editor/common/core/editorColorRegistry",e)}),define(ne[649],se([3,4]),function(ee,e){return ee.create("vs/editor/common/editorContextKeys",e)}),define(ne[650],se([3,4]),function(ee,e){return ee.create("vs/editor/common/languages",e)}),define(ne[30],se([1,0,27,22,5,539,650]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditTriggerKind=e.TokenizationRegistry=e.LazyTokenizationSupport=e.InlayHintKind=e.Command=e.NewSymbolNameTag=e.FoldingRangeKind=e.TextEdit=e.SymbolKinds=e.getAriaLabelForSymbol=e.symbolKindNames=e.isLocationLink=e.DocumentHighlightKind=e.SignatureHelpTriggerKind=e.SelectedSuggestionInfo=e.InlineCompletionTriggerKind=e.CompletionItemKinds=e.EncodedTokenizationResult=e.TokenizationResult=e.Token=void 0;class p{constructor(C,_,E){this.offset=C,this.type=_,this.language=E,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}e.Token=p;class w{constructor(C,_){this.tokens=C,this.endState=_,this._tokenizationResultBrand=void 0}}e.TokenizationResult=w;class v{constructor(C,_){this.tokens=C,this.endState=_,this._encodedTokenizationResultBrand=void 0}}e.EncodedTokenizationResult=v;var b;(function(f){const C=new Map;C.set(0,L.Codicon.symbolMethod),C.set(1,L.Codicon.symbolFunction),C.set(2,L.Codicon.symbolConstructor),C.set(3,L.Codicon.symbolField),C.set(4,L.Codicon.symbolVariable),C.set(5,L.Codicon.symbolClass),C.set(6,L.Codicon.symbolStruct),C.set(7,L.Codicon.symbolInterface),C.set(8,L.Codicon.symbolModule),C.set(9,L.Codicon.symbolProperty),C.set(10,L.Codicon.symbolEvent),C.set(11,L.Codicon.symbolOperator),C.set(12,L.Codicon.symbolUnit),C.set(13,L.Codicon.symbolValue),C.set(15,L.Codicon.symbolEnum),C.set(14,L.Codicon.symbolConstant),C.set(15,L.Codicon.symbolEnum),C.set(16,L.Codicon.symbolEnumMember),C.set(17,L.Codicon.symbolKeyword),C.set(27,L.Codicon.symbolSnippet),C.set(18,L.Codicon.symbolText),C.set(19,L.Codicon.symbolColor),C.set(20,L.Codicon.symbolFile),C.set(21,L.Codicon.symbolReference),C.set(22,L.Codicon.symbolCustomColor),C.set(23,L.Codicon.symbolFolder),C.set(24,L.Codicon.symbolTypeParameter),C.set(25,L.Codicon.account),C.set(26,L.Codicon.issues);function _(T){let A=C.get(T);return A||(console.info("No codicon found for CompletionItemKind "+T),A=L.Codicon.symbolProperty),A}f.toIcon=_;const E=new Map;E.set("method",0),E.set("function",1),E.set("constructor",2),E.set("field",3),E.set("variable",4),E.set("class",5),E.set("struct",6),E.set("interface",7),E.set("module",8),E.set("property",9),E.set("event",10),E.set("operator",11),E.set("unit",12),E.set("value",13),E.set("constant",14),E.set("enum",15),E.set("enum-member",16),E.set("enumMember",16),E.set("keyword",17),E.set("snippet",27),E.set("text",18),E.set("color",19),E.set("file",20),E.set("reference",21),E.set("customcolor",22),E.set("folder",23),E.set("type-parameter",24),E.set("typeParameter",24),E.set("account",25),E.set("issue",26);function I(T,A){let R=E.get(T);return typeof R>"u"&&!A&&(R=9),R}f.fromString=I})(b||(e.CompletionItemKinds=b={}));var a;(function(f){f[f.Automatic=0]="Automatic",f[f.Explicit=1]="Explicit"})(a||(e.InlineCompletionTriggerKind=a={}));class n{constructor(C,_,E,I){this.range=C,this.text=_,this.completionKind=E,this.isSnippetText=I}equals(C){return y.Range.lift(this.range).equalsRange(C.range)&&this.text===C.text&&this.completionKind===C.completionKind&&this.isSnippetText===C.isSnippetText}}e.SelectedSuggestionInfo=n;var i;(function(f){f[f.Invoke=1]="Invoke",f[f.TriggerCharacter=2]="TriggerCharacter",f[f.ContentChange=3]="ContentChange"})(i||(e.SignatureHelpTriggerKind=i={}));var t;(function(f){f[f.Text=0]="Text",f[f.Read=1]="Read",f[f.Write=2]="Write"})(t||(e.DocumentHighlightKind=t={}));function o(f){return f&&k.URI.isUri(f.uri)&&y.Range.isIRange(f.range)&&(y.Range.isIRange(f.originSelectionRange)||y.Range.isIRange(f.targetSelectionRange))}e.isLocationLink=o,e.symbolKindNames={17:(0,S.localize)(0,null),16:(0,S.localize)(1,null),4:(0,S.localize)(2,null),13:(0,S.localize)(3,null),8:(0,S.localize)(4,null),9:(0,S.localize)(5,null),21:(0,S.localize)(6,null),23:(0,S.localize)(7,null),7:(0,S.localize)(8,null),0:(0,S.localize)(9,null),11:(0,S.localize)(10,null),10:(0,S.localize)(11,null),19:(0,S.localize)(12,null),5:(0,S.localize)(13,null),1:(0,S.localize)(14,null),2:(0,S.localize)(15,null),20:(0,S.localize)(16,null),15:(0,S.localize)(17,null),18:(0,S.localize)(18,null),24:(0,S.localize)(19,null),3:(0,S.localize)(20,null),6:(0,S.localize)(21,null),14:(0,S.localize)(22,null),22:(0,S.localize)(23,null),25:(0,S.localize)(24,null),12:(0,S.localize)(25,null)};function g(f,C){return(0,S.localize)(26,null,f,e.symbolKindNames[C])}e.getAriaLabelForSymbol=g;var m;(function(f){const C=new Map;C.set(0,L.Codicon.symbolFile),C.set(1,L.Codicon.symbolModule),C.set(2,L.Codicon.symbolNamespace),C.set(3,L.Codicon.symbolPackage),C.set(4,L.Codicon.symbolClass),C.set(5,L.Codicon.symbolMethod),C.set(6,L.Codicon.symbolProperty),C.set(7,L.Codicon.symbolField),C.set(8,L.Codicon.symbolConstructor),C.set(9,L.Codicon.symbolEnum),C.set(10,L.Codicon.symbolInterface),C.set(11,L.Codicon.symbolFunction),C.set(12,L.Codicon.symbolVariable),C.set(13,L.Codicon.symbolConstant),C.set(14,L.Codicon.symbolString),C.set(15,L.Codicon.symbolNumber),C.set(16,L.Codicon.symbolBoolean),C.set(17,L.Codicon.symbolArray),C.set(18,L.Codicon.symbolObject),C.set(19,L.Codicon.symbolKey),C.set(20,L.Codicon.symbolNull),C.set(21,L.Codicon.symbolEnumMember),C.set(22,L.Codicon.symbolStruct),C.set(23,L.Codicon.symbolEvent),C.set(24,L.Codicon.symbolOperator),C.set(25,L.Codicon.symbolTypeParameter);function _(E){let I=C.get(E);return I||(console.info("No codicon found for SymbolKind "+E),I=L.Codicon.symbolProperty),I}f.toIcon=_})(m||(e.SymbolKinds=m={}));class c{}e.TextEdit=c;class d{static fromValue(C){switch(C){case"comment":return d.Comment;case"imports":return d.Imports;case"region":return d.Region}return new d(C)}constructor(C){this.value=C}}e.FoldingRangeKind=d,d.Comment=new d("comment"),d.Imports=new d("imports"),d.Region=new d("region");var s;(function(f){f[f.AIGenerated=1]="AIGenerated"})(s||(e.NewSymbolNameTag=s={}));var l;(function(f){function C(_){return!_||typeof _!="object"?!1:typeof _.id=="string"&&typeof _.title=="string"}f.is=C})(l||(e.Command=l={}));var r;(function(f){f[f.Type=1]="Type",f[f.Parameter=2]="Parameter"})(r||(e.InlayHintKind=r={}));class h{constructor(C){this.createSupport=C,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(C=>{C&&C.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}e.LazyTokenizationSupport=h,e.TokenizationRegistry=new D.TokenizationRegistry;var u;(function(f){f[f.Invoke=0]="Invoke",f[f.Automatic=1]="Automatic"})(u||(e.InlineEditTriggerKind=u={}))}),define(ne[162],se([1,0,30]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.nullTokenizeEncoded=e.nullTokenize=e.NullState=void 0,e.NullState=new class{clone(){return this}equals(D){return this===D}};function k(D,S){return new L.TokenizationResult([new L.Token(0,"",D)],S)}e.nullTokenize=k;function y(D,S){const p=new Uint32Array(2);return p[0]=0,p[1]=(D<<0|0|0|32768|2<<24)>>>0,new L.EncodedTokenizationResult(p,S===null?e.NullState:S)}e.nullTokenizeEncoded=y}),define(ne[343],se([1,0,11,97,30,162]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e._tokenizeToString=e.tokenizeLineToHTML=e.tokenizeToString=void 0;const S={getInitialState:()=>D.NullState,tokenizeEncoded:(b,a,n)=>(0,D.nullTokenizeEncoded)(0,n)};async function p(b,a,n){if(!n)return v(a,b.languageIdCodec,S);const i=await y.TokenizationRegistry.getOrCreate(n);return v(a,b.languageIdCodec,i||S)}e.tokenizeToString=p;function w(b,a,n,i,t,o,g){let m="
    ",c=i,d=0,s=!0;for(let l=0,r=a.getCount();l0;)g&&s?(u+=" ",s=!1):(u+=" ",s=!0),C--;break}case 60:u+="<",s=!1;break;case 62:u+=">",s=!1;break;case 38:u+="&",s=!1;break;case 0:u+="�",s=!1;break;case 65279:case 8232:case 8233:case 133:u+="\uFFFD",s=!1;break;case 13:u+="​",s=!1;break;case 32:g&&s?(u+=" ",s=!1):(u+=" ",s=!0);break;default:u+=String.fromCharCode(f),s=!1}}if(m+=`${u}`,h>t||c>=t)break}return m+="
    ",m}e.tokenizeLineToHTML=w;function v(b,a,n){let i='
    ';const t=L.splitLines(b);let o=n.getInitialState();for(let g=0,m=t.length;g0&&(i+="
    ");const d=n.tokenizeEncoded(c,!0,o);k.LineTokens.convertToEndOffset(d.tokens,c.length);const l=new k.LineTokens(d.tokens,c,a).inflate();let r=0;for(let h=0,u=l.getCount();h${L.escape(c.substring(r,C))}`,r=C}o=d.endState}return i+="
    ",i}e._tokenizeToString=v}),define(ne[651],se([1,0,15,12,17,63,133,64,75,162,532,306,97]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultBackgroundTokenizer=e.RangePriorityQueueImpl=e.TokenizationStateStore=e.TrackingTokenizationStateStore=e.TokenizerWithStateStoreAndTextModel=e.TokenizerWithStateStore=void 0;class i{constructor(l,r){this.tokenizationSupport=r,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new o(l)}getStartState(l){return this.store.getStartState(l,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}e.TokenizerWithStateStore=i;class t extends i{constructor(l,r,h,u){super(l,r),this._textModel=h,this._languageIdCodec=u}updateTokensUntilLine(l,r){const h=this._textModel.getLanguageId();for(;;){const u=this.getFirstInvalidLine();if(!u||u.lineNumber>r)break;const f=this._textModel.getLineContent(u.lineNumber),C=c(this._languageIdCodec,h,this.tokenizationSupport,f,!0,u.startState);l.add(u.lineNumber,C.tokens),this.store.setEndState(u.lineNumber,C.endState)}}getTokenTypeIfInsertingCharacter(l,r){const h=this.getStartState(l.lineNumber);if(!h)return 0;const u=this._textModel.getLanguageId(),f=this._textModel.getLineContent(l.lineNumber),C=f.substring(0,l.column-1)+r+f.substring(l.column-1),_=c(this._languageIdCodec,u,this.tokenizationSupport,C,!0,h),E=new n.LineTokens(_.tokens,C,this._languageIdCodec);if(E.getCount()===0)return 0;const I=E.findTokenIndexAtOffset(l.column-1);return E.getStandardTokenType(I)}tokenizeLineWithEdit(l,r,h){const u=l.lineNumber,f=l.column,C=this.getStartState(u);if(!C)return null;const _=this._textModel.getLineContent(u),E=_.substring(0,f-1)+h+_.substring(f-1+r),I=this._textModel.getLanguageIdAtPosition(u,0),T=c(this._languageIdCodec,I,this.tokenizationSupport,E,!0,C);return new n.LineTokens(T.tokens,E,this._languageIdCodec)}isCheapToTokenize(l){const r=this.store.getFirstInvalidEndStateLineNumberOrMax();return l1&&_>=1;_--){const E=this._textModel.getLineFirstNonWhitespaceColumn(_);if(E!==0&&E0&&h>0&&(h--,r--),this._lineEndStates.replace(l.startLineNumber,h,r)}}e.TokenizationStateStore=g;class m{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(l){const r=this._ranges.findIndex(h=>h.contains(l));if(r!==-1){const h=this._ranges[r];h.start===l?h.endExclusive===l+1?this._ranges.splice(r,1):this._ranges[r]=new w.OffsetRange(l+1,h.endExclusive):h.endExclusive===l+1?this._ranges[r]=new w.OffsetRange(h.start,l):this._ranges.splice(r,1,new w.OffsetRange(h.start,l),new w.OffsetRange(l+1,h.endExclusive))}}addRange(l){w.OffsetRange.addRange(l,this._ranges)}addRangeAndResize(l,r){let h=0;for(;!(h>=this._ranges.length||l.start<=this._ranges[h].endExclusive);)h++;let u=h;for(;!(u>=this._ranges.length||l.endExclusivel.toString()).join(" + ")}}e.RangePriorityQueueImpl=m;function c(s,l,r,h,u,f){let C=null;if(r)try{C=r.tokenizeEncoded(h,u,f.clone())}catch(_){(0,k.onUnexpectedError)(_)}return C||(C=(0,v.nullTokenizeEncoded)(s.encodeLanguageId(l),f)),n.LineTokens.convertToEndOffset(C.tokens,h.length),C}class d{constructor(l,r){this._tokenizerWithStateStore=l,this._backgroundTokenStore=r,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,(0,L.runWhenGlobalIdle)(l=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(l)}))}_backgroundTokenizeWithDeadline(l){const r=Date.now()+l.timeRemaining(),h=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(r)>=l)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(r.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(l){var r;const h=(r=this._tokenizerWithStateStore)===null||r===void 0?void 0:r.getFirstInvalidLine();return h?(this._tokenizerWithStateStore.updateTokensUntilLine(l,h.lineNumber),h.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(l,r){this._tokenizerWithStateStore.store.invalidateEndStateRange(new p.LineRange(l,r))}}e.DefaultBackgroundTokenizer=d}),define(ne[652],se([1,0,13,15,12,7,2,133,64,9,155,30,300,651,306,542,544]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenizationTextModelPart=void 0;class m extends n.TextModelPart{constructor(l,r,h,u,f,C){super(),this._languageService=l,this._languageConfigurationService=r,this._textModel=h,this._bracketPairsTextModelPart=u,this._languageId=f,this._attachedViews=C,this._semanticTokens=new g.SparseTokensStore(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new D.Emitter),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new D.Emitter),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new D.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new c(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this._languageConfigurationService.onDidChange(_=>{_.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(this.grammarTokens.onDidChangeTokens(_=>{this._emitModelTokensChangedEvent(_)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(_=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleDidChangeContent(l){if(l.isFlush)this._semanticTokens.flush();else if(!l.isEolChange)for(const r of l.changes){const[h,u,f]=(0,p.countEOL)(r.text);this._semanticTokens.acceptEdit(r.range,h,u,f,r.text.length>0?r.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(l)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(l){this.validateLineNumber(l);const r=this.grammarTokens.getLineTokens(l);return this._semanticTokens.addSparseTokens(l,r)}_emitModelTokensChangedEvent(l){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(l),this._onDidChangeTokens.fire(l))}validateLineNumber(l){if(l<1||l>this._textModel.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(l){this.validateLineNumber(l),this.grammarTokens.forceTokenization(l)}isCheapToTokenize(l){return this.validateLineNumber(l),this.grammarTokens.isCheapToTokenize(l)}tokenizeIfCheap(l){this.validateLineNumber(l),this.grammarTokens.tokenizeIfCheap(l)}getTokenTypeIfInsertingCharacter(l,r,h){return this.grammarTokens.getTokenTypeIfInsertingCharacter(l,r,h)}tokenizeLineWithEdit(l,r,h){return this.grammarTokens.tokenizeLineWithEdit(l,r,h)}setSemanticTokens(l,r){this._semanticTokens.set(l,r),this._emitModelTokensChangedEvent({semanticTokensApplied:l!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(l,r){if(this.hasCompleteSemanticTokens())return;const h=this._textModel.validateRange(this._semanticTokens.setPartial(l,r));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:h.startLineNumber,toLineNumber:h.endLineNumber}]})}getWordAtPosition(l){this.assertNotDisposed();const r=this._textModel.validatePosition(l),h=this._textModel.getLineContent(r.lineNumber),u=this.getLineTokens(r.lineNumber),f=u.findTokenIndexAtOffset(r.column-1),[C,_]=m._findLanguageBoundaries(u,f),E=(0,b.getWordAtText)(r.column,this.getLanguageConfiguration(u.getLanguageId(f)).getWordDefinition(),h.substring(C,_),C);if(E&&E.startColumn<=l.column&&l.column<=E.endColumn)return E;if(f>0&&C===r.column-1){const[I,T]=m._findLanguageBoundaries(u,f-1),A=(0,b.getWordAtText)(r.column,this.getLanguageConfiguration(u.getLanguageId(f-1)).getWordDefinition(),h.substring(I,T),I);if(A&&A.startColumn<=l.column&&l.column<=A.endColumn)return A}return null}getLanguageConfiguration(l){return this._languageConfigurationService.getLanguageConfiguration(l)}static _findLanguageBoundaries(l,r){const h=l.getLanguageId(r);let u=0;for(let C=r;C>=0&&l.getLanguageId(C)===h;C--)u=l.getStartOffset(C);let f=l.getLineContent().length;for(let C=r,_=l.getCount();C<_&&l.getLanguageId(C)===h;C++)f=l.getEndOffset(C);return[u,f]}getWordUntilPosition(l){const r=this.getWordAtPosition(l);return r?{word:r.word.substr(0,l.column-r.startColumn),startColumn:r.startColumn,endColumn:l.column}:{word:"",startColumn:l.column,endColumn:l.column}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(l,r){const h=this._textModel.validatePosition(new v.Position(l,r)),u=this.getLineTokens(h.lineNumber);return u.getLanguageId(u.findTokenIndexAtOffset(h.column-1))}setLanguageId(l,r="api"){if(this._languageId===l)return;const h={oldLanguage:this._languageId,newLanguage:l,source:r};this._languageId=l,this._bracketPairsTextModelPart.handleDidChangeLanguage(h),this.grammarTokens.resetTokenization(),this._onDidChangeLanguage.fire(h),this._onDidChangeLanguageConfiguration.fire({})}}e.TokenizationTextModelPart=m;class c extends S.Disposable{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(l,r,h,u){super(),this._languageIdCodec=l,this._textModel=r,this.getLanguageId=h,this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new S.MutableDisposable),this._tokens=new o.ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new S.MutableDisposable),this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new D.Emitter),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new D.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event,this._attachedViewStates=this._register(new S.DisposableMap),this._register(a.TokenizationRegistry.onDidChange(f=>{const C=this.getLanguageId();f.changedLanguages.indexOf(C)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(u.onDidChangeVisibleRanges(({view:f,state:C})=>{if(C){let _=this._attachedViewStates.get(f);_||(_=new d(()=>this.refreshRanges(_.lineRanges)),this._attachedViewStates.set(f,_)),_.handleStateChange(C)}else this._attachedViewStates.deleteAndDispose(f)}))}resetTokenization(l=!0){var r;this._tokens.flush(),(r=this._debugBackgroundTokens)===null||r===void 0||r.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new i.TrackingTokenizationStateStore(this._textModel.getLineCount())),l&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const h=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const C=a.TokenizationRegistry.get(this.getLanguageId());if(!C)return[null,null];let _;try{_=C.getInitialState()}catch(E){return(0,y.onUnexpectedError)(E),[null,null]}return[C,_]},[u,f]=h();if(u&&f?this._tokenizer=new i.TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(),u,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const C={setTokens:_=>{this.setTokens(_)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const _=2;this._backgroundTokenizationState=_,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(_,E)=>{var I;if(!this._tokenizer)return;const T=this._tokenizer.store.getFirstInvalidEndStateLineNumber();T!==null&&_>=T&&((I=this._tokenizer)===null||I===void 0||I.store.setEndState(_,E))}};u&&u.createBackgroundTokenizer&&!u.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=u.createBackgroundTokenizer(this._textModel,C)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new i.DefaultBackgroundTokenizer(this._tokenizer,C),this._defaultBackgroundTokenizer.handleChanges()),u?.backgroundTokenizerShouldOnlyVerifyTokens&&u.createBackgroundTokenizer?(this._debugBackgroundTokens=new o.ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundStates=new i.TrackingTokenizationStateStore(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=u.createBackgroundTokenizer(this._textModel,{setTokens:_=>{var E;(E=this._debugBackgroundTokens)===null||E===void 0||E.setMultilineTokens(_,this._textModel)},backgroundTokenizationFinished(){},setEndState:(_,E)=>{var I;(I=this._debugBackgroundStates)===null||I===void 0||I.setEndState(_,E)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var l;(l=this._defaultBackgroundTokenizer)===null||l===void 0||l.handleChanges()}handleDidChangeContent(l){var r,h,u;if(l.isFlush)this.resetTokenization(!1);else if(!l.isEolChange){for(const f of l.changes){const[C,_]=(0,p.countEOL)(f.text);this._tokens.acceptEdit(f.range,C,_),(r=this._debugBackgroundTokens)===null||r===void 0||r.acceptEdit(f.range,C,_)}(h=this._debugBackgroundStates)===null||h===void 0||h.acceptChanges(l.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(l.changes),(u=this._defaultBackgroundTokenizer)===null||u===void 0||u.handleChanges()}}setTokens(l){const{changes:r}=this._tokens.setMultilineTokens(l,this._textModel);return r.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:r}),{changes:r}}refreshAllVisibleLineTokens(){const l=w.LineRange.joinMany([...this._attachedViewStates].map(([r,h])=>h.lineRanges));this.refreshRanges(l)}refreshRanges(l){for(const r of l)this.refreshRange(r.startLineNumber,r.endLineNumberExclusive-1)}refreshRange(l,r){var h,u;if(!this._tokenizer)return;l=Math.max(1,Math.min(this._textModel.getLineCount(),l)),r=Math.min(this._textModel.getLineCount(),r);const f=new t.ContiguousMultilineTokensBuilder,{heuristicTokens:C}=this._tokenizer.tokenizeHeuristically(f,l,r),_=this.setTokens(f.finalize());if(C)for(const E of _.changes)(h=this._backgroundTokenizer.value)===null||h===void 0||h.requestTokens(E.fromLineNumber,E.toLineNumber+1);(u=this._defaultBackgroundTokenizer)===null||u===void 0||u.checkFinished()}forceTokenization(l){var r,h;const u=new t.ContiguousMultilineTokensBuilder;(r=this._tokenizer)===null||r===void 0||r.updateTokensUntilLine(u,l),this.setTokens(u.finalize()),(h=this._defaultBackgroundTokenizer)===null||h===void 0||h.checkFinished()}isCheapToTokenize(l){return this._tokenizer?this._tokenizer.isCheapToTokenize(l):!0}tokenizeIfCheap(l){this.isCheapToTokenize(l)&&this.forceTokenization(l)}getLineTokens(l){var r;const h=this._textModel.getLineContent(l),u=this._tokens.getTokens(this._textModel.getLanguageId(),l-1,h);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>l&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>l){const f=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),l-1,h);!u.equals(f)&&(!((r=this._debugBackgroundTokenizer.value)===null||r===void 0)&&r.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(l)}return u}getTokenTypeIfInsertingCharacter(l,r,h){if(!this._tokenizer)return 0;const u=this._textModel.validatePosition(new v.Position(l,r));return this.forceTokenization(u.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(u,h)}tokenizeLineWithEdit(l,r,h){if(!this._tokenizer)return null;const u=this._textModel.validatePosition(l);return this.forceTokenization(u.lineNumber),this._tokenizer.tokenizeLineWithEdit(u,r,h)}get hasTokens(){return this._tokens.hasTokens}}class d extends S.Disposable{get lineRanges(){return this._lineRanges}constructor(l){super(),this._refreshTokens=l,this.runner=this._register(new k.RunOnceScheduler(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,L.equals)(this._computedLineRanges,this._lineRanges,(l,r)=>l.equals(r))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(l){this._lineRanges=l.visibleLineRanges,l.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}}),define(ne[344],se([1,0,19,7,66,22,9,5,23,30,217]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createMonacoBaseAPI=e.KeyMod=void 0;class a{static chord(t,o){return(0,y.KeyChord)(t,o)}}e.KeyMod=a,a.CtrlCmd=2048,a.Shift=1024,a.Alt=512,a.WinCtrl=256;function n(){return{editor:void 0,languages:void 0,CancellationTokenSource:L.CancellationTokenSource,Emitter:k.Emitter,KeyCode:b.KeyCode,KeyMod:a,Position:S.Position,Range:p.Range,Selection:w.Selection,SelectionDirection:b.SelectionDirection,MarkerSeverity:b.MarkerSeverity,MarkerTag:b.MarkerTag,Uri:D.URI,Token:v.Token}}e.createMonacoBaseAPI=n}),define(ne[653],se([1,0,176,22,9,5,536,155,519,525,344,63,304,516,54,518]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.EditorSimpleWorker=void 0;class g extends S.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(s){const l=[];for(let r=0;rthis._lines.length)l=this._lines.length,r=this._lines[l-1].length+1,h=!0;else{const u=this._lines[l-1].length+1;r<1?(r=1,h=!0):r>u&&(r=u,h=!0)}return h?{lineNumber:l,column:r}:s}}class m{constructor(s,l){this._host=s,this._models=Object.create(null),this._foreignModuleFactory=l,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(s){return this._models[s]}_getModels(){const s=[];return Object.keys(this._models).forEach(l=>s.push(this._models[l])),s}acceptNewModel(s){this._models[s.url]=new g(k.URI.parse(s.url),s.lines,s.EOL,s.versionId)}acceptModelChanged(s,l){if(!this._models[s])return;this._models[s].onEvents(l)}acceptRemovedModel(s){this._models[s]&&delete this._models[s]}async computeUnicodeHighlights(s,l,r){const h=this._getModel(s);return h?n.UnicodeTextModelHighlighter.computeUnicodeHighlights(h,l,r):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async computeDiff(s,l,r,h){const u=this._getModel(s),f=this._getModel(l);return!u||!f?null:m.computeDiff(u,f,r,h)}static computeDiff(s,l,r,h){const u=h==="advanced"?i.linesDiffComputers.getDefault():i.linesDiffComputers.getLegacy(),f=s.getLinesContent(),C=l.getLinesContent(),_=u.computeDiff(f,C,r),E=_.changes.length>0?!1:this._modelsAreIdentical(s,l);function I(T){return T.map(A=>{var R;return[A.original.startLineNumber,A.original.endLineNumberExclusive,A.modified.startLineNumber,A.modified.endLineNumberExclusive,(R=A.innerChanges)===null||R===void 0?void 0:R.map(M=>[M.originalRange.startLineNumber,M.originalRange.startColumn,M.originalRange.endLineNumber,M.originalRange.endColumn,M.modifiedRange.startLineNumber,M.modifiedRange.startColumn,M.modifiedRange.endLineNumber,M.modifiedRange.endColumn])]})}return{identical:E,quitEarly:_.hitTimeout,changes:I(_.changes),moves:_.moves.map(T=>[T.lineRangeMapping.original.startLineNumber,T.lineRangeMapping.original.endLineNumberExclusive,T.lineRangeMapping.modified.startLineNumber,T.lineRangeMapping.modified.endLineNumberExclusive,I(T.changes)])}}static _modelsAreIdentical(s,l){const r=s.getLineCount(),h=l.getLineCount();if(r!==h)return!1;for(let u=1;u<=r;u++){const f=s.getLineContent(u),C=l.getLineContent(u);if(f!==C)return!1}return!0}async computeMoreMinimalEdits(s,l,r){const h=this._getModel(s);if(!h)return l;const u=[];let f;l=l.slice(0).sort((_,E)=>{if(_.range&&E.range)return D.Range.compareRangesUsingStarts(_.range,E.range);const I=_.range?0:1,T=E.range?0:1;return I-T});let C=0;for(let _=1;_m._diffLimit){u.push({range:_,text:E});continue}const A=(0,L.stringDiff)(T,E,r),R=h.offsetAt(D.Range.lift(_).getStartPosition());for(const M of A){const N=h.positionAt(R+M.originalStart),P=h.positionAt(R+M.originalStart+M.originalLength),F={text:E.substr(M.modifiedStart,M.modifiedLength),range:{startLineNumber:N.lineNumber,startColumn:N.column,endLineNumber:P.lineNumber,endColumn:P.column}};h.getValueInRange(F.range)!==F.text&&u.push(F)}}return typeof f=="number"&&u.push({eol:f,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),u}async computeLinks(s){const l=this._getModel(s);return l?(0,w.computeLinks)(l):null}async computeDefaultDocumentColors(s){const l=this._getModel(s);return l?(0,o.computeDefaultDocumentColors)(l):null}async textualSuggest(s,l,r,h){const u=new a.StopWatch,f=new RegExp(r,h),C=new Set;e:for(const _ of s){const E=this._getModel(_);if(E){for(const I of E.words(f))if(!(I===l||!isNaN(Number(I)))&&(C.add(I),C.size>m._suggestionsLimit))break e}}return{words:Array.from(C),duration:u.elapsed()}}async computeWordRanges(s,l,r,h){const u=this._getModel(s);if(!u)return Object.create(null);const f=new RegExp(r,h),C=Object.create(null);for(let _=l.startLineNumber;_this._host.fhr(C,_),f={host:(0,t.createProxyObject)(r,h),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(f,l),Promise.resolve((0,t.getAllMethodNames)(this._foreignModule))):new Promise((C,_)=>{ee([s],E=>{this._foreignModule=E.create(f,l),C((0,t.getAllMethodNames)(this._foreignModule))},_)})}fmr(s,l){if(!this._foreignModule||typeof this._foreignModule[s]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+s));try{return Promise.resolve(this._foreignModule[s].apply(this._foreignModule,l))}catch(r){return Promise.reject(r)}}}e.EditorSimpleWorker=m,m._diffLimit=1e5,m._suggestionsLimit=1e4;function c(d){return new m(d,null)}e.create=c,typeof importScripts=="function"&&(globalThis.monaco=(0,b.createMonacoBaseAPI)())}),define(ne[345],se([1,0,7,2,289,30]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapTokensColorTracker=void 0;class S extends k.Disposable{static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,k.markAsSingleton)(new S)),this._INSTANCE}constructor(){super(),this._onDidChange=new L.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(D.TokenizationRegistry.onDidChange(w=>{w.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const w=D.TokenizationRegistry.getColorMap();if(!w){this._colors=[y.RGBA8.Empty],this._backgroundIsLight=!0;return}this._colors=[y.RGBA8.Empty];for(let b=1;b=.5,this._onDidChange.fire(void 0)}getColor(w){return(w<1||w>=this._colors.length)&&(w=2),this._colors[w]}backgroundIsLight(){return this._backgroundIsLight}}e.MinimapTokensColorTracker=S,S._INSTANCE=null}),define(ne[654],se([3,4]),function(ee,e){return ee.create("vs/editor/common/languages/modesRegistry",e)}),define(ne[655],se([3,4]),function(ee,e){return ee.create("vs/editor/common/model/editStack",e)}),define(ne[346],se([1,0,655,12,23,22,335,149,48]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditStack=e.isEditStackElement=e.MultiModelEditStackElement=e.SingleModelEditStackElement=e.SingleModelEditStackData=void 0;function v(g){return g.toString()}class b{static create(m,c){const d=m.getAlternativeVersionId(),s=i(m);return new b(d,d,s,s,c,c,[])}constructor(m,c,d,s,l,r,h){this.beforeVersionId=m,this.afterVersionId=c,this.beforeEOL=d,this.afterEOL=s,this.beforeCursorState=l,this.afterCursorState=r,this.changes=h}append(m,c,d,s,l){c.length>0&&(this.changes=(0,S.compressConsecutiveTextChanges)(this.changes,c)),this.afterEOL=d,this.afterVersionId=s,this.afterCursorState=l}static _writeSelectionsSize(m){return 4+4*4*(m?m.length:0)}static _writeSelections(m,c,d){if(p.writeUInt32BE(m,c?c.length:0,d),d+=4,c)for(const s of c)p.writeUInt32BE(m,s.selectionStartLineNumber,d),d+=4,p.writeUInt32BE(m,s.selectionStartColumn,d),d+=4,p.writeUInt32BE(m,s.positionLineNumber,d),d+=4,p.writeUInt32BE(m,s.positionColumn,d),d+=4;return d}static _readSelections(m,c,d){const s=p.readUInt32BE(m,c);c+=4;for(let l=0;lc.toString()).join(", ")}matchesResource(m){return(D.URI.isUri(this.model)?this.model:this.model.uri).toString()===m.toString()}setModel(m){this.model=m}canAppend(m){return this.model===m&&this._data instanceof b}append(m,c,d,s,l){this._data instanceof b&&this._data.append(m,c,d,s,l)}close(){this._data instanceof b&&(this._data=this._data.serialize())}open(){this._data instanceof b||(this._data=b.deserialize(this._data))}undo(){if(D.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof b&&(this._data=this._data.serialize());const m=b.deserialize(this._data);this.model._applyUndo(m.changes,m.beforeEOL,m.beforeVersionId,m.beforeCursorState)}redo(){if(D.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof b&&(this._data=this._data.serialize());const m=b.deserialize(this._data);this.model._applyRedo(m.changes,m.afterEOL,m.afterVersionId,m.afterCursorState)}heapSize(){return this._data instanceof b&&(this._data=this._data.serialize()),this._data.byteLength+168}}e.SingleModelEditStackElement=a;class n{get resources(){return this._editStackElementsArr.map(m=>m.resource)}constructor(m,c,d){this.label=m,this.code=c,this.type=1,this._isOpen=!0,this._editStackElementsArr=d.slice(0),this._editStackElementsMap=new Map;for(const s of this._editStackElementsArr){const l=v(s.resource);this._editStackElementsMap.set(l,s)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(m){const c=v(m);return this._editStackElementsMap.has(c)}setModel(m){const c=v(D.URI.isUri(m)?m:m.uri);this._editStackElementsMap.has(c)&&this._editStackElementsMap.get(c).setModel(m)}canAppend(m){if(!this._isOpen)return!1;const c=v(m.uri);return this._editStackElementsMap.has(c)?this._editStackElementsMap.get(c).canAppend(m):!1}append(m,c,d,s,l){const r=v(m.uri);this._editStackElementsMap.get(r).append(m,c,d,s,l)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const m of this._editStackElementsArr)m.undo()}redo(){for(const m of this._editStackElementsArr)m.redo()}heapSize(m){const c=v(m);return this._editStackElementsMap.has(c)?this._editStackElementsMap.get(c).heapSize():0}split(){return this._editStackElementsArr}toString(){const m=[];for(const c of this._editStackElementsArr)m.push(`${(0,w.basename)(c.resource)}: ${c}`);return`{${m.join(", ")}}`}}e.MultiModelEditStackElement=n;function i(g){return g.getEOL()===` +`?0:1}function t(g){return g?g instanceof a||g instanceof n:!1}e.isEditStackElement=t;class o{constructor(m,c){this._model=m,this._undoRedoService=c}pushStackElement(){const m=this._undoRedoService.getLastElement(this._model.uri);t(m)&&m.close()}popStackElement(){const m=this._undoRedoService.getLastElement(this._model.uri);t(m)&&m.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(m,c){const d=this._undoRedoService.getLastElement(this._model.uri);if(t(d)&&d.canAppend(this._model))return d;const s=new a(L.localize(0,null),"undoredo.textBufferEdit",this._model,m);return this._undoRedoService.pushElement(s,c),s}pushEOL(m){const c=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(m),c.append(this._model,[],i(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(m,c,d,s){const l=this._getOrCreateEditStackElement(m,s),r=this._model.applyEdits(c,!0),h=o._computeCursorState(d,r),u=r.map((f,C)=>({index:C,textChange:f.textChange}));return u.sort((f,C)=>f.textChange.oldPosition===C.textChange.oldPosition?f.index-C.index:f.textChange.oldPosition-C.textChange.oldPosition),l.append(this._model,u.map(f=>f.textChange),i(this._model),this._model.getAlternativeVersionId(),h),h}static _computeCursorState(m,c){try{return m?m(c):null}catch(d){return(0,k.onUnexpectedError)(d),null}}}e.EditStack=o}),define(ne[656],se([3,4]),function(ee,e){return ee.create("vs/editor/common/standaloneStrings",e)}),define(ne[99],se([1,0,656]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServicesNLS=e.ToggleHighContrastNLS=e.StandaloneCodeEditorNLS=e.QuickOutlineNLS=e.QuickCommandNLS=e.QuickHelpNLS=e.GoToLineNLS=e.InspectTokensNLS=void 0;var k;(function(a){a.inspectTokensAction=L.localize(0,null)})(k||(e.InspectTokensNLS=k={}));var y;(function(a){a.gotoLineActionLabel=L.localize(1,null)})(y||(e.GoToLineNLS=y={}));var D;(function(a){a.helpQuickAccessActionLabel=L.localize(2,null)})(D||(e.QuickHelpNLS=D={}));var S;(function(a){a.quickCommandActionLabel=L.localize(3,null),a.quickCommandHelp=L.localize(4,null)})(S||(e.QuickCommandNLS=S={}));var p;(function(a){a.quickOutlineActionLabel=L.localize(5,null),a.quickOutlineByCategoryActionLabel=L.localize(6,null)})(p||(e.QuickOutlineNLS=p={}));var w;(function(a){a.editorViewAccessibleLabel=L.localize(7,null),a.accessibilityHelpMessage=L.localize(8,null)})(w||(e.StandaloneCodeEditorNLS=w={}));var v;(function(a){a.toggleHighContrast=L.localize(9,null)})(v||(e.ToggleHighContrastNLS=v={}));var b;(function(a){a.bulkEditServiceSummary=L.localize(10,null)})(b||(e.StandaloneServicesNLS=b={}))}),define(ne[657],se([3,4]),function(ee,e){return ee.create("vs/editor/common/viewLayout/viewLineRenderer",e)}),define(ne[122],se([1,0,657,11,106,139,552]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderViewLine2=e.RenderLineOutput2=e.renderViewLine=e.RenderLineOutput=e.CharacterMapping=e.DomPosition=e.RenderLineInput=e.LineRange=void 0;class p{constructor(_,E){this.startOffset=_,this.endOffset=E}equals(_){return this.startOffset===_.startOffset&&this.endOffset===_.endOffset}}e.LineRange=p;class w{constructor(_,E,I,T,A,R,M,N,P,F,O,B,W,V,z,K,j,x,re){this.useMonospaceOptimizations=_,this.canUseHalfwidthRightwardsArrow=E,this.lineContent=I,this.continuesWithWrappedLine=T,this.isBasicASCII=A,this.containsRTL=R,this.fauxIndentLength=M,this.lineTokens=N,this.lineDecorations=P.sort(D.LineDecoration.compare),this.tabSize=F,this.startVisibleColumn=O,this.spaceWidth=B,this.stopRenderingLineAfter=z,this.renderWhitespace=K==="all"?4:K==="boundary"?1:K==="selection"?2:K==="trailing"?3:0,this.renderControlCharacters=j,this.fontLigatures=x,this.selectionsOnLine=re&&re.sort((X,Y)=>X.startOffset>>16}static getCharIndex(_){return(_&65535)>>>0}constructor(_,E){this.length=_,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(_,E,I,T){const A=(E<<16|I<<0)>>>0;this._data[_-1]=A,this._horizontalOffset[_-1]=T}getHorizontalOffset(_){return this._horizontalOffset.length===0?0:this._horizontalOffset[_-1]}charOffsetToPartData(_){return this.length===0?0:_<0?this._data[0]:_>=this.length?this._data[this.length-1]:this._data[_]}getDomPosition(_){const E=this.charOffsetToPartData(_-1),I=b.getPartIndex(E),T=b.getCharIndex(E);return new v(I,T)}getColumn(_,E){return this.partDataToCharOffset(_.partIndex,E,_.charIndex)+1}partDataToCharOffset(_,E,I){if(this.length===0)return 0;const T=(_<<16|I<<0)>>>0;let A=0,R=this.length-1;for(;A+1>>1,K=this._data[z];if(K===T)return z;K>T?R=z:A=z}if(A===R)return A;const M=this._data[A],N=this._data[R];if(M===T)return A;if(N===T)return R;const P=b.getPartIndex(M),F=b.getCharIndex(M),O=b.getPartIndex(N);let B;P!==O?B=E:B=b.getCharIndex(N);const W=I-F,V=B-I;return W<=V?A:R}}e.CharacterMapping=b;class a{constructor(_,E,I){this._renderLineOutputBrand=void 0,this.characterMapping=_,this.containsRTL=E,this.containsForeignElements=I}}e.RenderLineOutput=a;function n(C,_){if(C.lineContent.length===0){if(C.lineDecorations.length>0){_.appendString("");let E=0,I=0,T=0;for(const R of C.lineDecorations)(R.type===1||R.type===2)&&(_.appendString(''),R.type===1&&(T|=1,E++),R.type===2&&(T|=2,I++));_.appendString("");const A=new b(1,E+I);return A.setColumnInfo(1,E,0,0),new a(A,!1,T)}return _.appendString(""),new a(new b(0,0),!1,0)}return h(g(C),_)}e.renderViewLine=n;class i{constructor(_,E,I,T){this.characterMapping=_,this.html=E,this.containsRTL=I,this.containsForeignElements=T}}e.RenderLineOutput2=i;function t(C){const _=new y.StringBuilder(1e4),E=n(C,_);return new i(E.characterMapping,_.build(),E.containsRTL,E.containsForeignElements)}e.renderViewLine2=t;class o{constructor(_,E,I,T,A,R,M,N,P,F,O,B,W,V,z,K){this.fontIsMonospace=_,this.canUseHalfwidthRightwardsArrow=E,this.lineContent=I,this.len=T,this.isOverflowing=A,this.overflowingCharCount=R,this.parts=M,this.containsForeignElements=N,this.fauxIndentLength=P,this.tabSize=F,this.startVisibleColumn=O,this.containsRTL=B,this.spaceWidth=W,this.renderSpaceCharCode=V,this.renderWhitespace=z,this.renderControlCharacters=K}}function g(C){const _=C.lineContent;let E,I,T;C.stopRenderingLineAfter!==-1&&C.stopRenderingLineAfter<_.length?(E=!0,I=_.length-C.stopRenderingLineAfter,T=C.stopRenderingLineAfter):(E=!1,I=0,T=_.length);let A=m(_,C.containsRTL,C.lineTokens,C.fauxIndentLength,T);C.renderControlCharacters&&!C.isBasicASCII&&(A=s(_,A)),(C.renderWhitespace===4||C.renderWhitespace===1||C.renderWhitespace===2&&C.selectionsOnLine||C.renderWhitespace===3&&!C.continuesWithWrappedLine)&&(A=l(C,_,T,A));let R=0;if(C.lineDecorations.length>0){for(let M=0,N=C.lineDecorations.length;M0&&(A[R++]=new S.LinePart(I,"",0,!1));let M=I;for(let N=0,P=E.getCount();N=T){const W=_?k.containsRTL(C.substring(M,T)):!1;A[R++]=new S.LinePart(T,O,0,W);break}const B=_?k.containsRTL(C.substring(M,F)):!1;A[R++]=new S.LinePart(F,O,0,B),M=F}return A}function c(C,_,E){let I=0;const T=[];let A=0;if(E)for(let R=0,M=_.length;R=50&&(T[A++]=new S.LinePart(W+1,F,O,B),V=W+1,W=-1);V!==P&&(T[A++]=new S.LinePart(P,F,O,B))}else T[A++]=N;I=P}else for(let R=0,M=_.length;R50){const O=N.type,B=N.metadata,W=N.containsRTL,V=Math.ceil(F/50);for(let z=1;z=8234&&C<=8238||C>=8294&&C<=8297||C>=8206&&C<=8207||C===1564}function s(C,_){const E=[];let I=new S.LinePart(0,"",0,!1),T=0;for(const A of _){const R=A.endIndex;for(;TI.endIndex&&(I=new S.LinePart(T,A.type,A.metadata,A.containsRTL),E.push(I)),I=new S.LinePart(T+1,"mtkcontrol",A.metadata,!1),E.push(I))}T>I.endIndex&&(I=new S.LinePart(R,A.type,A.metadata,A.containsRTL),E.push(I))}return E}function l(C,_,E,I){const T=C.continuesWithWrappedLine,A=C.fauxIndentLength,R=C.tabSize,M=C.startVisibleColumn,N=C.useMonospaceOptimizations,P=C.selectionsOnLine,F=C.renderWhitespace===1,O=C.renderWhitespace===3,B=C.renderSpaceWidth!==C.spaceWidth,W=[];let V=0,z=0,K=I[z].type,j=I[z].containsRTL,x=I[z].endIndex;const re=I.length;let ie=!1,J=k.firstNonWhitespaceIndex(_),X;J===-1?(ie=!0,J=E,X=E):X=k.lastNonWhitespaceIndex(_);let Y=!1,le=0,de=P&&P[le],ge=M%R;for(let Q=A;Q=de.endOffset&&(le++,de=P&&P[le]);let Z;if(QX)Z=!0;else if(U===9)Z=!0;else if(U===32)if(F)if(Y)Z=!0;else{const H=Q+1Q),Z&&O&&(Z=ie||Q>X),Z&&j&&Q>=J&&Q<=X&&(Z=!1),Y){if(!Z||!N&&ge>=R){if(B){const H=V>0?W[V-1].endIndex:A;for(let q=H+1;q<=Q;q++)W[V++]=new S.LinePart(q,"mtkw",1,!1)}else W[V++]=new S.LinePart(Q,"mtkw",1,!1);ge=ge%R}}else(Q===x||Z&&Q>A)&&(W[V++]=new S.LinePart(Q,K,0,j),ge=ge%R);for(U===9?ge=R:k.isFullWidthCharacter(U)?ge+=2:ge++,Y=Z;Q===x&&(z++,z0?_.charCodeAt(E-1):0,U=E>1?_.charCodeAt(E-2):0;Q===32&&U!==32&&U!==9||(pe=!0)}else pe=!0;if(pe)if(B){const Q=V>0?W[V-1].endIndex:A;for(let U=Q+1;U<=E;U++)W[V++]=new S.LinePart(U,"mtkw",1,!1)}else W[V++]=new S.LinePart(E,"mtkw",1,!1);else W[V++]=new S.LinePart(E,K,0,j);return W}function r(C,_,E,I){I.sort(D.LineDecoration.compare);const T=D.LineDecorationsNormalizer.normalize(C,I),A=T.length;let R=0;const M=[];let N=0,P=0;for(let O=0,B=E.length;OP&&(P=x.startOffset,M[N++]=new S.LinePart(P,z,K,j)),x.endOffset+1<=V)P=x.endOffset+1,M[N++]=new S.LinePart(P,z+" "+x.className,K|x.metadata,j),R++;else{P=V,M[N++]=new S.LinePart(P,z+" "+x.className,K|x.metadata,j);break}}V>P&&(P=V,M[N++]=new S.LinePart(P,z,K,j))}const F=E[E.length-1].endIndex;if(R'):_.appendString("");for(let de=0,ge=P.length;de=F&&(oe+=ue)}}for(q&&(_.appendString(' style="width:'),_.appendString(String(V*G)),_.appendString('px"')),_.appendASCIICharCode(62);ie1?_.appendCharCode(8594):_.appendCharCode(65515);for(let ue=2;ue<=ae;ue++)_.appendCharCode(160)}else oe=2,ae=1,_.appendCharCode(z),_.appendCharCode(8204);X+=oe,Y+=ae,ie>=F&&(J+=ae)}}else for(_.appendASCIICharCode(62);ie=F&&(J+=oe)}te?le++:le=0,ie>=R&&!re&&pe.isPseudoAfter()&&(re=!0,x.setColumnInfo(ie+1,de,X,Y)),_.appendString("")}return re||x.setColumnInfo(R+1,P.length-1,X,Y),M&&(_.appendString(''),_.appendString(L.localize(0,null,f(N))),_.appendString("")),_.appendString(""),new a(x,W,T)}function u(C){return C.toString(16).toUpperCase().padStart(4,"0")}function f(C){return C<1024?L.localize(1,null,C):C<1024*1024?`${(C/1024).toFixed(1)} KB`:`${(C/1024/1024).toFixed(1)} MB`}}),define(ne[658],se([1,0,95,74,36,106,139,122,86]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderOptions=e.LineSource=e.renderLines=void 0;const v=(0,L.createTrustedTypesPolicy)("diffEditorWidget",{createHTML:t=>t});function b(t,o,g,m){(0,k.applyFontInfo)(m,o.fontInfo);const c=g.length>0,d=new D.StringBuilder(1e4);let s=0,l=0;const r=[];for(let C=0;C');const r=o.getLineContent(),h=w.ViewLineRenderingData.isBasicASCII(r,c),u=w.ViewLineRenderingData.containsRTL(r,h,d),f=(0,p.renderViewLine)(new p.RenderLineInput(s.fontInfo.isMonospace&&!s.disableMonospaceOptimizations,s.fontInfo.canUseHalfwidthRightwardsArrow,r,!1,h,u,0,o,g,s.tabSize,0,s.fontInfo.spaceWidth,s.fontInfo.middotWidth,s.fontInfo.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==y.EditorFontLigatures.OFF,null),l);return l.appendString(""),f.characterMapping.getHorizontalOffset(f.characterMapping.length)}}),define(ne[659],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/anchorSelect/browser/anchorSelect",e)}),define(ne[660],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/bracketMatching/browser/bracketMatching",e)}),define(ne[661],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/caretOperations/browser/caretOperations",e)}),define(ne[662],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/caretOperations/browser/transpose",e)}),define(ne[663],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/clipboard/browser/clipboard",e)}),define(ne[664],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/codeAction",e)}),define(ne[665],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/codeActionCommands",e)}),define(ne[666],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/codeActionContributions",e)}),define(ne[667],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/codeActionController",e)}),define(ne[668],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/codeActionMenu",e)}),define(ne[669],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codeAction/browser/lightBulbWidget",e)}),define(ne[670],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/codelens/browser/codelensController",e)}),define(ne[671],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/colorPicker/browser/colorPickerWidget",e)}),define(ne[672],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions",e)}),define(ne[673],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/comment/browser/comment",e)}),define(ne[674],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/contextmenu/browser/contextmenu",e)}),define(ne[675],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/cursorUndo/browser/cursorUndo",e)}),define(ne[676],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution",e)}),define(ne[677],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/dropOrPasteInto/browser/copyPasteController",e)}),define(ne[678],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/dropOrPasteInto/browser/defaultProviders",e)}),define(ne[679],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution",e)}),define(ne[680],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController",e)}),define(ne[681],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/editorState/browser/keybindingCancellation",e)}),define(ne[682],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/find/browser/findController",e)}),define(ne[683],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/find/browser/findWidget",e)}),define(ne[684],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/folding/browser/folding",e)}),define(ne[685],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/folding/browser/foldingDecorations",e)}),define(ne[686],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/fontZoom/browser/fontZoom",e)}),define(ne[687],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/format/browser/formatActions",e)}),define(ne[688],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoError/browser/gotoError",e)}),define(ne[689],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoError/browser/gotoErrorWidget",e)}),define(ne[690],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/goToCommands",e)}),define(ne[691],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition",e)}),define(ne[692],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/peek/referencesController",e)}),define(ne[693],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/peek/referencesTree",e)}),define(ne[694],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget",e)}),define(ne[695],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/referencesModel",e)}),define(ne[163],se([1,0,12,7,172,2,53,48,11,5,695]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesModel=e.FileReferences=e.FilePreview=e.OneReference=void 0;class a{constructor(g,m,c,d){this.isProviderFirst=g,this.parent=m,this.link=c,this._rangeCallback=d,this.id=y.defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){var g,m;return(m=(g=this._range)!==null&&g!==void 0?g:this.link.targetSelectionRange)!==null&&m!==void 0?m:this.link.range}set range(g){this._range=g,this._rangeCallback(this)}get ariaMessage(){var g;const m=(g=this.parent.getPreview(this))===null||g===void 0?void 0:g.preview(this.range);return m?(0,b.localize)(1,null,m.value,(0,p.basename)(this.uri),this.range.startLineNumber,this.range.startColumn):(0,b.localize)(0,null,(0,p.basename)(this.uri),this.range.startLineNumber,this.range.startColumn)}}e.OneReference=a;class n{constructor(g){this._modelReference=g}dispose(){this._modelReference.dispose()}preview(g,m=8){const c=this._modelReference.object.textEditorModel;if(!c)return;const{startLineNumber:d,startColumn:s,endLineNumber:l,endColumn:r}=g,h=c.getWordUntilPosition({lineNumber:d,column:s-m}),u=new v.Range(d,h.startColumn,d,s),f=new v.Range(l,r,l,1073741824),C=c.getValueInRange(u).replace(/^\s+/,""),_=c.getValueInRange(g),E=c.getValueInRange(f).replace(/\s+$/,"");return{value:C+_+E,highlight:{start:C.length,end:C.length+_.length}}}}e.FilePreview=n;class i{constructor(g,m){this.parent=g,this.uri=m,this.children=[],this._previews=new S.ResourceMap}dispose(){(0,D.dispose)(this._previews.values()),this._previews.clear()}getPreview(g){return this._previews.get(g.uri)}get ariaMessage(){const g=this.children.length;return g===1?(0,b.localize)(2,null,(0,p.basename)(this.uri),this.uri.fsPath):(0,b.localize)(3,null,g,(0,p.basename)(this.uri),this.uri.fsPath)}async resolve(g){if(this._previews.size!==0)return this;for(const m of this.children)if(!this._previews.has(m.uri))try{const c=await g.createModelReference(m.uri);this._previews.set(m.uri,new n(c))}catch(c){(0,L.onUnexpectedError)(c)}return this}}e.FileReferences=i;class t{constructor(g,m){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new k.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=g,this._title=m;const[c]=g;g.sort(t._compareReferences);let d;for(const s of g)if((!d||!p.extUri.isEqual(d.uri,s.uri,!0))&&(d=new i(this,s.uri),this.groups.push(d)),d.children.length===0||t._compareReferences(s,d.children[d.children.length-1])!==0){const l=new a(c===s,d,s,r=>this._onDidChangeReferenceRange.fire(r));this.references.push(l),d.children.push(l)}}dispose(){(0,D.dispose)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new t(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?(0,b.localize)(4,null):this.references.length===1?(0,b.localize)(5,null,this.references[0].uri.fsPath):this.groups.length===1?(0,b.localize)(6,null,this.references.length,this.groups[0].uri.fsPath):(0,b.localize)(7,null,this.references.length,this.groups.length)}nextOrPreviousReference(g,m){const{parent:c}=g;let d=c.children.indexOf(g);const s=c.children.length,l=c.parent.groups.length;return l===1||m&&d+10?(m?d=(d+1)%s:d=(d+s-1)%s,c.children[d]):(d=c.parent.groups.indexOf(c),m?(d=(d+1)%l,c.parent.groups[d].children[0]):(d=(d+l-1)%l,c.parent.groups[d].children[c.parent.groups[d].children.length-1]))}nearestReference(g,m){const c=this.references.map((d,s)=>({idx:s,prefixLen:w.commonPrefixLength(d.uri.toString(),g.toString()),offsetDist:Math.abs(d.range.startLineNumber-m.lineNumber)*100+Math.abs(d.range.startColumn-m.column)})).sort((d,s)=>d.prefixLen>s.prefixLen?-1:d.prefixLens.offsetDist?1:0)[0];if(c)return this.references[c.idx]}referenceAt(g,m){for(const c of this.references)if(c.uri.toString()===g.toString()&&v.Range.containsPosition(c.range,m))return c}firstReference(){for(const g of this.references)if(g.isProviderFirst)return g;return this.references[0]}static _compareReferences(g,m){return p.extUri.compare(g.uri,m.uri)||v.Range.compareRangesUsingStarts(g.range,m.range)}}e.ReferencesModel=t}),define(ne[696],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/gotoSymbol/browser/symbolNavigation",e)}),define(ne[697],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/hover/browser/hover",e)}),define(ne[698],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/hover/browser/markdownHoverParticipant",e)}),define(ne[699],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/hover/browser/markerHoverParticipant",e)}),define(ne[700],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace",e)}),define(ne[701],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/indentation/browser/indentation",e)}),define(ne[702],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlayHints/browser/inlayHintsHover",e)}),define(ne[703],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlineCompletions/browser/commands",e)}),define(ne[704],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlineCompletions/browser/hoverParticipant",e)}),define(ne[705],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys",e)}),define(ne[706],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController",e)}),define(ne[707],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget",e)}),define(ne[708],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/lineSelection/browser/lineSelection",e)}),define(ne[709],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/linesOperations/browser/linesOperations",e)}),define(ne[710],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/linkedEditing/browser/linkedEditing",e)}),define(ne[711],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/links/browser/links",e)}),define(ne[712],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/message/browser/messageController",e)}),define(ne[713],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/multicursor/browser/multicursor",e)}),define(ne[714],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/parameterHints/browser/parameterHints",e)}),define(ne[715],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/parameterHints/browser/parameterHintsWidget",e)}),define(ne[716],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/peekView/browser/peekView",e)}),define(ne[717],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess",e)}),define(ne[718],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess",e)}),define(ne[719],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/readOnlyMessage/browser/contribution",e)}),define(ne[720],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/rename/browser/rename",e)}),define(ne[721],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/rename/browser/renameInputField",e)}),define(ne[722],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/smartSelect/browser/smartSelect",e)}),define(ne[723],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/snippet/browser/snippetController2",e)}),define(ne[724],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/snippet/browser/snippetVariables",e)}),define(ne[725],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/stickyScroll/browser/stickyScrollActions",e)}),define(ne[726],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggest",e)}),define(ne[727],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggestController",e)}),define(ne[728],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggestWidget",e)}),define(ne[729],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggestWidgetDetails",e)}),define(ne[730],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggestWidgetRenderer",e)}),define(ne[731],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/suggest/browser/suggestWidgetStatus",e)}),define(ne[732],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/symbolIcons/browser/symbolIcons",e)}),define(ne[733],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode",e)}),define(ne[734],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/tokenization/browser/tokenization",e)}),define(ne[735],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter",e)}),define(ne[736],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators",e)}),define(ne[737],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/wordHighlighter/browser/highlightDecorations",e)}),define(ne[738],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/wordHighlighter/browser/wordHighlighter",e)}),define(ne[739],se([3,4]),function(ee,e){return ee.create("vs/editor/contrib/wordOperations/browser/wordOperations",e)}),define(ne[740],se([3,4]),function(ee,e){return ee.create("vs/platform/accessibilitySignal/browser/accessibilitySignalService",e)}),define(ne[741],se([3,4]),function(ee,e){return ee.create("vs/platform/action/common/actionCommonCategories",e)}),define(ne[742],se([3,4]),function(ee,e){return ee.create("vs/platform/actionWidget/browser/actionList",e)}),define(ne[743],se([3,4]),function(ee,e){return ee.create("vs/platform/actionWidget/browser/actionWidget",e)}),define(ne[744],se([3,4]),function(ee,e){return ee.create("vs/platform/actions/browser/menuEntryActionViewItem",e)}),define(ne[745],se([3,4]),function(ee,e){return ee.create("vs/platform/actions/browser/toolbar",e)}),define(ne[746],se([3,4]),function(ee,e){return ee.create("vs/platform/actions/common/menuService",e)}),define(ne[747],se([3,4]),function(ee,e){return ee.create("vs/platform/configuration/common/configurationRegistry",e)}),define(ne[748],se([3,4]),function(ee,e){return ee.create("vs/platform/contextkey/browser/contextKeyService",e)}),define(ne[749],se([3,4]),function(ee,e){return ee.create("vs/platform/contextkey/common/contextkey",e)}),define(ne[750],se([3,4]),function(ee,e){return ee.create("vs/platform/contextkey/common/contextkeys",e)}),define(ne[751],se([3,4]),function(ee,e){return ee.create("vs/platform/contextkey/common/scanner",e)}),define(ne[752],se([3,4]),function(ee,e){return ee.create("vs/platform/history/browser/contextScopedHistoryWidget",e)}),define(ne[753],se([3,4]),function(ee,e){return ee.create("vs/platform/keybinding/common/abstractKeybindingService",e)}),define(ne[754],se([3,4]),function(ee,e){return ee.create("vs/platform/list/browser/listService",e)}),define(ne[755],se([3,4]),function(ee,e){return ee.create("vs/platform/markers/common/markers",e)}),define(ne[756],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/commandsQuickAccess",e)}),define(ne[757],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/helpQuickAccess",e)}),define(ne[758],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/quickInput",e)}),define(ne[759],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/quickInputController",e)}),define(ne[760],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/quickInputList",e)}),define(ne[761],se([3,4]),function(ee,e){return ee.create("vs/platform/quickinput/browser/quickInputUtils",e)}),define(ne[762],se([3,4]),function(ee,e){return ee.create("vs/platform/theme/common/colorRegistry",e)}),define(ne[763],se([3,4]),function(ee,e){return ee.create("vs/platform/theme/common/iconRegistry",e)}),define(ne[764],se([3,4]),function(ee,e){return ee.create("vs/platform/undoRedo/common/undoRedoService",e)}),define(ne[765],se([3,4]),function(ee,e){return ee.create("vs/platform/workspace/common/workspace",e)}),define(ne[766],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isICommandActionToggleInfo=void 0;function L(k){return k?k.condition!==void 0:!1}e.isICommandActionToggleInfo=L}),define(ne[767],se([1,0,741]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Categories=void 0,e.Categories=Object.freeze({View:(0,L.localize2)(0,"View"),Help:(0,L.localize2)(1,"Help"),Test:(0,L.localize2)(2,"Test"),File:(0,L.localize2)(3,"File"),Preferences:(0,L.localize2)(4,"Preferences"),Developer:(0,L.localize2)(5,"Developer")})}),define(ne[768],se([1,0,12,751]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Scanner=void 0;function y(...w){switch(w.length){case 1:return(0,k.localize)(0,null,w[0]);case 2:return(0,k.localize)(1,null,w[0],w[1]);case 3:return(0,k.localize)(2,null,w[0],w[1],w[2]);default:return}}const D=(0,k.localize)(3,null),S=(0,k.localize)(4,null);class p{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(v){switch(v.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return v.isTripleEq?"===":"==";case 4:return v.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return v.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return v.lexeme;case 18:return v.lexeme;case 19:return v.lexeme;case 20:return"EOF";default:throw(0,L.illegalState)(`unhandled token type: ${JSON.stringify(v)}; have you forgotten to add a case?`)}}reset(v){return this._input=v,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const b=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:b})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const b=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:b})}else this._match(126)?this._addToken(9):this._error(y("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(y("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(y("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(v){return this._isAtEnd()||this._input.charCodeAt(this._current)!==v?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(v){this._tokens.push({type:v,offset:this._start})}_error(v){const b=this._start,a=this._input.substring(this._start,this._current),n={type:19,offset:this._start,lexeme:a};this._errors.push({offset:b,lexeme:a,additionalInfo:v}),this._tokens.push(n)}_string(){this.stringRe.lastIndex=this._start;const v=this.stringRe.exec(this._input);if(v){this._current=this._start+v[0].length;const b=this._input.substring(this._start,this._current),a=p._keywords.get(b);a?this._addToken(a):this._tokens.push({type:17,lexeme:b,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(D);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let v=this._current,b=!1,a=!1;for(;;){if(v>=this._input.length){this._current=v,this._error(S);return}const i=this._input.charCodeAt(v);if(b)b=!1;else if(i===47&&!a){v++;break}else i===91?a=!0:i===92?b=!0:i===93&&(a=!1);v++}for(;v=this._input.length}}e.Scanner=p,p._regexFlags=new Set(["i","g","s","m","y","u"].map(w=>w.charCodeAt(0))),p._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}),define(ne[769],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOpenSource=void 0;var L;(function(k){k[k.API=0]="API",k[k.USER=1]="USER"})(L||(e.EditorOpenSource=L={}))}),define(ne[770],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensionIdentifierSet=e.ExtensionIdentifier=void 0;class L{constructor(D){this.value=D,this._lower=D.toLowerCase()}static toKey(D){return typeof D=="string"?D.toLowerCase():D._lower}}e.ExtensionIdentifier=L;class k{constructor(D){if(this._set=new Set,D)for(const S of D)this.add(S)}add(D){this._set.add(L.toKey(D))}has(D){return this._set.has(L.toKey(D))}}e.ExtensionIdentifierSet=k}),define(ne[347],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FileKind=void 0;var L;(function(k){k[k.FILE=0]="FILE",k[k.FOLDER=1]="FOLDER",k[k.ROOT_FOLDER=2]="ROOT_FOLDER"})(L||(e.FileKind=L={}))}),define(ne[771],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.showHistoryKeybindingHint=void 0;function L(k){var y,D;return((y=k.lookupKeybinding("history.showPrevious"))===null||y===void 0?void 0:y.getElectronAccelerator())==="Up"&&((D=k.lookupKeybinding("history.showNext"))===null||D===void 0?void 0:D.getElectronAccelerator())==="Down"}e.showHistoryKeybindingHint=L}),define(ne[242],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SyncDescriptor=void 0;class L{constructor(y,D=[],S=!1){this.ctor=y,this.staticArguments=D,this.supportsDelayedInstantiation=S}}e.SyncDescriptor=L}),define(ne[45],se([1,0,242]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSingletonServiceDescriptors=e.registerSingleton=void 0;const k=[];function y(S,p,w){p instanceof L.SyncDescriptor||(p=new L.SyncDescriptor(p,[],!!w)),k.push([S,p])}e.registerSingleton=y;function D(){return k}e.getSingletonServiceDescriptors=D}),define(ne[772],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Graph=e.Node=void 0;class L{constructor(D,S){this.key=D,this.data=S,this.incoming=new Map,this.outgoing=new Map}}e.Node=L;class k{constructor(D){this._hashFn=D,this._nodes=new Map}roots(){const D=[];for(const S of this._nodes.values())S.outgoing.size===0&&D.push(S);return D}insertEdge(D,S){const p=this.lookupOrInsertNode(D),w=this.lookupOrInsertNode(S);p.outgoing.set(w.key,w),w.incoming.set(p.key,p)}removeNode(D){const S=this._hashFn(D);this._nodes.delete(S);for(const p of this._nodes.values())p.outgoing.delete(S),p.incoming.delete(S)}lookupOrInsertNode(D){const S=this._hashFn(D);let p=this._nodes.get(S);return p||(p=new L(S,D),this._nodes.set(S,p)),p}isEmpty(){return this._nodes.size===0}toString(){const D=[];for(const[S,p]of this._nodes)D.push(`${S} + (-> incoming)[${[...p.incoming.keys()].join(", ")}] + (outgoing ->)[${[...p.outgoing.keys()].join(",")}] +`);return D.join(` +`)}findCycleSlow(){for(const[D,S]of this._nodes){const p=new Set([D]),w=this._findCycle(S,p);if(w)return w}}_findCycle(D,S){for(const[p,w]of D.outgoing){if(S.has(p))return[...S,p].join(" -> ");S.add(p);const v=this._findCycle(w,S);if(v)return v;S.delete(p)}}}e.Graph=k}),define(ne[8],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createDecorator=e.IInstantiationService=e._util=void 0;var L;(function(D){D.serviceIds=new Map,D.DI_TARGET="$di$target",D.DI_DEPENDENCIES="$di$dependencies";function S(p){return p[D.DI_DEPENDENCIES]||[]}D.getServiceDependencies=S})(L||(e._util=L={})),e.IInstantiationService=y("instantiationService");function k(D,S,p){S[L.DI_TARGET]===S?S[L.DI_DEPENDENCIES].push({id:D,index:p}):(S[L.DI_DEPENDENCIES]=[{id:D,index:p}],S[L.DI_TARGET]=S)}function y(D){if(L.serviceIds.has(D))return L.serviceIds.get(D);const S=function(p,w,v){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");k(S,p,v)};return S.toString=()=>D,L.serviceIds.set(D,S),S}e.createDecorator=y}),define(ne[142],se([1,0,8,22,20]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResourceFileEdit=e.ResourceTextEdit=e.ResourceEdit=e.IBulkEditService=void 0,e.IBulkEditService=(0,L.createDecorator)("IWorkspaceEditService");class D{constructor(v){this.metadata=v}static convert(v){return v.edits.map(b=>{if(S.is(b))return S.lift(b);if(p.is(b))return p.lift(b);throw new Error("Unsupported edit")})}}e.ResourceEdit=D;class S extends D{static is(v){return v instanceof S?!0:(0,y.isObject)(v)&&k.URI.isUri(v.resource)&&(0,y.isObject)(v.textEdit)}static lift(v){return v instanceof S?v:new S(v.resource,v.textEdit,v.versionId,v.metadata)}constructor(v,b,a=void 0,n){super(n),this.resource=v,this.textEdit=b,this.versionId=a}}e.ResourceTextEdit=S;class p extends D{static is(v){return v instanceof p?!0:(0,y.isObject)(v)&&(!!v.newResource||!!v.oldResource)}static lift(v){return v instanceof p?v:new p(v.oldResource,v.newResource,v.options,v.metadata)}constructor(v,b,a={},n){super(n),this.oldResource=v,this.newResource=b,this.options=a}}e.ResourceFileEdit=p}),define(ne[35],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ICodeEditorService=void 0,e.ICodeEditorService=(0,L.createDecorator)("codeEditorService")});var he=this&&this.__param||function(ee,e){return function(L,k){e(L,k,ee)}};define(ne[348],se([1,0,6,104,27,58,2,32,174,29,20,87,64,9,5,30,637,8]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.HideUnchangedRegionsFeature=void 0;let d=c=class extends S.Disposable{static setBreadcrumbsSourceFactory(r){this._breadcrumbsSourceFactory.set(r,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(r,h,u,f){super(),this._editors=r,this._diffModel=h,this._options=u,this._instantiationService=f,this._modifiedOutlineSource=(0,w.derivedDisposable)(this,I=>{const T=this._editors.modifiedModel.read(I),A=c._breadcrumbsSourceFactory.read(I);return!T||!A?void 0:A(T,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(I=>{if(I.reason===3){const T=this._diffModel.get();(0,p.transaction)(A=>{for(const R of this._editors.original.getSelections()||[])T?.ensureOriginalLineIsVisible(R.getStartPosition().lineNumber,0,A),T?.ensureOriginalLineIsVisible(R.getEndPosition().lineNumber,0,A)})}})),this._register(this._editors.modified.onDidChangeCursorPosition(I=>{if(I.reason===3){const T=this._diffModel.get();(0,p.transaction)(A=>{for(const R of this._editors.modified.getSelections()||[])T?.ensureModifiedLineIsVisible(R.getStartPosition().lineNumber,0,A),T?.ensureModifiedLineIsVisible(R.getEndPosition().lineNumber,0,A)})}}));const C=this._diffModel.map((I,T)=>{var A,R;const M=(A=I?.unchangedRegions.read(T))!==null&&A!==void 0?A:[];return M.length===1&&M[0].modifiedLineNumber===1&&M[0].lineCount===((R=this._editors.modifiedModel.read(T))===null||R===void 0?void 0:R.getLineCount())?[]:M});this.viewZones=(0,p.derivedWithStore)(this,(I,T)=>{const A=this._modifiedOutlineSource.read(I);if(!A)return{origViewZones:[],modViewZones:[]};const R=[],M=[],N=this._options.renderSideBySide.read(I),P=C.read(I);for(const F of P)if(!F.shouldHideControls(I)){{const O=(0,p.derived)(this,W=>F.getHiddenOriginalRange(W).startLineNumber-1),B=new a.PlaceholderViewZone(O,24);R.push(B),T.add(new s(this._editors.original,B,F,F.originalUnchangedRange,!N,A,W=>this._diffModel.get().ensureModifiedLineIsVisible(W,2,void 0),this._options))}{const O=(0,p.derived)(this,W=>F.getHiddenModifiedRange(W).startLineNumber-1),B=new a.PlaceholderViewZone(O,24);M.push(B),T.add(new s(this._editors.modified,B,F,F.modifiedUnchangedRange,!1,A,W=>this._diffModel.get().ensureModifiedLineIsVisible(W,2,void 0),this._options))}}return{origViewZones:R,modViewZones:M}});const _={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},E={description:"Fold Unchanged",glyphMarginHoverMessage:new D.MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,g.localize)(0,null)),glyphMarginClassName:"fold-unchanged "+v.ThemeIcon.asClassName(y.Codicon.fold),zIndex:10001};this._register((0,a.applyObservableDecorations)(this._editors.original,(0,p.derived)(this,I=>{const T=C.read(I),A=T.map(R=>({range:R.originalUnchangedRange.toInclusiveRange(),options:_}));for(const R of T)R.shouldHideControls(I)&&A.push({range:t.Range.fromPositions(new i.Position(R.originalLineNumber,1)),options:E});return A}))),this._register((0,a.applyObservableDecorations)(this._editors.modified,(0,p.derived)(this,I=>{const T=C.read(I),A=T.map(R=>({range:R.modifiedUnchangedRange.toInclusiveRange(),options:_}));for(const R of T)R.shouldHideControls(I)&&A.push({range:n.LineRange.ofLength(R.modifiedLineNumber,1).toInclusiveRange(),options:E});return A}))),this._register((0,p.autorun)(I=>{const T=C.read(I);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(T.map(A=>A.getHiddenOriginalRange(I).toInclusiveRange()).filter(b.isDefined)),this._editors.modified.setHiddenAreas(T.map(A=>A.getHiddenModifiedRange(I).toInclusiveRange()).filter(b.isDefined))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(I=>{var T;if(!I.event.rightButton&&I.target.position&&(!((T=I.target.element)===null||T===void 0)&&T.className.includes("fold-unchanged"))){const A=I.target.position.lineNumber,R=this._diffModel.get();if(!R)return;const M=R.unchangedRegions.get().find(N=>N.modifiedUnchangedRange.includes(A));if(!M)return;M.collapseAll(void 0),I.event.stopPropagation(),I.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(I=>{var T;if(!I.event.rightButton&&I.target.position&&(!((T=I.target.element)===null||T===void 0)&&T.className.includes("fold-unchanged"))){const A=I.target.position.lineNumber,R=this._diffModel.get();if(!R)return;const M=R.unchangedRegions.get().find(N=>N.originalUnchangedRange.includes(A));if(!M)return;M.collapseAll(void 0),I.event.stopPropagation(),I.event.preventDefault()}}))}};e.HideUnchangedRegionsFeature=d,d._breadcrumbsSourceFactory=(0,p.observableValue)("breadcrumbsSourceFactory",void 0),e.HideUnchangedRegionsFeature=d=c=De([he(3,m.IInstantiationService)],d);class s extends a.ViewZoneOverlayWidget{constructor(r,h,u,f,C,_,E,I){const T=(0,L.h)("div.diff-hidden-lines-widget");super(r,h,T.root),this._editor=r,this._unchangedRegion=u,this._unchangedRegionRange=f,this._hide=C,this._modifiedOutlineSource=_,this._revealModifiedHiddenLine=E,this._options=I,this._nodes=(0,L.h)("div.diff-hidden-lines",[(0,L.h)("div.top@top",{title:(0,g.localize)(1,null)}),(0,L.h)("div.center@content",{style:{display:"flex"}},[(0,L.h)("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[(0,L.$)("a",{title:(0,g.localize)(2,null),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...(0,k.renderLabelWithIcons)("$(unfold)"))]),(0,L.h)("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),(0,L.h)("div.bottom@bottom",{title:(0,g.localize)(3,null),role:"button"})]),T.root.appendChild(this._nodes.root);const A=(0,p.observableFromEvent)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._hide?(0,L.reset)(this._nodes.first):this._register((0,a.applyStyle)(this._nodes.first,{width:A.map(M=>M.contentLeft)})),this._register((0,p.autorun)(M=>{const N=this._unchangedRegion.visibleLineCountTop.read(M)+this._unchangedRegion.visibleLineCountBottom.read(M)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!N),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(M)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(M)>0),this._nodes.top.classList.toggle("canMoveBottom",!N);const P=this._unchangedRegion.isDragged.read(M),F=this._editor.getDomNode();F&&(F.classList.toggle("draggingUnchangedRegion",!!P),P==="top"?(F.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(M)>0),F.classList.toggle("canMoveBottom",!N)):P==="bottom"?(F.classList.toggle("canMoveTop",!N),F.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(M)>0)):(F.classList.toggle("canMoveTop",!1),F.classList.toggle("canMoveBottom",!1)))}));const R=this._editor;this._register((0,L.addDisposableListener)(this._nodes.top,"mousedown",M=>{if(M.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),M.preventDefault();const N=M.clientY;let P=!1;const F=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const O=(0,L.getWindow)(this._nodes.top),B=(0,L.addDisposableListener)(O,"mousemove",V=>{const K=V.clientY-N;P=P||Math.abs(K)>2;const j=Math.round(K/R.getOption(67)),x=Math.max(0,Math.min(F+j,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(x,void 0)}),W=(0,L.addDisposableListener)(O,"mouseup",V=>{P||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),B.dispose(),W.dispose()})})),this._register((0,L.addDisposableListener)(this._nodes.bottom,"mousedown",M=>{if(M.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),M.preventDefault();const N=M.clientY;let P=!1;const F=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const O=(0,L.getWindow)(this._nodes.bottom),B=(0,L.addDisposableListener)(O,"mousemove",V=>{const K=V.clientY-N;P=P||Math.abs(K)>2;const j=Math.round(K/R.getOption(67)),x=Math.max(0,Math.min(F-j,this._unchangedRegion.getMaxVisibleLineCountBottom())),re=R.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(x,void 0);const ie=R.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);R.setScrollTop(R.getScrollTop()+(ie-re))}),W=(0,L.addDisposableListener)(O,"mouseup",V=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!P){const z=R.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const K=R.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);R.setScrollTop(R.getScrollTop()+(K-z))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),B.dispose(),W.dispose()})})),this._register((0,p.autorun)(M=>{const N=[];if(!this._hide){const P=u.getHiddenModifiedRange(M).length,F=(0,g.localize)(4,null,P),O=(0,L.$)("span",{title:(0,g.localize)(5,null)},F);O.addEventListener("dblclick",V=>{V.button===0&&(V.preventDefault(),this._unchangedRegion.showAll(void 0))}),N.push(O);const B=this._unchangedRegion.getHiddenModifiedRange(M),W=this._modifiedOutlineSource.getBreadcrumbItems(B,M);if(W.length>0){N.push((0,L.$)("span",void 0,"\xA0\xA0|\xA0\xA0"));for(let V=0;V{this._revealModifiedHiddenLine(z.startLineNumber)}}}}(0,L.reset)(this._nodes.others,...N)}))}}}),define(ne[43],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageService=void 0,e.ILanguageService=(0,L.createDecorator)("languageService")}),define(ne[123],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorWorkerService=void 0,e.IEditorWorkerService=(0,L.createDecorator)("editorWorkerService")}),define(ne[18],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageFeaturesService=void 0,e.ILanguageFeaturesService=(0,L.createDecorator)("ILanguageFeaturesService")}),define(ne[773],se([1,0,621,18,45]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeaturesService=void 0;class D{constructor(){this.referenceProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.renameProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.newSymbolNamesProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.codeActionProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.definitionProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.typeDefinitionProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.declarationProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.implementationProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentSymbolProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.inlayHintsProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.colorProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.codeLensProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentFormattingEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeFormattingEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.onTypeFormattingEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.signatureHelpProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.hoverProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentHighlightProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.multiDocumentHighlightProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.selectionRangeProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.foldingRangeProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.linkProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.inlineCompletionsProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.inlineEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.completionProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.linkedEditingRangeProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentSemanticTokensProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentOnDropEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this)),this.documentPasteEditProvider=new L.LanguageFeatureRegistry(this._score.bind(this))}_score(p){var w;return(w=this._notebookTypeResolver)===null||w===void 0?void 0:w.call(this,p)}}e.LanguageFeaturesService=D,(0,y.registerSingleton)(k.ILanguageFeaturesService,D,1)}),define(ne[243],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerDecorationsService=void 0,e.IMarkerDecorationsService=(0,L.createDecorator)("markerDecorationsService")}),define(ne[51],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IModelService=void 0,e.IModelService=(0,L.createDecorator)("modelService")}),define(ne[70],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextModelService=void 0,e.ITextModelService=(0,L.createDecorator)("textModelService")}),define(ne[244],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISemanticTokensStylingService=void 0,e.ISemanticTokensStylingService=(0,L.createDecorator)("semanticTokensStylingService")}),define(ne[194],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextResourcePropertiesService=e.ITextResourceConfigurationService=void 0,e.ITextResourceConfigurationService=(0,L.createDecorator)("textResourceConfigurationService"),e.ITextResourcePropertiesService=(0,L.createDecorator)("textResourcePropertiesService")}),define(ne[774],se([1,0,45,8,303]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITreeViewsDnDService=void 0,e.ITreeViewsDnDService=(0,k.createDecorator)("treeViewsDndService"),(0,L.registerSingleton)(e.ITreeViewsDnDService,y.TreeViewsDnDService,1)}),define(ne[245],se([1,0,142,120]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sortEditsByYieldTo=e.createCombinedWorkspaceEdit=void 0;function y(S,p,w){var v,b,a,n;return(typeof w.insertText=="string"?w.insertText==="":w.insertText.snippet==="")?{edits:(b=(v=w.additionalEdit)===null||v===void 0?void 0:v.edits)!==null&&b!==void 0?b:[]}:{edits:[...p.map(i=>new L.ResourceTextEdit(S,{range:i,text:typeof w.insertText=="string"?k.SnippetParser.escape(w.insertText)+"$0":w.insertText.snippet,insertAsSnippet:!0})),...(n=(a=w.additionalEdit)===null||a===void 0?void 0:a.edits)!==null&&n!==void 0?n:[]]}}e.createCombinedWorkspaceEdit=y;function D(S){var p;function w(i,t){return"providerId"in i&&i.providerId===t.providerId||"mimeType"in i&&i.mimeType===t.handledMimeType}const v=new Map;for(const i of S)for(const t of(p=i.yieldTo)!==null&&p!==void 0?p:[])for(const o of S)if(o!==i&&w(t,o)){let g=v.get(i);g||(g=[],v.set(i,g)),g.push(o)}if(!v.size)return Array.from(S);const b=new Set,a=[];function n(i){if(!i.length)return[];const t=i[0];if(a.includes(t))return console.warn(`Yield to cycle detected for ${t.providerId}`),i;if(b.has(t))return n(i.slice(1));let o=[];const g=v.get(t);return g&&(a.push(t),o=n(g),a.pop()),b.add(t),[...o,t,...n(i.slice(1))]}return n(Array.from(S))}e.sortEditsByYieldTo=D}),define(ne[349],se([1,0,95,7,2,32,11,74,36,9,5,106,43,40,97,139,122,189,140,474]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ttPolicy=e.AdditionalLinesWidget=e.GhostTextWidget=e.GHOST_TEXT_DESCRIPTION=void 0,e.GHOST_TEXT_DESCRIPTION="ghost-text";let d=class extends y.Disposable{constructor(h,u,f){super(),this.editor=h,this.model=u,this.languageService=f,this.isDisposed=(0,D.observableValue)(this,!1),this.currentTextModel=(0,D.observableFromEvent)(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,D.derived)(this,C=>{if(this.isDisposed.read(C))return;const _=this.currentTextModel.read(C);if(_!==this.model.targetTextModel.read(C))return;const E=this.model.ghostText.read(C);if(!E)return;const I=E instanceof m.GhostTextReplacement?E.columnRange:void 0,T=[],A=[];function R(O,B){if(A.length>0){const W=A[A.length-1];B&&W.decorations.push(new o.LineDecoration(W.content.length+1,W.content.length+1+O[0].length,B,0)),W.content+=O[0],O=O.slice(1)}for(const W of O)A.push({content:W,decorations:B?[new o.LineDecoration(1,W.length+1,B,0)]:[]})}const M=_.getLineContent(E.lineNumber);let N,P=0;for(const O of E.parts){let B=O.lines;N===void 0?(T.push({column:O.column,text:B[0],preview:O.preview}),B=B.slice(1)):R([M.substring(P,O.column-1)],void 0),B.length>0&&(R(B,e.GHOST_TEXT_DESCRIPTION),N===void 0&&O.column<=M.length&&(N=O.column)),P=O.column-1}N!==void 0&&R([M.substring(P)],void 0);const F=N!==void 0?new c.ColumnRange(N,M.length+1):void 0;return{replacedRange:I,inlineTexts:T,additionalLines:A,hiddenRange:F,lineNumber:E.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(C),targetTextModel:_}}),this.decorations=(0,D.derived)(this,C=>{const _=this.uiState.read(C);if(!_)return[];const E=[];_.replacedRange&&E.push({range:_.replacedRange.toRange(_.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),_.hiddenRange&&E.push({range:_.hiddenRange.toRange(_.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const I of _.inlineTexts)E.push({range:b.Range.fromPositions(new v.Position(_.lineNumber,I.column)),options:{description:e.GHOST_TEXT_DESCRIPTION,after:{content:I.text,inlineClassName:I.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:i.InjectedTextCursorStops.Left},showIfCollapsed:!0}});return E}),this.additionalLinesWidget=this._register(new s(this.editor,this.languageService.languageIdCodec,(0,D.derived)(C=>{const _=this.uiState.read(C);return _?{lineNumber:_.lineNumber,additionalLines:_.additionalLines,minReservedLineCount:_.additionalReservedLineCount,targetTextModel:_.targetTextModel}:void 0}))),this._register((0,y.toDisposable)(()=>{this.isDisposed.set(!0,void 0)})),this._register((0,c.applyObservableDecorations)(this.editor,this.decorations))}ownsViewZone(h){return this.additionalLinesWidget.viewZoneId===h}};e.GhostTextWidget=d,e.GhostTextWidget=d=De([he(2,n.ILanguageService)],d);class s extends y.Disposable{get viewZoneId(){return this._viewZoneId}constructor(h,u,f){super(),this.editor=h,this.languageIdCodec=u,this.lines=f,this._viewZoneId=void 0,this.editorOptionsChanged=(0,D.observableSignalFromEvent)("editorOptionChanged",k.Event.filter(this.editor.onDidChangeConfiguration,C=>C.hasChanged(33)||C.hasChanged(117)||C.hasChanged(99)||C.hasChanged(94)||C.hasChanged(51)||C.hasChanged(50)||C.hasChanged(67))),this._register((0,D.autorun)(C=>{const _=this.lines.read(C);this.editorOptionsChanged.read(C),_?this.updateLines(_.lineNumber,_.additionalLines,_.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(h=>{this._viewZoneId&&(h.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(h,u,f){const C=this.editor.getModel();if(!C)return;const{tabSize:_}=C.getOptions();this.editor.changeViewZones(E=>{this._viewZoneId&&(E.removeZone(this._viewZoneId),this._viewZoneId=void 0);const I=Math.max(u.length,f);if(I>0){const T=document.createElement("div");l(T,_,u,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=E.addZone({afterLineNumber:h,heightInLines:I,domNode:T,afterColumnAffinity:1})}})}}e.AdditionalLinesWidget=s;function l(r,h,u,f,C){const _=f.get(33),E=f.get(117),I="none",T=f.get(94),A=f.get(51),R=f.get(50),M=f.get(67),N=new a.StringBuilder(1e4);N.appendString('
    ');for(let O=0,B=u.length;O');const z=S.isBasicASCII(V),K=S.containsRTL(V),j=t.LineTokens.createEmpty(V,C);(0,g.renderViewLine)(new g.RenderLineInput(R.isMonospace&&!_,R.canUseHalfwidthRightwardsArrow,V,!1,z,K,0,j,W.decorations,h,0,R.spaceWidth,R.middotWidth,R.wsmiddotWidth,E,I,T,A!==w.EditorFontLigatures.OFF,null),N),N.appendString("
    ")}N.appendString(""),(0,p.applyFontInfo)(r,R);const P=N.build(),F=e.ttPolicy?e.ttPolicy.createHTML(P):P;r.innerHTML=F}e.ttPolicy=(0,L.createTrustedTypesPolicy)("editorGhostText",{createHTML:r=>r})}),define(ne[775],se([1,0,2,32,9,5,43,40,139,349,140,476]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GhostTextWidget=e.INLINE_EDIT_DESCRIPTION=void 0,e.INLINE_EDIT_DESCRIPTION="inline-edit";let a=class extends L.Disposable{constructor(i,t,o){super(),this.editor=i,this.model=t,this.languageService=o,this.isDisposed=(0,k.observableValue)(this,!1),this.currentTextModel=(0,k.observableFromEvent)(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,k.derived)(this,g=>{var m;if(this.isDisposed.read(g))return;const c=this.currentTextModel.read(g);if(c!==this.model.targetTextModel.read(g))return;const d=this.model.ghostText.read(g);if(!d)return;let s=(m=this.model.range)===null||m===void 0?void 0:m.read(g);s&&s.startLineNumber===s.endLineNumber&&s.startColumn===s.endColumn&&(s=void 0);const l=(s?s.startLineNumber===s.endLineNumber:!0)&&d.parts.length===1&&d.parts[0].lines.length===1,r=d.parts.length===1&&d.parts[0].lines.every(A=>A.length===0),h=[],u=[];function f(A,R){if(u.length>0){const M=u[u.length-1];R&&M.decorations.push(new w.LineDecoration(M.content.length+1,M.content.length+1+A[0].length,R,0)),M.content+=A[0],A=A.slice(1)}for(const M of A)u.push({content:M,decorations:R?[new w.LineDecoration(1,M.length+1,R,0)]:[]})}const C=c.getLineContent(d.lineNumber);let _,E=0;if(!r){for(const A of d.parts){let R=A.lines;s&&!l&&(f(R,e.INLINE_EDIT_DESCRIPTION),R=[]),_===void 0?(h.push({column:A.column,text:R[0],preview:A.preview}),R=R.slice(1)):f([C.substring(E,A.column-1)],void 0),R.length>0&&(f(R,e.INLINE_EDIT_DESCRIPTION),_===void 0&&A.column<=C.length&&(_=A.column)),E=A.column-1}_!==void 0&&f([C.substring(E)],void 0)}const I=_!==void 0?new b.ColumnRange(_,C.length+1):void 0,T=l||!s?d.lineNumber:s.endLineNumber-1;return{inlineTexts:h,additionalLines:u,hiddenRange:I,lineNumber:T,additionalReservedLineCount:this.model.minReservedLineCount.read(g),targetTextModel:c,range:s,isSingleLine:l,isPureRemove:r,backgroundColoring:this.model.backgroundColoring.read(g)}}),this.decorations=(0,k.derived)(this,g=>{const m=this.uiState.read(g);if(!m)return[];const c=[];if(m.hiddenRange&&c.push({range:m.hiddenRange.toRange(m.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),m.range){const d=[];if(m.isSingleLine)d.push(m.range);else if(m.isPureRemove){const l=m.range.endLineNumber-m.range.startLineNumber;for(let r=0;r{const m=this.uiState.read(g);return m&&!m.isPureRemove?{lineNumber:m.lineNumber,additionalLines:m.additionalLines,minReservedLineCount:m.additionalReservedLineCount,targetTextModel:m.targetTextModel}:void 0}))),this._register((0,L.toDisposable)(()=>{this.isDisposed.set(!0,void 0)})),this._register((0,b.applyObservableDecorations)(this.editor,this.decorations))}ownsViewZone(i){return this.additionalLinesWidget.viewZoneId===i}};e.GhostTextWidget=a,e.GhostTextWidget=a=De([he(2,S.ILanguageService)],a)}),define(ne[143],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IStandaloneThemeService=void 0,e.IStandaloneThemeService=(0,L.createDecorator)("themeService")}),define(ne[124],se([1,0,8,740]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilitySignal=e.SoundSource=e.Sound=e.IAccessibilitySignalService=void 0,e.IAccessibilitySignalService=(0,L.createDecorator)("accessibilitySignalService");class y{static register(w){return new y(w.fileName)}constructor(w){this.fileName=w}}e.Sound=y,y.error=y.register({fileName:"error.mp3"}),y.warning=y.register({fileName:"warning.mp3"}),y.foldedArea=y.register({fileName:"foldedAreas.mp3"}),y.break=y.register({fileName:"break.mp3"}),y.quickFixes=y.register({fileName:"quickFixes.mp3"}),y.taskCompleted=y.register({fileName:"taskCompleted.mp3"}),y.taskFailed=y.register({fileName:"taskFailed.mp3"}),y.terminalBell=y.register({fileName:"terminalBell.mp3"}),y.diffLineInserted=y.register({fileName:"diffLineInserted.mp3"}),y.diffLineDeleted=y.register({fileName:"diffLineDeleted.mp3"}),y.diffLineModified=y.register({fileName:"diffLineModified.mp3"}),y.chatRequestSent=y.register({fileName:"chatRequestSent.mp3"}),y.chatResponsePending=y.register({fileName:"chatResponsePending.mp3"}),y.chatResponseReceived1=y.register({fileName:"chatResponseReceived1.mp3"}),y.chatResponseReceived2=y.register({fileName:"chatResponseReceived2.mp3"}),y.chatResponseReceived3=y.register({fileName:"chatResponseReceived3.mp3"}),y.chatResponseReceived4=y.register({fileName:"chatResponseReceived4.mp3"}),y.clear=y.register({fileName:"clear.mp3"}),y.save=y.register({fileName:"save.mp3"}),y.format=y.register({fileName:"format.mp3"});class D{constructor(w){this.randomOneOf=w}}e.SoundSource=D;class S{static register(w){const v=new D("randomOneOf"in w.sound?w.sound.randomOneOf:[w.sound]),b=new S(v,w.name,w.legacySoundSettingsKey,w.settingsKey,w.legacyAnnouncementSettingsKey,w.announcementMessage);return S._signals.add(b),b}constructor(w,v,b,a,n,i){this.sound=w,this.name=v,this.legacySoundSettingsKey=b,this.settingsKey=a,this.legacyAnnouncementSettingsKey=n,this.announcementMessage=i}}e.AccessibilitySignal=S,S._signals=new Set,S.error=S.register({name:(0,k.localize)(0,null),sound:y.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:(0,k.localize)(1,null),settingsKey:"accessibility.signals.lineHasError"}),S.warning=S.register({name:(0,k.localize)(2,null),sound:y.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:(0,k.localize)(3,null),settingsKey:"accessibility.signals.lineHasWarning"}),S.foldedArea=S.register({name:(0,k.localize)(4,null),sound:y.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:(0,k.localize)(5,null),settingsKey:"accessibility.signals.lineHasFoldedArea"}),S.break=S.register({name:(0,k.localize)(6,null),sound:y.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:(0,k.localize)(7,null),settingsKey:"accessibility.signals.lineHasBreakpoint"}),S.inlineSuggestion=S.register({name:(0,k.localize)(8,null),sound:y.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"}),S.terminalQuickFix=S.register({name:(0,k.localize)(9,null),sound:y.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:(0,k.localize)(10,null),settingsKey:"accessibility.signals.terminalQuickFix"}),S.onDebugBreak=S.register({name:(0,k.localize)(11,null),sound:y.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:(0,k.localize)(12,null),settingsKey:"accessibility.signals.onDebugBreak"}),S.noInlayHints=S.register({name:(0,k.localize)(13,null),sound:y.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:(0,k.localize)(14,null),settingsKey:"accessibility.signals.noInlayHints"}),S.taskCompleted=S.register({name:(0,k.localize)(15,null),sound:y.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:(0,k.localize)(16,null),settingsKey:"accessibility.signals.taskCompleted"}),S.taskFailed=S.register({name:(0,k.localize)(17,null),sound:y.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:(0,k.localize)(18,null),settingsKey:"accessibility.signals.taskFailed"}),S.terminalCommandFailed=S.register({name:(0,k.localize)(19,null),sound:y.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:(0,k.localize)(20,null),settingsKey:"accessibility.signals.terminalCommandFailed"}),S.terminalBell=S.register({name:(0,k.localize)(21,null),sound:y.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:(0,k.localize)(22,null),settingsKey:"accessibility.signals.terminalBell"}),S.notebookCellCompleted=S.register({name:(0,k.localize)(23,null),sound:y.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:(0,k.localize)(24,null),settingsKey:"accessibility.signals.notebookCellCompleted"}),S.notebookCellFailed=S.register({name:(0,k.localize)(25,null),sound:y.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:(0,k.localize)(26,null),settingsKey:"accessibility.signals.notebookCellFailed"}),S.diffLineInserted=S.register({name:(0,k.localize)(27,null),sound:y.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"}),S.diffLineDeleted=S.register({name:(0,k.localize)(28,null),sound:y.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"}),S.diffLineModified=S.register({name:(0,k.localize)(29,null),sound:y.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"}),S.chatRequestSent=S.register({name:(0,k.localize)(30,null),sound:y.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:(0,k.localize)(31,null),settingsKey:"accessibility.signals.chatRequestSent"}),S.chatResponseReceived=S.register({name:(0,k.localize)(32,null),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[y.chatResponseReceived1,y.chatResponseReceived2,y.chatResponseReceived3,y.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"}),S.chatResponsePending=S.register({name:(0,k.localize)(33,null),sound:y.chatResponsePending,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.chatResponsePending",announcementMessage:(0,k.localize)(34,null),settingsKey:"accessibility.signals.chatResponsePending"}),S.clear=S.register({name:(0,k.localize)(35,null),sound:y.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:(0,k.localize)(36,null),settingsKey:"accessibility.signals.clear"}),S.save=S.register({name:(0,k.localize)(37,null),sound:y.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:(0,k.localize)(38,null),settingsKey:"accessibility.signals.save"}),S.format=S.register({name:(0,k.localize)(39,null),sound:y.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:(0,k.localize)(40,null),settingsKey:"accessibility.signals.format"})}),define(ne[107],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IClipboardService=void 0,e.IClipboardService=(0,L.createDecorator)("clipboardService")}),define(ne[25],se([1,0,7,52,2,67,20,8]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommandsRegistry=e.ICommandService=void 0,e.ICommandService=(0,p.createDecorator)("commandService"),e.CommandsRegistry=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new L.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(w,v){if(!w)throw new Error("invalid command");if(typeof w=="string"){if(!v)throw new Error("invalid command");return this.registerCommand({id:w,handler:v})}if(w.metadata&&Array.isArray(w.metadata.args)){const t=[];for(const g of w.metadata.args)t.push(g.constraint);const o=w.handler;w.handler=function(g,...m){return(0,S.validateConstraints)(m,t),o(g,...m)}}const{id:b}=w;let a=this._commands.get(b);a||(a=new D.LinkedList,this._commands.set(b,a));const n=a.unshift(w),i=(0,y.toDisposable)(()=>{n();const t=this._commands.get(b);t?.isEmpty()&&this._commands.delete(b)});return this._onDidRegisterCommand.fire(b),i}registerCommandAlias(w,v){return e.CommandsRegistry.registerCommand(w,(b,...a)=>b.get(e.ICommandService).executeCommand(v,...a))}getCommand(w){const v=this._commands.get(w);if(!(!v||v.isEmpty()))return k.Iterable.first(v)}getCommands(){const w=new Map;for(const v of this._commands.keys()){const b=this.getCommand(v);b&&w.set(v,b)}return w}},e.CommandsRegistry.registerCommand("noop",()=>{})}),define(ne[350],se([1,0,19,12,2,20,22,51,25,18]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCodeLensModel=e.CodeLensModel=void 0;class b{constructor(){this.lenses=[],this._disposables=new y.DisposableStore}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(i,t){this._disposables.add(i);for(const o of i.lenses)this.lenses.push({symbol:o,provider:t})}}e.CodeLensModel=b;async function a(n,i,t){const o=n.ordered(i),g=new Map,m=new b,c=o.map(async(d,s)=>{g.set(d,s);try{const l=await Promise.resolve(d.provideCodeLenses(i,t));l&&m.add(l,d)}catch(l){(0,k.onUnexpectedExternalError)(l)}});return await Promise.all(c),m.lenses=m.lenses.sort((d,s)=>d.symbol.range.startLineNumbers.symbol.range.startLineNumber?1:g.get(d.provider)g.get(s.provider)?1:d.symbol.range.startColumns.symbol.range.startColumn?1:0),m}e.getCodeLensModel=a,w.CommandsRegistry.registerCommand("_executeCodeLensProvider",function(n,...i){let[t,o]=i;(0,D.assertType)(S.URI.isUri(t)),(0,D.assertType)(typeof o=="number"||!o);const{codeLensProvider:g}=n.get(v.ILanguageFeaturesService),m=n.get(p.IModelService).getModel(t);if(!m)throw(0,k.illegalArgument)();const c=[],d=new y.DisposableStore;return a(g,m,L.CancellationToken.None).then(s=>{d.add(s);const l=[];for(const r of s.lenses)o==null||r.symbol.command?c.push(r.symbol):o-- >0&&r.provider.resolveCodeLens&&l.push(Promise.resolve(r.provider.resolveCodeLens(m,r.symbol,L.CancellationToken.None)).then(h=>c.push(h||r.symbol)));return Promise.all(l)}).then(()=>c).finally(()=>{setTimeout(()=>d.dispose(),100)})})}),define(ne[776],se([1,0,13,19,12,2,20,22,5,51,25,18]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getLinks=e.LinksList=e.Link=void 0;class n{constructor(g,m){this._link=g,this._provider=m}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(g){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,g)).then(m=>(this._link=m||this._link,this._link.url?this.resolve(g):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}}e.Link=n;class i{constructor(g){this._disposables=new D.DisposableStore;let m=[];for(const[c,d]of g){const s=c.links.map(l=>new n(l,d));m=i._union(m,s),(0,D.isDisposable)(c)&&this._disposables.add(c)}this.links=m}dispose(){this._disposables.dispose(),this.links.length=0}static _union(g,m){const c=[];let d,s,l,r;for(d=0,l=0,s=g.length,r=m.length;dPromise.resolve(s.provideLinks(g,m)).then(r=>{r&&(c[l]=[r,s])},y.onUnexpectedExternalError));return Promise.all(d).then(()=>{const s=new i((0,L.coalesce)(c));return m.isCancellationRequested?(s.dispose(),new i([])):s})}e.getLinks=t,b.CommandsRegistry.registerCommand("_executeLinkProvider",async(o,...g)=>{let[m,c]=g;(0,S.assertType)(m instanceof p.URI),typeof c!="number"&&(c=0);const{linkProvider:d}=o.get(a.ILanguageFeaturesService),s=o.get(v.IModelService).getModel(m);if(!s)return[];const l=await t(d,s,k.CancellationToken.None);if(!l)return[];for(let h=0;h0?u[0]:[]}async function g(r,h,u,f,C){const _=o(r,h),E=await Promise.all(_.map(async I=>{let T,A=null;try{T=await I.provideDocumentSemanticTokens(h,I===u?f:null,C)}catch(R){A=R,T=null}return(!T||!a(T)&&!n(T))&&(T=null),new i(I,T,A)}));for(const I of E){if(I.error)throw I.error;if(I.tokens)return I}return E.length>0?E[0]:null}e.getDocumentSemanticTokens=g;function m(r,h){const u=r.orderedGroups(h);return u.length>0?u[0]:null}class c{constructor(h,u){this.provider=h,this.tokens=u}}function d(r,h){return r.has(h)}e.hasDocumentRangeSemanticTokensProvider=d;function s(r,h){const u=r.orderedGroups(h);return u.length>0?u[0]:[]}async function l(r,h,u,f){const C=s(r,h),_=await Promise.all(C.map(async E=>{let I;try{I=await E.provideDocumentRangeSemanticTokens(h,u,f)}catch(T){(0,k.onUnexpectedExternalError)(T),I=null}return(!I||!a(I))&&(I=null),new c(E,I)}));for(const E of _)if(E.tokens)return E;return _.length>0?_[0]:null}e.getDocumentRangeSemanticTokens=l,S.CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(r,...h)=>{const[u]=h;(0,p.assertType)(u instanceof y.URI);const f=r.get(D.IModelService).getModel(u);if(!f)return;const{documentSemanticTokensProvider:C}=r.get(b.ILanguageFeaturesService),_=m(C,f);return _?_[0].getLegend():r.get(S.ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",u)}),S.CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(r,...h)=>{const[u]=h;(0,p.assertType)(u instanceof y.URI);const f=r.get(D.IModelService).getModel(u);if(!f)return;const{documentSemanticTokensProvider:C}=r.get(b.ILanguageFeaturesService);if(!t(C,f))return r.get(S.ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",u,f.getFullModelRange());const _=await g(C,f,null,null,L.CancellationToken.None);if(!_)return;const{provider:E,tokens:I}=_;if(!I||!a(I))return;const T=(0,w.encodeSemanticTokensDto)({id:0,type:"full",data:I.data});return I.resultId&&E.releaseDocumentSemanticTokens(I.resultId),T}),S.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(r,...h)=>{const[u,f]=h;(0,p.assertType)(u instanceof y.URI);const C=r.get(D.IModelService).getModel(u);if(!C)return;const{documentRangeSemanticTokensProvider:_}=r.get(b.ILanguageFeaturesService),E=s(_,C);if(E.length===0)return;if(E.length===1)return E[0].getLegend();if(!f||!v.Range.isIRange(f))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),E[0].getLegend();const I=await l(_,C,v.Range.lift(f),L.CancellationToken.None);if(I)return I.provider.getLegend()}),S.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(r,...h)=>{const[u,f]=h;(0,p.assertType)(u instanceof y.URI),(0,p.assertType)(v.Range.isIRange(f));const C=r.get(D.IModelService).getModel(u);if(!C)return;const{documentRangeSemanticTokensProvider:_}=r.get(b.ILanguageFeaturesService),E=await l(_,C,v.Range.lift(f),L.CancellationToken.None);if(!(!E||!E.tokens))return(0,w.encodeSemanticTokensDto)({id:0,type:"full",data:E.tokens.data})})}),define(ne[26],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getLanguageTagSettingPlainKey=e.getConfigurationValue=e.removeFromValueTree=e.addToValueTree=e.toValuesTree=e.IConfigurationService=void 0,e.IConfigurationService=(0,L.createDecorator)("configurationService");function k(v,b){const a=Object.create(null);for(const n in v)y(a,n,v[n],b);return a}e.toValuesTree=k;function y(v,b,a,n){const i=b.split("."),t=i.pop();let o=v;for(let g=0;g"u"?a:t}e.getConfigurationValue=p;function w(v){return v.replace(/[\[\]]/g,"")}e.getLanguageTagSettingPlainKey=w}),define(ne[352],se([1,0,2,30,162,320,26]),function(ee,e,L,k,y,D,S){"use strict";var p;Object.defineProperty(e,"__esModule",{value:!0}),e.MonarchTokenizer=void 0;const w=5;class v{static create(d,s){return this._INSTANCE.create(d,s)}constructor(d){this._maxCacheDepth=d,this._entries=Object.create(null)}create(d,s){if(d!==null&&d.depth>=this._maxCacheDepth)return new b(d,s);let l=b.getStackElementId(d);l.length>0&&(l+="|"),l+=s;let r=this._entries[l];return r||(r=new b(d,s),this._entries[l]=r,r)}}v._INSTANCE=new v(w);class b{constructor(d,s){this.parent=d,this.state=s,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(d){let s="";for(;d!==null;)s.length>0&&(s+="|"),s+=d.state,d=d.parent;return s}static _equals(d,s){for(;d!==null&&s!==null;){if(d===s)return!0;if(d.state!==s.state)return!1;d=d.parent,s=s.parent}return d===null&&s===null}equals(d){return b._equals(this,d)}push(d){return v.create(this,d)}pop(){return this.parent}popall(){let d=this;for(;d.parent;)d=d.parent;return d}switchTo(d){return v.create(this.parent,d)}}class a{constructor(d,s){this.languageId=d,this.state=s}equals(d){return this.languageId===d.languageId&&this.state.equals(d.state)}clone(){return this.state.clone()===this.state?this:new a(this.languageId,this.state)}}class n{static create(d,s){return this._INSTANCE.create(d,s)}constructor(d){this._maxCacheDepth=d,this._entries=Object.create(null)}create(d,s){if(s!==null)return new i(d,s);if(d!==null&&d.depth>=this._maxCacheDepth)return new i(d,s);const l=b.getStackElementId(d);let r=this._entries[l];return r||(r=new i(d,null),this._entries[l]=r,r)}}n._INSTANCE=new n(w);class i{constructor(d,s){this.stack=d,this.embeddedLanguageData=s}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:n.create(this.stack,this.embeddedLanguageData)}equals(d){return!(d instanceof i)||!this.stack.equals(d.stack)?!1:this.embeddedLanguageData===null&&d.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||d.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(d.embeddedLanguageData)}}class t{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(d){this._languageId=d}emit(d,s){this._lastTokenType===s&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=s,this._lastTokenLanguage=this._languageId,this._tokens.push(new k.Token(d,s,this._languageId)))}nestedLanguageTokenize(d,s,l,r){const h=l.languageId,u=l.state,f=k.TokenizationRegistry.get(h);if(!f)return this.enterLanguage(h),this.emit(r,""),u;const C=f.tokenize(d,s,u);if(r!==0)for(const _ of C.tokens)this._tokens.push(new k.Token(_.offset+r,_.type,_.language));else this._tokens=this._tokens.concat(C.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,C.endState}finalize(d){return new k.TokenizationResult(this._tokens,d)}}class o{constructor(d,s){this._languageService=d,this._theme=s,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(d){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(d)}emit(d,s){const l=this._theme.match(this._currentLanguageId,s)|1024;this._lastTokenMetadata!==l&&(this._lastTokenMetadata=l,this._tokens.push(d),this._tokens.push(l))}static _merge(d,s,l){const r=d!==null?d.length:0,h=s.length,u=l!==null?l.length:0;if(r===0&&h===0&&u===0)return new Uint32Array(0);if(r===0&&h===0)return l;if(h===0&&u===0)return d;const f=new Uint32Array(r+h+u);d!==null&&f.set(d);for(let C=0;C{if(u)return;let C=!1;for(let _=0,E=f.changedLanguages.length;_{f.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const d=[];for(const s in this._embeddedLanguages){const l=k.TokenizationRegistry.get(s);if(l){if(l instanceof p){const r=l.getLoadStatus();r.loaded===!1&&d.push(r.promise)}continue}k.TokenizationRegistry.isResolved(s)||d.push(k.TokenizationRegistry.getOrCreate(s))}return d.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(d).then(s=>{})}}getInitialState(){const d=v.create(null,this._lexer.start);return n.create(d,null)}tokenize(d,s,l){if(d.length>=this._maxTokenizationLineLength)return(0,y.nullTokenize)(this._languageId,l);const r=new t,h=this._tokenize(d,s,l,r);return r.finalize(h)}tokenizeEncoded(d,s,l){if(d.length>=this._maxTokenizationLineLength)return(0,y.nullTokenizeEncoded)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),l);const r=new o(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),h=this._tokenize(d,s,l,r);return r.finalize(h)}_tokenize(d,s,l,r){return l.embeddedLanguageData?this._nestedTokenize(d,s,l,0,r):this._myTokenize(d,s,l,0,r)}_findLeavingNestedLanguageOffset(d,s){let l=this._lexer.tokenizer[s.stack.state];if(!l&&(l=D.findRules(this._lexer,s.stack.state),!l))throw D.createError(this._lexer,"tokenizer state is not defined: "+s.stack.state);let r=-1,h=!1;for(const u of l){if(!D.isIAction(u.action)||u.action.nextEmbedded!=="@pop")continue;h=!0;let f=u.regex;const C=u.regex.source;if(C.substr(0,4)==="^(?:"&&C.substr(C.length-1,1)===")"){const E=(f.ignoreCase?"i":"")+(f.unicode?"u":"");f=new RegExp(C.substr(4,C.length-5),E)}const _=d.search(f);_===-1||_!==0&&u.matchOnlyAtLineStart||(r===-1||_0&&h.nestedLanguageTokenize(f,!1,l.embeddedLanguageData,r);const C=d.substring(u);return this._myTokenize(C,s,l,r+u,h)}_safeRuleName(d){return d?d.name:"(unknown)"}_myTokenize(d,s,l,r,h){h.enterLanguage(this._languageId);const u=d.length,f=s&&this._lexer.includeLF?d+` +`:d,C=f.length;let _=l.embeddedLanguageData,E=l.stack,I=0,T=null,A=!0;for(;A||I=C)break;A=!1;let j=this._lexer.tokenizer[P];if(!j&&(j=D.findRules(this._lexer,P),!j))throw D.createError(this._lexer,"tokenizer state is not defined: "+P);const x=f.substr(I);for(const re of j)if((I===0||!re.matchOnlyAtLineStart)&&(F=x.match(re.regex),F)){O=F[0],B=re.action;break}}if(F||(F=[""],O=""),B||(I=this._lexer.maxStack)throw D.createError(this._lexer,"maximum tokenizer stack size reached: ["+E.state+","+E.parent.state+",...]");E=E.push(P)}else if(B.next==="@pop"){if(E.depth<=1)throw D.createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(W));E=E.pop()}else if(B.next==="@popall")E=E.popall();else{let j=D.substituteMatches(this._lexer,B.next,O,F,P);if(j[0]==="@"&&(j=j.substr(1)),D.findRules(this._lexer,j))E=E.push(j);else throw D.createError(this._lexer,"trying to set a next state '"+j+"' that is undefined in rule: "+this._safeRuleName(W))}}B.log&&typeof B.log=="string"&&D.log(this._lexer,this._lexer.languageId+": "+D.substituteMatches(this._lexer,B.log,O,F,P))}if(z===null)throw D.createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(W));const K=j=>{const x=this._languageService.getLanguageIdByLanguageName(j)||this._languageService.getLanguageIdByMimeType(j)||j,re=this._getNestedEmbeddedLanguageData(x);if(I0)throw D.createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(W));if(F.length!==z.length+1)throw D.createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(W));let j=0;for(let x=1;xt});class b{static colorizeElement(o,g,m,c){c=c||{};const d=c.theme||"vs",s=c.mimeType||m.getAttribute("lang")||m.getAttribute("data-lang");if(!s)return console.error("Mode not detected"),Promise.resolve();const l=g.getLanguageIdByMimeType(s)||s;o.setTheme(d);const r=m.firstChild?m.firstChild.nodeValue:"";m.className+=" "+d;const h=u=>{var f;const C=(f=v?.createHTML(u))!==null&&f!==void 0?f:u;m.innerHTML=C};return this.colorize(g,r||"",l,c).then(h,u=>console.error(u))}static async colorize(o,g,m,c){const d=o.languageIdCodec;let s=4;c&&typeof c.tabSize=="number"&&(s=c.tabSize),k.startsWithUTF8BOM(g)&&(g=g.substr(1));const l=k.splitLines(g);if(!o.isRegisteredLanguageId(m))return n(l,s,d);const r=await y.TokenizationRegistry.getOrCreate(m);return r?a(l,s,r,d):n(l,s,d)}static colorizeLine(o,g,m,c,d=4){const s=p.ViewLineRenderingData.isBasicASCII(o,g),l=p.ViewLineRenderingData.containsRTL(o,s,m);return(0,S.renderViewLine2)(new S.RenderLineInput(!1,!0,o,!1,s,l,0,c,[],d,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(o,g,m=4){const c=o.getLineContent(g);o.tokenization.forceTokenization(g);const s=o.tokenization.getLineTokens(g).inflate();return this.colorizeLine(c,o.mightContainNonBasicASCII(),o.mightContainRTL(),s,m)}}e.Colorizer=b;function a(t,o,g,m){return new Promise((c,d)=>{const s=()=>{const l=i(t,o,g,m);if(g instanceof w.MonarchTokenizer){const r=g.getLoadStatus();if(r.loaded===!1){r.promise.then(s,d);return}}c(l)};s()})}function n(t,o,g){let m=[];const d=new Uint32Array(2);d[0]=0,d[1]=33587200;for(let s=0,l=t.length;s")}return m.join("")}function i(t,o,g,m){let c=[],d=g.getInitialState();for(let s=0,l=t.length;s"),d=h.endState}return c.join("")}}),define(ne[14],se([1,0,17,11,768,8,749]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.implies=e.IContextKeyService=e.RawContextKey=e.ContextKeyOrExpr=e.ContextKeyAndExpr=e.ContextKeyNotRegexExpr=e.ContextKeyRegexExpr=e.ContextKeySmallerEqualsExpr=e.ContextKeySmallerExpr=e.ContextKeyGreaterEqualsExpr=e.ContextKeyGreaterExpr=e.ContextKeyNotExpr=e.ContextKeyNotEqualsExpr=e.ContextKeyNotInExpr=e.ContextKeyInExpr=e.ContextKeyEqualsExpr=e.ContextKeyDefinedExpr=e.ContextKeyTrueExpr=e.ContextKeyFalseExpr=e.expressionsAreEqualWithConstantSubstitution=e.ContextKeyExpr=e.Parser=void 0;const p=new Map;p.set("false",!1),p.set("true",!0),p.set("isMac",L.isMacintosh),p.set("isLinux",L.isLinux),p.set("isWindows",L.isWindows),p.set("isWeb",L.isWeb),p.set("isMacNative",L.isMacintosh&&!L.isWeb),p.set("isEdge",L.isEdge),p.set("isFirefox",L.isFirefox),p.set("isChrome",L.isChrome),p.set("isSafari",L.isSafari);const w=Object.prototype.hasOwnProperty,v={regexParsingWithErrorRecovery:!0},b=(0,S.localize)(0,null),a=(0,S.localize)(1,null),n=(0,S.localize)(2,null),i=(0,S.localize)(3,null),t=(0,S.localize)(4,null),o=(0,S.localize)(5,null),g=(0,S.localize)(6,null),m=(0,S.localize)(7,null);class c{constructor(J=v){this._config=J,this._scanner=new y.Scanner,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(J){if(J===""){this._parsingErrors.push({message:b,offset:0,lexeme:"",additionalInfo:a});return}this._tokens=this._scanner.reset(J).scan(),this._current=0,this._parsingErrors=[];try{const X=this._expr();if(!this._isAtEnd()){const Y=this._peek(),le=Y.type===17?o:void 0;throw this._parsingErrors.push({message:t,offset:Y.offset,lexeme:y.Scanner.getLexeme(Y),additionalInfo:le}),c._parseError}return X}catch(X){if(X!==c._parseError)throw X;return}}_expr(){return this._or()}_or(){const J=[this._and()];for(;this._matchOne(16);){const X=this._and();J.push(X)}return J.length===1?J[0]:d.or(...J)}_and(){const J=[this._term()];for(;this._matchOne(15);){const X=this._term();J.push(X)}return J.length===1?J[0]:d.and(...J)}_term(){if(this._matchOne(2)){const J=this._peek();switch(J.type){case 11:return this._advance(),r.INSTANCE;case 12:return this._advance(),h.INSTANCE;case 0:{this._advance();const X=this._expr();return this._consume(1,i),X?.negate()}case 17:return this._advance(),I.create(J.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",J)}}return this._primary()}_primary(){const J=this._peek();switch(J.type){case 11:return this._advance(),d.true();case 12:return this._advance(),d.false();case 0:{this._advance();const X=this._expr();return this._consume(1,i),X}case 17:{const X=J.lexeme;if(this._advance(),this._matchOne(9)){const le=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),le.type!==10)throw this._errExpectedButGot("REGEX",le);const de=le.lexeme,ge=de.lastIndexOf("/"),pe=ge===de.length-1?void 0:this._removeFlagsGY(de.substring(ge+1));let Q;try{Q=new RegExp(de.substring(1,ge),pe)}catch{throw this._errExpectedButGot("REGEX",le)}return P.create(X,Q)}switch(le.type){case 10:case 19:{const de=[le.lexeme];this._advance();let ge=this._peek(),pe=0;for(let q=0;q=0){const U=de.slice(pe+1,Q),Z=de[Q+1]==="i"?"i":"";try{ge=new RegExp(U,Z)}catch{throw this._errExpectedButGot("REGEX",le)}}}if(ge===null)throw this._errExpectedButGot("REGEX",le);return P.create(X,ge)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,n);const le=this._value();return d.notIn(X,le)}switch(this._peek().type){case 3:{this._advance();const le=this._value();if(this._previous().type===18)return d.equals(X,le);switch(le){case"true":return d.has(X);case"false":return d.not(X);default:return d.equals(X,le)}}case 4:{this._advance();const le=this._value();if(this._previous().type===18)return d.notEquals(X,le);switch(le){case"true":return d.not(X);case"false":return d.has(X);default:return d.notEquals(X,le)}}case 5:return this._advance(),M.create(X,this._value());case 6:return this._advance(),N.create(X,this._value());case 7:return this._advance(),A.create(X,this._value());case 8:return this._advance(),R.create(X,this._value());case 13:return this._advance(),d.in(X,this._value());default:return d.has(X)}}case 20:throw this._parsingErrors.push({message:g,offset:J.offset,lexeme:"",additionalInfo:m}),c._parseError;default:throw this._errExpectedButGot(`true | false | KEY + | KEY '=~' REGEX + | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const J=this._peek();switch(J.type){case 17:case 18:return this._advance(),J.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(J){return J.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(J){return this._check(J)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(J,X){if(this._check(J))return this._advance();throw this._errExpectedButGot(X,this._peek())}_errExpectedButGot(J,X,Y){const le=(0,S.localize)(8,null,J,y.Scanner.getLexeme(X)),de=X.offset,ge=y.Scanner.getLexeme(X);return this._parsingErrors.push({message:le,offset:de,lexeme:ge,additionalInfo:Y}),c._parseError}_check(J){return this._peek().type===J}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}}e.Parser=c,c._parseError=new Error;class d{static false(){return r.INSTANCE}static true(){return h.INSTANCE}static has(J){return u.create(J)}static equals(J,X){return f.create(J,X)}static notEquals(J,X){return E.create(J,X)}static regex(J,X){return P.create(J,X)}static in(J,X){return C.create(J,X)}static notIn(J,X){return _.create(J,X)}static not(J){return I.create(J)}static and(...J){return B.create(J,null,!0)}static or(...J){return W.create(J,null,!0)}static deserialize(J){return J==null?void 0:this._parser.parse(J)}}e.ContextKeyExpr=d,d._parser=new c({regexParsingWithErrorRecovery:!1});function s(ie,J){const X=ie?ie.substituteConstants():void 0,Y=J?J.substituteConstants():void 0;return!X&&!Y?!0:!X||!Y?!1:X.equals(Y)}e.expressionsAreEqualWithConstantSubstitution=s;function l(ie,J){return ie.cmp(J)}class r{constructor(){this.type=0}cmp(J){return this.type-J.type}equals(J){return J.type===this.type}substituteConstants(){return this}evaluate(J){return!1}serialize(){return"false"}keys(){return[]}negate(){return h.INSTANCE}}e.ContextKeyFalseExpr=r,r.INSTANCE=new r;class h{constructor(){this.type=1}cmp(J){return this.type-J.type}equals(J){return J.type===this.type}substituteConstants(){return this}evaluate(J){return!0}serialize(){return"true"}keys(){return[]}negate(){return r.INSTANCE}}e.ContextKeyTrueExpr=h,h.INSTANCE=new h;class u{static create(J,X=null){const Y=p.get(J);return typeof Y=="boolean"?Y?h.INSTANCE:r.INSTANCE:new u(J,X)}constructor(J,X){this.key=J,this.negated=X,this.type=2}cmp(J){return J.type!==this.type?this.type-J.type:z(this.key,J.key)}equals(J){return J.type===this.type?this.key===J.key:!1}substituteConstants(){const J=p.get(this.key);return typeof J=="boolean"?J?h.INSTANCE:r.INSTANCE:this}evaluate(J){return!!J.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=I.create(this.key,this)),this.negated}}e.ContextKeyDefinedExpr=u;class f{static create(J,X,Y=null){if(typeof X=="boolean")return X?u.create(J,Y):I.create(J,Y);const le=p.get(J);return typeof le=="boolean"?X===(le?"true":"false")?h.INSTANCE:r.INSTANCE:new f(J,X,Y)}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=4}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){const J=p.get(this.key);if(typeof J=="boolean"){const X=J?"true":"false";return this.value===X?h.INSTANCE:r.INSTANCE}return this}evaluate(J){return J.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=E.create(this.key,this.value,this)),this.negated}}e.ContextKeyEqualsExpr=f;class C{static create(J,X){return new C(J,X)}constructor(J,X){this.key=J,this.valueKey=X,this.type=10,this.negated=null}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.valueKey,J.key,J.valueKey)}equals(J){return J.type===this.type?this.key===J.key&&this.valueKey===J.valueKey:!1}substituteConstants(){return this}evaluate(J){const X=J.getValue(this.valueKey),Y=J.getValue(this.key);return Array.isArray(X)?X.includes(Y):typeof Y=="string"&&typeof X=="object"&&X!==null?w.call(X,Y):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=_.create(this.key,this.valueKey)),this.negated}}e.ContextKeyInExpr=C;class _{static create(J,X){return new _(J,X)}constructor(J,X){this.key=J,this.valueKey=X,this.type=11,this._negated=C.create(J,X)}cmp(J){return J.type!==this.type?this.type-J.type:this._negated.cmp(J._negated)}equals(J){return J.type===this.type?this._negated.equals(J._negated):!1}substituteConstants(){return this}evaluate(J){return!this._negated.evaluate(J)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}e.ContextKeyNotInExpr=_;class E{static create(J,X,Y=null){if(typeof X=="boolean")return X?I.create(J,Y):u.create(J,Y);const le=p.get(J);return typeof le=="boolean"?X===(le?"true":"false")?r.INSTANCE:h.INSTANCE:new E(J,X,Y)}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=5}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){const J=p.get(this.key);if(typeof J=="boolean"){const X=J?"true":"false";return this.value===X?r.INSTANCE:h.INSTANCE}return this}evaluate(J){return J.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=f.create(this.key,this.value,this)),this.negated}}e.ContextKeyNotEqualsExpr=E;class I{static create(J,X=null){const Y=p.get(J);return typeof Y=="boolean"?Y?r.INSTANCE:h.INSTANCE:new I(J,X)}constructor(J,X){this.key=J,this.negated=X,this.type=3}cmp(J){return J.type!==this.type?this.type-J.type:z(this.key,J.key)}equals(J){return J.type===this.type?this.key===J.key:!1}substituteConstants(){const J=p.get(this.key);return typeof J=="boolean"?J?r.INSTANCE:h.INSTANCE:this}evaluate(J){return!J.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=u.create(this.key,this)),this.negated}}e.ContextKeyNotExpr=I;function T(ie,J){if(typeof ie=="string"){const X=parseFloat(ie);isNaN(X)||(ie=X)}return typeof ie=="string"||typeof ie=="number"?J(ie):r.INSTANCE}class A{static create(J,X,Y=null){return T(X,le=>new A(J,le,Y))}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=12}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){return this}evaluate(J){return typeof this.value=="string"?!1:parseFloat(J.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=N.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterExpr=A;class R{static create(J,X,Y=null){return T(X,le=>new R(J,le,Y))}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=13}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){return this}evaluate(J){return typeof this.value=="string"?!1:parseFloat(J.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=M.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterEqualsExpr=R;class M{static create(J,X,Y=null){return T(X,le=>new M(J,le,Y))}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=14}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){return this}evaluate(J){return typeof this.value=="string"?!1:parseFloat(J.getValue(this.key))new N(J,le,Y))}constructor(J,X,Y){this.key=J,this.value=X,this.negated=Y,this.type=15}cmp(J){return J.type!==this.type?this.type-J.type:K(this.key,this.value,J.key,J.value)}equals(J){return J.type===this.type?this.key===J.key&&this.value===J.value:!1}substituteConstants(){return this}evaluate(J){return typeof this.value=="string"?!1:parseFloat(J.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=A.create(this.key,this.value,this)),this.negated}}e.ContextKeySmallerEqualsExpr=N;class P{static create(J,X){return new P(J,X)}constructor(J,X){this.key=J,this.regexp=X,this.type=7,this.negated=null}cmp(J){if(J.type!==this.type)return this.type-J.type;if(this.keyJ.key)return 1;const X=this.regexp?this.regexp.source:"",Y=J.regexp?J.regexp.source:"";return XY?1:0}equals(J){if(J.type===this.type){const X=this.regexp?this.regexp.source:"",Y=J.regexp?J.regexp.source:"";return this.key===J.key&&X===Y}return!1}substituteConstants(){return this}evaluate(J){const X=J.getValue(this.key);return this.regexp?this.regexp.test(X):!1}serialize(){const J=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${J}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=F.create(this)),this.negated}}e.ContextKeyRegexExpr=P;class F{static create(J){return new F(J)}constructor(J){this._actual=J,this.type=8}cmp(J){return J.type!==this.type?this.type-J.type:this._actual.cmp(J._actual)}equals(J){return J.type===this.type?this._actual.equals(J._actual):!1}substituteConstants(){return this}evaluate(J){return!this._actual.evaluate(J)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}e.ContextKeyNotRegexExpr=F;function O(ie){let J=null;for(let X=0,Y=ie.length;XJ.expr.length)return 1;for(let X=0,Y=this.expr.length;X1;){const ge=le[le.length-1];if(ge.type!==9)break;le.pop();const pe=le.pop(),Q=le.length===0,U=W.create(ge.expr.map(Z=>B.create([Z,pe],null,Y)),null,Q);U&&(le.push(U),le.sort(l))}if(le.length===1)return le[0];if(Y){for(let ge=0;geJ.serialize()).join(" && ")}keys(){const J=[];for(const X of this.expr)J.push(...X.keys());return J}negate(){if(!this.negated){const J=[];for(const X of this.expr)J.push(X.negate());this.negated=W.create(J,this,!0)}return this.negated}}e.ContextKeyAndExpr=B;class W{static create(J,X,Y){return W._normalizeArr(J,X,Y)}constructor(J,X){this.expr=J,this.negated=X,this.type=9}cmp(J){if(J.type!==this.type)return this.type-J.type;if(this.expr.lengthJ.expr.length)return 1;for(let X=0,Y=this.expr.length;XJ.serialize()).join(" || ")}keys(){const J=[];for(const X of this.expr)J.push(...X.keys());return J}negate(){if(!this.negated){const J=[];for(const X of this.expr)J.push(X.negate());for(;J.length>1;){const X=J.shift(),Y=J.shift(),le=[];for(const de of re(X))for(const ge of re(Y))le.push(B.create([de,ge],null,!1));J.unshift(W.create(le,null,!1))}this.negated=W.create(J,this,!0)}return this.negated}}e.ContextKeyOrExpr=W;class V extends u{static all(){return V._info.values()}constructor(J,X,Y){super(J,null),this._defaultValue=X,typeof Y=="object"?V._info.push({...Y,key:J}):Y!==!0&&V._info.push({key:J,description:Y,type:X!=null?typeof X:void 0})}bindTo(J){return J.createKey(this.key,this._defaultValue)}getValue(J){return J.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(J){return f.create(this.key,J)}}e.RawContextKey=V,V._info=[],e.IContextKeyService=(0,D.createDecorator)("contextKeyService");function z(ie,J){return ieJ?1:0}function K(ie,J,X,Y){return ieX?1:JY?1:0}function j(ie,J){if(ie.type===0||J.type===1)return!0;if(ie.type===9)return J.type===9?x(ie.expr,J.expr):!1;if(J.type===9){for(const X of J.expr)if(j(ie,X))return!0;return!1}if(ie.type===6){if(J.type===6)return x(J.expr,ie.expr);for(const X of ie.expr)if(j(X,J))return!0;return!1}return ie.equals(J)}e.implies=j;function x(ie,J){let X=0,Y=0;for(;X{const i=this.model.read(n),t=i?.state.read(n),o=!!t?.inlineCompletion&&t?.primaryGhostText!==void 0&&!t?.primaryGhostText.isEmpty();this.inlineCompletionVisible.set(o),t?.primaryGhostText&&t?.inlineCompletion&&this.suppressSuggestions.set(t.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register((0,L.autorun)(n=>{const i=this.model.read(n);let t=!1,o=!0;const g=i?.primaryGhostText.read(n);if(i?.selectedSuggestItem&&g&&g.parts.length>0){const{column:m,lines:c}=g.parts[0],d=c[0],s=i.textModel.getLineIndentColumn(g.lineNumber);if(m<=s){let r=(0,k.firstNonWhitespaceIndex)(d);r===-1&&(r=d.length-1),t=r>0;const h=i.textModel.getOptions().tabSize;o=y.CursorColumns.visibleColumnFromColumn(d,r+1,h){const[o,g,m]=t;(0,y.assertType)(D.URI.isUri(o)),(0,y.assertType)(S.Position.isIPosition(g)),(0,y.assertType)(typeof m=="string"||!m);const c=i.get(w.ILanguageFeaturesService),d=await i.get(v.ITextModelService).createModelReference(o);try{const s=await n(c.signatureHelpProvider,d.object.textEditorModel,S.Position.lift(g),{triggerKind:p.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:m},L.CancellationToken.None);return s?(setTimeout(()=>s.dispose(),0),s.value):void 0}finally{d.dispose()}})}),define(ne[778],se([1,0,15,12,7,2,132,30,247]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsModel=void 0;var v;(function(n){n.Default={type:0};class i{constructor(g,m){this.request=g,this.previouslyActiveHints=m,this.type=2}}n.Pending=i;class t{constructor(g){this.hints=g,this.type=1}}n.Active=t})(v||(v={}));class b extends D.Disposable{constructor(i,t,o=b.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new y.Emitter),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=v.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new D.MutableDisposable),this.triggerChars=new S.CharacterSet,this.retriggerChars=new S.CharacterSet,this.triggerId=0,this.editor=i,this.providers=t,this.throttledDelayer=new L.Delayer(o),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(g=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(g=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(g=>this.onCursorChange(g))),this._register(this.editor.onDidChangeModelContent(g=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(g=>this.onDidType(g))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(i){this._state.type===2&&this._state.request.cancel(),this._state=i}cancel(i=!1){this.state=v.Default,this.throttledDelayer.cancel(),i||this._onChangedHints.fire(void 0)}trigger(i,t){const o=this.editor.getModel();if(!o||!this.providers.has(o))return;const g=++this.triggerId;this._pendingTriggers.push(i),this.throttledDelayer.trigger(()=>this.doTrigger(g),t).catch(k.onUnexpectedError)}next(){if(this.state.type!==1)return;const i=this.state.hints.signatures.length,t=this.state.hints.activeSignature,o=t%i===i-1,g=this.editor.getOption(86).cycle;if((i<2||o)&&!g){this.cancel();return}this.updateActiveSignature(o&&g?0:t+1)}previous(){if(this.state.type!==1)return;const i=this.state.hints.signatures.length,t=this.state.hints.activeSignature,o=t===0,g=this.editor.getOption(86).cycle;if((i<2||o)&&!g){this.cancel();return}this.updateActiveSignature(o&&g?i-1:t-1)}updateActiveSignature(i){this.state.type===1&&(this.state=new v.Active({...this.state.hints,activeSignature:i}),this._onChangedHints.fire(this.state.hints))}async doTrigger(i){const t=this.state.type===1||this.state.type===2,o=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const g=this._pendingTriggers.reduce(a);this._pendingTriggers=[];const m={triggerKind:g.triggerKind,triggerCharacter:g.triggerCharacter,isRetrigger:t,activeSignatureHelp:o};if(!this.editor.hasModel())return!1;const c=this.editor.getModel(),d=this.editor.getPosition();this.state=new v.Pending((0,L.createCancelablePromise)(s=>(0,w.provideSignatureHelp)(this.providers,c,d,m,s)),o);try{const s=await this.state.request;return i!==this.triggerId?(s?.dispose(),!1):!s||!s.value.signatures||s.value.signatures.length===0?(s?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new v.Active(s.value),this._lastSignatureHelpResult.value=s,this._onChangedHints.fire(this.state.hints),!0)}catch(s){return i===this.triggerId&&(this.state=v.Default),(0,k.onUnexpectedError)(s),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const i=this.editor.getModel();if(i)for(const t of this.providers.ordered(i)){for(const o of t.signatureHelpTriggerCharacters||[])if(o.length){const g=o.charCodeAt(0);this.triggerChars.add(g),this.retriggerChars.add(g)}for(const o of t.signatureHelpRetriggerCharacters||[])o.length&&this.retriggerChars.add(o.charCodeAt(0))}}onDidType(i){if(!this.triggerOnType)return;const t=i.length-1,o=i.charCodeAt(t);(this.triggerChars.has(o)||this.isTriggered&&this.retriggerChars.has(o))&&this.trigger({triggerKind:p.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:i.charAt(t)})}onCursorChange(i){i.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:p.SignatureHelpTriggerKind.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:p.SignatureHelpTriggerKind.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}e.ParameterHintsModel=b,b.DEFAULT_DELAY=120;function a(n,i){switch(i.triggerKind){case p.SignatureHelpTriggerKind.Invoke:return i;case p.SignatureHelpTriggerKind.ContentChange:return n;case p.SignatureHelpTriggerKind.TriggerCharacter:default:return i}}}),define(ne[779],se([1,0,14]),function(ee,e,L){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestAlternatives=void 0;let y=k=class{constructor(S,p){this._editor=S,this._index=0,this._ckOtherSuggestions=k.OtherSuggestions.bindTo(p)}dispose(){this.reset()}reset(){var S;this._ckOtherSuggestions.reset(),(S=this._listener)===null||S===void 0||S.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:S,index:p},w){if(S.items.length===0){this.reset();return}if(k._moveIndex(!0,S,p)===p){this.reset();return}this._acceptNext=w,this._model=S,this._index=p,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(S,p,w){let v=w;for(let b=p.items.length;b>0&&(v=(v+p.items.length+(S?1:-1))%p.items.length,!(v===w||!p.items[v].completion.additionalTextEdits));b--);return v}next(){this._move(!0)}prev(){this._move(!1)}_move(S){if(this._model)try{this._ignore=!0,this._index=k._moveIndex(S,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};e.SuggestAlternatives=y,y.OtherSuggestions=new L.RawContextKey("hasOtherSuggestions",!1),e.SuggestAlternatives=y=k=De([he(1,L.IContextKeyService)],y)}),define(ne[780],se([1,0,14]),function(ee,e,L){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.WordContextKey=void 0;let y=k=class{constructor(S,p){this._editor=S,this._enabled=!1,this._ckAtEnd=k.AtEnd.bindTo(p),this._configListener=this._editor.onDidChangeConfiguration(w=>w.hasChanged(123)&&this._update()),this._update()}dispose(){var S;this._configListener.dispose(),(S=this._selectionListener)===null||S===void 0||S.dispose(),this._ckAtEnd.reset()}_update(){const S=this._editor.getOption(123)==="on";if(this._enabled!==S)if(this._enabled=S,this._enabled){const p=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const w=this._editor.getModel(),v=this._editor.getSelection(),b=w.getWordAtPosition(v.getStartPosition());if(!b){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(b.endColumn===v.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(p),p()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};e.WordContextKey=y,y.AtEnd=new L.RawContextKey("atEndOfWord",!1),e.WordContextKey=y=k=De([he(1,L.IContextKeyService)],y)}),define(ne[71],se([1,0,14,8]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=e.IAccessibilityService=void 0,e.IAccessibilityService=(0,k.createDecorator)("accessibilityService"),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new L.RawContextKey("accessibilityModeEnabled",!1)}),define(ne[781],se([1,0,59,13,7,2,54,17,334,341,501,208,36,153,241,71,6,230]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ComputedEditorOptions=e.EditorConfiguration=void 0;let c=class extends D.Disposable{constructor(C,_,E,I){super(),this._accessibilityService=I,this._onDidChange=this._register(new y.Emitter),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new y.Emitter),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new n.ComputeOptionsMemory,this.isSimpleWidget=C,this._containerObserver=this._register(new w.ElementSizeObserver(E,_.dimension)),this._targetWindowId=(0,g.getWindow)(E).vscodeWindowId,this._rawOptions=u(_),this._validatedOptions=h.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(i.EditorZoom.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(a.TabFocus.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(v.FontMeasurements.onDidChange(()=>this._recomputeOptions())),this._register(m.PixelRatio.getInstance((0,g.getWindow)(E)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const C=this._computeOptions(),_=h.checkEquals(this.options,C);_!==null&&(this.options=C,this._onDidChangeFast.fire(_),this._onDidChange.fire(_))}_computeOptions(){const C=this._readEnvConfiguration(),_=t.BareFontInfo.createFromValidatedSettings(this._validatedOptions,C.pixelRatio,this.isSimpleWidget),E=this._readFontInfo(_),I={memory:this._computeOptionsMemory,outerWidth:C.outerWidth,outerHeight:C.outerHeight-this._reservedHeight,fontInfo:E,extraEditorClassName:C.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:C.emptySelectionClipboard,pixelRatio:C.pixelRatio,tabFocusMode:a.TabFocus.getTabFocusMode(),accessibilitySupport:C.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return h.computeOptions(this._validatedOptions,I)}_readEnvConfiguration(){return{extraEditorClassName:s(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:L.isWebKit||L.isFirefox,pixelRatio:m.PixelRatio.getInstance((0,g.getWindowById)(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(C){return v.FontMeasurements.readFontInfo((0,g.getWindowById)(this._targetWindowId,!0).window,C)}getRawOptions(){return this._rawOptions}updateOptions(C){const _=u(C);h.applyUpdate(this._rawOptions,_)&&(this._validatedOptions=h.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(C){this._containerObserver.observe(C)}setIsDominatedByLongLines(C){this._isDominatedByLongLines!==C&&(this._isDominatedByLongLines=C,this._recomputeOptions())}setModelLineCount(C){const _=d(C);this._lineNumbersDigitCount!==_&&(this._lineNumbersDigitCount=_,this._recomputeOptions())}setViewLineCount(C){this._viewLineCount!==C&&(this._viewLineCount=C,this._recomputeOptions())}setReservedHeight(C){this._reservedHeight!==C&&(this._reservedHeight=C,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(C){this._glyphMarginDecorationLaneCount!==C&&(this._glyphMarginDecorationLaneCount=C,this._recomputeOptions())}};e.EditorConfiguration=c,e.EditorConfiguration=c=De([he(3,o.IAccessibilityService)],c);function d(f){let C=0;for(;f;)f=Math.floor(f/10),C++;return C||1}function s(){let f="";return!L.isSafari&&!L.isWebkitWebView&&(f+="no-user-select "),L.isSafari&&(f+="no-minimap-shadow ",f+="enable-user-select "),p.isMacintosh&&(f+="mac "),f}class l{constructor(){this._values=[]}_read(C){return this._values[C]}get(C){return this._values[C]}_write(C,_){this._values[C]=_}}class r{constructor(){this._values=[]}_read(C){if(C>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[C]}get(C){return this._read(C)}_write(C,_){this._values[C]=_}}e.ComputedEditorOptions=r;class h{static validateOptions(C){const _=new l;for(const E of n.editorOptionsRegistry){const I=E.name==="_never_"?void 0:C[E.name];_._write(E.id,E.validate(I))}return _}static computeOptions(C,_){const E=new r;for(const I of n.editorOptionsRegistry)E._write(I.id,I.compute(_,E,C._read(I.id)));return E}static _deepEquals(C,_){if(typeof C!="object"||typeof _!="object"||!C||!_)return C===_;if(Array.isArray(C)||Array.isArray(_))return Array.isArray(C)&&Array.isArray(_)?k.equals(C,_):!1;if(Object.keys(C).length!==Object.keys(_).length)return!1;for(const E in C)if(!h._deepEquals(C[E],_[E]))return!1;return!0}static checkEquals(C,_){const E=[];let I=!1;for(const T of n.editorOptionsRegistry){const A=!h._deepEquals(C._read(T.id),_._read(T.id));E[T.id]=A,A&&(I=!0)}return I?new n.ConfigurationChangedEvent(E):null}static applyUpdate(C,_){let E=!1;for(const I of n.editorOptionsRegistry)if(_.hasOwnProperty(I.name)){const T=I.applyUpdate(C[I.name],_[I.name]);C[I.name]=T.newValue,E=E||T.didChange}return E}}function u(f){const C=S.deepClone(f);return(0,b.migrateOptions)(C),C}}),define(ne[782],se([1,0,7,52,2,54,205,22,748,25,26,14]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setContext=e.ContextKeyService=e.AbstractContextKeyService=e.Context=void 0;const n="data-keybinding-context";class i{constructor(E,I){this._id=E,this._parent=I,this._value=Object.create(null),this._value._contextId=E}get value(){return{...this._value}}setValue(E,I){return this._value[E]!==I?(this._value[E]=I,!0):!1}removeValue(E){return E in this._value?(delete this._value[E],!0):!1}getValue(E){const I=this._value[E];return typeof I>"u"&&this._parent?this._parent.getValue(E):I}}e.Context=i;class t extends i{constructor(){super(-1,null)}setValue(E,I){return!1}removeValue(E){return!1}getValue(E){}}t.INSTANCE=new t;class o extends i{constructor(E,I,T){super(E,null),this._configurationService=I,this._values=S.TernarySearchTree.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(A=>{if(A.source===7){const R=Array.from(this._values,([M])=>M);this._values.clear(),T.fire(new c(R))}else{const R=[];for(const M of A.affectedKeys){const N=`config.${M}`,P=this._values.findSuperstr(N);P!==void 0&&(R.push(...k.Iterable.map(P,([F])=>F)),this._values.deleteSuperstr(N)),this._values.has(N)&&(R.push(N),this._values.delete(N))}T.fire(new c(R))}})}dispose(){this._listener.dispose()}getValue(E){if(E.indexOf(o._keyPrefix)!==0)return super.getValue(E);if(this._values.has(E))return this._values.get(E);const I=E.substr(o._keyPrefix.length),T=this._configurationService.getValue(I);let A;switch(typeof T){case"number":case"boolean":case"string":A=T;break;default:Array.isArray(T)?A=JSON.stringify(T):A=T}return this._values.set(E,A),A}setValue(E,I){return super.setValue(E,I)}removeValue(E){return super.removeValue(E)}}o._keyPrefix="config.";class g{constructor(E,I,T){this._service=E,this._key=I,this._defaultValue=T,this.reset()}set(E){this._service.setContext(this._key,E)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class m{constructor(E){this.key=E}affectsSome(E){return E.has(this.key)}allKeysContainedIn(E){return this.affectsSome(E)}}class c{constructor(E){this.keys=E}affectsSome(E){for(const I of this.keys)if(E.has(I))return!0;return!1}allKeysContainedIn(E){return this.keys.every(I=>E.has(I))}}class d{constructor(E){this.events=E}affectsSome(E){for(const I of this.events)if(I.affectsSome(E))return!0;return!1}allKeysContainedIn(E){return this.events.every(I=>I.allKeysContainedIn(E))}}function s(_,E){return _.allKeysContainedIn(new Set(Object.keys(E)))}class l extends y.Disposable{constructor(E){super(),this._onDidChangeContext=this._register(new L.PauseableEmitter({merge:I=>new d(I)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=E}createKey(E,I){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new g(this,E,I)}bufferChangeEvents(E){this._onDidChangeContext.pause();try{E()}finally{this._onDidChangeContext.resume()}}createScoped(E){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new h(this,E)}contextMatchesRules(E){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const I=this.getContextValuesContainer(this._myContextId);return E?E.evaluate(I):!0}getContextKeyValue(E){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(E)}setContext(E,I){if(this._isDisposed)return;const T=this.getContextValuesContainer(this._myContextId);T&&T.setValue(E,I)&&this._onDidChangeContext.fire(new m(E))}removeContext(E){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(E)&&this._onDidChangeContext.fire(new m(E))}getContext(E){return this._isDisposed?t.INSTANCE:this.getContextValuesContainer(u(E))}dispose(){super.dispose(),this._isDisposed=!0}}e.AbstractContextKeyService=l;let r=class extends l{constructor(E){super(0),this._contexts=new Map,this._lastContextId=0;const I=this._register(new o(this._myContextId,E,this._onDidChangeContext));this._contexts.set(this._myContextId,I)}getContextValuesContainer(E){return this._isDisposed?t.INSTANCE:this._contexts.get(E)||t.INSTANCE}createChildContext(E=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const I=++this._lastContextId;return this._contexts.set(I,new i(I,this.getContextValuesContainer(E))),I}disposeContext(E){this._isDisposed||this._contexts.delete(E)}};e.ContextKeyService=r,e.ContextKeyService=r=De([he(0,b.IConfigurationService)],r);class h extends l{constructor(E,I){if(super(E.createChildContext()),this._parentChangeListener=this._register(new y.MutableDisposable),this._parent=E,this._updateParentChangeListener(),this._domNode=I,this._domNode.hasAttribute(n)){let T="";this._domNode.classList&&(T=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${T?": "+T:""}`)}this._domNode.setAttribute(n,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(E=>{const T=this._parent.getContextValuesContainer(this._myContextId).value;s(E,T)||this._onDidChangeContext.fire(E)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(n),super.dispose())}getContextValuesContainer(E){return this._isDisposed?t.INSTANCE:this._parent.getContextValuesContainer(E)}createChildContext(E=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(E)}disposeContext(E){this._isDisposed||this._parent.disposeContext(E)}}function u(_){for(;_;){if(_.hasAttribute(n)){const E=_.getAttribute(n);return E?parseInt(E,10):NaN}_=_.parentElement}return 0}function f(_,E,I){_.get(a.IContextKeyService).createKey(String(E),C(I))}e.setContext=f;function C(_){return(0,D.cloneAndChange)(_,E=>{if(typeof E=="object"&&E.$mid===1)return p.URI.revive(E).toString();if(E instanceof p.URI)return E.toString()})}v.CommandsRegistry.registerCommand("_setContext",f),v.CommandsRegistry.registerCommand({id:"getContextKeyInfo",handler(){return[...a.RawContextKey.all()].sort((_,E)=>_.key.localeCompare(E.key))},metadata:{description:(0,w.localize)(0,null),args:[]}}),v.CommandsRegistry.registerCommand("_generateContextKeyInfo",function(){const _=[],E=new Set;for(const I of a.RawContextKey.all())E.has(I.key)||(E.add(I.key),_.push(I));_.sort((I,T)=>I.key.localeCompare(T.key)),console.log(JSON.stringify(_,void 0,2))})}),define(ne[195],se([1,0,17,750,14]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InputFocusedContext=e.InputFocusedContextKey=e.ProductQualityContext=e.IsDevelopmentContext=e.IsMobileContext=e.IsIOSContext=e.IsMacNativeContext=e.IsWebContext=e.IsWindowsContext=e.IsLinuxContext=e.IsMacContext=void 0,e.IsMacContext=new y.RawContextKey("isMac",L.isMacintosh,(0,k.localize)(0,null)),e.IsLinuxContext=new y.RawContextKey("isLinux",L.isLinux,(0,k.localize)(1,null)),e.IsWindowsContext=new y.RawContextKey("isWindows",L.isWindows,(0,k.localize)(2,null)),e.IsWebContext=new y.RawContextKey("isWeb",L.isWeb,(0,k.localize)(3,null)),e.IsMacNativeContext=new y.RawContextKey("isMacNative",L.isMacintosh&&!L.isWeb,(0,k.localize)(4,null)),e.IsIOSContext=new y.RawContextKey("isIOS",L.isIOS,(0,k.localize)(5,null)),e.IsMobileContext=new y.RawContextKey("isMobile",L.isMobile,(0,k.localize)(6,null)),e.IsDevelopmentContext=new y.RawContextKey("isDevelopment",!1,!0),e.ProductQualityContext=new y.RawContextKey("productQualityType","",(0,k.localize)(7,null)),e.InputFocusedContextKey="inputFocus",e.InputFocusedContext=new y.RawContextKey(e.InputFocusedContextKey,!1,(0,k.localize)(8,null))}),define(ne[56],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IContextMenuService=e.IContextViewService=void 0,e.IContextViewService=(0,L.createDecorator)("contextViewService"),e.IContextMenuService=(0,L.createDecorator)("contextMenuService")}),define(ne[164],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IDialogService=void 0,e.IDialogService=(0,L.createDecorator)("dialogService")}),define(ne[248],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEnvironmentService=void 0,e.IEnvironmentService=(0,L.createDecorator)("environmentService")}),define(ne[249],se([1,0,8,2,26,6]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.nativeHoverDelegate=e.WorkbenchHoverDelegate=e.IHoverService=void 0,e.IHoverService=(0,L.createDecorator)("hoverService");let S=class extends k.Disposable{get delay(){return this.instantHover&&Date.now()-this.lastHoverHideTime{i.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(w,v){const b=typeof this.overrideOptions=="function"?this.overrideOptions(w,v):this.overrideOptions;this.hoverDisposables.clear();const a=w.target instanceof HTMLElement?[w.target]:w.target.targetElements;for(const n of a)this.hoverDisposables.add((0,D.addStandardDisposableListener)(n,"keydown",i=>{i.equals(9)&&this.hoverService.hideHover()}));return this.hoverService.showHover({...w,persistence:{hideOnHover:!0},...b},v)}onDidHideHover(){this.hoverDisposables.clear(),this.instantHover&&(this.lastHoverHideTime=Date.now())}};e.WorkbenchHoverDelegate=S,e.WorkbenchHoverDelegate=S=De([he(3,y.IConfigurationService),he(4,e.IHoverService)],S),e.nativeHoverDelegate={showHover:function(){throw new Error("Native hover function not implemented.")},delay:0,showNativeHover:!0}}),define(ne[165],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ServiceCollection=void 0;class L{constructor(...y){this._entries=new Map;for(const[D,S]of y)this.set(D,S)}set(y,D){const S=this._entries.get(y);return this._entries.set(y,D),S}get(y){return this._entries.get(y)}}e.ServiceCollection=L}),define(ne[783],se([1,0,15,12,2,242,772,8,165,67]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Trace=e.InstantiationService=void 0;const b=!1;class a extends Error{constructor(o){var g;super("cyclic dependency between services"),this.message=(g=o.findCycleSlow())!==null&&g!==void 0?g:`UNABLE to detect cycle, dumping graph: +${o.toString()}`}}class n{constructor(o=new w.ServiceCollection,g=!1,m,c=b){var d;this._services=o,this._strict=g,this._parent=m,this._enableTracing=c,this._activeInstantiations=new Set,this._services.set(p.IInstantiationService,this),this._globalGraph=c?(d=m?._globalGraph)!==null&&d!==void 0?d:new S.Graph(s=>s):void 0}createChild(o){return new n(o,this._strict,this,this._enableTracing)}invokeFunction(o,...g){const m=i.traceInvocation(this._enableTracing,o);let c=!1;try{return o({get:s=>{if(c)throw(0,k.illegalState)("service accessor is only valid during the invocation of its target method");const l=this._getOrCreateServiceInstance(s,m);if(!l)throw new Error(`[invokeFunction] unknown service '${s}'`);return l}},...g)}finally{c=!0,m.stop()}}createInstance(o,...g){let m,c;return o instanceof D.SyncDescriptor?(m=i.traceCreation(this._enableTracing,o.ctor),c=this._createInstance(o.ctor,o.staticArguments.concat(g),m)):(m=i.traceCreation(this._enableTracing,o),c=this._createInstance(o,g,m)),m.stop(),c}_createInstance(o,g=[],m){const c=p._util.getServiceDependencies(o).sort((l,r)=>l.index-r.index),d=[];for(const l of c){const r=this._getOrCreateServiceInstance(l.id,m);r||this._throwIfStrict(`[createInstance] ${o.name} depends on UNKNOWN service ${l.id}.`,!1),d.push(r)}const s=c.length>0?c[0].index:g.length;if(g.length!==s){console.trace(`[createInstance] First service dependency of ${o.name} at position ${s+1} conflicts with ${g.length} static arguments`);const l=s-g.length;l>0?g=g.concat(new Array(l)):g=g.slice(0,s)}return Reflect.construct(o,g.concat(d))}_setServiceInstance(o,g){if(this._services.get(o)instanceof D.SyncDescriptor)this._services.set(o,g);else if(this._parent)this._parent._setServiceInstance(o,g);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(o){const g=this._services.get(o);return!g&&this._parent?this._parent._getServiceInstanceOrDescriptor(o):g}_getOrCreateServiceInstance(o,g){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(o));const m=this._getServiceInstanceOrDescriptor(o);return m instanceof D.SyncDescriptor?this._safeCreateAndCacheServiceInstance(o,m,g.branch(o,!0)):(g.branch(o,!1),m)}_safeCreateAndCacheServiceInstance(o,g,m){if(this._activeInstantiations.has(o))throw new Error(`illegal state - RECURSIVELY instantiating service '${o}'`);this._activeInstantiations.add(o);try{return this._createAndCacheServiceInstance(o,g,m)}finally{this._activeInstantiations.delete(o)}}_createAndCacheServiceInstance(o,g,m){var c;const d=new S.Graph(r=>r.id.toString());let s=0;const l=[{id:o,desc:g,_trace:m}];for(;l.length;){const r=l.pop();if(d.lookupOrInsertNode(r),s++>1e3)throw new a(d);for(const h of p._util.getServiceDependencies(r.desc.ctor)){const u=this._getServiceInstanceOrDescriptor(h.id);if(u||this._throwIfStrict(`[createInstance] ${o} depends on ${h.id} which is NOT registered.`,!0),(c=this._globalGraph)===null||c===void 0||c.insertEdge(String(r.id),String(h.id)),u instanceof D.SyncDescriptor){const f={id:h.id,desc:u,_trace:r._trace.branch(h.id,!0)};d.insertEdge(r,f),l.push(f)}}}for(;;){const r=d.roots();if(r.length===0){if(!d.isEmpty())throw new a(d);break}for(const{data:h}of r){if(this._getServiceInstanceOrDescriptor(h.id)instanceof D.SyncDescriptor){const f=this._createServiceInstanceWithOwner(h.id,h.desc.ctor,h.desc.staticArguments,h.desc.supportsDelayedInstantiation,h._trace);this._setServiceInstance(h.id,f)}d.removeNode(h)}}return this._getServiceInstanceOrDescriptor(o)}_createServiceInstanceWithOwner(o,g,m=[],c,d){if(this._services.get(o)instanceof D.SyncDescriptor)return this._createServiceInstance(o,g,m,c,d);if(this._parent)return this._parent._createServiceInstanceWithOwner(o,g,m,c,d);throw new Error(`illegalState - creating UNKNOWN service instance ${g.name}`)}_createServiceInstance(o,g,m=[],c,d){if(c){const s=new n(void 0,this._strict,this,this._enableTracing);s._globalGraphImplicitDependency=String(o);const l=new Map,r=new L.GlobalIdleValue(()=>{const h=s._createInstance(g,m,d);for(const[u,f]of l){const C=h[u];if(typeof C=="function")for(const _ of f)_.disposable=C.apply(h,_.listener)}return l.clear(),h});return new Proxy(Object.create(null),{get(h,u){if(!r.isInitialized&&typeof u=="string"&&(u.startsWith("onDid")||u.startsWith("onWill"))){let _=l.get(u);return _||(_=new v.LinkedList,l.set(u,_)),(I,T,A)=>{if(r.isInitialized)return r.value[u](I,T,A);{const R={listener:[I,T,A],disposable:void 0},M=_.push(R);return(0,y.toDisposable)(()=>{var P;M(),(P=R.disposable)===null||P===void 0||P.dispose()})}}}if(u in h)return h[u];const f=r.value;let C=f[u];return typeof C!="function"||(C=C.bind(f),h[u]=C),C},set(h,u,f){return r.value[u]=f,!0},getPrototypeOf(h){return g.prototype}})}else return this._createInstance(g,m,d)}_throwIfStrict(o,g){if(g&&console.warn(o),this._strict)throw new Error(o)}}e.InstantiationService=n;class i{static traceInvocation(o,g){return o?new i(2,g.name||new Error().stack.split(` +`).slice(3,4).join(` +`)):i._None}static traceCreation(o,g){return o?new i(1,g.name):i._None}constructor(o,g){this.type=o,this.name=g,this._start=Date.now(),this._dep=[]}branch(o,g){const m=new i(3,o.toString());return this._dep.push([o,g,m]),m}stop(){const o=Date.now()-this._start;i._totals+=o;let g=!1;function m(d,s){const l=[],r=new Array(d+1).join(" ");for(const[h,u,f]of s._dep)if(u&&f){g=!0,l.push(`${r}CREATES -> ${h}`);const C=m(d+1,f);C&&l.push(C)}else l.push(`${r}uses -> ${h}`);return l.join(` +`)}const c=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${m(1,this)}`,`DONE, took ${o.toFixed(2)}ms (grand total ${i._totals.toFixed(2)}ms)`];(o>2||g)&&i.all.add(c.join(` +`))}}e.Trace=i,i.all=new Set,i._None=new class extends i{constructor(){super(0,null)}stop(){}branch(){return this}},i._totals=0}),define(ne[784],se([1,0,12,224,127]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseResolvedKeybinding=void 0;class D extends y.ResolvedKeybinding{constructor(p,w){if(super(),w.length===0)throw(0,L.illegalArgument)("chords");this._os=p,this._chords=w}getLabel(){return k.UILabelProvider.toLabel(this._os,this._chords,p=>this._getLabel(p))}getAriaLabel(){return k.AriaLabelProvider.toLabel(this._os,this._chords,p=>this._getAriaLabel(p))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:k.ElectronAcceleratorLabelProvider.toLabel(this._os,this._chords,p=>this._getElectronAccelerator(p))}getUserSettingsLabel(){return k.UserSettingsLabelProvider.toLabel(this._os,this._chords,p=>this._getUserSettingsLabel(p))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(p=>this._getChord(p))}_getChord(p){return new y.ResolvedChord(p.ctrlKey,p.shiftKey,p.altKey,p.metaKey,this._getLabel(p),this._getAriaLabel(p))}getDispatchChords(){return this._chords.map(p=>this._getChordDispatch(p))}getSingleModifierDispatchChords(){return this._chords.map(p=>this._getSingleModifierChordDispatch(p))}}e.BaseResolvedKeybinding=D}),define(ne[34],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IKeybindingService=void 0,e.IKeybindingService=(0,L.createDecorator)("keybindingService")}),define(ne[353],se([1,0,6,235,42,7,2,142,245,14,56,8,34,465]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.PostEditWidgetManager=void 0;let t=i=class extends S.Disposable{constructor(m,c,d,s,l,r,h,u,f,C){super(),this.typeId=m,this.editor=c,this.showCommand=s,this.range=l,this.edits=r,this.onSelectNewEdit=h,this._contextMenuService=u,this._keybindingService=C,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=d.bindTo(f),this.visibleContext.set(!0),this._register((0,S.toDisposable)(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register((0,S.toDisposable)(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(_=>{l.containsPosition(_.position)||this.dispose()})),this._register(D.Event.runAndSubscribe(C.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var m;const c=(m=this._keybindingService.lookupKeybinding(this.showCommand.id))===null||m===void 0?void 0:m.getLabel();this.button.element.title=this.showCommand.label+(c?` (${c})`:"")}create(){this.domNode=L.$(".post-edit-widget"),this.button=this._register(new k.Button(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(L.addDisposableListener(this.domNode,L.EventType.CLICK,()=>this.showSelector()))}getId(){return i.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const m=L.getDomNodePagePosition(this.button.element);return{x:m.left+m.width,y:m.top+m.height}},getActions:()=>this.edits.allEdits.map((m,c)=>(0,y.toAction)({id:"",label:m.label,checked:c===this.edits.activeEditIndex,run:()=>{if(c!==this.edits.activeEditIndex)return this.onSelectNewEdit(c)}}))})}};t.baseId="editor.widget.postEditWidget",t=i=De([he(7,b.IContextMenuService),he(8,v.IContextKeyService),he(9,n.IKeybindingService)],t);let o=class extends S.Disposable{constructor(m,c,d,s,l,r){super(),this._id=m,this._editor=c,this._visibleContext=d,this._showCommand=s,this._instantiationService=l,this._bulkEditService=r,this._currentWidget=this._register(new S.MutableDisposable),this._register(D.Event.any(c.onDidChangeModel,c.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(m,c,d,s){const l=this._editor.getModel();if(!l||!m.length)return;const r=c.allEdits[c.activeEditIndex];if(!r)return;const h=(0,w.createCombinedWorkspaceEdit)(l.uri,m,r),u=m[0],f=l.deltaDecorations([],[{range:u,options:{description:"paste-line-suffix",stickiness:0}}]);let C,_;try{C=await this._bulkEditService.apply(h,{editor:this._editor,token:s}),_=l.getDecorationRange(f[0])}finally{l.deltaDecorations(f,[])}d&&C.isApplied&&c.allEdits.length>1&&this.show(_??u,c,async E=>{const I=this._editor.getModel();I&&(await I.undo(),this.applyEditAndShowIfNeeded(m,{activeEditIndex:E,allEdits:c.allEdits},d,s))})}show(m,c,d){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(t,this._id,this._editor,this._visibleContext,this._showCommand,m,c,d))}clear(){this._currentWidget.clear()}tryShowSelector(){var m;(m=this._currentWidget.value)===null||m===void 0||m.showSelector()}};e.PostEditWidgetManager=o,e.PostEditWidgetManager=o=De([he(4,a.IInstantiationService),he(5,p.IBulkEditService)],o)}),define(ne[354],se([1,0,14]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeybindingResolver=e.NoMatchingKb=void 0,e.NoMatchingKb={kind:0};const k={kind:1};function y(w,v,b){return{kind:2,commandId:w,commandArgs:v,isBubble:b}}class D{constructor(v,b,a){var n;this._log=a,this._defaultKeybindings=v,this._defaultBoundCommands=new Map;for(const i of v){const t=i.command;t&&t.charAt(0)!=="-"&&this._defaultBoundCommands.set(t,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=D.handleRemovals([].concat(v).concat(b));for(let i=0,t=this._keybindings.length;i"u"){this._map.set(v,[b]),this._addToLookupMap(b);return}for(let n=a.length-1;n>=0;n--){const i=a[n];if(i.command===b.command)continue;let t=!0;for(let o=1;o"u"?(b=[v],this._lookupMap.set(v.command,b)):b.push(v)}_removeFromLookupMap(v){if(!v.command)return;const b=this._lookupMap.get(v.command);if(!(typeof b>"u")){for(let a=0,n=b.length;a"u"||a.length===0)return null;if(a.length===1)return a[0];for(let n=a.length-1;n>=0;n--){const i=a[n];if(b.contextMatchesRules(i.when))return i}return a[a.length-1]}resolve(v,b,a){const n=[...b,a];this._log(`| Resolving ${n}`);const i=this._map.get(n[0]);if(i===void 0)return this._log("\\ No keybinding entries."),e.NoMatchingKb;let t=null;if(n.length<2)t=i;else{t=[];for(let g=0,m=i.length;gc.chords.length)continue;let d=!0;for(let s=1;s=0;a--){const n=b[a];if(D._contextMatchesRules(v,n.when))return n}return null}static _contextMatchesRules(v,b){return b?b.evaluate(v):!0}}e.KeybindingResolver=D;function S(w){return w?`${w.serialize()}`:"no when condition"}function p(w){return w.extensionId?w.isBuiltinExtension?`built-in extension ${w.extensionId}`:`user extension ${w.extensionId}`:w.isDefault?"built-in":"user"}}),define(ne[785],se([1,0,15,12,7,278,2,753,354]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractKeybindingService=void 0;const v=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class b extends S.Disposable{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:y.Event.None}get inChordMode(){return this._currentChords.length>0}constructor(i,t,o,g,m){super(),this._contextKeyService=i,this._commandService=t,this._telemetryService=o,this._notificationService=g,this._logService=m,this._onDidUpdateKeybindings=this._register(new y.Emitter),this._currentChords=[],this._currentChordChecker=new L.IntervalTimer,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=a.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new L.TimeoutTimer,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(i){this._logging&&this._logService.info(`[KeybindingService]: ${i}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(i,t){const o=this._getResolver().lookupPrimaryKeybinding(i,t||this._contextKeyService);if(o)return o.resolvedKeybinding}dispatchEvent(i,t){return this._dispatch(i,t)}softDispatch(i,t){this._log("/ Soft dispatching keyboard event");const o=this.resolveKeyboardEvent(i);if(o.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),w.NoMatchingKb;const[g]=o.getDispatchChords();if(g===null)return this._log("\\ Keyboard event cannot be dispatched"),w.NoMatchingKb;const m=this._contextKeyService.getContext(t),c=this._currentChords.map(({keypress:d})=>d);return this._getResolver().resolve(m,c,g)}_scheduleLeaveChordMode(){const i=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-i>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(i,t){switch(this._currentChords.push({keypress:i,label:t}),this._currentChords.length){case 0:throw(0,k.illegalState)("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(p.localize(0,null,t));break;default:{const o=this._currentChords.map(({label:g})=>g).join(", ");this._currentChordStatusMessage=this._notificationService.status(p.localize(1,null,o))}}this._scheduleLeaveChordMode(),D.IME.enabled&&D.IME.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],D.IME.enable()}_dispatch(i,t){return this._doDispatch(this.resolveKeyboardEvent(i),t,!1)}_singleModifierDispatch(i,t){const o=this.resolveKeyboardEvent(i),[g]=o.getSingleModifierDispatchChords();if(g)return this._ignoreSingleModifiers.has(g)?(this._log(`+ Ignoring single modifier ${g} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=a.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=a.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${g}.`),this._currentSingleModifier=g,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):g===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${g} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(o,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[m]=o.getChords();return this._ignoreSingleModifiers=new a(m),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(i,t,o=!1){var g;let m=!1;if(i.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let c=null,d=null;if(o){const[h]=i.getSingleModifierDispatchChords();c=h,d=h?[h]:[]}else[c]=i.getDispatchChords(),d=this._currentChords.map(({keypress:h})=>h);if(c===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),m;const s=this._contextKeyService.getContext(t),l=i.getLabel(),r=this._getResolver().resolve(s,d,c);switch(r.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",l,"[ No matching keybinding ]"),this.inChordMode){const h=this._currentChords.map(({label:u})=>u).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${h}, ${l}".`),this._notificationService.status(p.localize(2,null,h,l),{hideAfter:10*1e3}),this._leaveChordMode(),m=!0}return m}case 1:return this._logService.trace("KeybindingService#dispatch",l,"[ Several keybindings match - more chords needed ]"),m=!0,this._expectAnotherChord(c,l),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),m;case 2:{if(this._logService.trace("KeybindingService#dispatch",l,`[ Will dispatch command ${r.commandId} ]`),r.commandId===null||r.commandId===""){if(this.inChordMode){const h=this._currentChords.map(({label:u})=>u).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${h}, ${l}".`),this._notificationService.status(p.localize(3,null,h,l),{hideAfter:10*1e3}),this._leaveChordMode(),m=!0}}else{this.inChordMode&&this._leaveChordMode(),r.isBubble||(m=!0),this._log(`+ Invoking command ${r.commandId}.`),this._currentlyDispatchingCommandId=r.commandId;try{typeof r.commandArgs>"u"?this._commandService.executeCommand(r.commandId).then(void 0,h=>this._notificationService.warn(h)):this._commandService.executeCommand(r.commandId,r.commandArgs).then(void 0,h=>this._notificationService.warn(h))}finally{this._currentlyDispatchingCommandId=null}v.test(r.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:r.commandId,from:"keybinding",detail:(g=i.getUserSettingsLabel())!==null&&g!==void 0?g:void 0})}return m}}}mightProducePrintableCharacter(i){return i.ctrlKey||i.metaKey?!1:i.keyCode>=31&&i.keyCode<=56||i.keyCode>=21&&i.keyCode<=30}}e.AbstractKeybindingService=b;class a{constructor(i){this._ctrlKey=i?i.ctrlKey:!1,this._shiftKey=i?i.shiftKey:!1,this._altKey=i?i.altKey:!1,this._metaKey=i?i.metaKey:!1}has(i){switch(i){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}a.EMPTY=new a(null)}),define(ne[355],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toEmptyArrayIfContainsNull=e.ResolvedKeybindingItem=void 0;class L{constructor(D,S,p,w,v,b,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=D,this.chords=D?k(D.getDispatchChords()):[],D&&this.chords.length===0&&(this.chords=k(D.getSingleModifierDispatchChords())),this.bubble=S?S.charCodeAt(0)===94:!1,this.command=this.bubble?S.substr(1):S,this.commandArgs=p,this.when=w,this.isDefault=v,this.extensionId=b,this.isBuiltinExtension=a}}e.ResolvedKeybindingItem=L;function k(y){const D=[];for(let S=0,p=y.length;Sthis._toKeyCodeChord(a)));return b.length>0?[new S(b,v)]:[]}}e.USLayoutResolvedKeybinding=S}),define(ne[166],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILabelService=void 0,e.ILabelService=(0,L.createDecorator)("labelService")}),define(ne[125],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILayoutService=void 0,e.ILayoutService=(0,L.createDecorator)("layoutService")}),define(ne[356],se([1,0,6,50,13,7,35,45,125]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScopedLayoutService=void 0;let v=class{get mainContainer(){var n,i;return(i=(n=(0,y.firstOrDefault)(this._codeEditorService.listCodeEditors()))===null||n===void 0?void 0:n.getContainerDomNode())!==null&&i!==void 0?i:k.mainWindow.document.body}get activeContainer(){var n,i;const t=(n=this._codeEditorService.getFocusedCodeEditor())!==null&&n!==void 0?n:this._codeEditorService.getActiveCodeEditor();return(i=t?.getContainerDomNode())!==null&&i!==void 0?i:this.mainContainer}get mainContainerDimension(){return L.getClientArea(this.mainContainer)}get activeContainerDimension(){return L.getClientArea(this.activeContainer)}get containers(){return(0,y.coalesce)(this._codeEditorService.listCodeEditors().map(n=>n.getContainerDomNode()))}getContainer(){return this.activeContainer}focus(){var n;(n=this._codeEditorService.getFocusedCodeEditor())===null||n===void 0||n.focus()}constructor(n){this._codeEditorService=n,this.onDidLayoutMainContainer=D.Event.None,this.onDidLayoutActiveContainer=D.Event.None,this.onDidLayoutContainer=D.Event.None,this.onDidChangeActiveContainer=D.Event.None,this.onDidAddContainer=D.Event.None,this.whenActiveContainerStylesLoaded=Promise.resolve(),this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};v=De([he(0,S.ICodeEditorService)],v);let b=class extends v{get mainContainer(){return this._container}constructor(n,i){super(i),this._container=n}};e.EditorScopedLayoutService=b,e.EditorScopedLayoutService=b=De([he(1,S.ICodeEditorService)],b),(0,p.registerSingleton)(w.ILayoutService,v,1)}),define(ne[787],se([1,0,6,50,7,2,71,26,14,125]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityService=void 0;let b=class extends D.Disposable{constructor(n,i,t){super(),this._contextKeyService=n,this._layoutService=i,this._configurationService=t,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new y.Emitter,this._onDidChangeReducedMotion=new y.Emitter,this._accessibilityModeEnabledContext=S.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const o=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(m=>{m.affectsConfiguration("editor.accessibilitySupport")&&(o(),this._onDidChangeScreenReaderOptimized.fire()),m.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),o(),this._register(this.onDidChangeScreenReaderOptimized(()=>o()));const g=k.mainWindow.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=g.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(g)}initReducedMotionListeners(n){this._register((0,L.addDisposableListener)(n,"change",()=>{this._systemMotionReduced=n.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const i=()=>{const t=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",t),this._layoutService.mainContainer.classList.toggle("enable-motion",!t)};i(),this._register(this.onDidChangeReducedMotion(()=>i()))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const n=this._configurationService.getValue("editor.accessibilitySupport");return n==="on"||n==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const n=this._configMotionReduced;return n==="on"||n==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};e.AccessibilityService=b,e.AccessibilityService=b=De([he(0,w.IContextKeyService),he(1,v.ILayoutService),he(2,p.IConfigurationService)],b)}),define(ne[788],se([1,0,325,2,125,6]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextViewService=void 0;let S=class extends k.Disposable{constructor(w){super(),this.layoutService=w,this.currentViewDisposable=k.Disposable.None,this.contextView=this._register(new L.ContextView(this.layoutService.mainContainer,1)),this.layout(),this._register(w.onDidLayoutContainer(()=>this.layout()))}showContextView(w,v,b){let a;v?v===this.layoutService.getContainer((0,D.getWindow)(v))?a=1:b?a=3:a=2:a=1,this.contextView.setContainer(v??this.layoutService.activeContainer,a),this.contextView.show(w);const n=(0,k.toDisposable)(()=>{this.currentViewDisposable===n&&this.hideContextView()});return this.currentViewDisposable=n,n}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(w){this.contextView.hide(w)}dispose(){super.dispose(),this.currentViewDisposable.dispose(),this.currentViewDisposable=k.Disposable.None}};e.ContextViewService=S,e.ContextViewService=S=De([he(0,y.ILayoutService)],S)}),define(ne[60],se([1,0,7,2,14,8]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_LOG_LEVEL=e.LogLevelToString=e.MultiplexLogger=e.ConsoleLogger=e.AbstractLogger=e.DEFAULT_LOG_LEVEL=e.LogLevel=e.ILogService=void 0,e.ILogService=(0,D.createDecorator)("logService");var S;(function(a){a[a.Off=0]="Off",a[a.Trace=1]="Trace",a[a.Debug=2]="Debug",a[a.Info=3]="Info",a[a.Warning=4]="Warning",a[a.Error=5]="Error"})(S||(e.LogLevel=S={})),e.DEFAULT_LOG_LEVEL=S.Info;class p extends k.Disposable{constructor(){super(...arguments),this.level=e.DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new L.Emitter),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(n){this.level!==n&&(this.level=n,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(n){return this.level!==S.Off&&this.level<=n}}e.AbstractLogger=p;class w extends p{constructor(n=e.DEFAULT_LOG_LEVEL,i=!0){super(),this.useColors=i,this.setLevel(n)}trace(n,...i){this.checkLogLevel(S.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",n,...i):console.log(n,...i))}debug(n,...i){this.checkLogLevel(S.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",n,...i):console.log(n,...i))}info(n,...i){this.checkLogLevel(S.Info)&&(this.useColors?console.log("%c INFO","color: #33f",n,...i):console.log(n,...i))}warn(n,...i){this.checkLogLevel(S.Warning)&&(this.useColors?console.log("%c WARN","color: #993",n,...i):console.log(n,...i))}error(n,...i){this.checkLogLevel(S.Error)&&(this.useColors?console.log("%c ERR","color: #f33",n,...i):console.error(n,...i))}}e.ConsoleLogger=w;class v extends p{constructor(n){super(),this.loggers=n,n.length&&this.setLevel(n[0].getLevel())}setLevel(n){for(const i of this.loggers)i.setLevel(n);super.setLevel(n)}trace(n,...i){for(const t of this.loggers)t.trace(n,...i)}debug(n,...i){for(const t of this.loggers)t.debug(n,...i)}info(n,...i){for(const t of this.loggers)t.info(n,...i)}warn(n,...i){for(const t of this.loggers)t.warn(n,...i)}error(n,...i){for(const t of this.loggers)t.error(n,...i)}dispose(){for(const n of this.loggers)n.dispose();super.dispose()}}e.MultiplexLogger=v;function b(a){switch(a){case S.Trace:return"trace";case S.Debug:return"debug";case S.Info:return"info";case S.Warning:return"warn";case S.Error:return"error";case S.Off:return"off"}}e.LogLevelToString=b,e.CONTEXT_LOG_LEVEL=new y.RawContextKey("logLevel",b(S.Info))}),define(ne[196],se([1,0,59,6,84,46,273,15,7,2,113,11,288,23,71,60]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaWrapper=e.ClipboardEventUtils=e.TextAreaInput=e.InMemoryClipboardMetadataManager=e.CopyOptions=e.TextAreaSyntethicEvents=void 0;var g;(function(l){l.Tap="-monaco-textarea-synthetic-tap"})(g||(e.TextAreaSyntethicEvents=g={})),e.CopyOptions={forceCopyWithSyntaxHighlighting:!1};class m{constructor(){this._lastState=null}set(r,h){this._lastState={lastCopiedValue:r,data:h}}get(r){return this._lastState&&this._lastState.lastCopiedValue===r?this._lastState.data:(this._lastState=null,null)}}e.InMemoryClipboardMetadataManager=m,m.INSTANCE=new m;class c{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(r){r=r||"";const h={text:r,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=r.length,h}}let d=class extends v.Disposable{get textAreaState(){return this._textAreaState}constructor(r,h,u,f,C,_){super(),this._host=r,this._textArea=h,this._OS=u,this._browser=f,this._accessibilityService=C,this._logService=_,this._onFocus=this._register(new w.Emitter),this.onFocus=this._onFocus.event,this._onBlur=this._register(new w.Emitter),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new w.Emitter),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new w.Emitter),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new w.Emitter),this.onCut=this._onCut.event,this._onPaste=this._register(new w.Emitter),this.onPaste=this._onPaste.event,this._onType=this._register(new w.Emitter),this.onType=this._onType.event,this._onCompositionStart=this._register(new w.Emitter),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new w.Emitter),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new w.Emitter),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new w.Emitter),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new v.MutableDisposable),this._asyncTriggerCut=this._register(new p.RunOnceScheduler(()=>this._onCut.fire(),0)),this._textAreaState=n.TextAreaState.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(w.Event.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new p.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let E=null;this._register(this._textArea.onKeyDown(I=>{const T=new D.StandardKeyboardEvent(I);(T.keyCode===114||this._currentComposition&&T.keyCode===1)&&T.stopPropagation(),T.equals(9)&&T.preventDefault(),E=T,this._onKeyDown.fire(T)})),this._register(this._textArea.onKeyUp(I=>{const T=new D.StandardKeyboardEvent(I);this._onKeyUp.fire(T)})),this._register(this._textArea.onCompositionStart(I=>{n._debugComposition&&console.log("[compositionstart]",I);const T=new c;if(this._currentComposition){this._currentComposition=T;return}if(this._currentComposition=T,this._OS===2&&E&&E.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===I.data&&(E.code==="ArrowRight"||E.code==="ArrowLeft")){n._debugComposition&&console.log("[compositionstart] Handling long press case on macOS + arrow key",I),T.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:I.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:I.data});return}this._onCompositionStart.fire({data:I.data})})),this._register(this._textArea.onCompositionUpdate(I=>{n._debugComposition&&console.log("[compositionupdate]",I);const T=this._currentComposition;if(!T)return;if(this._browser.isAndroid){const R=n.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),M=n.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,R);this._textAreaState=R,this._onType.fire(M),this._onCompositionUpdate.fire(I);return}const A=T.handleCompositionUpdate(I.data);this._textAreaState=n.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(A),this._onCompositionUpdate.fire(I)})),this._register(this._textArea.onCompositionEnd(I=>{n._debugComposition&&console.log("[compositionend]",I);const T=this._currentComposition;if(!T)return;if(this._currentComposition=null,this._browser.isAndroid){const R=n.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),M=n.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,R);this._textAreaState=R,this._onType.fire(M),this._onCompositionEnd.fire();return}const A=T.handleCompositionUpdate(I.data);this._textAreaState=n.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(A),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(I=>{if(n._debugComposition&&console.log("[input]",I),this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const T=n.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),A=n.TextAreaState.deduceInput(this._textAreaState,T,this._OS===2);A.replacePrevCharCnt===0&&A.text.length===1&&(a.isHighSurrogate(A.text.charCodeAt(0))||A.text.charCodeAt(0)===127)||(this._textAreaState=T,(A.text!==""||A.replacePrevCharCnt!==0||A.replaceNextCharCnt!==0||A.positionDelta!==0)&&this._onType.fire(A))})),this._register(this._textArea.onCut(I=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(I),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(I=>{this._ensureClipboardGetsEditorSelection(I)})),this._register(this._textArea.onPaste(I=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),I.preventDefault(),!I.clipboardData)return;let[T,A]=e.ClipboardEventUtils.getTextData(I.clipboardData);T&&(A=A||m.INSTANCE.get(T),this._onPaste.fire({text:T,metadata:A}))})),this._register(this._textArea.onFocus(()=>{const I=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!I&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new p.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let r=0;return k.addDisposableListener(this._textArea.ownerDocument,"selectionchange",h=>{if(S.inputLatency.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const u=Date.now(),f=u-r;if(r=u,f<5)return;const C=u-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),C<100||!this._textAreaState.selection)return;const _=this._textArea.getValue();if(this._textAreaState.value!==_)return;const E=this._textArea.getSelectionStart(),I=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===E&&this._textAreaState.selectionEnd===I)return;const T=this._textAreaState.deduceEditorPosition(E),A=this._host.deduceModelPosition(T[0],T[1],T[2]),R=this._textAreaState.deduceEditorPosition(I),M=this._host.deduceModelPosition(R[0],R[1],R[2]),N=new i.Selection(A.lineNumber,A.column,M.lineNumber,M.column);this._onSelectionChangeRequest.fire(N)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(r){this._hasFocus!==r&&(this._hasFocus=r,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(r,h){this._hasFocus||(h=h.collapseSelection()),h.writeToTextArea(r,this._textArea,this._hasFocus),this._textAreaState=h}writeNativeTextAreaContent(r){!this._accessibilityService.isScreenReaderOptimized()&&r==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${r})`),this._setAndWriteTextAreaState(r,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(r){const h=this._host.getDataToCopy(),u={version:1,isFromEmptySelection:h.isFromEmptySelection,multicursorText:h.multicursorText,mode:h.mode};m.INSTANCE.set(this._browser.isFirefox?h.text.replace(/\r\n/g,` +`):h.text,u),r.preventDefault(),r.clipboardData&&e.ClipboardEventUtils.setTextData(r.clipboardData,h.text,h.html,u)}};e.TextAreaInput=d,e.TextAreaInput=d=De([he(4,t.IAccessibilityService),he(5,o.ILogService)],d),e.ClipboardEventUtils={getTextData(l){const r=l.getData(b.Mimes.text);let h=null;const u=l.getData("vscode-editor-data");if(typeof u=="string")try{h=JSON.parse(u),h.version!==1&&(h=null)}catch{}return r.length===0&&h===null&&l.files.length>0?[Array.prototype.slice.call(l.files,0).map(C=>C.name).join(` +`),null]:[r,h]},setTextData(l,r,h,u){l.setData(b.Mimes.text,r),typeof h=="string"&&l.setData("text/html",h),l.setData("vscode-editor-data",JSON.stringify(u))}};class s extends v.Disposable{get ownerDocument(){return this._actual.ownerDocument}constructor(r){super(),this._actual=r,this.onKeyDown=this._register(new y.DomEmitter(this._actual,"keydown")).event,this.onKeyUp=this._register(new y.DomEmitter(this._actual,"keyup")).event,this.onCompositionStart=this._register(new y.DomEmitter(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new y.DomEmitter(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new y.DomEmitter(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new y.DomEmitter(this._actual,"beforeinput")).event,this.onInput=this._register(new y.DomEmitter(this._actual,"input")).event,this.onCut=this._register(new y.DomEmitter(this._actual,"cut")).event,this.onCopy=this._register(new y.DomEmitter(this._actual,"copy")).event,this.onPaste=this._register(new y.DomEmitter(this._actual,"paste")).event,this.onFocus=this._register(new y.DomEmitter(this._actual,"focus")).event,this.onBlur=this._register(new y.DomEmitter(this._actual,"blur")).event,this._onSyntheticTap=this._register(new w.Emitter),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>S.inputLatency.onKeyDown())),this._register(this.onBeforeInput(()=>S.inputLatency.onBeforeInput())),this._register(this.onInput(()=>S.inputLatency.onInput())),this._register(this.onKeyUp(()=>S.inputLatency.onKeyUp())),this._register(k.addDisposableListener(this._actual,g.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const r=k.getShadowRoot(this._actual);return r?r.activeElement===this._actual:this._actual.isConnected?k.getActiveElement()===this._actual:!1}setIgnoreSelectionChangeTime(r){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(r,h){const u=this._actual;u.value!==h&&(this.setIgnoreSelectionChangeTime("setValue"),u.value=h)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(r,h,u){const f=this._actual;let C=null;const _=k.getShadowRoot(f);_?C=_.activeElement:C=k.getActiveElement();const E=k.getWindow(C),I=C===f,T=f.selectionStart,A=f.selectionEnd;if(I&&T===h&&A===u){L.isFirefox&&E.parent!==E&&f.focus();return}if(I){this.setIgnoreSelectionChangeTime("setSelectionRange"),f.setSelectionRange(h,u),L.isFirefox&&E.parent!==E&&f.focus();return}try{const R=k.saveParentsScrollTop(f);this.setIgnoreSelectionChangeTime("setSelectionRange"),f.focus(),f.setSelectionRange(h,u),k.restoreParentsScrollTop(f,R)}catch{}}}e.TextAreaWrapper=s}),define(ne[80],se([1,0,114,53,128,248,45,8,60,47]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureDebounceService=e.ILanguageFeatureDebounceService=void 0,e.ILanguageFeatureDebounceService=(0,p.createDecorator)("ILanguageFeatureDebounceService");var b;(function(t){const o=new WeakMap;let g=0;function m(c){let d=o.get(c);return d===void 0&&(d=++g,o.set(c,d)),d}t.of=m})(b||(b={}));class a{constructor(o){this._default=o}get(o){return this._default}update(o,g){return this._default}default(){return this._default}}class n{constructor(o,g,m,c,d,s){this._logService=o,this._name=g,this._registry=m,this._default=c,this._min=d,this._max=s,this._cache=new k.LRUCache(50,.7)}_key(o){return o.id+this._registry.all(o).reduce((g,m)=>(0,L.doHash)(b.of(m),g),0)}get(o){const g=this._key(o),m=this._cache.get(g);return m?(0,y.clamp)(m.value,this._min,this._max):this.default()}update(o,g){const m=this._key(o);let c=this._cache.get(m);c||(c=new y.SlidingWindowAverage(6),this._cache.set(m,c));const d=(0,y.clamp)(c.update(g),this._min,this._max);return(0,v.matchesScheme)(o.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${o.uri.toString()} is ${d}ms`),d}_overall(){const o=new y.MovingAverage;for(const[,g]of this._cache)o.update(g.value);return o.value}default(){const o=this._overall()|0||this._default;return(0,y.clamp)(o,this._min,this._max)}}let i=class{constructor(o,g){this._logService=o,this._data=new Map,this._isDev=g.isExtensionDevelopment||!g.isBuilt}for(o,g,m){var c,d,s;const l=(c=m?.min)!==null&&c!==void 0?c:50,r=(d=m?.max)!==null&&d!==void 0?d:l**2,h=(s=m?.key)!==null&&s!==void 0?s:void 0,u=`${b.of(o)},${l}${h?","+h:""}`;let f=this._data.get(u);return f||(this._isDev?f=new n(this._logService,g,o,this._overallAverage()|0||l*1.5,l,r):(this._logService.debug(`[DEBOUNCE: ${g}] is disabled in developed mode`),f=new a(l*1.5)),this._data.set(u,f)),f}_overallAverage(){const o=new y.MovingAverage;for(const g of this._data.values())o.update(g.default());return o.value}};e.LanguageFeatureDebounceService=i,e.LanguageFeatureDebounceService=i=De([he(0,w.ILogService),he(1,D.IEnvironmentService)],i),(0,S.registerSingleton)(e.ILanguageFeatureDebounceService,i,1)}),define(ne[167],se([1,0,13,19,12,52,53,9,5,80,8,45,51,2,18]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OutlineModelService=e.IOutlineModelService=e.OutlineModel=e.OutlineGroup=e.OutlineElement=e.TreeElement=void 0;class o{remove(){var l;(l=this.parent)===null||l===void 0||l.children.delete(this.id)}static findId(l,r){let h;typeof l=="string"?h=`${r.id}/${l}`:(h=`${r.id}/${l.name}`,r.children.get(h)!==void 0&&(h=`${r.id}/${l.name}_${l.range.startLineNumber}_${l.range.startColumn}`));let u=h;for(let f=0;r.children.get(u)!==void 0;f++)u=`${h}_${f}`;return u}static empty(l){return l.children.size===0}}e.TreeElement=o;class g extends o{constructor(l,r,h){super(),this.id=l,this.parent=r,this.symbol=h,this.children=new Map}}e.OutlineElement=g;class m extends o{constructor(l,r,h,u){super(),this.id=l,this.parent=r,this.label=h,this.order=u,this.children=new Map}}e.OutlineGroup=m;class c extends o{static create(l,r,h){const u=new k.CancellationTokenSource(h),f=new c(r.uri),C=l.ordered(r),_=C.map((I,T)=>{var A;const R=o.findId(`provider_${T}`,f),M=new m(R,f,(A=I.displayName)!==null&&A!==void 0?A:"Unknown Outline Provider",T);return Promise.resolve(I.provideDocumentSymbols(r,u.token)).then(N=>{for(const P of N||[])c._makeOutlineElement(P,M);return M},N=>((0,y.onUnexpectedExternalError)(N),M)).then(N=>{o.empty(N)?N.remove():f._groups.set(R,N)})}),E=l.onDidChange(()=>{const I=l.ordered(r);(0,L.equals)(I,C)||u.cancel()});return Promise.all(_).then(()=>u.token.isCancellationRequested&&!h.isCancellationRequested?c.create(l,r,h):f._compact()).finally(()=>{u.dispose(),E.dispose(),u.dispose()})}static _makeOutlineElement(l,r){const h=o.findId(l,r),u=new g(h,r,l);if(l.children)for(const f of l.children)c._makeOutlineElement(f,u);r.children.set(u.id,u)}constructor(l){super(),this.uri=l,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let l=0;for(const[r,h]of this._groups)h.children.size===0?this._groups.delete(r):l+=1;if(l!==1)this.children=this._groups;else{const r=D.Iterable.first(this._groups.values());for(const[,h]of r.children)h.parent=this,this.children.set(h.id,h)}return this}getTopLevelSymbols(){const l=[];for(const r of this.children.values())r instanceof g?l.push(r.symbol):l.push(...D.Iterable.map(r.children.values(),h=>h.symbol));return l.sort((r,h)=>w.Range.compareRangesUsingStarts(r.range,h.range))}asListOfDocumentSymbols(){const l=this.getTopLevelSymbols(),r=[];return c._flattenDocumentSymbols(r,l,""),r.sort((h,u)=>p.Position.compare(w.Range.getStartPosition(h.range),w.Range.getStartPosition(u.range))||p.Position.compare(w.Range.getEndPosition(u.range),w.Range.getEndPosition(h.range)))}static _flattenDocumentSymbols(l,r,h){for(const u of r)l.push({kind:u.kind,tags:u.tags,name:u.name,detail:u.detail,containerName:u.containerName||h,range:u.range,selectionRange:u.selectionRange,children:void 0}),u.children&&c._flattenDocumentSymbols(l,u.children,u.name)}}e.OutlineModel=c,e.IOutlineModelService=(0,b.createDecorator)("IOutlineModelService");let d=class{constructor(l,r,h){this._languageFeaturesService=l,this._disposables=new i.DisposableStore,this._cache=new S.LRUCache(10,.7),this._debounceInformation=r.for(l.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(h.onModelRemoved(u=>{this._cache.delete(u.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(l,r){const h=this._languageFeaturesService.documentSymbolProvider,u=h.ordered(l);let f=this._cache.get(l.id);if(!f||f.versionId!==l.getVersionId()||!(0,L.equals)(f.provider,u)){const _=new k.CancellationTokenSource;f={versionId:l.getVersionId(),provider:u,promiseCnt:0,source:_,promise:c.create(h,l,_.token),model:void 0},this._cache.set(l.id,f);const E=Date.now();f.promise.then(I=>{f.model=I,this._debounceInformation.update(l,Date.now()-E)}).catch(I=>{this._cache.delete(l.id)})}if(f.model)return f.model;f.promiseCnt+=1;const C=r.onCancellationRequested(()=>{--f.promiseCnt===0&&(f.source.cancel(),this._cache.delete(l.id))});try{return await f.promise}finally{C.dispose()}}};e.OutlineModelService=d,e.OutlineModelService=d=De([he(0,t.ILanguageFeaturesService),he(1,v.ILanguageFeatureDebounceService),he(2,n.IModelService)],d),(0,a.registerSingleton)(e.IOutlineModelService,d,1)}),define(ne[789],se([1,0,13,32,348,87,18,167,2,7]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0});let b=class extends w.Disposable{constructor(n,i,t){super(),this._textModel=n,this._languageFeaturesService=i,this._outlineModelService=t,this._currentModel=(0,k.observableValue)(this,void 0);const o=(0,k.observableSignalFromEvent)("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),g=(0,k.observableSignalFromEvent)("_textModel.onDidChangeContent",v.Event.debounce(m=>this._textModel.onDidChangeContent(m),()=>{},100));this._register((0,k.autorunWithStore)(async(m,c)=>{o.read(m),g.read(m);const d=c.add(new D.DisposableCancellationTokenSource),s=await this._outlineModelService.getOrCreate(this._textModel,d.token);c.isDisposed||this._currentModel.set(s,void 0)}))}getBreadcrumbItems(n,i){const t=this._currentModel.read(i);if(!t)return[];const o=t.asListOfDocumentSymbols().filter(g=>n.contains(g.range.startLineNumber)&&!n.contains(g.range.endLineNumber));return o.sort((0,L.reverseOrder)((0,L.compareBy)(g=>g.range.endLineNumber-g.range.startLineNumber,L.numberComparator))),o.map(g=>({name:g.name,kind:g.kind,startLineNumber:g.range.startLineNumber}))}};b=De([he(1,S.ILanguageFeaturesService),he(2,p.IOutlineModelService)],b),y.HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((a,n)=>n.createInstance(b,a))}),define(ne[790],se([1,0,19,20,22,70,167,25]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),p.CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",async function(w,...v){const[b]=v;(0,k.assertType)(y.URI.isUri(b));const a=w.get(S.IOutlineModelService),i=await w.get(D.ITextModelService).createModelReference(b);try{return(await a.getOrCreate(i.object.textEditorModel,L.CancellationToken.None)).getTopLevelSymbols()}finally{i.dispose()}})}),define(ne[791],se([1,0,59,6,50,15,7,114,2,125,60]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserClipboardService=void 0;let n=a=class extends w.Disposable{constructor(t,o){super(),this.layoutService=t,this.logService=o,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(L.isSafari||L.isWebkitWebView)&&this.installWebKitWriteTextWorkaround(),this._register(S.Event.runAndSubscribe(k.onDidRegisterWindow,({window:g,disposables:m})=>{m.add((0,k.addDisposableListener)(g.document,"copy",()=>this.clearResources()))},{window:y.mainWindow,disposables:this._store}))}installWebKitWriteTextWorkaround(){const t=()=>{const o=new D.DeferredPromise;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=o,navigator.clipboard.write([new ClipboardItem({"text/plain":o.p})]).catch(async g=>{(!(g instanceof Error)||g.name!=="NotAllowedError"||!o.isRejected)&&this.logService.error(g)})};this._register(S.Event.runAndSubscribe(this.layoutService.onDidAddContainer,({container:o,disposables:g})=>{g.add((0,k.addDisposableListener)(o,"click",t)),g.add((0,k.addDisposableListener)(o,"keydown",t))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(t,o){if(this.writeResources([]),o){this.mapTextToType.set(o,t);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(t);try{return await navigator.clipboard.writeText(t)}catch(g){console.error(g)}this.fallbackWriteText(t)}fallbackWriteText(t){const o=(0,k.getActiveDocument)(),g=o.activeElement,m=o.body.appendChild((0,k.$)("textarea",{"aria-hidden":!0}));m.style.height="1px",m.style.width="1px",m.style.position="absolute",m.value=t,m.focus(),m.select(),o.execCommand("copy"),g instanceof HTMLElement&&g.focus(),o.body.removeChild(m)}async readText(t){if(t)return this.mapTextToType.get(t)||"";try{return await navigator.clipboard.readText()}catch(o){console.error(o)}return""}async readFindText(){return this.findText}async writeFindText(t){this.findText=t}async writeResources(t){t.length===0?this.clearResources():(this.resources=t,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const t=await this.computeResourcesStateHash();return this.resourcesStateHash!==t&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const t=await this.readText();return(0,p.hash)(t.substring(0,a.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}};e.BrowserClipboardService=n,n.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,e.BrowserClipboardService=n=a=De([he(0,v.ILayoutService),he(1,b.ILogService)],n)}),define(ne[792],se([1,0,2,60]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LogService=void 0;class y extends L.Disposable{constructor(S,p=[]){super(),this.logger=new k.MultiplexLogger([S,...p]),this._register(S.onDidChangeLogLevel(w=>this.setLevel(w)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(S){this.logger.setLevel(S)}getLevel(){return this.logger.getLevel()}trace(S,...p){this.logger.trace(S,...p)}debug(S,...p){this.logger.debug(S,...p)}info(S,...p){this.logger.info(S,...p)}warn(S,...p){this.logger.warn(S,...p)}error(S,...p){this.logger.error(S,...p)}}e.LogService=y}),define(ne[100],se([1,0,103,755,8]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerService=e.IMarkerData=e.MarkerSeverity=void 0;var D;(function(p){p[p.Hint=1]="Hint",p[p.Info=2]="Info",p[p.Warning=4]="Warning",p[p.Error=8]="Error"})(D||(e.MarkerSeverity=D={})),function(p){function w(i,t){return t-i}p.compare=w;const v=Object.create(null);v[p.Error]=(0,k.localize)(0,null),v[p.Warning]=(0,k.localize)(1,null),v[p.Info]=(0,k.localize)(2,null);function b(i){return v[i]||""}p.toString=b;function a(i){switch(i){case L.default.Error:return p.Error;case L.default.Warning:return p.Warning;case L.default.Info:return p.Info;case L.default.Ignore:return p.Hint}}p.fromSeverity=a;function n(i){switch(i){case p.Error:return L.default.Error;case p.Warning:return L.default.Warning;case p.Info:return L.default.Info;case p.Hint:return L.default.Ignore}}p.toSeverity=n}(D||(e.MarkerSeverity=D={}));var S;(function(p){const w="";function v(a){return b(a,!0)}p.makeKey=v;function b(a,n){const i=[w];return a.source?i.push(a.source.replace("\xA6","\\\xA6")):i.push(w),a.code?typeof a.code=="string"?i.push(a.code.replace("\xA6","\\\xA6")):i.push(a.code.value.replace("\xA6","\\\xA6")):i.push(w),a.severity!==void 0&&a.severity!==null?i.push(D.toString(a.severity)):i.push(w),a.message&&n?i.push(a.message.replace("\xA6","\\\xA6")):i.push(w),a.startLineNumber!==void 0&&a.startLineNumber!==null?i.push(a.startLineNumber.toString()):i.push(w),a.startColumn!==void 0&&a.startColumn!==null?i.push(a.startColumn.toString()):i.push(w),a.endLineNumber!==void 0&&a.endLineNumber!==null?i.push(a.endLineNumber.toString()):i.push(w),a.endColumn!==void 0&&a.endColumn!==null?i.push(a.endColumn.toString()):i.push(w),i.push(w),i.join("\xA6")}p.makeKeyOptionalMessage=b})(S||(e.IMarkerData=S={})),e.IMarkerService=(0,y.createDecorator)("markerService")}),define(ne[793],se([1,0,13,7,2,67,11,22,5,45,8,100,26]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerNavigationService=e.MarkerList=e.MarkerCoordinate=void 0;class i{constructor(m,c,d){this.marker=m,this.index=c,this.total=d}}e.MarkerCoordinate=i;let t=class{constructor(m,c,d){this._markerService=c,this._configService=d,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._dispoables=new y.DisposableStore,this._markers=[],this._nextIdx=-1,p.URI.isUri(m)?this._resourceFilter=h=>h.toString()===m.toString():m&&(this._resourceFilter=m);const s=this._configService.getValue("problems.sortOrder"),l=(h,u)=>{let f=(0,S.compare)(h.resource.toString(),u.resource.toString());return f===0&&(s==="position"?f=w.Range.compareRangesUsingStarts(h,u)||a.MarkerSeverity.compare(h.severity,u.severity):f=a.MarkerSeverity.compare(h.severity,u.severity)||w.Range.compareRangesUsingStarts(h,u)),f},r=()=>{this._markers=this._markerService.read({resource:p.URI.isUri(m)?m:void 0,severities:a.MarkerSeverity.Error|a.MarkerSeverity.Warning|a.MarkerSeverity.Info}),typeof m=="function"&&(this._markers=this._markers.filter(h=>this._resourceFilter(h.resource))),this._markers.sort(l)};r(),this._dispoables.add(c.onMarkerChanged(h=>{(!this._resourceFilter||h.some(u=>this._resourceFilter(u)))&&(r(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(m){return!this._resourceFilter&&!m?!0:!this._resourceFilter||!m?!1:this._resourceFilter(m)}get selected(){const m=this._markers[this._nextIdx];return m&&new i(m,this._nextIdx+1,this._markers.length)}_initIdx(m,c,d){let s=!1,l=this._markers.findIndex(r=>r.resource.toString()===m.uri.toString());l<0&&(l=(0,L.binarySearch)(this._markers,{resource:m.uri},(r,h)=>(0,S.compare)(r.resource.toString(),h.resource.toString())),l<0&&(l=~l));for(let r=l;rs.resource.toString()===m.toString());if(!(d<0)){for(;dc[1])}}class b{constructor(i){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new D.ResourceMap,this._service=i,this._subscription=i.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(i){for(const t of i){const o=this._data.get(t);o&&this._substract(o);const g=this._resourceStats(t);this._add(g),this._data.set(t,g)}}_resourceStats(i){const t={errors:0,warnings:0,infos:0,unknowns:0};if(e.unsupportedSchemas.has(i.scheme))return t;for(const{severity:o}of this._service.read({resource:i}))o===w.MarkerSeverity.Error?t.errors+=1:o===w.MarkerSeverity.Warning?t.warnings+=1:o===w.MarkerSeverity.Info?t.infos+=1:t.unknowns+=1;return t}_substract(i){this.errors-=i.errors,this.warnings-=i.warnings,this.infos-=i.infos,this.unknowns-=i.unknowns}_add(i){this.errors+=i.errors,this.warnings+=i.warnings,this.infos+=i.infos,this.unknowns+=i.unknowns}}class a{constructor(){this._onMarkerChanged=new k.DebounceEmitter({delay:0,merge:a._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new v,this._stats=new b(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(i,t){for(const o of t||[])this.changeOne(i,o,[])}changeOne(i,t,o){if((0,L.isFalsyOrEmpty)(o))this._data.delete(t,i)&&this._onMarkerChanged.fire([t]);else{const g=[];for(const m of o){const c=a._toMarker(i,t,m);c&&g.push(c)}this._data.set(t,i,g),this._onMarkerChanged.fire([t])}}static _toMarker(i,t,o){let{code:g,severity:m,message:c,source:d,startLineNumber:s,startColumn:l,endLineNumber:r,endColumn:h,relatedInformation:u,tags:f}=o;if(c)return s=s>0?s:1,l=l>0?l:1,r=r>=s?r:s,h=h>0?h:l,{resource:t,owner:i,code:g,severity:m,message:c,source:d,startLineNumber:s,startColumn:l,endLineNumber:r,endColumn:h,relatedInformation:u,tags:f}}changeAll(i,t){const o=[],g=this._data.values(i);if(g)for(const m of g){const c=y.Iterable.first(m);c&&(o.push(c.resource),this._data.delete(c.resource,i))}if((0,L.isNonEmptyArray)(t)){const m=new D.ResourceMap;for(const{resource:c,marker:d}of t){const s=a._toMarker(i,c,d);if(!s)continue;const l=m.get(c);l?l.push(s):(m.set(c,[s]),o.push(c))}for(const[c,d]of m)this._data.set(c,i,d)}o.length>0&&this._onMarkerChanged.fire(o)}read(i=Object.create(null)){let{owner:t,resource:o,severities:g,take:m}=i;if((!m||m<0)&&(m=-1),t&&o){const c=this._data.get(o,t);if(c){const d=[];for(const s of c)if(a._accept(s,g)){const l=d.push(s);if(m>0&&l===m)break}return d}else return[]}else if(!t&&!o){const c=[];for(const d of this._data.values())for(const s of d)if(a._accept(s,g)){const l=c.push(s);if(m>0&&l===m)return c}return c}else{const c=this._data.values(o??t),d=[];for(const s of c)for(const l of s)if(a._accept(l,g)){const r=d.push(l);if(m>0&&r===m)return d}return d}}static _accept(i,t){return t===void 0||(t&i.severity)===i.severity}static _merge(i){const t=new D.ResourceMap;for(const o of i)for(const g of o)t.set(g,!0);return Array.from(t.keys())}}e.MarkerService=a}),define(ne[49],se([1,0,103,8]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NoOpNotification=e.INotificationService=e.Severity=void 0,e.Severity=L.default,e.INotificationService=(0,k.createDecorator)("notificationService");class y{}e.NoOpNotification=y}),define(ne[57],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.extractSelection=e.IOpenerService=void 0,e.IOpenerService=(0,L.createDecorator)("openerService");function k(y){let D;const S=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(y.fragment);return S&&(D={startLineNumber:parseInt(S[1]),startColumn:S[2]?parseInt(S[2]):1,endLineNumber:S[4]?parseInt(S[4]):void 0,endColumn:S[4]?S[5]?parseInt(S[5]):1:void 0},y=y.with({fragment:""})),{selection:D,uri:y}}e.extractSelection=k}),define(ne[795],se([1,0,6,50,19,67,53,229,47,48,22,35,25,769,57]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OpenerService=void 0;let o=class{constructor(d){this._commandService=d}async open(d,s){if(!(0,w.matchesScheme)(d,w.Schemas.command))return!1;if(!s?.allowCommands||(typeof d=="string"&&(d=b.URI.parse(d)),Array.isArray(s.allowCommands)&&!s.allowCommands.includes(d.path)))return!0;let l=[];try{l=(0,p.parse)(decodeURIComponent(d.query))}catch{try{l=(0,p.parse)(d.query)}catch{}}return Array.isArray(l)||(l=[l]),await this._commandService.executeCommand(d.path,...l),!0}};o=De([he(0,n.ICommandService)],o);let g=class{constructor(d){this._editorService=d}async open(d,s){typeof d=="string"&&(d=b.URI.parse(d));const{selection:l,uri:r}=(0,t.extractSelection)(d);return d=r,d.scheme===w.Schemas.file&&(d=(0,v.normalizePath)(d)),await this._editorService.openCodeEditor({resource:d,options:{selection:l,source:s?.fromUserGesture?i.EditorOpenSource.USER:i.EditorOpenSource.API,...s?.editorOptions}},this._editorService.getFocusedCodeEditor(),s?.openToSide),!0}};g=De([he(0,a.ICodeEditorService)],g);let m=class{constructor(d,s){this._openers=new D.LinkedList,this._validators=new D.LinkedList,this._resolvers=new D.LinkedList,this._resolvedUriTargets=new S.ResourceMap(l=>l.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new D.LinkedList,this._defaultExternalOpener={openExternal:async l=>((0,w.matchesSomeScheme)(l,w.Schemas.http,w.Schemas.https)?L.windowOpenNoOpener(l):k.mainWindow.location.href=l,!0)},this._openers.push({open:async(l,r)=>r?.openExternal||(0,w.matchesSomeScheme)(l,w.Schemas.mailto,w.Schemas.http,w.Schemas.https,w.Schemas.vsls)?(await this._doOpenExternal(l,r),!0):!1}),this._openers.push(new o(s)),this._openers.push(new g(d))}registerOpener(d){return{dispose:this._openers.unshift(d)}}async open(d,s){var l;const r=typeof d=="string"?b.URI.parse(d):d,h=(l=this._resolvedUriTargets.get(r))!==null&&l!==void 0?l:d;for(const u of this._validators)if(!await u.shouldOpen(h,s))return!1;for(const u of this._openers)if(await u.open(d,s))return!0;return!1}async resolveExternalUri(d,s){for(const l of this._resolvers)try{const r=await l.resolveExternalUri(d,s);if(r)return this._resolvedUriTargets.has(r.resolved)||this._resolvedUriTargets.set(r.resolved,d),r}catch{}throw new Error("Could not resolve external URI: "+d.toString())}async _doOpenExternal(d,s){const l=typeof d=="string"?b.URI.parse(d):d;let r;try{r=(await this.resolveExternalUri(l,s)).resolved}catch{r=l}let h;if(typeof d=="string"&&l.toString()===r.toString()?h=d:h=encodeURI(r.toString(!0)),s?.allowContributedOpeners){const u=typeof s?.allowContributedOpeners=="string"?s?.allowContributedOpeners:void 0;for(const f of this._externalOpeners)if(await f.openExternal(h,{sourceUri:l,preferredOpenerId:u},y.CancellationToken.None))return!0}return this._defaultExternalOpener.openExternal(h,{sourceUri:l},y.CancellationToken.None)}dispose(){this._validators.clear()}};e.OpenerService=m,e.OpenerService=m=De([he(0,a.ICodeEditorService),he(1,n.ICommandService)],m)}),define(ne[796],se([1,0,6,84,46,65,7,2,57,498]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Link=void 0;let v=class extends p.Disposable{get enabled(){return this._enabled}set enabled(a){a?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=a}constructor(a,n,i={},t){var o;super(),this._link=n,this._enabled=!0,this.el=(0,L.append)(a,(0,L.$)("a.monaco-link",{tabIndex:(o=n.tabIndex)!==null&&o!==void 0?o:0,href:n.href,title:n.title},n.label)),this.el.setAttribute("role","button");const g=this._register(new k.DomEmitter(this.el,"click")),m=this._register(new k.DomEmitter(this.el,"keypress")),c=S.Event.chain(m.event,l=>l.map(r=>new y.StandardKeyboardEvent(r)).filter(r=>r.keyCode===3)),d=this._register(new k.DomEmitter(this.el,D.EventType.Tap)).event;this._register(D.Gesture.addTarget(this.el));const s=S.Event.any(g.event,c,d);this._register(s(l=>{this.enabled&&(L.EventHelper.stop(l,!0),i?.opener?i.opener(this._link.href):t.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}};e.Link=v,e.Link=v=De([he(3,w.IOpenerService)],v)}),define(ne[88],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorProgressService=e.Progress=e.emptyProgressRunner=e.IProgressService=void 0,e.IProgressService=(0,L.createDecorator)("progressService"),e.emptyProgressRunner=Object.freeze({total(){},worked(){},done(){}});class k{constructor(D){this.callback=D}report(D){this._value=D,this.callback(this._value)}}e.Progress=k,k.None=Object.freeze({report(){}}),e.IEditorProgressService=(0,L.createDecorator)("editorProgressService")}),define(ne[797],se([1,0,15,19,2,20]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PickerQuickAccessProvider=e.TriggerAction=void 0;var S;(function(b){b[b.NO_ACTION=0]="NO_ACTION",b[b.CLOSE_PICKER=1]="CLOSE_PICKER",b[b.REFRESH_PICKER=2]="REFRESH_PICKER",b[b.REMOVE_ITEM=3]="REMOVE_ITEM"})(S||(e.TriggerAction=S={}));function p(b){const a=b;return Array.isArray(a.items)}function w(b){const a=b;return!!a.picks&&a.additionalPicks instanceof Promise}class v extends y.Disposable{constructor(a,n){super(),this.prefix=a,this.options=n}provide(a,n,i){var t;const o=new y.DisposableStore;a.canAcceptInBackground=!!(!((t=this.options)===null||t===void 0)&&t.canAcceptInBackground),a.matchOnLabel=a.matchOnDescription=a.matchOnDetail=a.sortByLabel=!1;let g;const m=o.add(new y.MutableDisposable),c=async()=>{var d;const s=m.value=new y.DisposableStore;g?.dispose(!0),a.busy=!1,g=new k.CancellationTokenSource(n);const l=g.token;let r=a.value.substring(this.prefix.length);!((d=this.options)===null||d===void 0)&&d.shouldSkipTrimPickFilter||(r=r.trim());const h=this._getPicks(r,s,l,i),u=(C,_)=>{var E;let I,T;if(p(C)?(I=C.items,T=C.active):I=C,I.length===0){if(_)return!1;(r.length>0||a.hideInput)&&(!((E=this.options)===null||E===void 0)&&E.noResultsPick)&&((0,D.isFunction)(this.options.noResultsPick)?I=[this.options.noResultsPick(r)]:I=[this.options.noResultsPick])}return a.items=I,T&&(a.activeItems=[T]),!0},f=async C=>{let _=!1,E=!1;await Promise.all([(async()=>{typeof C.mergeDelay=="number"&&(await(0,L.timeout)(C.mergeDelay),l.isCancellationRequested)||E||(_=u(C.picks,!0))})(),(async()=>{a.busy=!0;try{const I=await C.additionalPicks;if(l.isCancellationRequested)return;let T,A;p(C.picks)?(T=C.picks.items,A=C.picks.active):T=C.picks;let R,M;if(p(I)?(R=I.items,M=I.active):R=I,R.length>0||!_){let N;if(!A&&!M){const P=a.activeItems[0];P&&T.indexOf(P)!==-1&&(N=P)}u({items:[...T,...R],active:A||M||N})}}finally{l.isCancellationRequested||(a.busy=!1),E=!0}})()])};if(h!==null)if(w(h))await f(h);else if(!(h instanceof Promise))u(h);else{a.busy=!0;try{const C=await h;if(l.isCancellationRequested)return;w(C)?await f(C):u(C)}finally{l.isCancellationRequested||(a.busy=!1)}}};return o.add(a.onDidChangeValue(()=>c())),c(),o.add(a.onDidAccept(d=>{const[s]=a.selectedItems;typeof s?.accept=="function"&&(d.inBackground||a.hide(),s.accept(a.keyMods,d))})),o.add(a.onDidTriggerItemButton(async({button:d,item:s})=>{var l,r;if(typeof s.trigger=="function"){const h=(r=(l=s.buttons)===null||l===void 0?void 0:l.indexOf(d))!==null&&r!==void 0?r:-1;if(h>=0){const u=s.trigger(h,a.keyMods),f=typeof u=="number"?u:await u;if(n.isCancellationRequested)return;switch(f){case S.NO_ACTION:break;case S.CLOSE_PICKER:a.hide();break;case S.REFRESH_PICKER:c();break;case S.REMOVE_ITEM:{const C=a.items.indexOf(s);if(C!==-1){const _=a.items.slice(),E=_.splice(C,1),I=a.activeItems.filter(A=>A!==E[0]),T=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=_,I&&(a.activeItems=I),a.keepScrollPosition=T}break}}}}})),o}}e.PickerQuickAccessProvider=v}),define(ne[798],se([1,0,6,238,2,103,181]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputBox=void 0;const S=L.$;class p extends y.Disposable{constructor(v,b,a){super(),this.parent=v,this.onKeyDown=i=>L.addStandardDisposableListener(this.findInput.inputBox.inputElement,L.EventType.KEY_DOWN,i),this.onDidChange=i=>this.findInput.onDidChange(i),this.container=L.append(this.parent,S(".quick-input-box")),this.findInput=this._register(new k.FindInput(this.container,void 0,{label:"",inputBoxStyles:b,toggleStyles:a}));const n=this.findInput.inputBox.inputElement;n.role="combobox",n.ariaHasPopup="menu",n.ariaAutoComplete="list",n.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(v){this.findInput.setValue(v)}select(v=null){this.findInput.inputBox.select(v)}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(v){this.findInput.inputBox.setPlaceHolder(v)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(v){this.findInput.inputBox.inputElement.type=v?"password":"text"}set enabled(v){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!v)}set toggles(v){this.findInput.setAdditionalToggles(v)}setAttribute(v,b){this.findInput.inputBox.inputElement.setAttribute(v,b)}showDecoration(v){v===D.default.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:v===D.default.Info?1:v===D.default.Warning?2:3,content:""})}stylesForType(v){return this.findInput.inputBox.stylesForType(v===D.default.Info?1:v===D.default.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}e.QuickInputBox=p}),define(ne[357],se([1,0,6,84,7,46,65,104,172,406,761,181]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderQuickInputDescription=e.quickInputButtonToAction=void 0;const a={},n=new w.IdGenerator("quick-input-button-icon-");function i(g){if(!g)return;let m;const c=g.dark.toString();return a[c]?m=a[c]:(m=n.nextId(),L.createCSSRule(`.${m}, .hc-light .${m}`,`background-image: ${L.asCSSUrl(g.light||g.dark)}`),L.createCSSRule(`.vs-dark .${m}, .hc-black .${m}`,`background-image: ${L.asCSSUrl(g.dark)}`),a[c]=m),m}function t(g,m,c){let d=g.iconClass||i(g.iconPath);return g.alwaysVisible&&(d=d?`${d} always-visible`:"always-visible"),{id:m,label:"",tooltip:g.tooltip||"",class:d,enabled:!0,run:c}}e.quickInputButtonToAction=t;function o(g,m,c){L.reset(m);const d=(0,v.parseLinkedText)(g);let s=0;for(const l of d.nodes)if(typeof l=="string")m.append(...(0,p.renderLabelWithIcons)(l));else{let r=l.title;!r&&l.href.startsWith("command:")?r=(0,b.localize)(0,null,l.href.substring(8)):r||(r=l.href);const h=L.$("a",{href:l.href,title:r,tabIndex:s++},l.label);h.style.textDecoration="underline";const u=I=>{L.isEventLike(I)&&L.EventHelper.stop(I,!0),c.callback(l.href)},f=c.disposables.add(new k.DomEmitter(h,L.EventType.CLICK)).event,C=c.disposables.add(new k.DomEmitter(h,L.EventType.KEY_DOWN)).event,_=y.Event.chain(C,I=>I.filter(T=>{const A=new D.StandardKeyboardEvent(T);return A.equals(10)||A.equals(3)}));c.disposables.add(S.Gesture.addTarget(h));const E=c.disposables.add(new k.DomEmitter(h,S.EventType.Tap)).event;y.Event.any(f,E,_)(u,null,c.disposables),m.appendChild(h)}}e.renderQuickInputDescription=o}),define(ne[72],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IQuickInputService=e.quickPickItemScorerAccessor=e.QuickPickItemScorerAccessor=e.ItemActivation=e.QuickInputHideReason=e.NO_KEY_MODS=void 0,e.NO_KEY_MODS={ctrlCmd:!1,alt:!1};var k;(function(S){S[S.Blur=1]="Blur",S[S.Gesture=2]="Gesture",S[S.Other=3]="Other"})(k||(e.QuickInputHideReason=k={}));var y;(function(S){S[S.NONE=0]="NONE",S[S.FIRST=1]="FIRST",S[S.SECOND=2]="SECOND",S[S.LAST=3]="LAST"})(y||(e.ItemActivation=y={}));class D{constructor(p){this.options=p}}e.QuickPickItemScorerAccessor=D,e.quickPickItemScorerAccessor=new D,e.IQuickInputService=(0,L.createDecorator)("quickInputService")}),define(ne[37],se([1,0,90,20]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Registry=void 0;class y{constructor(){this.data=new Map}add(S,p){L.ok(k.isString(S)),L.ok(k.isObject(p)),L.ok(!this.data.has(S),"There is already an extension with this id"),this.data.set(S,p)}as(S){return this.data.get(S)||null}}e.Registry=new y}),define(ne[358],se([1,0,37]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LocalSelectionTransfer=e.Extensions=e.CodeDataTransfers=void 0,e.CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"};class k{}e.Extensions={DragAndDropContribution:"workbench.contributions.dragAndDrop"},L.Registry.add(e.Extensions.DragAndDropContribution,new k);class y{constructor(){}static getInstance(){return y.INSTANCE}hasData(S){return S&&S===this.proto}getData(S){if(this.hasData(S))return this.data}}e.LocalSelectionTransfer=y,y.INSTANCE=new y}),define(ne[359],se([1,0,204,179,113,22,358]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toExternalVSDataTransfer=e.toVSDataTransfer=void 0;function p(a){const n=new k.VSDataTransfer;for(const i of a.items){const t=i.type;if(i.kind==="string"){const o=new Promise(g=>i.getAsString(g));n.append(t,(0,k.createStringDataTransferItem)(o))}else if(i.kind==="file"){const o=i.getAsFile();o&&n.append(t,w(o))}}return n}e.toVSDataTransfer=p;function w(a){const n=a.path?D.URI.parse(a.path):void 0;return(0,k.createFileDataTransferItem)(a.name,n,async()=>new Uint8Array(await a.arrayBuffer()))}const v=Object.freeze([S.CodeDataTransfers.EDITORS,S.CodeDataTransfers.FILES,L.DataTransfers.RESOURCES,L.DataTransfers.INTERNAL_URI_LIST]);function b(a,n=!1){const i=p(a),t=i.get(L.DataTransfers.INTERNAL_URI_LIST);if(t)i.replace(y.Mimes.uriList,t);else if(n||!i.has(y.Mimes.uriList)){const o=[];for(const g of a.items){const m=g.getAsFile();if(m){const c=m.path;try{c?o.push(D.URI.file(c).toString()):o.push(D.URI.parse(m.name,!0).toString())}catch{}}}o.length&&i.replace(y.Mimes.uriList,(0,k.createStringDataTransferItem)(k.UriList.create(o)))}for(const o of v)i.delete(o);return i}e.toExternalVSDataTransfer=b}),define(ne[250],se([1,0,7,37]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=void 0,e.Extensions={JSONContribution:"base.contributions.json"};function y(p){return p.length>0&&p.charAt(p.length-1)==="#"?p.substring(0,p.length-1):p}class D{constructor(){this._onDidChangeSchema=new L.Emitter,this.schemasById={}}registerSchema(w,v){this.schemasById[y(w)]=v,this._onDidChangeSchema.fire(w)}notifySchemaChanged(w){this._onDidChangeSchema.fire(w)}}const S=new D;k.Registry.add(e.Extensions.JSONContribution,S)}),define(ne[101],se([1,0,13,7,20,747,26,250,37]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.validateProperty=e.getDefaultValue=e.overrideIdentifiersFromKey=e.OVERRIDE_PROPERTY_REGEX=e.OVERRIDE_PROPERTY_PATTERN=e.resourceLanguageSettingsSchemaId=e.resourceSettings=e.windowSettings=e.machineOverridableSettings=e.machineSettings=e.applicationSettings=e.allSettings=e.Extensions=void 0,e.Extensions={Configuration:"base.contributions.configuration"},e.allSettings={properties:{},patternProperties:{}},e.applicationSettings={properties:{},patternProperties:{}},e.machineSettings={properties:{},patternProperties:{}},e.machineOverridableSettings={properties:{},patternProperties:{}},e.windowSettings={properties:{},patternProperties:{}},e.resourceSettings={properties:{},patternProperties:{}},e.resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage";const v=w.Registry.as(p.Extensions.JSONContribution);class b{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new k.Emitter,this._onDidUpdateConfiguration=new k.Emitter,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:D.localize(0,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},v.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(c,d=!0){this.registerConfigurations([c],d)}registerConfigurations(c,d=!0){const s=new Set;this.doRegisterConfigurations(c,d,s),v.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:s})}registerDefaultConfigurations(c){const d=new Set;this.doRegisterDefaultConfigurations(c,d),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:d,defaultsOverrides:!0})}doRegisterDefaultConfigurations(c,d){var s;const l=[];for(const{overrides:r,source:h}of c)for(const u in r)if(d.add(u),e.OVERRIDE_PROPERTY_REGEX.test(u)){const f=this.configurationDefaultsOverrides.get(u),C=(s=f?.valuesSources)!==null&&s!==void 0?s:new Map;if(h)for(const T of Object.keys(r[u]))C.set(T,h);const _={...f?.value||{},...r[u]};this.configurationDefaultsOverrides.set(u,{source:h,value:_,valuesSources:C});const E=(0,S.getLanguageTagSettingPlainKey)(u),I={type:"object",default:_,description:D.localize(1,null,E),$ref:e.resourceLanguageSettingsSchemaId,defaultDefaultValue:_,source:y.isString(h)?void 0:h,defaultValueSource:h};l.push(...i(u)),this.configurationProperties[u]=I,this.defaultLanguageConfigurationOverridesNode.properties[u]=I}else{this.configurationDefaultsOverrides.set(u,{value:r[u],source:h});const f=this.configurationProperties[u];f&&(this.updatePropertyDefaultValue(u,f),this.updateSchema(u,f))}this.doRegisterOverrideIdentifiers(l)}registerOverrideIdentifiers(c){this.doRegisterOverrideIdentifiers(c),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(c){for(const d of c)this.overrideIdentifiers.add(d);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(c,d,s){c.forEach(l=>{this.validateAndRegisterProperties(l,d,l.extensionInfo,l.restrictedProperties,void 0,s),this.configurationContributors.push(l),this.registerJSONConfiguration(l)})}validateAndRegisterProperties(c,d=!0,s,l,r=3,h){var u;r=y.isUndefinedOrNull(c.scope)?r:c.scope;const f=c.properties;if(f)for(const _ in f){const E=f[_];if(d&&g(_,E)){delete f[_];continue}if(E.source=s,E.defaultDefaultValue=f[_].default,this.updatePropertyDefaultValue(_,E),e.OVERRIDE_PROPERTY_REGEX.test(_)?E.scope=void 0:(E.scope=y.isUndefinedOrNull(E.scope)?r:E.scope,E.restricted=y.isUndefinedOrNull(E.restricted)?!!l?.includes(_):E.restricted),f[_].hasOwnProperty("included")&&!f[_].included){this.excludedConfigurationProperties[_]=f[_],delete f[_];continue}else this.configurationProperties[_]=f[_],!((u=f[_].policy)===null||u===void 0)&&u.name&&this.policyConfigurations.set(f[_].policy.name,_);!f[_].deprecationMessage&&f[_].markdownDeprecationMessage&&(f[_].deprecationMessage=f[_].markdownDeprecationMessage),h.add(_)}const C=c.allOf;if(C)for(const _ of C)this.validateAndRegisterProperties(_,d,s,l,r,h)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(c){const d=s=>{const l=s.properties;if(l)for(const h in l)this.updateSchema(h,l[h]);const r=s.allOf;r?.forEach(d)};d(c)}updateSchema(c,d){switch(e.allSettings.properties[c]=d,d.scope){case 1:e.applicationSettings.properties[c]=d;break;case 2:e.machineSettings.properties[c]=d;break;case 6:e.machineOverridableSettings.properties[c]=d;break;case 3:e.windowSettings.properties[c]=d;break;case 4:e.resourceSettings.properties[c]=d;break;case 5:e.resourceSettings.properties[c]=d,this.resourceLanguageSettingsSchema.properties[c]=d;break}}updateOverridePropertyPatternKey(){for(const c of this.overrideIdentifiers.values()){const d=`[${c}]`,s={type:"object",description:D.localize(2,null),errorMessage:D.localize(3,null),$ref:e.resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(d,s),e.allSettings.properties[d]=s,e.applicationSettings.properties[d]=s,e.machineSettings.properties[d]=s,e.machineOverridableSettings.properties[d]=s,e.windowSettings.properties[d]=s,e.resourceSettings.properties[d]=s}}registerOverridePropertyPatternKey(){const c={type:"object",description:D.localize(4,null),errorMessage:D.localize(5,null),$ref:e.resourceLanguageSettingsSchemaId};e.allSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,e.applicationSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,e.machineSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,e.machineOverridableSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,e.windowSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,e.resourceSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=c,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(c,d){const s=this.configurationDefaultsOverrides.get(c);let l=s?.value,r=s?.source;y.isUndefined(l)&&(l=d.defaultDefaultValue,r=void 0),y.isUndefined(l)&&(l=t(d.type)),d.default=l,d.defaultValueSource=r}}const a="\\[([^\\]]+)\\]",n=new RegExp(a,"g");e.OVERRIDE_PROPERTY_PATTERN=`^(${a})+$`,e.OVERRIDE_PROPERTY_REGEX=new RegExp(e.OVERRIDE_PROPERTY_PATTERN);function i(m){const c=[];if(e.OVERRIDE_PROPERTY_REGEX.test(m)){let d=n.exec(m);for(;d?.length;){const s=d[1].trim();s&&c.push(s),d=n.exec(m)}}return(0,L.distinct)(c)}e.overrideIdentifiersFromKey=i;function t(m){switch(Array.isArray(m)?m[0]:m){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}e.getDefaultValue=t;const o=new b;w.Registry.add(e.Extensions.Configuration,o);function g(m,c){var d,s,l,r;return m.trim()?e.OVERRIDE_PROPERTY_REGEX.test(m)?D.localize(7,null,m):o.getConfigurationProperties()[m]!==void 0?D.localize(8,null,m):!((d=c.policy)===null||d===void 0)&&d.name&&o.getPolicyConfigurations().get((s=c.policy)===null||s===void 0?void 0:s.name)!==void 0?D.localize(9,null,m,(l=c.policy)===null||l===void 0?void 0:l.name,o.getPolicyConfigurations().get((r=c.policy)===null||r===void 0?void 0:r.name)):null:D.localize(6,null)}e.validateProperty=g}),define(ne[251],se([1,0,286,36,182,644,101,37]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isDiffEditorConfigurationKey=e.isEditorConfigurationKey=e.editorConfigurationBaseNode=void 0,e.editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:D.localize(0,null),scope:5});const w={...e.editorConfigurationBaseNode,properties:{"editor.tabSize":{type:"number",default:y.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:D.localize(1,null,"`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:D.localize(2,null)},"editor.insertSpaces":{type:"boolean",default:y.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:D.localize(3,null,"`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:y.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:D.localize(4,null,"`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:y.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:D.localize(5,null)},"editor.largeFileOptimizations":{type:"boolean",default:y.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:D.localize(6,null)},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[D.localize(7,null),D.localize(8,null),D.localize(9,null),D.localize(10,null)],description:D.localize(11,null)},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[D.localize(12,null),D.localize(13,null),D.localize(14,null)],default:"configuredByTheme",description:D.localize(15,null)},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:D.localize(16,null)},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:D.localize(17,null)},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:D.localize(18,null),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:D.localize(19,null)},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:D.localize(20,null),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:D.localize(21,null),items:{type:"array",items:[{type:"string",description:D.localize(22,null)},{type:"string",description:D.localize(23,null)}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:D.localize(24,null),items:{type:"array",items:[{type:"string",description:D.localize(25,null)},{type:"string",description:D.localize(26,null)}]}},"diffEditor.maxComputationTime":{type:"number",default:L.diffEditorDefaultOptions.maxComputationTime,description:D.localize(27,null)},"diffEditor.maxFileSize":{type:"number",default:L.diffEditorDefaultOptions.maxFileSize,description:D.localize(28,null)},"diffEditor.renderSideBySide":{type:"boolean",default:L.diffEditorDefaultOptions.renderSideBySide,description:D.localize(29,null)},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:L.diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,description:D.localize(30,null)},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:L.diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,description:D.localize(31,null)},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:L.diffEditorDefaultOptions.renderMarginRevertIcon,description:D.localize(32,null)},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:L.diffEditorDefaultOptions.ignoreTrimWhitespace,description:D.localize(33,null)},"diffEditor.renderIndicators":{type:"boolean",default:L.diffEditorDefaultOptions.renderIndicators,description:D.localize(34,null)},"diffEditor.codeLens":{type:"boolean",default:L.diffEditorDefaultOptions.diffCodeLens,description:D.localize(35,null)},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:L.diffEditorDefaultOptions.diffWordWrap,markdownEnumDescriptions:[D.localize(36,null),D.localize(37,null),D.localize(38,null,"`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:L.diffEditorDefaultOptions.diffAlgorithm,markdownEnumDescriptions:[D.localize(39,null),D.localize(40,null)],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:L.diffEditorDefaultOptions.hideUnchangedRegions.enabled,markdownDescription:D.localize(41,null)},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:L.diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,markdownDescription:D.localize(42,null),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:L.diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,markdownDescription:D.localize(43,null),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:L.diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,markdownDescription:D.localize(44,null),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:L.diffEditorDefaultOptions.experimental.showMoves,markdownDescription:D.localize(45,null)},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:L.diffEditorDefaultOptions.experimental.showEmptyDecorations,description:D.localize(46,null)}}};function v(o){return typeof o.type<"u"||typeof o.anyOf<"u"}for(const o of k.editorOptionsRegistry){const g=o.schema;if(typeof g<"u")if(v(g))w.properties[`editor.${o.name}`]=g;else for(const m in g)Object.hasOwnProperty.call(g,m)&&(w.properties[m]=g[m])}let b=null;function a(){return b===null&&(b=Object.create(null),Object.keys(w.properties).forEach(o=>{b[o]=!0})),b}function n(o){return a()[`editor.${o}`]||!1}e.isEditorConfigurationKey=n;function i(o){return a()[`diffEditor.${o}`]||!1}e.isDiffEditorConfigurationKey=i,p.Registry.as(S.Extensions.Configuration).registerConfiguration(w)}),define(ne[81],se([1,0,654,7,37,113,101]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PLAINTEXT_EXTENSION=e.PLAINTEXT_LANGUAGE_ID=e.ModesRegistry=e.EditorModesRegistry=e.Extensions=void 0,e.Extensions={ModesRegistry:"editor.modesRegistry"};class p{constructor(){this._onDidChangeLanguages=new k.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(v){return this._languages.push(v),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let b=0,a=this._languages.length;b{}};const s=new S.DisposableStore,l=s.add((0,L.renderMarkdown)(m,{...this._getRenderOptions(m,s),...c},d));return l.element.classList.add("rendered-markdown"),{element:l.element,dispose:()=>s.dispose()}}_getRenderOptions(m,c){return{codeBlockRenderer:async(d,s)=>{var l,r,h;let u;d?u=this._languageService.getLanguageIdByLanguageName(d):this._options.editor&&(u=(l=this._options.editor.getModel())===null||l===void 0?void 0:l.getLanguageId()),u||(u=v.PLAINTEXT_LANGUAGE_ID);const f=await(0,b.tokenizeToString)(this._languageService,s,u),C=document.createElement("span");if(C.innerHTML=(h=(r=n._ttpTokenizer)===null||r===void 0?void 0:r.createHTML(f))!==null&&h!==void 0?h:f,this._options.editor){const _=this._options.editor.getOption(50);(0,p.applyFontInfo)(C,_)}else this._options.codeBlockFontFamily&&(C.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(C.style.fontSize=this._options.codeBlockFontSize),C},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:d=>t(this._openerService,d,m.isTrusted),disposables:c}}}};e.MarkdownRenderer=i,i._ttpTokenizer=(0,k.createTrustedTypesPolicy)("tokenizeToString",{createHTML(g){return g}}),e.MarkdownRenderer=i=n=De([he(1,w.ILanguageService),he(2,a.IOpenerService)],i);async function t(g,m,c){try{return await g.open(m,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:o(c)})}catch(d){return(0,y.onUnexpectedError)(d),!1}}e.openLinkFromMarkdown=t;function o(g){return g===!0?!0:g&&Array.isArray(g.enabledCommands)?g.enabledCommands:!1}}),define(ne[799],se([1,0,2,7,6,34,26,36,233,77,57,8,108,58,642,17,71,44,456]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverWidget=void 0;const c=y.$;let d=class extends v.Widget{get _targetWindow(){return y.getWindow(this._target.targetElements[0])}get _targetDocumentElement(){return y.getWindow(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(h){this._isLocked!==h&&(this._isLocked=h,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(h,u,f,C,_,E){var I,T,A,R,M,N,P,F;super(),this._keybindingService=u,this._configurationService=f,this._openerService=C,this._instantiationService=_,this._accessibilityService=E,this._messageListeners=new L.DisposableStore,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new k.Emitter),this._onRequestLayout=this._register(new k.Emitter),this._linkHandler=h.linkHandler||(K=>(0,n.openLinkFromMarkdown)(this._openerService,K,(0,i.isMarkdownString)(h.content)?h.content.isTrusted:void 0)),this._target="targetElements"in h.target?h.target:new l(h.target),this._hoverPointer=!((I=h.appearance)===null||I===void 0)&&I.showPointer?c("div.workbench-hover-pointer"):void 0,this._hover=this._register(new w.HoverWidget),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),!((T=h.appearance)===null||T===void 0)&&T.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),!((A=h.appearance)===null||A===void 0)&&A.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),h.additionalClasses&&this._hover.containerDomNode.classList.add(...h.additionalClasses),!((R=h.position)===null||R===void 0)&&R.forcePosition&&(this._forcePosition=!0),h.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=(N=(M=h.position)===null||M===void 0?void 0:M.hoverPosition)!==null&&N!==void 0?N:3,this.onmousedown(this._hover.containerDomNode,K=>K.stopPropagation()),this.onkeydown(this._hover.containerDomNode,K=>{K.equals(9)&&this.dispose()}),this._register(y.addDisposableListener(this._targetWindow,"blur",()=>this.dispose()));const O=c("div.hover-row.markdown-hover"),B=c("div.hover-contents");if(typeof h.content=="string")B.textContent=h.content,B.style.whiteSpace="pre-wrap";else if(h.content instanceof HTMLElement)B.appendChild(h.content),B.classList.add("html-hover-contents");else{const K=h.content,j=this._instantiationService.createInstance(n.MarkdownRenderer,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||p.EDITOR_FONT_DEFAULTS.fontFamily}),{element:x}=j.render(K,{actionHandler:{callback:re=>this._linkHandler(re),disposables:this._messageListeners},asyncRenderCallback:()=>{B.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});B.appendChild(x)}if(O.appendChild(B),this._hover.contentsDomNode.appendChild(O),h.actions&&h.actions.length>0){const K=c("div.hover-row.status-bar"),j=c("div.actions");h.actions.forEach(x=>{const re=this._keybindingService.lookupKeybinding(x.commandId),ie=re?re.getLabel():null;w.HoverAction.render(j,{label:x.label,commandId:x.commandId,run:J=>{x.run(J),this.dispose()},iconClass:x.iconClass},ie)}),K.appendChild(j),this._hover.containerDomNode.appendChild(K)}this._hoverContainer=c("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let W;if(h.actions&&h.actions.length>0?W=!1:((P=h.persistence)===null||P===void 0?void 0:P.hideOnHover)===void 0?W=typeof h.content=="string"||(0,i.isMarkdownString)(h.content)&&!h.content.value.includes("](")&&!h.content.value.includes(""):W=h.persistence.hideOnHover,W&&(!((F=h.appearance)===null||F===void 0)&&F.showHoverHint)){const K=c("div.hover-row.status-bar"),j=c("div.info");j.textContent=(0,t.localize)(0,null,o.isMacintosh?"Option":"Alt"),K.appendChild(j),this._hover.containerDomNode.appendChild(K)}const V=[...this._target.targetElements];W||V.push(this._hoverContainer);const z=this._register(new s(V));if(this._register(z.onMouseOut(()=>{this._isLocked||this.dispose()})),W){const K=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new s(K)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=z}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const h=this._hover.containerDomNode,u=this.findLastFocusableChild(this._hover.containerDomNode);if(u){const f=y.prepend(this._hoverContainer,c("div")),C=y.append(this._hoverContainer,c("div"));f.tabIndex=0,C.tabIndex=0,this._register(y.addDisposableListener(C,"focus",_=>{h.focus(),_.preventDefault()})),this._register(y.addDisposableListener(f,"focus",_=>{u.focus(),_.preventDefault()}))}}findLastFocusableChild(h){if(h.hasChildNodes())for(let u=0;u=0)return _}const C=this.findLastFocusableChild(f);if(C)return C}}render(h){var u;h.appendChild(this._hoverContainer);const C=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&(0,w.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(u=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||u===void 0?void 0:u.getAriaLabel());C&&(0,m.status)(C),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const h=R=>{const M=y.getDomNodeZoomLevel(R),N=R.getBoundingClientRect();return{top:N.top*M,bottom:N.bottom*M,right:N.right*M,left:N.left*M}},u=this._target.targetElements.map(R=>h(R)),f=Math.min(...u.map(R=>R.top)),C=Math.max(...u.map(R=>R.right)),_=Math.max(...u.map(R=>R.bottom)),E=Math.min(...u.map(R=>R.left)),I=C-E,T=_-f,A={top:f,right:C,bottom:_,left:E,width:I,height:T,center:{x:E+I/2,y:f+T/2}};if(this.adjustHorizontalHoverPosition(A),this.adjustVerticalHoverPosition(A),this.adjustHoverMaxHeight(A),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:A.left+=3,A.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:A.left-=3,A.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:A.top+=3,A.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:A.top-=3,A.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}A.center.x=A.left+I/2,A.center.y=A.top+T/2}this.computeXCordinate(A),this.computeYCordinate(A),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(A)),this._hover.onContentsChanged()}computeXCordinate(h){const u=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=h.right:this._hoverPosition===0?this._x=h.left-u:(this._hoverPointer?this._x=h.center.x-this._hover.containerDomNode.clientWidth/2:this._x=h.left,this._x+u>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-u-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=h.bottom)}adjustHorizontalHoverPosition(h){if(this._target.x===void 0){if(this._forcePosition){const u=(this._hoverPointer?3:0)+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-h.right-u}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${h.left-u}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-h.right=this._hover.containerDomNode.clientWidth?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(h.left=this._hover.containerDomNode.clientWidth?this._hoverPosition=1:this._hoverPosition=2),h.left-this._hover.containerDomNode.clientWidth<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}}adjustVerticalHoverPosition(h){this._target.y!==void 0||this._forcePosition||(this._hoverPosition===3?h.top-this._hover.containerDomNode.clientHeight<0&&(this._hoverPosition=2):this._hoverPosition===2&&h.bottom+this._hover.containerDomNode.clientHeight>this._targetWindow.innerHeight&&(this._hoverPosition=3))}adjustHoverMaxHeight(h){let u=this._targetWindow.innerHeight/2;if(this._forcePosition){const f=(this._hoverPointer?3:0)+2;this._hoverPosition===3?u=Math.min(u,h.top-f):this._hoverPosition===2&&(u=Math.min(u,this._targetWindow.innerHeight-h.bottom-f))}if(this._hover.containerDomNode.style.maxHeight=`${u}px`,this._hover.contentsDomNode.clientHeighth.height?this._hoverPointer.style.top=`${h.center.y-(this._y-u)-3}px`:this._hoverPointer.style.top=`${Math.round(u/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const u=this._hover.containerDomNode.clientWidth;let f=Math.round(u/2)-3;const C=this._x+f;(Ch.right)&&(f=h.center.x-this._x-3),this._hoverPointer.style.left=`${f}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};e.HoverWidget=d,e.HoverWidget=d=De([he(1,D.IKeybindingService),he(2,S.IConfigurationService),he(3,b.IOpenerService),he(4,a.IInstantiationService),he(5,g.IAccessibilityService)],d);class s extends v.Widget{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(h){super(),this._elements=h,this._isMouseIn=!0,this._onMouseOut=this._register(new k.Emitter),this._elements.forEach(u=>this.onmouseover(u,()=>this._onTargetMouseOver(u))),this._elements.forEach(u=>this.onmouseleave(u,()=>this._onTargetMouseLeave(u)))}_onTargetMouseOver(h){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(h)}_onTargetMouseLeave(h){this._isMouseIn=!1,this._evaluateMouseState(h)}_evaluateMouseState(h){this._clearEvaluateMouseStateTimeout(h),this._mouseTimeout=y.getWindow(h).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(h){this._mouseTimeout&&(y.getWindow(h).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class l{constructor(h){this._element=h,this.targetElements=[this._element]}dispose(){}}}),define(ne[33],se([1,0,7,2,11,155,116,137,523,622,524,527,240,8,26,43,45,81,526]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedLanguageConfiguration=e.LanguageConfigurationRegistry=e.LanguageConfigurationChangeEvent=e.getScopedLineTokens=e.getIndentationAtPosition=e.LanguageConfigurationService=e.ILanguageConfigurationService=e.LanguageConfigurationServiceChangeEvent=void 0;class d{constructor(N){this.languageId=N}affects(N){return this.languageId?this.languageId===N:!0}}e.LanguageConfigurationServiceChangeEvent=d,e.ILanguageConfigurationService=(0,i.createDecorator)("languageConfigurationService");let s=class extends k.Disposable{constructor(N,P){super(),this.configurationService=N,this.languageService=P,this._registry=this._register(new A),this.onDidChangeEmitter=this._register(new L.Emitter),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const F=new Set(Object.values(r));this._register(this.configurationService.onDidChangeConfiguration(O=>{const B=O.change.keys.some(V=>F.has(V)),W=O.change.overrides.filter(([V,z])=>z.some(K=>F.has(K))).map(([V])=>V);if(B)this.configurations.clear(),this.onDidChangeEmitter.fire(new d(void 0));else for(const V of W)this.languageService.isRegisteredLanguageId(V)&&(this.configurations.delete(V),this.onDidChangeEmitter.fire(new d(V)))})),this._register(this._registry.onDidChange(O=>{this.configurations.delete(O.languageId),this.onDidChangeEmitter.fire(new d(O.languageId))}))}register(N,P,F){return this._registry.register(N,P,F)}getLanguageConfiguration(N){let P=this.configurations.get(N);return P||(P=l(N,this._registry,this.configurationService,this.languageService),this.configurations.set(N,P)),P}};e.LanguageConfigurationService=s,e.LanguageConfigurationService=s=De([he(0,t.IConfigurationService),he(1,o.ILanguageService)],s);function l(M,N,P,F){let O=N.getLanguageConfiguration(M);if(!O){if(!F.isRegisteredLanguageId(M))return new R(M,{});O=new R(M,{})}const B=h(O.languageId,P),W=E([O.underlyingConfig,B]);return new R(O.languageId,W)}const r={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function h(M,N){const P=N.getValue(r.brackets,{overrideIdentifier:M}),F=N.getValue(r.colorizedBracketPairs,{overrideIdentifier:M});return{brackets:u(P),colorizedBracketPairs:u(F)}}function u(M){if(Array.isArray(M))return M.map(N=>{if(!(!Array.isArray(N)||N.length!==2))return[N[0],N[1]]}).filter(N=>!!N)}function f(M,N,P){const F=M.getLineContent(N);let O=y.getLeadingWhitespace(F);return O.length>P-1&&(O=O.substring(0,P-1)),O}e.getIndentationAtPosition=f;function C(M,N,P){M.tokenization.forceTokenization(N);const F=M.tokenization.getLineTokens(N),O=typeof P>"u"?M.getLineMaxColumn(N)-1:P-1;return(0,p.createScopedLineTokens)(F,O)}e.getScopedLineTokens=C;class _{constructor(N){this.languageId=N,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(N,P){const F=new I(N,P,++this._order);return this._entries.push(F),this._resolved=null,(0,k.toDisposable)(()=>{for(let O=0;ON.configuration)))}}function E(M){let N={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const P of M)N={comments:P.comments||N.comments,brackets:P.brackets||N.brackets,wordPattern:P.wordPattern||N.wordPattern,indentationRules:P.indentationRules||N.indentationRules,onEnterRules:P.onEnterRules||N.onEnterRules,autoClosingPairs:P.autoClosingPairs||N.autoClosingPairs,surroundingPairs:P.surroundingPairs||N.surroundingPairs,autoCloseBefore:P.autoCloseBefore||N.autoCloseBefore,folding:P.folding||N.folding,colorizedBracketPairs:P.colorizedBracketPairs||N.colorizedBracketPairs,__electricCharacterSupport:P.__electricCharacterSupport||N.__electricCharacterSupport};return N}class I{constructor(N,P,F){this.configuration=N,this.priority=P,this.order=F}static cmp(N,P){return N.priority===P.priority?N.order-P.order:N.priority-P.priority}}class T{constructor(N){this.languageId=N}}e.LanguageConfigurationChangeEvent=T;class A extends k.Disposable{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new L.Emitter),this.onDidChange=this._onDidChange.event,this._register(this.register(m.PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(N,P,F=0){let O=this._entries.get(N);O||(O=new _(N),this._entries.set(N,O));const B=O.register(P,F);return this._onDidChange.fire(new T(N)),(0,k.toDisposable)(()=>{B.dispose(),this._onDidChange.fire(new T(N))})}getLanguageConfiguration(N){const P=this._entries.get(N);return P?.getResolvedConfiguration()||null}}e.LanguageConfigurationRegistry=A;class R{constructor(N,P){this.languageId=N,this.underlyingConfig=P,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new a.OnEnterSupport(this.underlyingConfig):null,this.comments=R._handleComments(this.underlyingConfig),this.characterPair=new w.CharacterPairSupport(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||D.DEFAULT_WORD_REGEXP,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new b.IndentRulesSupport(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new c.LanguageBracketsConfiguration(N,this.underlyingConfig)}getWordDefinition(){return(0,D.ensureValidWordDefinition)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new n.RichEditBrackets(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new v.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter}onEnter(N,P,F,O){return this._onEnterSupport?this._onEnterSupport.onEnter(N,P,F,O):null}getAutoClosingPairs(){return new S.AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(N){return this.characterPair.getAutoCloseBeforeSet(N)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(N){const P=N.comments;if(!P)return null;const F={};if(P.lineComment&&(F.lineCommentToken=P.lineComment),P.blockComment){const[O,B]=P.blockComment;F.blockCommentStartToken=O,F.blockCommentEndToken=B}return F}}e.ResolvedLanguageConfiguration=R,(0,g.registerSingleton)(e.ILanguageConfigurationService,s,1)}),define(ne[252],se([1,0,15,2,333,613,5,33,653,51,194,13,60,63,12,18,211,115,64,50,6]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorWorkerClient=e.EditorWorkerHost=e.EditorWorkerService=void 0;const l=60*1e3,r=5*60*1e3;function h(A,R){const M=A.getModel(R);return!(!M||M.isTooLargeForSyncing())}let u=class extends k.Disposable{constructor(R,M,N,P,F){super(),this._modelService=R,this._workerManager=this._register(new C(this._modelService,P)),this._logService=N,this._register(F.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(O,B)=>h(this._modelService,O.uri)?this._workerManager.withWorker().then(W=>W.computeLinks(O.uri)).then(W=>W&&{links:W}):Promise.resolve({links:[]})})),this._register(F.completionProvider.register("*",new f(this._workerManager,M,this._modelService,P)))}dispose(){super.dispose()}canComputeUnicodeHighlights(R){return h(this._modelService,R)}computedUnicodeHighlights(R,M,N){return this._workerManager.withWorker().then(P=>P.computedUnicodeHighlights(R,M,N))}async computeDiff(R,M,N,P){const F=await this._workerManager.withWorker().then(W=>W.computeDiff(R,M,N,P));if(!F)return null;return{identical:F.identical,quitEarly:F.quitEarly,changes:B(F.changes),moves:F.moves.map(W=>new g.MovedText(new m.LineRangeMapping(new c.LineRange(W[0],W[1]),new c.LineRange(W[2],W[3])),B(W[4])))};function B(W){return W.map(V=>{var z;return new m.DetailedLineRangeMapping(new c.LineRange(V[0],V[1]),new c.LineRange(V[2],V[3]),(z=V[4])===null||z===void 0?void 0:z.map(K=>new m.RangeMapping(new S.Range(K[0],K[1],K[2],K[3]),new S.Range(K[4],K[5],K[6],K[7]))))})}}computeMoreMinimalEdits(R,M,N=!1){if((0,a.isNonEmptyArray)(M)){if(!h(this._modelService,R))return Promise.resolve(M);const P=i.StopWatch.create(),F=this._workerManager.withWorker().then(O=>O.computeMoreMinimalEdits(R,M,N));return F.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",R.toString(!0),P.elapsed())),Promise.race([F,(0,L.timeout)(1e3).then(()=>M)])}else return Promise.resolve(void 0)}canNavigateValueSet(R){return h(this._modelService,R)}navigateValueSet(R,M,N){return this._workerManager.withWorker().then(P=>P.navigateValueSet(R,M,N))}canComputeWordRanges(R){return h(this._modelService,R)}computeWordRanges(R,M){return this._workerManager.withWorker().then(N=>N.computeWordRanges(R,M))}};e.EditorWorkerService=u,e.EditorWorkerService=u=De([he(0,v.IModelService),he(1,b.ITextResourceConfigurationService),he(2,n.ILogService),he(3,p.ILanguageConfigurationService),he(4,o.ILanguageFeaturesService)],u);class f{constructor(R,M,N,P){this.languageConfigurationService=P,this._debugDisplayName="wordbasedCompletions",this._workerManager=R,this._configurationService=M,this._modelService=N}async provideCompletionItems(R,M){const N=this._configurationService.getValue(R.uri,M,"editor");if(N.wordBasedSuggestions==="off")return;const P=[];if(N.wordBasedSuggestions==="currentDocument")h(this._modelService,R.uri)&&P.push(R.uri);else for(const K of this._modelService.getModels())h(this._modelService,K.uri)&&(K===R?P.unshift(K.uri):(N.wordBasedSuggestions==="allDocuments"||K.getLanguageId()===R.getLanguageId())&&P.push(K.uri));if(P.length===0)return;const F=this.languageConfigurationService.getLanguageConfiguration(R.getLanguageId()).getWordDefinition(),O=R.getWordAtPosition(M),B=O?new S.Range(M.lineNumber,O.startColumn,M.lineNumber,O.endColumn):S.Range.fromPositions(M),W=B.setEndPosition(M.lineNumber,M.column),z=await(await this._workerManager.withWorker()).textualSuggest(P,O?.word,F);if(z)return{duration:z.duration,suggestions:z.words.map(K=>({kind:18,label:K,insertText:K,range:{insert:W,replace:B}}))}}}class C extends k.Disposable{constructor(R,M){super(),this.languageConfigurationService=M,this._modelService=R,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new s.WindowIntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(r/2),d.$window),this._register(this._modelService.onModelRemoved(P=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>r&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new T(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class _ extends k.Disposable{constructor(R,M,N){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=R,this._modelService=M,!N){const P=new L.IntervalTimer;P.cancelAndSet(()=>this._checkStopModelSync(),Math.round(l/2)),this._register(P)}}dispose(){for(const R in this._syncedModels)(0,k.dispose)(this._syncedModels[R]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(R,M){for(const N of R){const P=N.toString();this._syncedModels[P]||this._beginModelSync(N,M),this._syncedModels[P]&&(this._syncedModelsLastUsedTime[P]=new Date().getTime())}}_checkStopModelSync(){const R=new Date().getTime(),M=[];for(const N in this._syncedModelsLastUsedTime)R-this._syncedModelsLastUsedTime[N]>l&&M.push(N);for(const N of M)this._stopModelSync(N)}_beginModelSync(R,M){const N=this._modelService.getModel(R);if(!N||!M&&N.isTooLargeForSyncing())return;const P=R.toString();this._proxy.acceptNewModel({url:N.uri.toString(),lines:N.getLinesContent(),EOL:N.getEOL(),versionId:N.getVersionId()});const F=new k.DisposableStore;F.add(N.onDidChangeContent(O=>{this._proxy.acceptModelChanged(P.toString(),O)})),F.add(N.onWillDispose(()=>{this._stopModelSync(P)})),F.add((0,k.toDisposable)(()=>{this._proxy.acceptRemovedModel(P)})),this._syncedModels[P]=F}_stopModelSync(R){const M=this._syncedModels[R];delete this._syncedModels[R],delete this._syncedModelsLastUsedTime[R],(0,k.dispose)(M)}}class E{constructor(R){this._instance=R,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class I{constructor(R){this._workerClient=R}fhr(R,M){return this._workerClient.fhr(R,M)}}e.EditorWorkerHost=I;class T extends k.Disposable{constructor(R,M,N,P){super(),this.languageConfigurationService=P,this._disposed=!1,this._modelService=R,this._keepIdleModels=M,this._workerFactory=new D.DefaultWorkerFactory(N),this._worker=null,this._modelManager=null}fhr(R,M){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new y.SimpleWorkerClient(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new I(this)))}catch(R){(0,y.logOnceWebWorkerWarning)(R),this._worker=new E(new w.EditorSimpleWorker(new I(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,R=>((0,y.logOnceWebWorkerWarning)(R),this._worker=new E(new w.EditorSimpleWorker(new I(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(R){return this._modelManager||(this._modelManager=this._register(new _(R,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(R,M=!1){return this._disposed?Promise.reject((0,t.canceled)()):this._getProxy().then(N=>(this._getOrCreateModelManager(N).ensureSyncedResources(R,M),N))}computedUnicodeHighlights(R,M,N){return this._withSyncedResources([R]).then(P=>P.computeUnicodeHighlights(R.toString(),M,N))}computeDiff(R,M,N,P){return this._withSyncedResources([R,M],!0).then(F=>F.computeDiff(R.toString(),M.toString(),N,P))}computeMoreMinimalEdits(R,M,N){return this._withSyncedResources([R]).then(P=>P.computeMoreMinimalEdits(R.toString(),M,N))}computeLinks(R){return this._withSyncedResources([R]).then(M=>M.computeLinks(R.toString()))}computeDefaultDocumentColors(R){return this._withSyncedResources([R]).then(M=>M.computeDefaultDocumentColors(R.toString()))}async textualSuggest(R,M,N){const P=await this._withSyncedResources(R),F=N.source,O=N.flags;return P.textualSuggest(R.map(B=>B.toString()),M,F,O)}computeWordRanges(R,M){return this._withSyncedResources([R]).then(N=>{const P=this._modelService.getModel(R);if(!P)return Promise.resolve(null);const F=this.languageConfigurationService.getLanguageConfiguration(P.getLanguageId()).getWordDefinition(),O=F.source,B=F.flags;return N.computeWordRanges(R.toString(),M,O,B)})}navigateValueSet(R,M,N){return this._withSyncedResources([R]).then(P=>{const F=this._modelService.getModel(R);if(!F)return null;const O=this.languageConfigurationService.getLanguageConfiguration(F.getLanguageId()).getWordDefinition(),B=O.source,W=O.flags;return P.navigateValueSet(R.toString(),M,N,B,W)})}dispose(){super.dispose(),this._disposed=!0}}e.EditorWorkerClient=T}),define(ne[800],se([1,0,54,252]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createWebWorker=void 0;function y(S,p,w){return new D(S,p,w)}e.createWebWorker=y;class D extends k.EditorWorkerClient{constructor(p,w,v){super(p,v.keepIdleModels||!1,v.label,w),this._foreignModuleId=v.moduleId,this._foreignModuleCreateData=v.createData||null,this._foreignModuleHost=v.host||null,this._foreignProxy=null}fhr(p,w){if(!this._foreignModuleHost||typeof this._foreignModuleHost[p]!="function")return Promise.reject(new Error("Missing method "+p+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[p].apply(this._foreignModuleHost,w))}catch(v){return Promise.reject(v)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(p=>{const w=this._foreignModuleHost?(0,L.getAllMethodNames)(this._foreignModuleHost):[];return p.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,w).then(v=>{this._foreignModuleCreateData=null;const b=(i,t)=>p.fmr(i,t),a=(i,t)=>function(){const o=Array.prototype.slice.call(arguments,0);return t(i,o)},n={};for(const i of v)n[i]=a(i,b);return n})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(p){return this._withSyncedResources(p).then(w=>this.getProxy())}}}),define(ne[253],se([1,0,11,116,137,33]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getIndentMetadata=e.getIndentActionForType=e.getIndentForEnter=e.getGoodIndentForLine=e.getInheritIndentForLine=void 0;function S(n,i,t){const o=n.tokenization.getLanguageIdAtPosition(i,0);if(i>1){let g,m=-1;for(g=i-1;g>=1;g--){if(n.tokenization.getLanguageIdAtPosition(g,0)!==o)return m;const c=n.getLineContent(g);if(t.shouldIgnore(c)||/^\s+$/.test(c)||c===""){m=g;continue}return g}}return-1}function p(n,i,t,o=!0,g){if(n<4)return null;const m=g.getLanguageConfiguration(i.tokenization.getLanguageId()).indentRulesSupport;if(!m)return null;if(t<=1)return{indentation:"",action:null};for(let s=t-1;s>0&&i.getLineContent(s)==="";s--)if(s===1)return{indentation:"",action:null};const c=S(i,t,m);if(c<0)return null;if(c<1)return{indentation:"",action:null};const d=i.getLineContent(c);if(m.shouldIncrease(d)||m.shouldIndentNextLine(d))return{indentation:L.getLeadingWhitespace(d),action:k.IndentAction.Indent,line:c};if(m.shouldDecrease(d))return{indentation:L.getLeadingWhitespace(d),action:null,line:c};{if(c===1)return{indentation:L.getLeadingWhitespace(i.getLineContent(c)),action:null,line:c};const s=c-1,l=m.getIndentMetadata(i.getLineContent(s));if(!(l&3)&&l&4){let r=0;for(let h=s-1;h>0;h--)if(!m.shouldIndentNextLine(i.getLineContent(h))){r=h;break}return{indentation:L.getLeadingWhitespace(i.getLineContent(r+1)),action:null,line:r+1}}if(o)return{indentation:L.getLeadingWhitespace(i.getLineContent(c)),action:null,line:c};for(let r=c;r>0;r--){const h=i.getLineContent(r);if(m.shouldIncrease(h))return{indentation:L.getLeadingWhitespace(h),action:k.IndentAction.Indent,line:r};if(m.shouldIndentNextLine(h)){let u=0;for(let f=r-1;f>0;f--)if(!m.shouldIndentNextLine(i.getLineContent(r))){u=f;break}return{indentation:L.getLeadingWhitespace(i.getLineContent(u+1)),action:null,line:u+1}}else if(m.shouldDecrease(h))return{indentation:L.getLeadingWhitespace(h),action:null,line:r}}return{indentation:L.getLeadingWhitespace(i.getLineContent(1)),action:null,line:1}}}e.getInheritIndentForLine=p;function w(n,i,t,o,g,m){if(n<4)return null;const c=m.getLanguageConfiguration(t);if(!c)return null;const d=m.getLanguageConfiguration(t).indentRulesSupport;if(!d)return null;const s=p(n,i,o,void 0,m),l=i.getLineContent(o);if(s){const r=s.line;if(r!==void 0){let h=!0;for(let u=r;u0&&m.getLanguageId(0)!==c.languageId?(s=!0,l=d.substr(0,t.startColumn-1-c.firstCharOffset)):l=m.getLineContent().substring(0,t.startColumn-1);let r;t.isEmpty()?r=d.substr(t.startColumn-1-c.firstCharOffset):r=(0,D.getScopedLineTokens)(i,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-c.firstCharOffset);const h=g.getLanguageConfiguration(c.languageId).indentRulesSupport;if(!h)return null;const u=l,f=L.getLeadingWhitespace(l),C={tokenization:{getLineTokens:T=>i.tokenization.getLineTokens(T),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(T,A)=>i.getLanguageIdAtPosition(T,A)},getLineContent:T=>T===t.startLineNumber?u:i.getLineContent(T)},_=L.getLeadingWhitespace(m.getLineContent()),E=p(n,C,t.startLineNumber+1,void 0,g);if(!E){const T=s?_:f;return{beforeEnter:T,afterEnter:T}}let I=s?_:E.indentation;return E.action===k.IndentAction.Indent&&(I=o.shiftIndent(I)),h.shouldDecrease(r)&&(I=o.unshiftIndent(I)),{beforeEnter:s?_:f,afterEnter:I}}e.getIndentForEnter=v;function b(n,i,t,o,g,m){if(n<4)return null;const c=(0,D.getScopedLineTokens)(i,t.startLineNumber,t.startColumn);if(c.firstCharOffset)return null;const d=m.getLanguageConfiguration(c.languageId).indentRulesSupport;if(!d)return null;const s=c.getLineContent(),l=s.substr(0,t.startColumn-1-c.firstCharOffset);let r;if(t.isEmpty()?r=s.substr(t.startColumn-1-c.firstCharOffset):r=(0,D.getScopedLineTokens)(i,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-c.firstCharOffset),!d.shouldDecrease(l+r)&&d.shouldDecrease(l+o+r)){const h=p(n,i,t.startLineNumber,!1,m);if(!h)return null;let u=h.indentation;return h.action!==k.IndentAction.Indent&&(u=g.unshiftIndent(u)),u}return null}e.getIndentActionForType=b;function a(n,i,t){const o=t.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;return!o||i<1||i>n.getLineCount()?null:o.getIndentMetadata(n.getLineContent(i))}e.getIndentMetadata=a}),define(ne[254],se([1,0,116,33]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEnterAction=void 0;function y(D,S,p,w){const v=(0,k.getScopedLineTokens)(S,p.startLineNumber,p.startColumn),b=w.getLanguageConfiguration(v.languageId);if(!b)return null;const a=v.getLineContent(),n=a.substr(0,p.startColumn-1-v.firstCharOffset);let i;p.isEmpty()?i=a.substr(p.startColumn-1-v.firstCharOffset):i=(0,k.getScopedLineTokens)(S,p.endLineNumber,p.endColumn).getLineContent().substr(p.endColumn-1-v.firstCharOffset);let t="";if(p.startLineNumber>1&&v.firstCharOffset===0){const s=(0,k.getScopedLineTokens)(S,p.startLineNumber-1);s.languageId===v.languageId&&(t=s.getLineContent())}const o=b.onEnter(D,t,n,i);if(!o)return null;const g=o.indentAction;let m=o.appendText;const c=o.removeText||0;m?g===L.IndentAction.Indent&&(m=" "+m):g===L.IndentAction.Indent||g===L.IndentAction.IndentOutdent?m=" ":m="";let d=(0,k.getIndentationAtPosition)(S,p.startLineNumber,p.startColumn);return c&&(d=d.substring(0,d.length-c)),{indentAction:g,appendText:m,removeText:c,indentation:d}}e.getEnterAction=y}),define(ne[255],se([1,0,11,85,5,23,254,33]),function(ee,e,L,k,y,D,S,p){"use strict";var w;Object.defineProperty(e,"__esModule",{value:!0}),e.ShiftCommand=void 0;const v=Object.create(null);function b(n,i){if(i<=0)return"";v[n]||(v[n]=["",n]);const t=v[n];for(let o=t.length;o<=i;o++)t[o]=t[o-1]+n;return t[i]}let a=w=class{static unshiftIndent(i,t,o,g,m){const c=k.CursorColumns.visibleColumnFromColumn(i,t,o);if(m){const d=b(" ",g),l=k.CursorColumns.prevIndentTabStop(c,g)/g;return b(d,l)}else{const d=" ",l=k.CursorColumns.prevRenderTabStop(c,o)/o;return b(d,l)}}static shiftIndent(i,t,o,g,m){const c=k.CursorColumns.visibleColumnFromColumn(i,t,o);if(m){const d=b(" ",g),l=k.CursorColumns.nextIndentTabStop(c,g)/g;return b(d,l)}else{const d=" ",l=k.CursorColumns.nextRenderTabStop(c,o)/o;return b(d,l)}}constructor(i,t,o){this._languageConfigurationService=o,this._opts=t,this._selection=i,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(i,t,o){this._useLastEditRangeForCursorEndPosition?i.addTrackedEditOperation(t,o):i.addEditOperation(t,o)}getEditOperations(i,t){const o=this._selection.startLineNumber;let g=this._selection.endLineNumber;this._selection.endColumn===1&&o!==g&&(g=g-1);const{tabSize:m,indentSize:c,insertSpaces:d}=this._opts,s=o===g;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(i.getLineContent(o))&&(this._useLastEditRangeForCursorEndPosition=!0);let l=0,r=0;for(let h=o;h<=g;h++,l=r){r=0;const u=i.getLineContent(h);let f=L.firstNonWhitespaceIndex(u);if(this._opts.isUnshift&&(u.length===0||f===0)||!s&&!this._opts.isUnshift&&u.length===0)continue;if(f===-1&&(f=u.length),h>1&&k.CursorColumns.visibleColumnFromColumn(u,f+1,m)%c!==0&&i.tokenization.isCheapToTokenize(h-1)){const E=(0,S.getEnterAction)(this._opts.autoIndent,i,new y.Range(h-1,i.getLineMaxColumn(h-1),h-1,i.getLineMaxColumn(h-1)),this._languageConfigurationService);if(E){if(r=l,E.appendText)for(let I=0,T=E.appendText.length;I1){let T;for(T=C-1;T>=1;T--){const M=f.getLineContent(T);if(k.lastNonWhitespaceIndex(M)>=0)break}if(T<1)return null;const A=f.getLineMaxColumn(T),R=(0,o.getEnterAction)(u.autoIndent,f,new v.Range(T,A,T,A),u.languageConfigurationService);R&&(E=R.indentation+R.appendText)}return _&&(_===a.IndentAction.Indent&&(E=g.shiftIndent(u,E)),_===a.IndentAction.Outdent&&(E=g.unshiftIndent(u,E)),E=u.normalizeIndentation(E)),E||null}static _replaceJumpToNextIndent(u,f,C,_){let E="";const I=C.getStartPosition();if(u.insertSpaces){const T=u.visibleColumnFromColumn(f,I),A=u.indentSize,R=A-T%A;for(let M=0;Mthis._compositionType(C,M,E,I,T,A));return new p.EditOperationResult(4,R,{shouldPushStackElementBefore:s(u,4),shouldPushStackElementAfter:!1})}static _compositionType(u,f,C,_,E,I){if(!f.isEmpty())return null;const T=f.getPosition(),A=Math.max(1,T.column-_),R=Math.min(u.getLineMaxColumn(T.lineNumber),T.column+E),M=new v.Range(T.lineNumber,A,T.lineNumber,R);return u.getValueInRange(M)===C&&I===0?null:new y.ReplaceCommandWithOffsetCursorState(M,C,0,I)}static _typeCommand(u,f,C){return C?new y.ReplaceCommandWithoutChangingPosition(u,f,!0):new y.ReplaceCommand(u,f,!0)}static _enter(u,f,C,_){if(u.autoIndent===0)return g._typeCommand(_,` +`,C);if(!f.tokenization.isCheapToTokenize(_.getStartPosition().lineNumber)||u.autoIndent===1){const A=f.getLineContent(_.startLineNumber),R=k.getLeadingWhitespace(A).substring(0,_.startColumn-1);return g._typeCommand(_,` +`+u.normalizeIndentation(R),C)}const E=(0,o.getEnterAction)(u.autoIndent,f,_,u.languageConfigurationService);if(E){if(E.indentAction===a.IndentAction.None)return g._typeCommand(_,` +`+u.normalizeIndentation(E.indentation+E.appendText),C);if(E.indentAction===a.IndentAction.Indent)return g._typeCommand(_,` +`+u.normalizeIndentation(E.indentation+E.appendText),C);if(E.indentAction===a.IndentAction.IndentOutdent){const A=u.normalizeIndentation(E.indentation),R=u.normalizeIndentation(E.indentation+E.appendText),M=` +`+R+` +`+A;return C?new y.ReplaceCommandWithoutChangingPosition(_,M,!0):new y.ReplaceCommandWithOffsetCursorState(_,M,-1,R.length-A.length,!0)}else if(E.indentAction===a.IndentAction.Outdent){const A=g.unshiftIndent(u,E.indentation);return g._typeCommand(_,` +`+u.normalizeIndentation(A+E.appendText),C)}}const I=f.getLineContent(_.startLineNumber),T=k.getLeadingWhitespace(I).substring(0,_.startColumn-1);if(u.autoIndent>=4){const A=(0,t.getIndentForEnter)(u.autoIndent,f,_,{unshiftIndent:R=>g.unshiftIndent(u,R),shiftIndent:R=>g.shiftIndent(u,R),normalizeIndentation:R=>u.normalizeIndentation(R)},u.languageConfigurationService);if(A){let R=u.visibleColumnFromColumn(f,_.getEndPosition());const M=_.endColumn,N=f.getLineContent(_.endLineNumber),P=k.firstNonWhitespaceIndex(N);if(P>=0?_=_.setEndPosition(_.endLineNumber,Math.max(_.endColumn,P+1)):_=_.setEndPosition(_.endLineNumber,f.getLineMaxColumn(_.endLineNumber)),C)return new y.ReplaceCommandWithoutChangingPosition(_,` +`+u.normalizeIndentation(A.afterEnter),!0);{let F=0;return M<=P+1&&(u.insertSpaces||(R=Math.ceil(R/u.indentSize)),F=Math.min(R+1-u.normalizeIndentation(A.afterEnter).length-1,0)),new y.ReplaceCommandWithOffsetCursorState(_,` +`+u.normalizeIndentation(A.afterEnter),0,F,!0)}}}return g._typeCommand(_,` +`+u.normalizeIndentation(T),C)}static _isAutoIndentType(u,f,C){if(u.autoIndent<4)return!1;for(let _=0,E=C.length;_g.shiftIndent(u,T),unshiftIndent:T=>g.unshiftIndent(u,T)},u.languageConfigurationService);if(I===null)return null;if(I!==u.normalizeIndentation(E)){const T=f.getLineFirstNonWhitespaceColumn(C.startLineNumber);return T===0?g._typeCommand(new v.Range(C.startLineNumber,1,C.endLineNumber,C.endColumn),u.normalizeIndentation(I)+_,!1):g._typeCommand(new v.Range(C.startLineNumber,1,C.endLineNumber,C.endColumn),u.normalizeIndentation(I)+f.getLineContent(C.startLineNumber).substring(T-1,C.startColumn-1)+_,!1)}return null}static _isAutoClosingOvertype(u,f,C,_,E){if(u.autoClosingOvertype==="never"||!u.autoClosingPairs.autoClosingPairsCloseSingleChar.has(E))return!1;for(let I=0,T=C.length;I2?M.charCodeAt(R.column-2):0)===92&&P)return!1;if(u.autoClosingOvertype==="auto"){let O=!1;for(let B=0,W=_.length;Bf.startsWith(A.open)),T=E.some(A=>f.startsWith(A.close));return!I&&T}static _findAutoClosingPairOpen(u,f,C,_){const E=u.autoClosingPairs.autoClosingPairsOpenByEnd.get(_);if(!E)return null;let I=null;for(const T of E)if(I===null||T.open.length>I.open.length){let A=!0;for(const R of C)if(f.getValueInRange(new v.Range(R.lineNumber,R.column-T.open.length+1,R.lineNumber,R.column))+_!==T.open){A=!1;break}A&&(I=T)}return I}static _findContainedAutoClosingPair(u,f){if(f.open.length<=1)return null;const C=f.close.charAt(f.close.length-1),_=u.autoClosingPairs.autoClosingPairsCloseByEnd.get(C)||[];let E=null;for(const I of _)I.open!==f.open&&f.open.includes(I.open)&&f.close.endsWith(I.close)&&(!E||I.open.length>E.open.length)&&(E=I);return E}static _getAutoClosingPairClose(u,f,C,_,E){for(const O of C)if(!O.isEmpty())return null;const I=C.map(O=>{const B=O.getPosition();return E?{lineNumber:B.lineNumber,beforeColumn:B.column-_.length,afterColumn:B.column}:{lineNumber:B.lineNumber,beforeColumn:B.column,afterColumn:B.column}}),T=this._findAutoClosingPairOpen(u,f,I.map(O=>new b.Position(O.lineNumber,O.beforeColumn)),_);if(!T)return null;let A,R;if((0,p.isQuote)(_)?(A=u.autoClosingQuotes,R=u.shouldAutoCloseBefore.quote):(u.blockCommentStartToken?T.open.includes(u.blockCommentStartToken):!1)?(A=u.autoClosingComments,R=u.shouldAutoCloseBefore.comment):(A=u.autoClosingBrackets,R=u.shouldAutoCloseBefore.bracket),A==="never")return null;const N=this._findContainedAutoClosingPair(u,T),P=N?N.close:"";let F=!0;for(const O of I){const{lineNumber:B,beforeColumn:W,afterColumn:V}=O,z=f.getLineContent(B),K=z.substring(0,W-1),j=z.substring(V-1);if(j.startsWith(P)||(F=!1),j.length>0){const J=j.charAt(0);if(!g._isBeforeClosingBrace(u,j)&&!R(J))return null}if(T.open.length===1&&(_==="'"||_==='"')&&A!=="always"){const J=(0,w.getMapForWordSeparators)(u.wordSeparators);if(K.length>0){const X=K.charCodeAt(K.length-1);if(J.get(X)===0)return null}}if(!f.tokenization.isCheapToTokenize(B))return null;f.tokenization.forceTokenization(B);const x=f.tokenization.getLineTokens(B),re=(0,i.createScopedLineTokens)(x,W-1);if(!T.shouldAutoClose(re,W-re.firstCharOffset))return null;const ie=T.findNeutralCharacter();if(ie){const J=f.tokenization.getTokenTypeIfInsertingCharacter(B,W,ie);if(!T.isOK(J))return null}}return F?T.close.substring(0,T.close.length-P.length):T.close}static _runAutoClosingOpenCharType(u,f,C,_,E,I,T){const A=[];for(let R=0,M=_.length;Rnew y.ReplaceCommand(new v.Range(P.positionLineNumber,P.positionColumn,P.positionLineNumber,P.positionColumn+1),"",!1));return new p.EditOperationResult(4,N,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const M=this._getAutoClosingPairClose(f,C,E,A,!0);return M!==null?this._runAutoClosingOpenCharType(u,f,C,E,A,!0,M):null}static typeWithInterceptors(u,f,C,_,E,I,T){if(!u&&T===` +`){const M=[];for(let N=0,P=E.length;N0){const r=this._cursors.getSelections();for(let h=0;h_&&(f=f.slice(0,_),C=!0);const E=g.from(this._model,this);return this._cursors.setStates(f),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(r,h,u,E,C)}setCursorColumnSelectData(r){this._columnSelectData=r}revealPrimary(r,h,u,f,C,_){const E=this._cursors.getViewPositions();let I=null,T=null;E.length>1?T=this._cursors.getViewSelections():I=v.Range.fromPositions(E[0],E[0]),r.emitViewEvent(new n.ViewRevealRangeRequestEvent(h,u,I,T,f,C,_))}saveState(){const r=[],h=this._cursors.getSelections();for(let u=0,f=h.length;u0){const C=D.CursorState.fromModelSelections(u.resultingSelection);this.setStates(r,"modelChange",u.isUndoing?5:u.isRedoing?6:2,C)&&this.revealPrimary(r,"modelChange",!1,0,!0,0)}else{const C=this._cursors.readSelectionFromMarkers();this.setStates(r,"modelChange",2,D.CursorState.fromModelSelections(C))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const r=this._cursors.getPrimaryCursor(),h=r.viewState.selectionStart.getStartPosition(),u=r.viewState.position;return{isReal:!1,fromViewLineNumber:h.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,h),toViewLineNumber:u.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,u)}}getSelections(){return this._cursors.getSelections()}setSelections(r,h,u,f){this.setStates(r,h,f,D.CursorState.fromModelSelections(u))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(r){this._prevEditOperationType=r}_pushAutoClosedAction(r,h){const u=[],f=[];for(let E=0,I=r.length;E0&&this._pushAutoClosedAction(u,f),this._prevEditOperationType=r.type}r.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(r){(!r||r.length===0)&&(r=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(r),this._cursors.normalize()}_emitStateChangedIfNecessary(r,h,u,f,C){const _=g.from(this._model,this);if(_.equals(f))return!1;const E=this._cursors.getSelections(),I=this._cursors.getViewSelections();if(r.emitViewEvent(new n.ViewCursorStateChangedEvent(I,E,u)),!f||f.cursorState.length!==_.cursorState.length||_.cursorState.some((T,A)=>!T.modelState.equals(f.cursorState[A].modelState))){const T=f?f.cursorState.map(R=>R.modelState.selection):null,A=f?f.modelVersionId:0;r.emitOutgoingEvent(new t.CursorStateChangedEvent(T,E,A,_.modelVersionId,h||"keyboard",u,C))}return!0}_findAutoClosingPairs(r){if(!r.length)return null;const h=[];for(let u=0,f=r.length;u=0)return null;const _=C.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!_)return null;const E=_[1],I=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(E);if(!I||I.length!==1)return null;const T=I[0].open,A=C.text.length-_[2].length-1,R=C.text.lastIndexOf(T,A-1);if(R===-1)return null;h.push([R,A])}return h}executeEdits(r,h,u,f){let C=null;h==="snippet"&&(C=this._findAutoClosingPairs(u)),C&&(u[0]._isTracked=!0);const _=[],E=[],I=this._model.pushEditOperations(this.getSelections(),u,T=>{if(C)for(let R=0,M=C.length;R0&&this._pushAutoClosedAction(_,E)}_executeEdit(r,h,u,f=0){if(this.context.cursorConfig.readOnly)return;const C=g.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),r()}catch(_){(0,L.onUnexpectedError)(_)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(h,u,f,C,!1)&&this.revealPrimary(h,u,!1,0,!0,0)}getAutoClosedCharacters(){return m.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(r){this._compositionState=new s(this._model,this.getSelections())}endComposition(r,h){const u=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{h==="keyboard"&&this._executeEditOperation(w.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,u,this.getSelections(),this.getAutoClosedCharacters()))},r,h)}type(r,h,u){this._executeEdit(()=>{if(u==="keyboard"){const f=h.length;let C=0;for(;C{const T=I.getPosition();return new b.Selection(T.lineNumber,T.column+C,T.lineNumber,T.column+C)});this.setSelections(r,_,E,0)}return}this._executeEdit(()=>{this._executeEditOperation(w.TypeOperations.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),h,u,f,C))},r,_)}paste(r,h,u,f,C){this._executeEdit(()=>{this._executeEditOperation(w.TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),h,u,f||[]))},r,C,4)}cut(r,h){this._executeEdit(()=>{this._executeEditOperation(p.DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()))},r,h)}executeCommand(r,h,u){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new D.EditOperationResult(0,[h],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},r,u)}executeCommands(r,h,u){this._executeEdit(()=>{this._executeEditOperation(new D.EditOperationResult(0,h,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},r,u)}}e.CursorsController=o;class g{static from(r,h){return new g(r.getVersionId(),h.getCursorStates())}constructor(r,h){this.modelVersionId=r,this.cursorState=h}equals(r){if(!r||this.modelVersionId!==r.modelVersionId||this.cursorState.length!==r.cursorState.length)return!1;for(let h=0,u=this.cursorState.length;h=h.length||!h[u].strictContainsRange(r[u]))return!1;return!0}}class c{static executeCommands(r,h,u){const f={model:r,selectionsBefore:h,trackedRanges:[],trackedRangesDirection:[]},C=this._innerExecuteCommands(f,u);for(let _=0,E=f.trackedRanges.length;_0&&(_[0]._isTracked=!0);let E=r.model.pushEditOperations(r.selectionsBefore,_,T=>{const A=[];for(let N=0;NN.identifier.minor-P.identifier.minor,M=[];for(let N=0;N0?(A[N].sort(R),M[N]=h[N].computeCursorState(r.model,{getInverseEditOperations:()=>A[N],getTrackedSelection:P=>{const F=parseInt(P,10),O=r.model._getTrackedRange(r.trackedRanges[F]);return r.trackedRangesDirection[F]===0?new b.Selection(O.startLineNumber,O.startColumn,O.endLineNumber,O.endColumn):new b.Selection(O.endLineNumber,O.endColumn,O.startLineNumber,O.startColumn)}})):M[N]=r.selectionsBefore[N];return M});E||(E=r.selectionsBefore);const I=[];for(const T in C)C.hasOwnProperty(T)&&I.push(parseInt(T,10));I.sort((T,A)=>A-T);for(const T of I)E.splice(T,1);return E}static _arrayIsEmpty(r){for(let h=0,u=r.length;h{v.Range.isEmpty(R)&&M===""||f.push({identifier:{major:h,minor:C++},range:R,text:M,forceMoveMarkers:N,isAutoWhitespaceEdit:u.insertsAutoWhitespace})};let E=!1;const A={addEditOperation:_,addTrackedEditOperation:(R,M,N)=>{E=!0,_(R,M,N)},trackSelection:(R,M)=>{const N=b.Selection.liftSelection(R);let P;if(N.isEmpty())if(typeof M=="boolean")M?P=2:P=3;else{const B=r.model.getLineMaxColumn(N.startLineNumber);N.startColumn===B?P=2:P=3}else P=1;const F=r.trackedRanges.length,O=r.model._setTrackedRange(null,N,P);return r.trackedRanges[F]=O,r.trackedRangesDirection[F]=N.getDirection(),F.toString()}};try{u.getEditOperations(r.model,A)}catch(R){return(0,L.onUnexpectedError)(R),{operations:[],hadTrackedEditOperation:!1}}return{operations:f,hadTrackedEditOperation:E}}static _getLoserCursorMap(r){r=r.slice(0),r.sort((u,f)=>-v.Range.compareRangesUsingEnds(u.range,f.range));const h={};for(let u=1;uC.identifier.major?_=f.identifier.major:_=C.identifier.major,h[_.toString()]=!0;for(let E=0;E0&&u--}}return h}}class d{constructor(r,h,u){this.text=r,this.startSelection=h,this.endSelection=u}}class s{static _capture(r,h){const u=[];for(const f of h){if(f.startLineNumber!==f.endLineNumber)return null;u.push(new d(r.getLineContent(f.startLineNumber),f.startColumn-1,f.endColumn-1))}return u}constructor(r,h){this._original=s._capture(r,h)}deduceOutcome(r,h){if(!this._original)return null;const u=s._capture(r,h);if(!u||this._original.length!==u.length)return null;const f=[];for(let C=0,_=this._original.length;C<_;C++)f.push(s._deduceOutcome(this._original[C],u[C]));return f}static _deduceOutcome(r,h){const u=Math.min(r.startSelection,h.startSelection,k.commonPrefixLength(r.text,h.text)),f=Math.min(r.text.length-r.endSelection,h.text.length-h.endSelection,k.commonSuffixLength(r.text,h.text)),C=r.text.substring(u,r.text.length-f),_=h.text.substring(u,h.text.length-f);return new w.CompositionOutcome(C,r.startSelection-u,r.endSelection-u,_,h.startSelection-u,h.endSelection-u)}}}),define(ne[802],se([1,0,47,48,81,347]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getIconClasses=void 0;const S=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function p(b,a,n,i,t){if(t)return[`codicon-${t.id}`,"predefined-file-icon"];const o=i===D.FileKind.ROOT_FOLDER?["rootfolder-icon"]:i===D.FileKind.FOLDER?["folder-icon"]:["file-icon"];if(n){let g;if(n.scheme===L.Schemas.data)g=k.DataUri.parseMetaData(n).get(k.DataUri.META_DATA_LABEL);else{const m=n.path.match(S);m?(g=v(m[2].toLowerCase()),m[1]&&o.push(`${v(m[1].toLowerCase())}-name-dir-icon`)):g=v(n.authority.toLowerCase())}if(i===D.FileKind.ROOT_FOLDER)o.push(`${g}-root-name-folder-icon`);else if(i===D.FileKind.FOLDER)o.push(`${g}-name-folder-icon`);else{if(g){if(o.push(`${g}-name-file-icon`),o.push("name-file-icon"),g.length<=255){const c=g.split(".");for(let d=1;d{u.mime===h.mime||u.userConfigured||(h.extension&&u.extension===h.extension&&console.warn(`Overwriting extension <<${h.extension}>> to now point to mime <<${h.mime}>>`),h.filename&&u.filename===h.filename&&console.warn(`Overwriting filename <<${h.filename}>> to now point to mime <<${h.mime}>>`),h.filepattern&&u.filepattern===h.filepattern&&console.warn(`Overwriting filepattern <<${h.filepattern}>> to now point to mime <<${h.mime}>>`),h.firstline&&u.firstline===h.firstline&&console.warn(`Overwriting firstline <<${h.firstline}>> to now point to mime <<${h.mime}>>`))})}function t(s,l){return{id:s.id,mime:s.mime,filename:s.filename,extension:s.extension,filepattern:s.filepattern,firstline:s.firstline,userConfigured:l,filenameLowercase:s.filename?s.filename.toLowerCase():void 0,extensionLowercase:s.extension?s.extension.toLowerCase():void 0,filepatternLowercase:s.filepattern?(0,L.parse)(s.filepattern.toLowerCase()):void 0,filepatternOnPath:s.filepattern?s.filepattern.indexOf(D.posix.sep)>=0:!1}}function o(){v=v.filter(s=>s.userConfigured),b=[]}e.clearPlatformLanguageAssociations=o;function g(s,l){return m(s,l).map(r=>r.id)}e.getLanguageIds=g;function m(s,l){let r;if(s)switch(s.scheme){case y.Schemas.file:r=s.fsPath;break;case y.Schemas.data:{r=S.DataUri.parseMetaData(s).get(S.DataUri.META_DATA_LABEL);break}case y.Schemas.vscodeNotebookCell:r=void 0;break;default:r=s.path}if(!r)return[{id:"unknown",mime:k.Mimes.unknown}];r=r.toLowerCase();const h=(0,D.basename)(r),u=c(r,h,a);if(u)return[u,{id:w.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];const f=c(r,h,b);if(f)return[f,{id:w.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];if(l){const C=d(l);if(C)return[C,{id:w.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}]}return[{id:"unknown",mime:k.Mimes.unknown}]}function c(s,l,r){var h;let u,f,C;for(let _=r.length-1;_>=0;_--){const E=r[_];if(l===E.filenameLowercase){u=E;break}if(E.filepattern&&(!f||E.filepattern.length>f.filepattern.length)){const I=E.filepatternOnPath?s:l;!((h=E.filepatternLowercase)===null||h===void 0)&&h.call(E,I)&&(f=E)}E.extension&&(!C||E.extension.length>C.extension.length)&&l.endsWith(E.extensionLowercase)&&(C=E)}if(u)return u;if(f)return f;if(C)return C}function d(s){if((0,p.startsWithUTF8BOM)(s)&&(s=s.substr(1)),s.length>0)for(let l=v.length-1;l>=0;l--){const r=v[l];if(!r.firstline)continue;const h=s.match(r.firstline);if(h&&h.length>0)return r}}}),define(ne[804],se([1,0,7,2,11,803,81,101,37]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguagesRegistry=e.LanguageIdCodec=void 0;const v=Object.prototype.hasOwnProperty,b="vs.editor.nullLanguage";class a{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(b,0),this._register(S.PLAINTEXT_LANGUAGE_ID,1),this._nextLanguageId=2}_register(t,o){this._languageIdToLanguage[o]=t,this._languageToLanguageId.set(t,o)}register(t){if(this._languageToLanguageId.has(t))return;const o=this._nextLanguageId++;this._register(t,o)}encodeLanguageId(t){return this._languageToLanguageId.get(t)||0}decodeLanguageId(t){return this._languageIdToLanguage[t]||b}}e.LanguageIdCodec=a;class n extends k.Disposable{constructor(t=!0,o=!1){super(),this._onDidChange=this._register(new L.Emitter),this.onDidChange=this._onDidChange.event,n.instanceCount++,this._warnOnOverwrite=o,this.languageIdCodec=new a,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},t&&(this._initializeFromRegistry(),this._register(S.ModesRegistry.onDidChangeLanguages(g=>{this._initializeFromRegistry()})))}dispose(){n.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},(0,D.clearPlatformLanguageAssociations)();const t=[].concat(S.ModesRegistry.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(t)}_registerLanguages(t){for(const o of t)this._registerLanguage(o);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(o=>{const g=this._languages[o];g.name&&(this._nameMap[g.name]=g.identifier),g.aliases.forEach(m=>{this._lowercaseNameMap[m.toLowerCase()]=g.identifier}),g.mimetypes.forEach(m=>{this._mimeTypesMap[m]=g.identifier})}),w.Registry.as(p.Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(t){const o=t.id;let g;v.call(this._languages,o)?g=this._languages[o]:(this.languageIdCodec.register(o),g={identifier:o,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[o]=g),this._mergeLanguage(g,t)}_mergeLanguage(t,o){const g=o.id;let m=null;if(Array.isArray(o.mimetypes)&&o.mimetypes.length>0&&(t.mimetypes.push(...o.mimetypes),m=o.mimetypes[0]),m||(m=`text/x-${g}`,t.mimetypes.push(m)),Array.isArray(o.extensions)){o.configuration?t.extensions=o.extensions.concat(t.extensions):t.extensions=t.extensions.concat(o.extensions);for(const s of o.extensions)(0,D.registerPlatformLanguageAssociation)({id:g,mime:m,extension:s},this._warnOnOverwrite)}if(Array.isArray(o.filenames))for(const s of o.filenames)(0,D.registerPlatformLanguageAssociation)({id:g,mime:m,filename:s},this._warnOnOverwrite),t.filenames.push(s);if(Array.isArray(o.filenamePatterns))for(const s of o.filenamePatterns)(0,D.registerPlatformLanguageAssociation)({id:g,mime:m,filepattern:s},this._warnOnOverwrite);if(typeof o.firstLine=="string"&&o.firstLine.length>0){let s=o.firstLine;s.charAt(0)!=="^"&&(s="^"+s);try{const l=new RegExp(s);(0,y.regExpLeadsToEndlessLoop)(l)||(0,D.registerPlatformLanguageAssociation)({id:g,mime:m,firstline:l},this._warnOnOverwrite)}catch(l){console.warn(`[${o.id}]: Invalid regular expression \`${s}\`: `,l)}}t.aliases.push(g);let c=null;if(typeof o.aliases<"u"&&Array.isArray(o.aliases)&&(o.aliases.length===0?c=[null]:c=o.aliases),c!==null)for(const s of c)!s||s.length===0||t.aliases.push(s);const d=c!==null&&c.length>0;if(!(d&&c[0]===null)){const s=(d?c[0]:null)||g;(d||!t.name)&&(t.name=s)}o.configuration&&t.configurationFiles.push(o.configuration),o.icon&&t.icons.push(o.icon)}isRegisteredLanguageId(t){return t?v.call(this._languages,t):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(t){const o=t.toLowerCase();return v.call(this._lowercaseNameMap,o)?this._lowercaseNameMap[o]:null}getLanguageIdByMimeType(t){return t&&v.call(this._mimeTypesMap,t)?this._mimeTypesMap[t]:null}guessLanguageIdByFilepathOrFirstLine(t,o){return!t&&!o?[]:(0,D.getLanguageIds)(t,o)}}e.LanguagesRegistry=n,n.instanceCount=0}),define(ne[805],se([1,0,7,2,804,13,30,81]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageService=void 0;class w extends k.Disposable{constructor(a=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new L.Emitter),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new L.Emitter),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new L.Emitter({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,w.instanceCount++,this._registry=this._register(new y.LanguagesRegistry(!0,a)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){w.instanceCount--,super.dispose()}isRegisteredLanguageId(a){return this._registry.isRegisteredLanguageId(a)}getLanguageIdByLanguageName(a){return this._registry.getLanguageIdByLanguageName(a)}getLanguageIdByMimeType(a){return this._registry.getLanguageIdByMimeType(a)}guessLanguageIdByFilepathOrFirstLine(a,n){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(a,n);return(0,D.firstOrDefault)(i,null)}createById(a){return new v(this.onDidChange,()=>this._createAndGetLanguageIdentifier(a))}createByFilepathOrFirstLine(a,n){return new v(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(a,n);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(a){return(!a||!this.isRegisteredLanguageId(a))&&(a=p.PLAINTEXT_LANGUAGE_ID),a}requestBasicLanguageFeatures(a){this._requestedBasicLanguages.has(a)||(this._requestedBasicLanguages.add(a),this._onDidRequestBasicLanguageFeatures.fire(a))}requestRichLanguageFeatures(a){this._requestedRichLanguages.has(a)||(this._requestedRichLanguages.add(a),this.requestBasicLanguageFeatures(a),S.TokenizationRegistry.getOrCreate(a),this._onDidRequestRichLanguageFeatures.fire(a))}}e.LanguageService=w,w.instanceCount=0;class v{constructor(a,n){this._onDidChangeLanguages=a,this._selector=n,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new L.Emitter({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var a;const n=this._selector();n!==this.languageId&&(this.languageId=n,(a=this._emitter)===null||a===void 0||a.fire(this.languageId))}}}),define(ne[360],se([1,0,39,252,51,33,2,18,135]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultDocumentColorProvider=void 0;class v{constructor(n,i){this._editorWorkerClient=new k.EditorWorkerClient(n,!1,"editorWorkerService",i)}async provideDocumentColors(n,i){return this._editorWorkerClient.computeDefaultDocumentColors(n.uri)}provideColorPresentations(n,i,t){const o=i.range,g=i.color,m=g.alpha,c=new L.Color(new L.RGBA(Math.round(255*g.red),Math.round(255*g.green),Math.round(255*g.blue),m)),d=m?L.Color.Format.CSS.formatRGB(c):L.Color.Format.CSS.formatRGBA(c),s=m?L.Color.Format.CSS.formatHSL(c):L.Color.Format.CSS.formatHSLA(c),l=m?L.Color.Format.CSS.formatHex(c):L.Color.Format.CSS.formatHexA(c),r=[];return r.push({label:d,textEdit:{range:o,text:d}}),r.push({label:s,textEdit:{range:o,text:s}}),r.push({label:l,textEdit:{range:o,text:l}}),r}}e.DefaultDocumentColorProvider=v;let b=class extends S.Disposable{constructor(n,i,t){super(),this._register(t.colorProvider.register("*",new v(n,i)))}};b=De([he(0,y.IModelService),he(1,D.ILanguageConfigurationService),he(2,p.ILanguageFeaturesService)],b),(0,w.registerEditorFeature)(b)}),define(ne[361],se([1,0,19,12,22,5,51,25,18,360,26]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getColorPresentations=e.getColors=void 0;async function a(c,d,s,l=!0){return g(new i,c,d,s,l)}e.getColors=a;function n(c,d,s,l){return Promise.resolve(s.provideColorPresentations(c,d,l))}e.getColorPresentations=n;class i{constructor(){}async compute(d,s,l,r){const h=await d.provideDocumentColors(s,l);if(Array.isArray(h))for(const u of h)r.push({colorInfo:u,provider:d});return Array.isArray(h)}}class t{constructor(){}async compute(d,s,l,r){const h=await d.provideDocumentColors(s,l);if(Array.isArray(h))for(const u of h)r.push({range:u.range,color:[u.color.red,u.color.green,u.color.blue,u.color.alpha]});return Array.isArray(h)}}class o{constructor(d){this.colorInfo=d}async compute(d,s,l,r){const h=await d.provideColorPresentations(s,this.colorInfo,L.CancellationToken.None);return Array.isArray(h)&&r.push(...h),Array.isArray(h)}}async function g(c,d,s,l,r){let h=!1,u;const f=[],C=d.ordered(s);for(let _=C.length-1;_>=0;_--){const E=C[_];if(E instanceof v.DefaultDocumentColorProvider)u=E;else try{await c.compute(E,s,l,f)&&(h=!0)}catch(I){(0,k.onUnexpectedExternalError)(I)}}return h?f:u&&r?(await c.compute(u,s,l,f),f):[]}function m(c,d){const{colorProvider:s}=c.get(w.ILanguageFeaturesService),l=c.get(S.IModelService).getModel(d);if(!l)throw(0,k.illegalArgument)();const r=c.get(b.IConfigurationService).getValue("editor.defaultColorDecorators",{resource:d});return{model:l,colorProviderRegistry:s,isDefaultColorDecoratorsEnabled:r}}p.CommandsRegistry.registerCommand("_executeDocumentColorProvider",function(c,...d){const[s]=d;if(!(s instanceof y.URI))throw(0,k.illegalArgument)();const{model:l,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:h}=m(c,s);return g(new t,r,l,L.CancellationToken.None,h)}),p.CommandsRegistry.registerCommand("_executeColorPresentationProvider",function(c,...d){const[s,l]=d,{uri:r,range:h}=l;if(!(r instanceof y.URI)||!Array.isArray(s)||s.length!==4||!D.Range.isIRange(h))throw(0,k.illegalArgument)();const{model:u,colorProviderRegistry:f,isDefaultColorDecoratorsEnabled:C}=m(c,r),[_,E,I,T]=s;return g(new o({range:h,color:{red:_,green:E,blue:I,alpha:T}}),f,u,L.CancellationToken.None,C)})}),define(ne[806],se([1,0,6,13,58,2,108,338,233,40]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverWidget=void 0;const b=L.$;class a extends D.Disposable{constructor(t,o,g){super(),this._renderDisposeables=this._register(new D.DisposableStore),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new w.HoverWidget),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new S.MarkdownRenderer({editor:this._editor},o,g)),this._computer=new n(this._editor),this._hoverOperation=this._register(new p.HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(m=>{this._withResult(m.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(m=>{m.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return a.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(o=>this._editor.applyFontInfo(o))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(t,o){this._computer.lineNumber===t&&this._computer.lane===o||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=t,this._computer.lane=o,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(t){this._messages=t,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(t,o){this._renderDisposeables.clear();const g=document.createDocumentFragment();for(const m of o){const c=b("div.hover-row.markdown-hover"),d=L.append(c,b("div.hover-contents")),s=this._renderDisposeables.add(this._markdownRenderer.render(m.value));d.appendChild(s.element),g.appendChild(c)}this._updateContents(g),this._showAt(t)}_updateContents(t){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(t),this._updateFont()}_showAt(t){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const o=this._editor.getLayoutInfo(),g=this._editor.getTopForLineNumber(t),m=this._editor.getScrollTop(),c=this._editor.getOption(67),d=this._hover.containerDomNode.clientHeight,s=g-m-(d-c)/2,l=o.glyphMarginLeft+o.glyphMarginWidth+(this._computer.lane==="lineNo"?o.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${l}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(s),0)}px`}}e.MarginHoverWidget=a,a.ID="editor.contrib.modesGlyphHoverWidget";class n{get lineNumber(){return this._lineNumber}set lineNumber(t){this._lineNumber=t}get lane(){return this._laneOrLine}set lane(t){this._laneOrLine=t}constructor(t){this._editor=t,this._lineNumber=-1,this._laneOrLine=v.GlyphMarginLane.Center}computeSync(){var t,o;const g=s=>({value:s}),m=this._editor.getLineDecorations(this._lineNumber),c=[],d=this._laneOrLine==="lineNo";if(!m)return c;for(const s of m){const l=(o=(t=s.options.glyphMargin)===null||t===void 0?void 0:t.position)!==null&&o!==void 0?o:v.GlyphMarginLane.Center;if(!d&&l!==this._laneOrLine)continue;const r=d?s.options.lineNumberHoverMessage:s.options.glyphMarginHoverMessage;!r||(0,y.isEmptyMarkdownString)(r)||c.push(...(0,k.asArray)(r).map(g))}return c}}}),define(ne[807],se([1,0,19,73,2,32,9,30,33,18,627,223]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionWithUpdatedRange=e.UpToDateInlineCompletions=e.InlineCompletionsSource=void 0;let n=class extends y.Disposable{constructor(l,r,h,u,f){super(),this.textModel=l,this.versionId=r,this._debounceValue=h,this.languageFeaturesService=u,this.languageConfigurationService=f,this._updateOperation=this._register(new y.MutableDisposable),this.inlineCompletions=(0,D.disposableObservableValue)("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=(0,D.disposableObservableValue)("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(l,r,h){var u,f;const C=new t(l,r,this.textModel.getVersionId()),_=r.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(!((u=this._updateOperation.value)===null||u===void 0)&&u.request.satisfies(C))return this._updateOperation.value.promise;if(!((f=_.get())===null||f===void 0)&&f.request.satisfies(C))return Promise.resolve(!0);const E=!!this._updateOperation.value;this._updateOperation.clear();const I=new L.CancellationTokenSource,T=(async()=>{if((E||r.triggerKind===p.InlineCompletionTriggerKind.Automatic)&&await i(this._debounceValue.get(this.textModel),I.token),I.token.isCancellationRequested||this.textModel.getVersionId()!==C.versionId)return!1;const M=new Date,N=await(0,b.provideInlineCompletions)(this.languageFeaturesService.inlineCompletionsProvider,l,this.textModel,r,I.token,this.languageConfigurationService);if(I.token.isCancellationRequested||this.textModel.getVersionId()!==C.versionId)return!1;const P=new Date;this._debounceValue.update(this.textModel,P.getTime()-M.getTime());const F=new m(N,C,this.textModel,this.versionId);if(h){const O=h.toInlineCompletion(void 0);h.canBeReused(this.textModel,l)&&!N.has(O)&&F.prepend(h.inlineCompletion,O.range,!0)}return this._updateOperation.clear(),(0,D.transaction)(O=>{_.set(F,O)}),!0})(),A=new g(C,I,T);return this._updateOperation.value=A,T}clear(l){this._updateOperation.clear(),this.inlineCompletions.set(void 0,l),this.suggestWidgetInlineCompletions.set(void 0,l)}clearSuggestWidgetInlineCompletions(l){var r;!((r=this._updateOperation.value)===null||r===void 0)&&r.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,l)}cancelUpdate(){this._updateOperation.clear()}};e.InlineCompletionsSource=n,e.InlineCompletionsSource=n=De([he(3,v.ILanguageFeaturesService),he(4,w.ILanguageConfigurationService)],n);function i(s,l){return new Promise(r=>{let h;const u=setTimeout(()=>{h&&h.dispose(),r()},s);l&&(h=l.onCancellationRequested(()=>{clearTimeout(u),h&&h.dispose(),r()}))})}class t{constructor(l,r,h){this.position=l,this.context=r,this.versionId=h}satisfies(l){return this.position.equals(l.position)&&o(this.context.selectedSuggestionInfo,l.context.selectedSuggestionInfo,(r,h)=>r.equals(h))&&(l.context.triggerKind===p.InlineCompletionTriggerKind.Automatic||this.context.triggerKind===p.InlineCompletionTriggerKind.Explicit)&&this.versionId===l.versionId}}function o(s,l,r){return!s||!l?s===l:r(s,l)}class g{constructor(l,r,h){this.request=l,this.cancellationTokenSource=r,this.promise=h}dispose(){this.cancellationTokenSource.cancel()}}class m{get inlineCompletions(){return this._inlineCompletions}constructor(l,r,h,u){this.inlineCompletionProviderResult=l,this.request=r,this.textModel=h,this.versionId=u,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=(0,D.derived)(this,C=>{this.versionId.read(C);let _=!1;for(const E of this._inlineCompletions)_=_||E._updateRange(this.textModel);return _&&this._rangeVersionIdValue++,this._rangeVersionIdValue});const f=h.deltaDecorations([],l.completions.map(C=>({range:C.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=l.completions.map((C,_)=>new c(C,f[_],this._rangeVersionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map(l=>l.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const l of this._prependedInlineCompletionItems)l.source.removeRef()}}prepend(l,r,h){h&&l.source.addRef();const u=this.textModel.deltaDecorations([],[{range:r,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new c(l,u,this._rangeVersionId,r)),this._prependedInlineCompletionItems.push(l)}}e.UpToDateInlineCompletions=m;class c{get forwardStable(){var l;return(l=this.inlineCompletion.source.inlineCompletions.enableForwardStability)!==null&&l!==void 0?l:!1}constructor(l,r,h,u){this.inlineCompletion=l,this.decorationId=r,this.rangeVersion=h,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=u??l.range}toInlineCompletion(l){return this.inlineCompletion.withRange(this._getUpdatedRange(l))}toSingleTextEdit(l){return new a.SingleTextEdit(this._getUpdatedRange(l),this.inlineCompletion.insertText)}isVisible(l,r,h){const u=this._toFilterTextReplacement(h).removeCommonPrefix(l);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(h).getStartPosition())||r.lineNumber!==u.range.startLineNumber)return!1;const f=l.getValueInRange(u.range,1),C=u.text,_=Math.max(0,r.column-u.range.startColumn);let E=C.substring(0,_),I=C.substring(_),T=f.substring(0,_),A=f.substring(_);const R=l.getLineIndentColumn(u.range.startLineNumber);return u.range.startColumn<=R&&(T=T.trimStart(),T.length===0&&(A=A.trimStart()),E=E.trimStart(),E.length===0&&(I=I.trimStart())),E.startsWith(T)&&!!(0,k.matchesSubString)(A,I)}canBeReused(l,r){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(r)&&this.isVisible(l,r,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(l){return new a.SingleTextEdit(this._getUpdatedRange(l),this.inlineCompletion.filterText)}_isSmallerThanOriginal(l){return d(this._getUpdatedRange(l)).isBefore(d(this.inlineCompletion.range))}_getUpdatedRange(l){return this.rangeVersion.read(l),this._updatedRange}_updateRange(l){const r=l.getDecorationRange(this.decorationId);return r?this._updatedRange.equalsRange(r)?!1:(this._updatedRange=r,!0):(this._isValid=!1,!0)}}e.InlineCompletionWithUpdatedRange=c;function d(s){return s.startLineNumber===s.endLineNumber?new S.Position(1,1+s.endColumn-s.startColumn):new S.Position(1+s.endLineNumber-s.startLineNumber,s.endColumn)}}),define(ne[808],se([1,0,11,255,5,23,116,33,314,253,254]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveLinesCommand=void 0;let a=class{constructor(i,t,o,g){this._languageConfigurationService=g,this._selection=i,this._isMovingDown=t,this._autoIndent=o,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(i,t){const o=i.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===o){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let g=this._selection;g.startLineNumberi.tokenization.getLineTokens(r),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(r,h)=>i.getLanguageIdAtPosition(r,h)},getLineContent:null};if(g.startLineNumber===g.endLineNumber&&i.getLineMaxColumn(g.startLineNumber)===1){const r=g.startLineNumber,h=this._isMovingDown?r+1:r-1;i.getLineMaxColumn(h)===1?t.addEditOperation(new y.Range(1,1,1,1),null):(t.addEditOperation(new y.Range(r,1,r,1),i.getLineContent(h)),t.addEditOperation(new y.Range(h,1,h,i.getLineMaxColumn(h)),null)),g=new D.Selection(h,1,h,1)}else{let r,h;if(this._isMovingDown){r=g.endLineNumber+1,h=i.getLineContent(r),t.addEditOperation(new y.Range(r-1,i.getLineMaxColumn(r-1),r,i.getLineMaxColumn(r)),null);let u=h;if(this.shouldAutoIndent(i,g)){const f=this.matchEnterRule(i,s,m,r,g.startLineNumber-1);if(f!==null){const _=L.getLeadingWhitespace(i.getLineContent(r)),E=f+w.getSpaceCnt(_,m);u=w.generateIndent(E,m,d)+this.trimStart(h)}else{l.getLineContent=E=>E===g.startLineNumber?i.getLineContent(r):i.getLineContent(E);const _=(0,v.getGoodIndentForLine)(this._autoIndent,l,i.getLanguageIdAtPosition(r,1),g.startLineNumber,s,this._languageConfigurationService);if(_!==null){const E=L.getLeadingWhitespace(i.getLineContent(r)),I=w.getSpaceCnt(_,m),T=w.getSpaceCnt(E,m);I!==T&&(u=w.generateIndent(I,m,d)+this.trimStart(h))}}t.addEditOperation(new y.Range(g.startLineNumber,1,g.startLineNumber,1),u+` +`);const C=this.matchEnterRuleMovingDown(i,s,m,g.startLineNumber,r,u);if(C!==null)C!==0&&this.getIndentEditsOfMovingBlock(i,t,g,m,d,C);else{l.getLineContent=E=>E===g.startLineNumber?u:E>=g.startLineNumber+1&&E<=g.endLineNumber+1?i.getLineContent(E-1):i.getLineContent(E);const _=(0,v.getGoodIndentForLine)(this._autoIndent,l,i.getLanguageIdAtPosition(r,1),g.startLineNumber+1,s,this._languageConfigurationService);if(_!==null){const E=L.getLeadingWhitespace(i.getLineContent(g.startLineNumber)),I=w.getSpaceCnt(_,m),T=w.getSpaceCnt(E,m);if(I!==T){const A=I-T;this.getIndentEditsOfMovingBlock(i,t,g,m,d,A)}}}}else t.addEditOperation(new y.Range(g.startLineNumber,1,g.startLineNumber,1),u+` +`)}else if(r=g.startLineNumber-1,h=i.getLineContent(r),t.addEditOperation(new y.Range(r,1,r+1,1),null),t.addEditOperation(new y.Range(g.endLineNumber,i.getLineMaxColumn(g.endLineNumber),g.endLineNumber,i.getLineMaxColumn(g.endLineNumber)),` +`+h),this.shouldAutoIndent(i,g)){l.getLineContent=f=>f===r?i.getLineContent(g.startLineNumber):i.getLineContent(f);const u=this.matchEnterRule(i,s,m,g.startLineNumber,g.startLineNumber-2);if(u!==null)u!==0&&this.getIndentEditsOfMovingBlock(i,t,g,m,d,u);else{const f=(0,v.getGoodIndentForLine)(this._autoIndent,l,i.getLanguageIdAtPosition(g.startLineNumber,1),r,s,this._languageConfigurationService);if(f!==null){const C=L.getLeadingWhitespace(i.getLineContent(g.startLineNumber)),_=w.getSpaceCnt(f,m),E=w.getSpaceCnt(C,m);if(_!==E){const I=_-E;this.getIndentEditsOfMovingBlock(i,t,g,m,d,I)}}}}}this._selectionId=t.trackSelection(g)}buildIndentConverter(i,t,o){return{shiftIndent:g=>k.ShiftCommand.shiftIndent(g,g.length+1,i,t,o),unshiftIndent:g=>k.ShiftCommand.unshiftIndent(g,g.length+1,i,t,o)}}parseEnterResult(i,t,o,g,m){if(m){let c=m.indentation;m.indentAction===S.IndentAction.None||m.indentAction===S.IndentAction.Indent?c=m.indentation+m.appendText:m.indentAction===S.IndentAction.IndentOutdent?c=m.indentation:m.indentAction===S.IndentAction.Outdent&&(c=t.unshiftIndent(m.indentation)+m.appendText);const d=i.getLineContent(g);if(this.trimStart(d).indexOf(this.trimStart(c))>=0){const s=L.getLeadingWhitespace(i.getLineContent(g));let l=L.getLeadingWhitespace(c);const r=(0,v.getIndentMetadata)(i,g,this._languageConfigurationService);r!==null&&r&2&&(l=t.unshiftIndent(l));const h=w.getSpaceCnt(l,o),u=w.getSpaceCnt(s,o);return h-u}}return null}matchEnterRuleMovingDown(i,t,o,g,m,c){if(L.lastNonWhitespaceIndex(c)>=0){const d=i.getLineMaxColumn(m),s=(0,b.getEnterAction)(this._autoIndent,i,new y.Range(m,d,m,d),this._languageConfigurationService);return this.parseEnterResult(i,t,o,g,s)}else{let d=g-1;for(;d>=1;){const r=i.getLineContent(d);if(L.lastNonWhitespaceIndex(r)>=0)break;d--}if(d<1||g>i.getLineCount())return null;const s=i.getLineMaxColumn(d),l=(0,b.getEnterAction)(this._autoIndent,i,new y.Range(d,s,d,s),this._languageConfigurationService);return this.parseEnterResult(i,t,o,g,l)}}matchEnterRule(i,t,o,g,m,c){let d=m;for(;d>=1;){let r;if(d===m&&c!==void 0?r=c:r=i.getLineContent(d),L.lastNonWhitespaceIndex(r)>=0)break;d--}if(d<1||g>i.getLineCount())return null;const s=i.getLineMaxColumn(d),l=(0,b.getEnterAction)(this._autoIndent,i,new y.Range(d,s,d,s),this._languageConfigurationService);return this.parseEnterResult(i,t,o,g,l)}trimStart(i){return i.replace(/^\s+/,"")}shouldAutoIndent(i,t){if(this._autoIndent<4||!i.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const o=i.getLanguageIdAtPosition(t.startLineNumber,1),g=i.getLanguageIdAtPosition(t.endLineNumber,1);return!(o!==g||this._languageConfigurationService.getLanguageConfiguration(o).indentRulesSupport===null)}getIndentEditsOfMovingBlock(i,t,o,g,m,c){for(let d=o.startLineNumber;d<=o.endLineNumber;d++){const s=i.getLineContent(d),l=L.getLeadingWhitespace(s),h=w.getSpaceCnt(l,g)+c,u=w.generateIndent(h,g,m);u!==l&&(t.addEditOperation(new y.Range(d,1,d,l.length+1),u),d===o.endLineNumber&&o.endColumn<=l.length+1&&u===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(i,t){let o=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(o=o.setEndPosition(o.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&o.startLineNumber{d.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const m=this._editor.getOptions(),c=m.get(50),d=c.getMassagedFontFamily(),s=m.get(119)||c.fontSize,l=m.get(120)||c.lineHeight,r=c.fontWeight,h=`${s}px`,u=`${l}px`;this.domNode.style.fontSize=h,this.domNode.style.lineHeight=`${l/s}`,this.domNode.style.fontWeight=r,this.domNode.style.fontFeatureSettings=c.fontFeatureSettings,this._type.style.fontFamily=d,this._close.style.height=u,this._close.style.width=u}getLayoutInfo(){const m=this._editor.getOption(120)||this._editor.getOption(50).lineHeight,c=this._borderWidth,d=c*2;return{lineHeight:m,borderWidth:c,borderHeight:d,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=a.localize(1,null),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(m,c){var d,s;this._renderDisposeable.clear();let{detail:l,documentation:r}=m.completion;if(c){let h="";h+=`score: ${m.score[0]} +`,h+=`prefix: ${(d=m.word)!==null&&d!==void 0?d:"(no prefix)"} +`,h+=`word: ${m.completion.filterText?m.completion.filterText+" (filterText)":m.textLabel} +`,h+=`distance: ${m.distance} (localityBonus-setting) +`,h+=`index: ${m.idx}, based on ${m.completion.sortText&&`sortText: "${m.completion.sortText}"`||"label"} +`,h+=`commit_chars: ${(s=m.completion.commitCharacters)===null||s===void 0?void 0:s.join("")} +`,r=new p.MarkdownString().appendCodeblock("empty",h),l=`Provider: ${m.provider._debugDisplayName}`}if(!c&&!i(m)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),l){const h=l.length>1e5?`${l.substr(0,1e5)}\u2026`:l;this._type.textContent=h,this._type.title=h,L.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(h))}else L.clearNode(this._type),this._type.title="",L.hide(this._type),this.domNode.classList.add("no-type");if(L.clearNode(this._docs),typeof r=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=r;else if(r){this._docs.classList.add("markdown-docs"),L.clearNode(this._docs);const h=this._markdownRenderer.render(r);this._docs.appendChild(h.element),this._renderDisposeable.add(h),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=h=>{h.preventDefault(),h.stopPropagation()},this._close.onclick=h=>{h.preventDefault(),h.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(m,c){const d=new L.Dimension(m,c);L.Dimension.equals(d,this._size)||(this._size=d,L.size(this.domNode,m,c)),this._scrollbar.scanDomNode()}scrollDown(m=8){this._body.scrollTop+=m}scrollUp(m=8){this._body.scrollTop-=m}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(m){this._borderWidth=m}get borderWidth(){return this._borderWidth}};e.SuggestDetailsWidget=t,e.SuggestDetailsWidget=t=De([he(1,n.IInstantiationService)],t);class o{constructor(m,c){this.widget=m,this._editor=c,this.allowEditorOverflow=!0,this._disposables=new w.DisposableStore,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new b.ResizableHTMLElement,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(m.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let d,s,l=0,r=0;this._disposables.add(this._resizable.onDidWillResize(()=>{d=this._topLeft,s=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(h=>{if(d&&s){this.widget.layout(h.dimension.width,h.dimension.height);let u=!1;h.west&&(r=s.width-h.dimension.width,u=!0),h.north&&(l=s.height-h.dimension.height,u=!0),u&&this._applyTopLeft({top:d.top+l,left:d.left+r})}h.done&&(d=void 0,s=void 0,l=0,r=0,this._userSize=h.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var h;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(h=this._userSize)!==null&&h!==void 0?h:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(m=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),m&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(m,c){var d;const s=m.getBoundingClientRect();this._anchorBox=s,this._preferAlignAtTop=c,this._placeAtAnchor(this._anchorBox,(d=this._userSize)!==null&&d!==void 0?d:this.widget.size,c)}_placeAtAnchor(m,c,d){var s;const l=L.getClientArea(this.getDomNode().ownerDocument.body),r=this.widget.getLayoutInfo(),h=new L.Dimension(220,2*r.lineHeight),u=m.top,f=function(){const B=l.width-(m.left+m.width+r.borderWidth+r.horizontalPadding),W=-r.borderWidth+m.left+m.width,V=new L.Dimension(B,l.height-m.top-r.borderHeight-r.verticalPadding),z=V.with(void 0,m.top+m.height-r.borderHeight-r.verticalPadding);return{top:u,left:W,fit:B-c.width,maxSizeTop:V,maxSizeBottom:z,minSize:h.with(Math.min(B,h.width))}}(),C=function(){const B=m.left-r.borderWidth-r.horizontalPadding,W=Math.max(r.horizontalPadding,m.left-c.width-r.borderWidth),V=new L.Dimension(B,l.height-m.top-r.borderHeight-r.verticalPadding),z=V.with(void 0,m.top+m.height-r.borderHeight-r.verticalPadding);return{top:u,left:W,fit:B-c.width,maxSizeTop:V,maxSizeBottom:z,minSize:h.with(Math.min(B,h.width))}}(),_=function(){const B=m.left,W=-r.borderWidth+m.top+m.height,V=new L.Dimension(m.width-r.borderHeight,l.height-m.top-m.height-r.verticalPadding);return{top:W,left:B,fit:V.height-c.height,maxSizeBottom:V,maxSizeTop:V,minSize:h.with(V.width)}}(),E=[f,C,_],I=(s=E.find(B=>B.fit>=0))!==null&&s!==void 0?s:E.sort((B,W)=>W.fit-B.fit)[0],T=m.top+m.height-r.borderHeight;let A,R=c.height;const M=Math.max(I.maxSizeTop.height,I.maxSizeBottom.height);R>M&&(R=M);let N;d?R<=I.maxSizeTop.height?(A=!0,N=I.maxSizeTop):(A=!1,N=I.maxSizeBottom):R<=I.maxSizeBottom.height?(A=!1,N=I.maxSizeBottom):(A=!0,N=I.maxSizeTop);let{top:P,left:F}=I;!A&&R>m.height&&(P=T-R);const O=this._editor.getDomNode();if(O){const B=O.getBoundingClientRect();P-=B.top,F-=B.left}this._applyTopLeft({left:F,top:P}),this._resizable.enableSashes(!A,I===f,A,I!==f),this._resizable.minSize=I.minSize,this._resizable.maxSize=N,this._resizable.layout(R,Math.min(N.width,c.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(m){this._topLeft=m,this._editor.layoutOverlayWidget(this)}}e.SuggestDetailsOverlay=o}),define(ne[363],se([1,0,13,53,54,20,22,26,101,37]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationChangeEvent=e.Configuration=e.ConfigurationModelParser=e.ConfigurationModel=void 0;function b(g){return Object.isFrozen(g)?g:y.deepFreeze(g)}class a{constructor(m={},c=[],d=[],s){this._contents=m,this._keys=c,this._overrides=d,this.raw=s,this.overrideConfigurations=new Map}get rawConfiguration(){var m;if(!this._rawConfiguration)if(!((m=this.raw)===null||m===void 0)&&m.length){const c=this.raw.map(d=>{if(d instanceof a)return d;const s=new n("");return s.parseRaw(d),s.configurationModel});this._rawConfiguration=c.reduce((d,s)=>s===d?s:d.merge(s),c[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(m){return m?(0,p.getConfigurationValue)(this.contents,m):this.contents}inspect(m,c){const d=this;return{get value(){return b(d.rawConfiguration.getValue(m))},get override(){return c?b(d.rawConfiguration.getOverrideValue(m,c)):void 0},get merged(){return b(c?d.rawConfiguration.override(c).getValue(m):d.rawConfiguration.getValue(m))},get overrides(){const s=[];for(const{contents:l,identifiers:r,keys:h}of d.rawConfiguration.overrides){const u=new a(l,h).getValue(m);u!==void 0&&s.push({identifiers:r,value:u})}return s.length?b(s):void 0}}}getOverrideValue(m,c){const d=this.getContentsForOverrideIdentifer(c);return d?m?(0,p.getConfigurationValue)(d,m):d:void 0}override(m){let c=this.overrideConfigurations.get(m);return c||(c=this.createOverrideConfigurationModel(m),this.overrideConfigurations.set(m,c)),c}merge(...m){var c,d;const s=y.deepClone(this.contents),l=y.deepClone(this.overrides),r=[...this.keys],h=!((c=this.raw)===null||c===void 0)&&c.length?[...this.raw]:[this];for(const u of m)if(h.push(...!((d=u.raw)===null||d===void 0)&&d.length?u.raw:[u]),!u.isEmpty()){this.mergeContents(s,u.contents);for(const f of u.overrides){const[C]=l.filter(_=>L.equals(_.identifiers,f.identifiers));C?(this.mergeContents(C.contents,f.contents),C.keys.push(...f.keys),C.keys=L.distinct(C.keys)):l.push(y.deepClone(f))}for(const f of u.keys)r.indexOf(f)===-1&&r.push(f)}return new a(s,r,l,h.every(u=>u instanceof a)?void 0:h)}createOverrideConfigurationModel(m){const c=this.getContentsForOverrideIdentifer(m);if(!c||typeof c!="object"||!Object.keys(c).length)return this;const d={};for(const s of L.distinct([...Object.keys(this.contents),...Object.keys(c)])){let l=this.contents[s];const r=c[s];r&&(typeof l=="object"&&typeof r=="object"?(l=y.deepClone(l),this.mergeContents(l,r)):l=r),d[s]=l}return new a(d,this.keys,this.overrides)}mergeContents(m,c){for(const d of Object.keys(c)){if(d in m&&D.isObject(m[d])&&D.isObject(c[d])){this.mergeContents(m[d],c[d]);continue}m[d]=y.deepClone(c[d])}}getContentsForOverrideIdentifer(m){let c=null,d=null;const s=l=>{l&&(d?this.mergeContents(d,l):d=y.deepClone(l))};for(const l of this.overrides)l.identifiers.length===1&&l.identifiers[0]===m?c=l.contents:l.identifiers.includes(m)&&s(l.contents);return s(c),d}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(m,c){this.updateValue(m,c,!0)}setValue(m,c){this.updateValue(m,c,!1)}removeValue(m){const c=this.keys.indexOf(m);c!==-1&&(this.keys.splice(c,1),(0,p.removeFromValueTree)(this.contents,m),w.OVERRIDE_PROPERTY_REGEX.test(m)&&this.overrides.splice(this.overrides.findIndex(d=>L.equals(d.identifiers,(0,w.overrideIdentifiersFromKey)(m))),1))}updateValue(m,c,d){(0,p.addToValueTree)(this.contents,m,c,s=>console.error(s)),d=d||this.keys.indexOf(m)===-1,d&&this.keys.push(m),w.OVERRIDE_PROPERTY_REGEX.test(m)&&this.overrides.push({identifiers:(0,w.overrideIdentifiersFromKey)(m),keys:Object.keys(this.contents[m]),contents:(0,p.toValuesTree)(this.contents[m],s=>console.error(s))})}}e.ConfigurationModel=a;class n{constructor(m){this._name=m,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||new a}parseRaw(m,c){this._raw=m;const{contents:d,keys:s,overrides:l,restricted:r,hasExcludedProperties:h}=this.doParseRaw(m,c);this._configurationModel=new a(d,s,l,h?[m]:void 0),this._restrictedConfigurations=r||[]}doParseRaw(m,c){const d=v.Registry.as(w.Extensions.Configuration).getConfigurationProperties(),s=this.filter(m,d,!0,c);m=s.raw;const l=(0,p.toValuesTree)(m,u=>console.error(`Conflict in settings file ${this._name}: ${u}`)),r=Object.keys(m),h=this.toOverrides(m,u=>console.error(`Conflict in settings file ${this._name}: ${u}`));return{contents:l,keys:r,overrides:h,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(m,c,d,s){var l,r,h;let u=!1;if(!s?.scopes&&!s?.skipRestricted&&!(!((l=s?.exclude)===null||l===void 0)&&l.length))return{raw:m,restricted:[],hasExcludedProperties:u};const f={},C=[];for(const _ in m)if(w.OVERRIDE_PROPERTY_REGEX.test(_)&&d){const E=this.filter(m[_],c,!1,s);f[_]=E.raw,u=u||E.hasExcludedProperties,C.push(...E.restricted)}else{const E=c[_],I=E?typeof E.scope<"u"?E.scope:3:void 0;E?.restricted&&C.push(_),!(!((r=s.exclude)===null||r===void 0)&&r.includes(_))&&(!((h=s.include)===null||h===void 0)&&h.includes(_)||(I===void 0||s.scopes===void 0||s.scopes.includes(I))&&!(s.skipRestricted&&E?.restricted))?f[_]=m[_]:u=!0}return{raw:f,restricted:C,hasExcludedProperties:u}}toOverrides(m,c){const d=[];for(const s of Object.keys(m))if(w.OVERRIDE_PROPERTY_REGEX.test(s)){const l={};for(const r in m[s])l[r]=m[s][r];d.push({identifiers:(0,w.overrideIdentifiersFromKey)(s),keys:Object.keys(l),contents:(0,p.toValuesTree)(l,c)})}return d}}e.ConfigurationModelParser=n;class i{constructor(m,c,d,s,l,r,h,u,f,C,_,E,I){this.key=m,this.overrides=c,this._value=d,this.overrideIdentifiers=s,this.defaultConfiguration=l,this.policyConfiguration=r,this.applicationConfiguration=h,this.userConfiguration=u,this.localUserConfiguration=f,this.remoteUserConfiguration=C,this.workspaceConfiguration=_,this.folderConfigurationModel=E,this.memoryConfigurationModel=I}toInspectValue(m){return m?.value!==void 0||m?.override!==void 0||m?.overrides!==void 0?m:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class t{constructor(m,c,d,s,l=new a,r=new a,h=new k.ResourceMap,u=new a,f=new k.ResourceMap){this._defaultConfiguration=m,this._policyConfiguration=c,this._applicationConfiguration=d,this._localUserConfiguration=s,this._remoteUserConfiguration=l,this._workspaceConfiguration=r,this._folderConfigurations=h,this._memoryConfiguration=u,this._memoryConfigurationByResource=f,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new k.ResourceMap,this._userConfiguration=null}getValue(m,c,d){return this.getConsolidatedConfigurationModel(m,c,d).getValue(m)}updateValue(m,c,d={}){let s;d.resource?(s=this._memoryConfigurationByResource.get(d.resource),s||(s=new a,this._memoryConfigurationByResource.set(d.resource,s))):s=this._memoryConfiguration,c===void 0?s.removeValue(m):s.setValue(m,c),d.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(m,c,d){const s=this.getConsolidatedConfigurationModel(m,c,d),l=this.getFolderConfigurationModelForResource(c.resource,d),r=c.resource?this._memoryConfigurationByResource.get(c.resource)||this._memoryConfiguration:this._memoryConfiguration,h=new Set;for(const u of s.overrides)for(const f of u.identifiers)s.getOverrideValue(m,f)!==void 0&&h.add(f);return new i(m,c,s.getValue(m),h.size?[...h]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,d?this._workspaceConfiguration:void 0,l||void 0,r)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(m,c,d){let s=this.getConsolidatedConfigurationModelForResource(c,d);return c.overrideIdentifier&&(s=s.override(c.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(m)!==void 0&&(s=s.merge(this._policyConfiguration)),s}getConsolidatedConfigurationModelForResource({resource:m},c){let d=this.getWorkspaceConsolidatedConfiguration();if(c&&m){const s=c.getFolder(m);s&&(d=this.getFolderConsolidatedConfiguration(s.uri)||d);const l=this._memoryConfigurationByResource.get(m);l&&(d=d.merge(l))}return d}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(m){let c=this._foldersConsolidatedConfigurations.get(m);if(!c){const d=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(m);s?(c=d.merge(s),this._foldersConsolidatedConfigurations.set(m,c)):c=d}return c}getFolderConfigurationModelForResource(m,c){if(c&&m){const d=c.getFolder(m);if(d)return this._folderConfigurations.get(d.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((m,c)=>{const{contents:d,overrides:s,keys:l}=this._folderConfigurations.get(c);return m.push([c,{contents:d,overrides:s,keys:l}]),m},[])}}static parse(m){const c=this.parseConfigurationModel(m.defaults),d=this.parseConfigurationModel(m.policy),s=this.parseConfigurationModel(m.application),l=this.parseConfigurationModel(m.user),r=this.parseConfigurationModel(m.workspace),h=m.folders.reduce((u,f)=>(u.set(S.URI.revive(f[0]),this.parseConfigurationModel(f[1])),u),new k.ResourceMap);return new t(c,d,s,l,new a,r,h,new a,new k.ResourceMap)}static parseConfigurationModel(m){return new a(m.contents,m.keys,m.overrides)}}e.Configuration=t;class o{constructor(m,c,d,s){this.change=m,this.previous=c,this.currentConfiguraiton=d,this.currentWorkspace=s,this._marker=` +`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const l of m.keys)this.affectedKeys.add(l);for(const[,l]of m.overrides)for(const r of l)this.affectedKeys.add(r);this._affectsConfigStr=this._marker;for(const l of this.affectedKeys)this._affectsConfigStr+=l+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=t.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(m,c){var d;const s=this._marker+m,l=this._affectsConfigStr.indexOf(s);if(l<0)return!1;const r=l+s.length;if(r>=this._affectsConfigStr.length)return!1;const h=this._affectsConfigStr.charCodeAt(r);if(h!==this._markerCode1&&h!==this._markerCode2)return!1;if(c){const u=this.previousConfiguration?this.previousConfiguration.getValue(m,c,(d=this.previous)===null||d===void 0?void 0:d.workspace):void 0,f=this.currentConfiguraiton.getValue(m,c,this.currentWorkspace);return!y.equals(u,f)}return!0}}e.ConfigurationChangeEvent=o}),define(ne[809],se([1,0,2,363,101,37]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultConfiguration=void 0;class S extends L.Disposable{constructor(){super(...arguments),this._configurationModel=new k.ConfigurationModel}get configurationModel(){return this._configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=new k.ConfigurationModel;const w=D.Registry.as(y.Extensions.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(w),w)}updateConfigurationModel(w,v){const b=this.getConfigurationDefaultOverrides();for(const a of w){const n=b[a],i=v[a];n!==void 0?this._configurationModel.addValue(a,n):i?this._configurationModel.addValue(a,i.default):this._configurationModel.removeValue(a)}}}e.DefaultConfiguration=S}),define(ne[126],se([1,0,127,17,25,37,2,67]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=e.KeybindingsRegistry=void 0;class w{constructor(){this._coreKeybindings=new p.LinkedList,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(a){if(k.OS===1){if(a&&a.win)return a.win}else if(k.OS===2){if(a&&a.mac)return a.mac}else if(a&&a.linux)return a.linux;return a}registerKeybindingRule(a){const n=w.bindToCurrentPlatform(a),i=new S.DisposableStore;if(n&&n.primary){const t=(0,L.decodeKeybinding)(n.primary,k.OS);t&&i.add(this._registerDefaultKeybinding(t,a.id,a.args,a.weight,0,a.when))}if(n&&Array.isArray(n.secondary))for(let t=0,o=n.secondary.length;t{m(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(v)),this._cachedMergedKeybindings.slice(0)}}e.KeybindingsRegistry=new w,e.Extensions={EditorModes:"platform.keybindingsRegistry"},D.Registry.add(e.Extensions.EditorModes,e.KeybindingsRegistry);function v(b,a){if(b.weight1!==a.weight1)return b.weight1-a.weight1;if(b.command&&a.command){if(b.commanda.command)return 1}return b.weight2-a.weight2}}),define(ne[28],se([1,0,42,29,7,2,67,25,14,8,126]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.registerAction2=e.Action2=e.MenuItemAction=e.SubmenuItemAction=e.MenuRegistry=e.IMenuService=e.MenuId=e.isISubmenuItem=e.isIMenuItem=void 0;function n(s){return s.command!==void 0}e.isIMenuItem=n;function i(s){return s.submenu!==void 0}e.isISubmenuItem=i;class t{constructor(l){if(t._instances.has(l))throw new TypeError(`MenuId with identifier '${l}' already exists. Use MenuId.for(ident) or a unique identifier`);t._instances.set(l,this),this.id=l}}e.MenuId=t,t._instances=new Map,t.CommandPalette=new t("CommandPalette"),t.DebugBreakpointsContext=new t("DebugBreakpointsContext"),t.DebugCallStackContext=new t("DebugCallStackContext"),t.DebugConsoleContext=new t("DebugConsoleContext"),t.DebugVariablesContext=new t("DebugVariablesContext"),t.NotebookVariablesContext=new t("NotebookVariablesContext"),t.DebugHoverContext=new t("DebugHoverContext"),t.DebugWatchContext=new t("DebugWatchContext"),t.DebugToolBar=new t("DebugToolBar"),t.DebugToolBarStop=new t("DebugToolBarStop"),t.EditorContext=new t("EditorContext"),t.SimpleEditorContext=new t("SimpleEditorContext"),t.EditorContent=new t("EditorContent"),t.EditorLineNumberContext=new t("EditorLineNumberContext"),t.EditorContextCopy=new t("EditorContextCopy"),t.EditorContextPeek=new t("EditorContextPeek"),t.EditorContextShare=new t("EditorContextShare"),t.EditorTitle=new t("EditorTitle"),t.EditorTitleRun=new t("EditorTitleRun"),t.EditorTitleContext=new t("EditorTitleContext"),t.EditorTitleContextShare=new t("EditorTitleContextShare"),t.EmptyEditorGroup=new t("EmptyEditorGroup"),t.EmptyEditorGroupContext=new t("EmptyEditorGroupContext"),t.EditorTabsBarContext=new t("EditorTabsBarContext"),t.EditorTabsBarShowTabsSubmenu=new t("EditorTabsBarShowTabsSubmenu"),t.EditorTabsBarShowTabsZenModeSubmenu=new t("EditorTabsBarShowTabsZenModeSubmenu"),t.EditorActionsPositionSubmenu=new t("EditorActionsPositionSubmenu"),t.ExplorerContext=new t("ExplorerContext"),t.ExplorerContextShare=new t("ExplorerContextShare"),t.ExtensionContext=new t("ExtensionContext"),t.GlobalActivity=new t("GlobalActivity"),t.CommandCenter=new t("CommandCenter"),t.CommandCenterCenter=new t("CommandCenterCenter"),t.LayoutControlMenuSubmenu=new t("LayoutControlMenuSubmenu"),t.LayoutControlMenu=new t("LayoutControlMenu"),t.MenubarMainMenu=new t("MenubarMainMenu"),t.MenubarAppearanceMenu=new t("MenubarAppearanceMenu"),t.MenubarDebugMenu=new t("MenubarDebugMenu"),t.MenubarEditMenu=new t("MenubarEditMenu"),t.MenubarCopy=new t("MenubarCopy"),t.MenubarFileMenu=new t("MenubarFileMenu"),t.MenubarGoMenu=new t("MenubarGoMenu"),t.MenubarHelpMenu=new t("MenubarHelpMenu"),t.MenubarLayoutMenu=new t("MenubarLayoutMenu"),t.MenubarNewBreakpointMenu=new t("MenubarNewBreakpointMenu"),t.PanelAlignmentMenu=new t("PanelAlignmentMenu"),t.PanelPositionMenu=new t("PanelPositionMenu"),t.ActivityBarPositionMenu=new t("ActivityBarPositionMenu"),t.MenubarPreferencesMenu=new t("MenubarPreferencesMenu"),t.MenubarRecentMenu=new t("MenubarRecentMenu"),t.MenubarSelectionMenu=new t("MenubarSelectionMenu"),t.MenubarShare=new t("MenubarShare"),t.MenubarSwitchEditorMenu=new t("MenubarSwitchEditorMenu"),t.MenubarSwitchGroupMenu=new t("MenubarSwitchGroupMenu"),t.MenubarTerminalMenu=new t("MenubarTerminalMenu"),t.MenubarViewMenu=new t("MenubarViewMenu"),t.MenubarHomeMenu=new t("MenubarHomeMenu"),t.OpenEditorsContext=new t("OpenEditorsContext"),t.OpenEditorsContextShare=new t("OpenEditorsContextShare"),t.ProblemsPanelContext=new t("ProblemsPanelContext"),t.SCMInputBox=new t("SCMInputBox"),t.SCMChangesSeparator=new t("SCMChangesSeparator"),t.SCMIncomingChanges=new t("SCMIncomingChanges"),t.SCMIncomingChangesContext=new t("SCMIncomingChangesContext"),t.SCMIncomingChangesSetting=new t("SCMIncomingChangesSetting"),t.SCMOutgoingChanges=new t("SCMOutgoingChanges"),t.SCMOutgoingChangesContext=new t("SCMOutgoingChangesContext"),t.SCMOutgoingChangesSetting=new t("SCMOutgoingChangesSetting"),t.SCMIncomingChangesAllChangesContext=new t("SCMIncomingChangesAllChangesContext"),t.SCMIncomingChangesHistoryItemContext=new t("SCMIncomingChangesHistoryItemContext"),t.SCMOutgoingChangesAllChangesContext=new t("SCMOutgoingChangesAllChangesContext"),t.SCMOutgoingChangesHistoryItemContext=new t("SCMOutgoingChangesHistoryItemContext"),t.SCMChangeContext=new t("SCMChangeContext"),t.SCMResourceContext=new t("SCMResourceContext"),t.SCMResourceContextShare=new t("SCMResourceContextShare"),t.SCMResourceFolderContext=new t("SCMResourceFolderContext"),t.SCMResourceGroupContext=new t("SCMResourceGroupContext"),t.SCMSourceControl=new t("SCMSourceControl"),t.SCMSourceControlInline=new t("SCMSourceControlInline"),t.SCMSourceControlTitle=new t("SCMSourceControlTitle"),t.SCMTitle=new t("SCMTitle"),t.SearchContext=new t("SearchContext"),t.SearchActionMenu=new t("SearchActionContext"),t.StatusBarWindowIndicatorMenu=new t("StatusBarWindowIndicatorMenu"),t.StatusBarRemoteIndicatorMenu=new t("StatusBarRemoteIndicatorMenu"),t.StickyScrollContext=new t("StickyScrollContext"),t.TestItem=new t("TestItem"),t.TestItemGutter=new t("TestItemGutter"),t.TestMessageContext=new t("TestMessageContext"),t.TestMessageContent=new t("TestMessageContent"),t.TestPeekElement=new t("TestPeekElement"),t.TestPeekTitle=new t("TestPeekTitle"),t.TouchBarContext=new t("TouchBarContext"),t.TitleBarContext=new t("TitleBarContext"),t.TitleBarTitleContext=new t("TitleBarTitleContext"),t.TunnelContext=new t("TunnelContext"),t.TunnelPrivacy=new t("TunnelPrivacy"),t.TunnelProtocol=new t("TunnelProtocol"),t.TunnelPortInline=new t("TunnelInline"),t.TunnelTitle=new t("TunnelTitle"),t.TunnelLocalAddressInline=new t("TunnelLocalAddressInline"),t.TunnelOriginInline=new t("TunnelOriginInline"),t.ViewItemContext=new t("ViewItemContext"),t.ViewContainerTitle=new t("ViewContainerTitle"),t.ViewContainerTitleContext=new t("ViewContainerTitleContext"),t.ViewTitle=new t("ViewTitle"),t.ViewTitleContext=new t("ViewTitleContext"),t.CommentEditorActions=new t("CommentEditorActions"),t.CommentThreadTitle=new t("CommentThreadTitle"),t.CommentThreadActions=new t("CommentThreadActions"),t.CommentThreadAdditionalActions=new t("CommentThreadAdditionalActions"),t.CommentThreadTitleContext=new t("CommentThreadTitleContext"),t.CommentThreadCommentContext=new t("CommentThreadCommentContext"),t.CommentTitle=new t("CommentTitle"),t.CommentActions=new t("CommentActions"),t.InteractiveToolbar=new t("InteractiveToolbar"),t.InteractiveCellTitle=new t("InteractiveCellTitle"),t.InteractiveCellDelete=new t("InteractiveCellDelete"),t.InteractiveCellExecute=new t("InteractiveCellExecute"),t.InteractiveInputExecute=new t("InteractiveInputExecute"),t.IssueReporter=new t("IssueReporter"),t.NotebookToolbar=new t("NotebookToolbar"),t.NotebookStickyScrollContext=new t("NotebookStickyScrollContext"),t.NotebookCellTitle=new t("NotebookCellTitle"),t.NotebookCellDelete=new t("NotebookCellDelete"),t.NotebookCellInsert=new t("NotebookCellInsert"),t.NotebookCellBetween=new t("NotebookCellBetween"),t.NotebookCellListTop=new t("NotebookCellTop"),t.NotebookCellExecute=new t("NotebookCellExecute"),t.NotebookCellExecuteGoTo=new t("NotebookCellExecuteGoTo"),t.NotebookCellExecutePrimary=new t("NotebookCellExecutePrimary"),t.NotebookDiffCellInputTitle=new t("NotebookDiffCellInputTitle"),t.NotebookDiffCellMetadataTitle=new t("NotebookDiffCellMetadataTitle"),t.NotebookDiffCellOutputsTitle=new t("NotebookDiffCellOutputsTitle"),t.NotebookOutputToolbar=new t("NotebookOutputToolbar"),t.NotebookEditorLayoutConfigure=new t("NotebookEditorLayoutConfigure"),t.NotebookKernelSource=new t("NotebookKernelSource"),t.BulkEditTitle=new t("BulkEditTitle"),t.BulkEditContext=new t("BulkEditContext"),t.TimelineItemContext=new t("TimelineItemContext"),t.TimelineTitle=new t("TimelineTitle"),t.TimelineTitleContext=new t("TimelineTitleContext"),t.TimelineFilterSubMenu=new t("TimelineFilterSubMenu"),t.AccountsContext=new t("AccountsContext"),t.SidebarTitle=new t("SidebarTitle"),t.PanelTitle=new t("PanelTitle"),t.AuxiliaryBarTitle=new t("AuxiliaryBarTitle"),t.TerminalInstanceContext=new t("TerminalInstanceContext"),t.TerminalEditorInstanceContext=new t("TerminalEditorInstanceContext"),t.TerminalNewDropdownContext=new t("TerminalNewDropdownContext"),t.TerminalTabContext=new t("TerminalTabContext"),t.TerminalTabEmptyAreaContext=new t("TerminalTabEmptyAreaContext"),t.TerminalStickyScrollContext=new t("TerminalStickyScrollContext"),t.WebviewContext=new t("WebviewContext"),t.InlineCompletionsActions=new t("InlineCompletionsActions"),t.InlineEditActions=new t("InlineEditActions"),t.NewFile=new t("NewFile"),t.MergeInput1Toolbar=new t("MergeToolbar1Toolbar"),t.MergeInput2Toolbar=new t("MergeToolbar2Toolbar"),t.MergeBaseToolbar=new t("MergeBaseToolbar"),t.MergeInputResultToolbar=new t("MergeToolbarResultToolbar"),t.InlineSuggestionToolbar=new t("InlineSuggestionToolbar"),t.InlineEditToolbar=new t("InlineEditToolbar"),t.ChatContext=new t("ChatContext"),t.ChatCodeBlock=new t("ChatCodeblock"),t.ChatMessageTitle=new t("ChatMessageTitle"),t.ChatExecute=new t("ChatExecute"),t.ChatInputSide=new t("ChatInputSide"),t.AccessibleView=new t("AccessibleView"),t.MultiDiffEditorFileToolbar=new t("MultiDiffEditorFileToolbar"),e.IMenuService=(0,v.createDecorator)("menuService");class o{static for(l){let r=this._all.get(l);return r||(r=new o(l),this._all.set(l,r)),r}static merge(l){const r=new Set;for(const h of l)h instanceof o&&r.add(h.id);return r}constructor(l){this.id=l,this.has=r=>r===l}}o._all=new Map,e.MenuRegistry=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new y.MicrotaskEmitter({merge:o.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(s){return this._commands.set(s.id,s),this._onDidChangeMenu.fire(o.for(t.CommandPalette)),(0,D.toDisposable)(()=>{this._commands.delete(s.id)&&this._onDidChangeMenu.fire(o.for(t.CommandPalette))})}getCommand(s){return this._commands.get(s)}getCommands(){const s=new Map;return this._commands.forEach((l,r)=>s.set(r,l)),s}appendMenuItem(s,l){let r=this._menuItems.get(s);r||(r=new S.LinkedList,this._menuItems.set(s,r));const h=r.push(l);return this._onDidChangeMenu.fire(o.for(s)),(0,D.toDisposable)(()=>{h(),this._onDidChangeMenu.fire(o.for(s))})}appendMenuItems(s){const l=new D.DisposableStore;for(const{id:r,item:h}of s)l.add(this.appendMenuItem(r,h));return l}getMenuItems(s){let l;return this._menuItems.has(s)?l=[...this._menuItems.get(s)]:l=[],s===t.CommandPalette&&this._appendImplicitItems(l),l}_appendImplicitItems(s){const l=new Set;for(const r of s)n(r)&&(l.add(r.command.id),r.alt&&l.add(r.alt.id));this._commands.forEach((r,h)=>{l.has(h)||s.push({command:r})})}};class g extends L.SubmenuAction{constructor(l,r,h){super(`submenuitem.${l.submenu.id}`,typeof l.title=="string"?l.title:l.title.value,h,"submenu"),this.item=l,this.hideActions=r}}e.SubmenuItemAction=g;let m=a=class{static label(l,r){return r?.renderShortTitle&&l.shortTitle?typeof l.shortTitle=="string"?l.shortTitle:l.shortTitle.value:typeof l.title=="string"?l.title:l.title.value}constructor(l,r,h,u,f,C){var _,E;this.hideActions=u,this._commandService=C,this.id=l.id,this.label=a.label(l,h),this.tooltip=(E=typeof l.tooltip=="string"?l.tooltip:(_=l.tooltip)===null||_===void 0?void 0:_.value)!==null&&E!==void 0?E:"",this.enabled=!l.precondition||f.contextMatchesRules(l.precondition),this.checked=void 0;let I;if(l.toggled){const T=l.toggled.condition?l.toggled:{condition:l.toggled};this.checked=f.contextMatchesRules(T.condition),this.checked&&T.tooltip&&(this.tooltip=typeof T.tooltip=="string"?T.tooltip:T.tooltip.value),this.checked&&k.ThemeIcon.isThemeIcon(T.icon)&&(I=T.icon),this.checked&&T.title&&(this.label=typeof T.title=="string"?T.title:T.title.value)}I||(I=k.ThemeIcon.isThemeIcon(l.icon)?l.icon:void 0),this.item=l,this.alt=r?new a(r,void 0,h,u,f,C):void 0,this._options=h,this.class=I&&k.ThemeIcon.asClassName(I)}run(...l){var r,h;let u=[];return!((r=this._options)===null||r===void 0)&&r.arg&&(u=[...u,this._options.arg]),!((h=this._options)===null||h===void 0)&&h.shouldForwardArgs&&(u=[...u,...l]),this._commandService.executeCommand(this.id,...u)}};e.MenuItemAction=m,e.MenuItemAction=m=a=De([he(4,w.IContextKeyService),he(5,p.ICommandService)],m);class c{constructor(l){this.desc=l}}e.Action2=c;function d(s){const l=new D.DisposableStore,r=new s,{f1:h,menu:u,keybinding:f,...C}=r.desc;if(p.CommandsRegistry.getCommand(C.id))throw new Error(`Cannot register two commands with the same id: ${C.id}`);if(l.add(p.CommandsRegistry.registerCommand({id:C.id,handler:(_,...E)=>r.run(_,...E),metadata:C.metadata})),Array.isArray(u))for(const _ of u)l.add(e.MenuRegistry.appendMenuItem(_.id,{command:{...C,precondition:_.precondition===null?void 0:C.precondition},..._}));else u&&l.add(e.MenuRegistry.appendMenuItem(u.id,{command:{...C,precondition:u.precondition===null?void 0:C.precondition},...u}));if(h&&(l.add(e.MenuRegistry.appendMenuItem(t.CommandPalette,{command:C,when:C.precondition})),l.add(e.MenuRegistry.addCommand(C))),Array.isArray(f))for(const _ of f)l.add(b.KeybindingsRegistry.registerKeybindingRule({..._,id:C.id,when:C.precondition?w.ContextKeyExpr.and(C.precondition,_.when):_.when}));else f&&l.add(b.KeybindingsRegistry.registerKeybindingRule({...f,id:C.id,when:C.precondition?w.ContextKeyExpr.and(C.precondition,f.when):f.when}));return l}e.registerAction2=d}),define(ne[810],se([1,0,44,208,733,28]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleTabFocusModeAction=void 0;class S extends D.Action2{constructor(){super({id:S.ID,title:y.localize2(2,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const v=!k.TabFocus.getTabFocusMode();k.TabFocus.setTabFocusMode(v),v?(0,L.alert)(y.localize(0,null)):(0,L.alert)(y.localize(1,null))}}e.ToggleTabFocusModeAction=S,S.ID="editor.action.toggleTabFocusMode",(0,D.registerAction2)(S)}),define(ne[364],se([1,0,238,609,14,126,752,2,6]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextScopedReplaceInput=e.ContextScopedFindInput=e.registerAndCreateHistoryNavigationContext=e.historyNavigationVisible=void 0,e.historyNavigationVisible=new y.RawContextKey("suggestWidgetVisible",!1,(0,S.localize)(0,null));const v="historyNavigationWidgetFocus",b="historyNavigationForwardsEnabled",a="historyNavigationBackwardsEnabled";let n;const i=[];function t(m,c){if(i.includes(c))throw new Error("Cannot register the same widget multiple times");i.push(c);const d=new p.DisposableStore,s=new y.RawContextKey(v,!1).bindTo(m),l=new y.RawContextKey(b,!0).bindTo(m),r=new y.RawContextKey(a,!0).bindTo(m),h=()=>{s.set(!0),n=c},u=()=>{s.set(!1),n===c&&(n=void 0)};return(0,w.isActiveElement)(c.element)&&h(),d.add(c.onDidFocus(()=>h())),d.add(c.onDidBlur(()=>u())),d.add((0,p.toDisposable)(()=>{i.splice(i.indexOf(c),1),u()})),{historyNavigationForwardsEnablement:l,historyNavigationBackwardsEnablement:r,dispose(){d.dispose()}}}e.registerAndCreateHistoryNavigationContext=t;let o=class extends L.FindInput{constructor(c,d,s,l){super(c,d,s);const r=this._register(l.createScoped(this.inputBox.element));this._register(t(r,this.inputBox))}};e.ContextScopedFindInput=o,e.ContextScopedFindInput=o=De([he(3,y.IContextKeyService)],o);let g=class extends k.ReplaceInput{constructor(c,d,s,l,r=!1){super(c,d,r,s);const h=this._register(l.createScoped(this.inputBox.element));this._register(t(h,this.inputBox))}};e.ContextScopedReplaceInput=g,e.ContextScopedReplaceInput=g=De([he(3,y.IContextKeyService)],g),D.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:y.ContextKeyExpr.and(y.ContextKeyExpr.has(v),y.ContextKeyExpr.equals(a,!0),y.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:16,secondary:[528],handler:m=>{n?.showPreviousValue()}}),D.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:y.ContextKeyExpr.and(y.ContextKeyExpr.has(v),y.ContextKeyExpr.equals(b,!0),y.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:18,secondary:[530],handler:m=>{n?.showNextValue()}})}),define(ne[144],se([1,0,19,12,73,2,63,20,22,9,5,70,120,726,28,25,14,18,364]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickSuggestionsOptions=e.showSimpleSuggestions=e.getSuggestionComparator=e.provideSuggestionItems=e.CompletionItemModel=e.getSnippetSuggestSupport=e.CompletionOptions=e.CompletionItem=e.suggestWidgetStatusbarMenu=e.Context=void 0,e.Context={Visible:c.historyNavigationVisible,HasFocusedSuggestion:new g.RawContextKey("suggestWidgetHasFocusedSuggestion",!1,(0,i.localize)(0,null)),DetailsVisible:new g.RawContextKey("suggestWidgetDetailsVisible",!1,(0,i.localize)(1,null)),MultipleSuggestions:new g.RawContextKey("suggestWidgetMultipleSuggestions",!1,(0,i.localize)(2,null)),MakesTextEdit:new g.RawContextKey("suggestionMakesTextEdit",!0,(0,i.localize)(3,null)),AcceptSuggestionsOnEnter:new g.RawContextKey("acceptSuggestionOnEnter",!0,(0,i.localize)(4,null)),HasInsertAndReplaceRange:new g.RawContextKey("suggestionHasInsertAndReplaceRange",!1,(0,i.localize)(5,null)),InsertMode:new g.RawContextKey("suggestionInsertMode",void 0,{type:"string",description:(0,i.localize)(6,null)}),CanResolve:new g.RawContextKey("suggestionCanResolve",!1,(0,i.localize)(7,null))},e.suggestWidgetStatusbarMenu=new t.MenuId("suggestWidgetStatusBar");class d{constructor(M,N,P,F){var O;this.position=M,this.completion=N,this.container=P,this.provider=F,this.isInvalid=!1,this.score=y.FuzzyScore.Default,this.distance=0,this.textLabel=typeof N.label=="string"?N.label:(O=N.label)===null||O===void 0?void 0:O.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=N.sortText&&N.sortText.toLowerCase(),this.filterTextLow=N.filterText&&N.filterText.toLowerCase(),this.extensionId=N.extensionId,b.Range.isIRange(N.range)?(this.editStart=new v.Position(N.range.startLineNumber,N.range.startColumn),this.editInsertEnd=new v.Position(N.range.endLineNumber,N.range.endColumn),this.editReplaceEnd=new v.Position(N.range.endLineNumber,N.range.endColumn),this.isInvalid=this.isInvalid||b.Range.spansMultipleLines(N.range)||N.range.startLineNumber!==M.lineNumber):(this.editStart=new v.Position(N.range.insert.startLineNumber,N.range.insert.startColumn),this.editInsertEnd=new v.Position(N.range.insert.endLineNumber,N.range.insert.endColumn),this.editReplaceEnd=new v.Position(N.range.replace.endLineNumber,N.range.replace.endColumn),this.isInvalid=this.isInvalid||b.Range.spansMultipleLines(N.range.insert)||b.Range.spansMultipleLines(N.range.replace)||N.range.insert.startLineNumber!==M.lineNumber||N.range.replace.startLineNumber!==M.lineNumber||N.range.insert.startColumn!==N.range.replace.startColumn),typeof F.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(M){if(!this._resolveCache){const N=M.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),P=new S.StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,M)).then(F=>{Object.assign(this.completion,F),this._resolveDuration=P.elapsed()},F=>{(0,k.isCancellationError)(F)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{N.dispose()})}return this._resolveCache}}e.CompletionItem=d;class s{constructor(M=2,N=new Set,P=new Set,F=new Map,O=!0){this.snippetSortOrder=M,this.kindFilter=N,this.providerFilter=P,this.providerItemsToReuse=F,this.showDeprecated=O}}e.CompletionOptions=s,s.default=new s;let l;function r(){return l}e.getSnippetSuggestSupport=r;class h{constructor(M,N,P,F){this.items=M,this.needsClipboard=N,this.durations=P,this.disposable=F}}e.CompletionItemModel=h;async function u(R,M,N,P=s.default,F={triggerKind:0},O=L.CancellationToken.None){const B=new S.StopWatch;N=N.clone();const W=M.getWordAtPosition(N),V=W?new b.Range(N.lineNumber,W.startColumn,N.lineNumber,W.endColumn):b.Range.fromPositions(N),z={replace:V,insert:V.setEndPosition(N.lineNumber,N.column)},K=[],j=new D.DisposableStore,x=[];let re=!1;const ie=(X,Y,le)=>{var de,ge,pe;let Q=!1;if(!Y)return Q;for(const U of Y.suggestions)if(!P.kindFilter.has(U.kind)){if(!P.showDeprecated&&(!((de=U?.tags)===null||de===void 0)&&de.includes(1)))continue;U.range||(U.range=z),U.sortText||(U.sortText=typeof U.label=="string"?U.label:U.label.label),!re&&U.insertTextRules&&U.insertTextRules&4&&(re=n.SnippetParser.guessNeedsClipboard(U.insertText)),K.push(new d(N,U,Y,X)),Q=!0}return(0,D.isDisposable)(Y)&&j.add(Y),x.push({providerName:(ge=X._debugDisplayName)!==null&&ge!==void 0?ge:"unknown_provider",elapsedProvider:(pe=Y.duration)!==null&&pe!==void 0?pe:-1,elapsedOverall:le.elapsed()}),Q},J=(async()=>{if(!l||P.kindFilter.has(27))return;const X=P.providerItemsToReuse.get(l);if(X){X.forEach(de=>K.push(de));return}if(P.providerFilter.size>0&&!P.providerFilter.has(l))return;const Y=new S.StopWatch,le=await l.provideCompletionItems(M,N,F,O);ie(l,le,Y)})();for(const X of R.orderedGroups(M)){let Y=!1;if(await Promise.all(X.map(async le=>{if(P.providerItemsToReuse.has(le)){const de=P.providerItemsToReuse.get(le);de.forEach(ge=>K.push(ge)),Y=Y||de.length>0;return}if(!(P.providerFilter.size>0&&!P.providerFilter.has(le)))try{const de=new S.StopWatch,ge=await le.provideCompletionItems(M,N,F,O);Y=ie(le,ge,de)||Y}catch(de){(0,k.onUnexpectedExternalError)(de)}})),Y||O.isCancellationRequested)break}return await J,O.isCancellationRequested?(j.dispose(),Promise.reject(new k.CancellationError)):new h(K.sort(I(P.snippetSortOrder)),re,{entries:x,elapsed:B.elapsed()},j)}e.provideSuggestionItems=u;function f(R,M){if(R.sortTextLow&&M.sortTextLow){if(R.sortTextLowM.sortTextLow)return 1}return R.textLabelM.textLabel?1:R.completion.kind-M.completion.kind}function C(R,M){if(R.completion.kind!==M.completion.kind){if(R.completion.kind===27)return-1;if(M.completion.kind===27)return 1}return f(R,M)}function _(R,M){if(R.completion.kind!==M.completion.kind){if(R.completion.kind===27)return 1;if(M.completion.kind===27)return-1}return f(R,M)}const E=new Map;E.set(0,C),E.set(2,_),E.set(1,f);function I(R){return E.get(R)}e.getSuggestionComparator=I,o.CommandsRegistry.registerCommand("_executeCompletionItemProvider",async(R,...M)=>{const[N,P,F,O]=M;(0,p.assertType)(w.URI.isUri(N)),(0,p.assertType)(v.Position.isIPosition(P)),(0,p.assertType)(typeof F=="string"||!F),(0,p.assertType)(typeof O=="number"||!O);const{completionProvider:B}=R.get(m.ILanguageFeaturesService),W=await R.get(a.ITextModelService).createModelReference(N);try{const V={incomplete:!1,suggestions:[]},z=[],K=W.object.textEditorModel.validatePosition(P),j=await u(B,W.object.textEditorModel,K,void 0,{triggerCharacter:F??void 0,triggerKind:F?1:0});for(const x of j.items)z.length<(O??0)&&z.push(x.resolve(L.CancellationToken.None)),V.incomplete=V.incomplete||x.container.incomplete,V.suggestions.push(x.completion);try{return await Promise.all(z),V}finally{setTimeout(()=>j.disposable.dispose(),100)}}finally{W.dispose()}});function T(R,M){var N;(N=R.getContribution("editor.contrib.suggestController"))===null||N===void 0||N.triggerSuggest(new Set().add(M),void 0,!0)}e.showSimpleSuggestions=T;class A{static isAllOff(M){return M.other==="off"&&M.comments==="off"&&M.strings==="off"}static isAllOn(M){return M.other==="on"&&M.comments==="on"&&M.strings==="on"}static valueFor(M,N){switch(N){case 1:return M.comments;case 2:return M.strings;default:return M.other}}}e.QuickSuggestionsOptions=A}),define(ne[145],se([1,0,13,2,37]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessRegistry=e.Extensions=e.DefaultQuickAccessFilterValue=void 0;var D;(function(p){p[p.PRESERVE=0]="PRESERVE",p[p.LAST=1]="LAST"})(D||(e.DefaultQuickAccessFilterValue=D={})),e.Extensions={Quickaccess:"workbench.contributions.quickaccess"};class S{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(w){return w.prefix.length===0?this.defaultProvider=w:this.providers.push(w),this.providers.sort((v,b)=>b.prefix.length-v.prefix.length),(0,k.toDisposable)(()=>{this.providers.splice(this.providers.indexOf(w),1),this.defaultProvider===w&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return(0,L.coalesce)([this.defaultProvider,...this.providers])}getQuickAccessProvider(w){return w&&this.providers.find(b=>w.startsWith(b.prefix))||void 0||this.defaultProvider}}e.QuickAccessRegistry=S,y.Registry.add(e.Extensions.Quickaccess,new S)}),define(ne[811],se([1,0,757,37,2,34,145,72]),function(ee,e,L,k,y,D,S,p){"use strict";var w;Object.defineProperty(e,"__esModule",{value:!0}),e.HelpQuickAccessProvider=void 0;let v=w=class{constructor(a,n){this.quickInputService=a,this.keybindingService=n,this.registry=k.Registry.as(S.Extensions.Quickaccess)}provide(a){const n=new y.DisposableStore;return n.add(a.onDidAccept(()=>{const[i]=a.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),n.add(a.onDidChangeValue(i=>{const t=this.registry.getQuickAccessProvider(i.substr(w.PREFIX.length));t&&t.prefix&&t.prefix!==w.PREFIX&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),a.items=this.getQuickAccessProviders().filter(i=>i.prefix!==w.PREFIX),n}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((n,i)=>n.prefix.localeCompare(i.prefix)).flatMap(n=>this.createPicks(n))}createPicks(a){return a.helpEntries.map(n=>{const i=n.prefix||a.prefix,t=i||"\u2026";return{prefix:i,label:t,keybinding:n.commandId?this.keybindingService.lookupKeybinding(n.commandId):void 0,ariaLabel:(0,L.localize)(0,null,t,n.description),description:n.description}})}};e.HelpQuickAccessProvider=v,v.PREFIX="?",e.HelpQuickAccessProvider=v=w=De([he(0,p.IQuickInputService),he(1,D.IKeybindingService)],v)}),define(ne[812],se([1,0,37,145,99,811]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),L.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:D.HelpQuickAccessProvider,prefix:"",helpEntries:[{description:y.QuickHelpNLS.helpQuickAccessActionLabel}]})}),define(ne[813],se([1,0,15,19,7,2,8,145,72,37]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessController=void 0;let b=class extends D.Disposable{constructor(n,i){super(),this.quickInputService=n,this.instantiationService=i,this.registry=v.Registry.as(p.Extensions.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(n="",i){this.doShowOrPick(n,!1,i)}doShowOrPick(n,i,t){var o;const[g,m]=this.getOrInstantiateProvider(n),c=this.visibleQuickAccess,d=c?.descriptor;if(c&&m&&d===m){n!==m.prefix&&!t?.preserveValue&&(c.picker.value=n),this.adjustValueSelection(c.picker,m,t);return}if(m&&!t?.preserveValue){let u;if(c&&d&&d!==m){const f=c.value.substr(d.prefix.length);f&&(u=`${m.prefix}${f}`)}if(!u){const f=g?.defaultFilterValue;f===p.DefaultQuickAccessFilterValue.LAST?u=this.lastAcceptedPickerValues.get(m):typeof f=="string"&&(u=`${m.prefix}${f}`)}typeof u=="string"&&(n=u)}const s=new D.DisposableStore,l=s.add(this.quickInputService.createQuickPick());l.value=n,this.adjustValueSelection(l,m,t),l.placeholder=m?.placeholder,l.quickNavigate=t?.quickNavigateConfiguration,l.hideInput=!!l.quickNavigate&&!c,(typeof t?.itemActivation=="number"||t?.quickNavigateConfiguration)&&(l.itemActivation=(o=t?.itemActivation)!==null&&o!==void 0?o:w.ItemActivation.SECOND),l.contextKey=m?.contextKey,l.filterValue=u=>u.substring(m?m.prefix.length:0);let r;i&&(r=new L.DeferredPromise,s.add(y.Event.once(l.onWillAccept)(u=>{u.veto(),l.hide()}))),s.add(this.registerPickerListeners(l,g,m,n,t?.providerOptions));const h=s.add(new k.CancellationTokenSource);if(g&&s.add(g.provide(l,h.token,t?.providerOptions)),y.Event.once(l.onDidHide)(()=>{l.selectedItems.length===0&&h.cancel(),s.dispose(),r?.complete(l.selectedItems.slice(0))}),l.show(),i)return r?.p}adjustValueSelection(n,i,t){var o;let g;t?.preserveValue?g=[n.value.length,n.value.length]:g=[(o=i?.prefix.length)!==null&&o!==void 0?o:0,n.value.length],n.valueSelection=g}registerPickerListeners(n,i,t,o,g){const m=new D.DisposableStore,c=this.visibleQuickAccess={picker:n,descriptor:t,value:o};return m.add((0,D.toDisposable)(()=>{c===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),m.add(n.onDidChangeValue(d=>{const[s]=this.getOrInstantiateProvider(d);s!==i?this.show(d,{preserveValue:!0,providerOptions:g}):c.value=d})),t&&m.add(n.onDidAccept(()=>{this.lastAcceptedPickerValues.set(t,n.value)})),m}getOrInstantiateProvider(n){const i=this.registry.getQuickAccessProvider(n);if(!i)return[void 0,void 0];let t=this.mapProviderToDescriptor.get(i);return t||(t=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,t)),[t,i]}};e.QuickAccessController=b,e.QuickAccessController=b=De([he(0,w.IQuickInputService),he(1,S.IInstantiationService)],b)}),define(ne[814],se([1,0,27,29,103,499]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SeverityIcon=void 0;var D;(function(S){function p(w){switch(w){case y.default.Ignore:return"severity-ignore "+k.ThemeIcon.asClassName(L.Codicon.info);case y.default.Info:return k.ThemeIcon.asClassName(L.Codicon.info);case y.default.Warning:return k.ThemeIcon.asClassName(L.Codicon.warning);case y.default.Error:return k.ThemeIcon.asClassName(L.Codicon.error);default:return""}}S.className=p})(D||(e.SeverityIcon=D={}))}),define(ne[94],se([1,0,7,2,20,614,8]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageService=e.AbstractStorageService=e.loadKeyTargets=e.WillSaveStateReason=e.IStorageService=e.TARGET_KEY=void 0,e.TARGET_KEY="__$__targetStorageMarker",e.IStorageService=(0,S.createDecorator)("storageService");var p;(function(a){a[a.NONE=0]="NONE",a[a.SHUTDOWN=1]="SHUTDOWN"})(p||(e.WillSaveStateReason=p={}));function w(a){const n=a.get(e.TARGET_KEY);if(n)try{return JSON.parse(n)}catch{}return Object.create(null)}e.loadKeyTargets=w;class v extends k.Disposable{constructor(n={flushInterval:v.DEFAULT_FLUSH_INTERVAL}){super(),this.options=n,this._onDidChangeValue=this._register(new L.PauseableEmitter),this._onDidChangeTarget=this._register(new L.PauseableEmitter),this._onWillSaveState=this._register(new L.Emitter),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(n,i,t){return L.Event.filter(this._onDidChangeValue.event,o=>o.scope===n&&(i===void 0||o.key===i),t)}emitDidChangeValue(n,i){const{key:t,external:o}=i;if(t===e.TARGET_KEY){switch(n){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:n})}else this._onDidChangeValue.fire({scope:n,key:t,target:this.getKeyTargets(n)[t],external:o})}get(n,i,t){var o;return(o=this.getStorage(i))===null||o===void 0?void 0:o.get(n,t)}getBoolean(n,i,t){var o;return(o=this.getStorage(i))===null||o===void 0?void 0:o.getBoolean(n,t)}getNumber(n,i,t){var o;return(o=this.getStorage(i))===null||o===void 0?void 0:o.getNumber(n,t)}store(n,i,t,o,g=!1){if((0,y.isUndefinedOrNull)(i)){this.remove(n,t,g);return}this.withPausedEmitters(()=>{var m;this.updateKeyTarget(n,t,o),(m=this.getStorage(t))===null||m===void 0||m.set(n,i,g)})}remove(n,i,t=!1){this.withPausedEmitters(()=>{var o;this.updateKeyTarget(n,i,void 0),(o=this.getStorage(i))===null||o===void 0||o.delete(n,t)})}withPausedEmitters(n){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{n()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(n,i,t,o=!1){var g,m;const c=this.getKeyTargets(i);typeof t=="number"?c[n]!==t&&(c[n]=t,(g=this.getStorage(i))===null||g===void 0||g.set(e.TARGET_KEY,JSON.stringify(c),o)):typeof c[n]=="number"&&(delete c[n],(m=this.getStorage(i))===null||m===void 0||m.set(e.TARGET_KEY,JSON.stringify(c),o))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(n){switch(n){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(n){const i=this.getStorage(n);return i?w(i):Object.create(null)}}e.AbstractStorageService=v,v.DEFAULT_FLUSH_INTERVAL=60*1e3;class b extends v{constructor(){super(),this.applicationStorage=this._register(new D.Storage(new D.InMemoryStorageDatabase,{hint:D.StorageHint.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new D.Storage(new D.InMemoryStorageDatabase,{hint:D.StorageHint.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new D.Storage(new D.InMemoryStorageDatabase,{hint:D.StorageHint.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(n=>this.emitDidChangeValue(1,n))),this._register(this.profileStorage.onDidChangeStorage(n=>this.emitDidChangeValue(0,n))),this._register(this.applicationStorage.onDidChangeStorage(n=>this.emitDidChangeValue(-1,n)))}getStorage(n){switch(n){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}e.InMemoryStorageService=b}),define(ne[815],se([1,0,7,53,5,350,45,8,94,50,6]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensCache=e.ICodeLensCache=void 0,e.ICodeLensCache=(0,p.createDecorator)("ICodeLensCache");class a{constructor(t,o){this.lineCount=t,this.data=o}}let n=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new k.LRUCache(20,.75);const o="codelens/cache";(0,b.runWhenWindowIdle)(v.mainWindow,()=>t.remove(o,1));const g="codelens/cache2",m=t.get(g,1,"{}");this._deserialize(m),L.Event.once(t.onWillSaveState)(c=>{c.reason===w.WillSaveStateReason.SHUTDOWN&&t.store(g,this._serialize(),1,1)})}put(t,o){const g=o.lenses.map(d=>{var s;return{range:d.symbol.range,command:d.symbol.command&&{id:"",title:(s=d.symbol.command)===null||s===void 0?void 0:s.title}}}),m=new D.CodeLensModel;m.add({lenses:g,dispose:()=>{}},this._fakeProvider);const c=new a(t.getLineCount(),m);this._cache.set(t.uri.toString(),c)}get(t){const o=this._cache.get(t.uri.toString());return o&&o.lineCount===t.getLineCount()?o.data:void 0}delete(t){this._cache.delete(t.uri.toString())}_serialize(){const t=Object.create(null);for(const[o,g]of this._cache){const m=new Set;for(const c of g.data.lenses)m.add(c.symbol.range.startLineNumber);t[o]={lineCount:g.lineCount,lines:[...m.values()]}}return JSON.stringify(t)}_deserialize(t){try{const o=JSON.parse(t);for(const g in o){const m=o[g],c=[];for(const s of m.lines)c.push({range:new y.Range(s,1,s,11)});const d=new D.CodeLensModel;d.add({lenses:c,dispose(){}},this._fakeProvider),this._cache.set(g,new a(m.lineCount,d))}}catch{}}};e.CodeLensCache=n,e.CodeLensCache=n=De([he(0,w.IStorageService)],n),(0,S.registerSingleton)(e.ICodeLensCache,n,1)}),define(ne[365],se([1,0,15,2,53,205,30,26,45,8,94]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.ISuggestMemoryService=e.SuggestMemoryService=e.PrefixMemory=e.LRUMemory=e.NoMemory=e.Memory=void 0;class n{constructor(c){this.name=c}select(c,d,s){if(s.length===0)return 0;const l=s[0].score[0];for(let r=0;rf&&E.type===s[C].completion.kind&&E.insertText===s[C].completion.insertText&&(f=E.touch,u=C),s[C].completion.preselect&&h===-1)return h=C}return u!==-1?u:h!==-1?h:0}toJSON(){return this._cache.toJSON()}fromJSON(c){this._cache.clear();const d=0;for(const[s,l]of c)l.touch=d,l.type=typeof l.type=="number"?l.type:S.CompletionItemKinds.fromString(l.type),this._cache.set(s,l);this._seq=this._cache.size}}e.LRUMemory=t;class o extends n{constructor(){super("recentlyUsedByPrefix"),this._trie=D.TernarySearchTree.forStrings(),this._seq=0}memorize(c,d,s){const{word:l}=c.getWordUntilPosition(d),r=`${c.getLanguageId()}/${l}`;this._trie.set(r,{type:s.completion.kind,insertText:s.completion.insertText,touch:this._seq++})}select(c,d,s){const{word:l}=c.getWordUntilPosition(d);if(!l)return super.select(c,d,s);const r=`${c.getLanguageId()}/${l}`;let h=this._trie.get(r);if(h||(h=this._trie.findSubstr(r)),h)for(let u=0;uc.push([s,d])),c.sort((d,s)=>-(d[1].touch-s[1].touch)).forEach((d,s)=>d[1].touch=s),c.slice(0,200)}fromJSON(c){if(this._trie.clear(),c.length>0){this._seq=c[0][1].touch+1;for(const[d,s]of c)s.type=typeof s.type=="number"?s.type:S.CompletionItemKinds.fromString(s.type),this._trie.set(d,s)}}}e.PrefixMemory=o;let g=a=class{constructor(c,d){this._storageService=c,this._configService=d,this._disposables=new k.DisposableStore,this._persistSoon=new L.RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(c.onWillSaveState(s=>{s.reason===b.WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(c,d,s){this._withStrategy(c,d).memorize(c,d,s),this._persistSoon.schedule()}select(c,d,s){return this._withStrategy(c,d).select(c,d,s)}_withStrategy(c,d){var s;const l=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:c.getLanguageIdAtPosition(d.lineNumber,d.column),resource:c.uri});if(((s=this._strategy)===null||s===void 0?void 0:s.name)!==l){this._saveState();const r=a._strategyCtors.get(l)||i;this._strategy=new r;try{const u=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,f=this._storageService.get(`${a._storagePrefix}/${l}`,u);f&&this._strategy.fromJSON(JSON.parse(f))}catch{}}return this._strategy}_saveState(){if(this._strategy){const d=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,s=JSON.stringify(this._strategy);this._storageService.store(`${a._storagePrefix}/${this._strategy.name}`,s,d,1)}}};e.SuggestMemoryService=g,g._strategyCtors=new Map([["recentlyUsedByPrefix",o],["recentlyUsed",t],["first",i]]),g._storagePrefix="suggest/memories",e.SuggestMemoryService=g=a=De([he(0,b.IStorageService),he(1,p.IConfigurationService)],g),e.ISuggestMemoryService=(0,v.createDecorator)("ISuggestMemories"),(0,w.registerSingleton)(e.ISuggestMemoryService,g,1)}),define(ne[816],se([1,0,15,7,2,28,25,14,42,94,13,746]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";var n,i;Object.defineProperty(e,"__esModule",{value:!0}),e.MenuService=void 0;let t=class{constructor(s,l){this._commandService=s,this._hiddenStates=new o(l)}createMenu(s,l,r){return new m(s,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,l)}resetHiddenStates(s){this._hiddenStates.reset(s)}};e.MenuService=t,e.MenuService=t=De([he(0,S.ICommandService),he(1,v.IStorageService)],t);let o=n=class{constructor(s){this._storageService=s,this._disposables=new y.DisposableStore,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const l=s.get(n._key,0,"{}");this._data=JSON.parse(l)}catch{this._data=Object.create(null)}this._disposables.add(s.onDidChangeValue(0,n._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const l=s.get(n._key,0,"{}");this._data=JSON.parse(l)}catch(l){console.log("FAILED to read storage after UPDATE",l)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(s,l){var r;return(r=this._hiddenByDefaultCache.get(`${s.id}/${l}`))!==null&&r!==void 0?r:!1}setDefaultState(s,l,r){this._hiddenByDefaultCache.set(`${s.id}/${l}`,r)}isHidden(s,l){var r,h;const u=this._isHiddenByDefault(s,l),f=(h=(r=this._data[s.id])===null||r===void 0?void 0:r.includes(l))!==null&&h!==void 0?h:!1;return u?!f:f}updateHidden(s,l,r){this._isHiddenByDefault(s,l)&&(r=!r);const u=this._data[s.id];if(r)u?u.indexOf(l)<0&&u.push(l):this._data[s.id]=[l];else if(u){const f=u.indexOf(l);f>=0&&(0,b.removeFastWithoutKeepingOrder)(u,f),u.length===0&&delete this._data[s.id]}this._persist()}reset(s){if(s===void 0)this._data=Object.create(null),this._persist();else{for(const{id:l}of s)this._data[l]&&delete this._data[l];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const s=JSON.stringify(this._data);this._storageService.store(n._key,s,0,0)}finally{this._ignoreChangeEvent=!1}}};o._key="menu.hiddenCommands",o=n=De([he(0,v.IStorageService)],o);let g=i=class{constructor(s,l,r,h,u){this._id=s,this._hiddenStates=l,this._collectContextKeysForSubmenus=r,this._commandService=h,this._contextKeyService=u,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const s=D.MenuRegistry.getMenuItems(this._id);let l;s.sort(i._compareMenuItems);for(const r of s){const h=r.group||"";(!l||l[0]!==h)&&(l=[h,[]],this._menuGroups.push(l)),l[1].push(r),this._collectContextKeys(r)}}_collectContextKeys(s){if(i._fillInKbExprKeys(s.when,this._structureContextKeys),(0,D.isIMenuItem)(s)){if(s.command.precondition&&i._fillInKbExprKeys(s.command.precondition,this._preconditionContextKeys),s.command.toggled){const l=s.command.toggled.condition||s.command.toggled;i._fillInKbExprKeys(l,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&D.MenuRegistry.getMenuItems(s.submenu).forEach(this._collectContextKeys,this)}createActionGroups(s){const l=[];for(const r of this._menuGroups){const[h,u]=r,f=[];for(const C of u)if(this._contextKeyService.contextMatchesRules(C.when)){const _=(0,D.isIMenuItem)(C);_&&this._hiddenStates.setDefaultState(this._id,C.command.id,!!C.isHiddenByDefault);const E=c(this._id,_?C.command:C,this._hiddenStates);if(_)f.push(new D.MenuItemAction(C.command,C.alt,s,E,this._contextKeyService,this._commandService));else{const I=new i(C.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._contextKeyService).createActionGroups(s),T=w.Separator.join(...I.map(A=>A[1]));T.length>0&&f.push(new D.SubmenuItemAction(C,E,T))}}f.length>0&&l.push([h,f])}return l}static _fillInKbExprKeys(s,l){if(s)for(const r of s.keys())l.add(r)}static _compareMenuItems(s,l){const r=s.group,h=l.group;if(r!==h){if(r){if(!h)return-1}else return 1;if(r==="navigation")return-1;if(h==="navigation")return 1;const C=r.localeCompare(h);if(C!==0)return C}const u=s.order||0,f=l.order||0;return uf?1:i._compareTitles((0,D.isIMenuItem)(s)?s.command.title:s.title,(0,D.isIMenuItem)(l)?l.command.title:l.title)}static _compareTitles(s,l){const r=typeof s=="string"?s:s.original,h=typeof l=="string"?l:l.original;return r.localeCompare(h)}};g=i=De([he(3,S.ICommandService),he(4,p.IContextKeyService)],g);let m=class{constructor(s,l,r,h,u){this._disposables=new y.DisposableStore,this._menuInfo=new g(s,l,r.emitEventsForSubmenuChanges,h,u);const f=new L.RunOnceScheduler(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},r.eventDebounceDelay);this._disposables.add(f),this._disposables.add(D.MenuRegistry.onDidChangeMenu(I=>{I.has(s)&&f.schedule()}));const C=this._disposables.add(new y.DisposableStore),_=I=>{let T=!1,A=!1,R=!1;for(const M of I)if(T=T||M.isStructuralChange,A=A||M.isEnablementChange,R=R||M.isToggleChange,T&&A&&R)break;return{menu:this,isStructuralChange:T,isEnablementChange:A,isToggleChange:R}},E=()=>{C.add(u.onDidChangeContext(I=>{const T=I.affectsSome(this._menuInfo.structureContextKeys),A=I.affectsSome(this._menuInfo.preconditionContextKeys),R=I.affectsSome(this._menuInfo.toggledContextKeys);(T||A||R)&&this._onDidChange.fire({menu:this,isStructuralChange:T,isEnablementChange:A,isToggleChange:R})})),C.add(l.onDidChange(I=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new k.DebounceEmitter({onWillAddFirstListener:E,onDidRemoveLastListener:C.clear.bind(C),delay:r.eventDebounceDelay,merge:_}),this.onDidChange=this._onDidChange.event}getActions(s){return this._menuInfo.createActionGroups(s)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};m=De([he(3,S.ICommandService),he(4,p.IContextKeyService)],m);function c(d,s,l){const r=(0,D.isISubmenuItem)(s)?s.submenu.id:s.id,h=typeof s.title=="string"?s.title:s.title.value,u=(0,w.toAction)({id:`hide/${d.id}/${r}`,label:(0,a.localize)(0,null,h),run(){l.updateHidden(d,r,!0)}}),f=(0,w.toAction)({id:`toggle/${d.id}/${r}`,label:h,get checked(){return!l.isHidden(d,r)},run(){l.updateHidden(d,r,!!this.checked)}});return{hide:u,toggle:f,get isHidden(){return!f.checked}}}}),define(ne[61],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITelemetryService=void 0,e.ITelemetryService=(0,L.createDecorator)("telemetryService")}),define(ne[16],se([1,0,630,22,35,9,51,70,28,25,14,8,126,37,61,20,60,6]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectAllCommand=e.RedoCommand=e.UndoCommand=e.EditorExtensionsRegistry=e.registerEditorContribution=e.registerInstantiatedEditorAction=e.registerMultiEditorAction=e.registerEditorAction=e.registerEditorCommand=e.registerModelAndPositionCommand=e.EditorAction2=e.MultiEditorAction=e.EditorAction=e.EditorCommand=e.ProxyCommand=e.MultiCommand=e.Command=void 0;class c{constructor(F){this.id=F.id,this.precondition=F.precondition,this._kbOpts=F.kbOpts,this._menuOpts=F.menuOpts,this.metadata=F.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const F=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const O of F){let B=O.kbExpr;this.precondition&&(B?B=b.ContextKeyExpr.and(B,this.precondition):B=this.precondition);const W={id:this.id,weight:O.weight,args:O.args,when:B,primary:O.primary,secondary:O.secondary,win:O.win,linux:O.linux,mac:O.mac};n.KeybindingsRegistry.registerKeybindingRule(W)}}v.CommandsRegistry.registerCommand({id:this.id,handler:(F,O)=>this.runCommand(F,O),metadata:this.metadata})}_registerMenuItem(F){w.MenuRegistry.appendMenuItem(F.menuId,{group:F.group,command:{id:this.id,title:F.title,icon:F.icon,precondition:this.precondition},when:F.when,order:F.order})}}e.Command=c;class d extends c{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,O,B,W){return this._implementations.push({priority:F,name:O,implementation:B,when:W}),this._implementations.sort((V,z)=>z.priority-V.priority),{dispose:()=>{for(let V=0;V{if(K.get(b.IContextKeyService).contextMatchesRules(B??void 0))return W(K,z,O)})}runCommand(F,O){return l.runEditorCommand(F,O,this.precondition,(B,W,V)=>this.runEditorCommand(B,W,V))}}e.EditorCommand=l;class r extends l{static convertOptions(F){let O;Array.isArray(F.menuOpts)?O=F.menuOpts:F.menuOpts?O=[F.menuOpts]:O=[];function B(W){return W.menuId||(W.menuId=w.MenuId.EditorContext),W.title||(W.title=F.label),W.when=b.ContextKeyExpr.and(F.precondition,W.when),W}return Array.isArray(F.contextMenuOpts)?O.push(...F.contextMenuOpts.map(B)):F.contextMenuOpts&&O.push(B(F.contextMenuOpts)),F.menuOpts=O,F}constructor(F){super(r.convertOptions(F)),this.label=F.label,this.alias=F.alias}runEditorCommand(F,O,B){return this.reportTelemetry(F,O),this.run(F,O,B||{})}reportTelemetry(F,O){F.get(t.ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}e.EditorAction=r;class h extends r{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,O){return this._implementations.push([F,O]),this._implementations.sort((B,W)=>W[0]-B[0]),{dispose:()=>{for(let B=0;B{var z,K;const j=V.get(b.IContextKeyService),x=V.get(g.ILogService);if(!j.contextMatchesRules((z=this.desc.precondition)!==null&&z!==void 0?z:void 0)){x.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(K=this.desc.precondition)===null||K===void 0?void 0:K.serialize());return}return this.runEditorCommand(V,W,...O)})}}e.EditorAction2=u;function f(P,F){v.CommandsRegistry.registerCommand(P,function(O,...B){const W=O.get(a.IInstantiationService),[V,z]=B;(0,o.assertType)(k.URI.isUri(V)),(0,o.assertType)(D.Position.isIPosition(z));const K=O.get(S.IModelService).getModel(V);if(K){const j=D.Position.lift(z);return W.invokeFunction(F,K,j,...B.slice(2))}return O.get(p.ITextModelService).createModelReference(V).then(j=>new Promise((x,re)=>{try{const ie=W.invokeFunction(F,j.object.textEditorModel,D.Position.lift(z),B.slice(2));x(ie)}catch(ie){re(ie)}}).finally(()=>{j.dispose()}))})}e.registerModelAndPositionCommand=f;function C(P){return M.INSTANCE.registerEditorCommand(P),P}e.registerEditorCommand=C;function _(P){const F=new P;return M.INSTANCE.registerEditorAction(F),F}e.registerEditorAction=_;function E(P){return M.INSTANCE.registerEditorAction(P),P}e.registerMultiEditorAction=E;function I(P){M.INSTANCE.registerEditorAction(P)}e.registerInstantiatedEditorAction=I;function T(P,F,O){M.INSTANCE.registerEditorContribution(P,F,O)}e.registerEditorContribution=T;var A;(function(P){function F(z){return M.INSTANCE.getEditorCommand(z)}P.getEditorCommand=F;function O(){return M.INSTANCE.getEditorActions()}P.getEditorActions=O;function B(){return M.INSTANCE.getEditorContributions()}P.getEditorContributions=B;function W(z){return M.INSTANCE.getEditorContributions().filter(K=>z.indexOf(K.id)>=0)}P.getSomeEditorContributions=W;function V(){return M.INSTANCE.getDiffEditorContributions()}P.getDiffEditorContributions=V})(A||(e.EditorExtensionsRegistry=A={}));const R={EditorCommonContributions:"editor.contributions"};class M{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(F,O,B){this.editorContributions.push({id:F,ctor:O,instantiation:B})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(F){F.register(),this.editorActions.push(F)}getEditorActions(){return this.editorActions}registerEditorCommand(F){F.register(),this.editorCommands[F.id]=F}getEditorCommand(F){return this.editorCommands[F]||null}}M.INSTANCE=new M,i.Registry.add(R.EditorCommonContributions,M.INSTANCE);function N(P){return P.register(),P}e.UndoCommand=N(new d({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:w.MenuId.MenubarEditMenu,group:"1_do",title:L.localize(0,null),order:1},{menuId:w.MenuId.CommandPalette,group:"",title:L.localize(1,null),order:1}]})),N(new s(e.UndoCommand,{id:"default:undo",precondition:void 0})),e.RedoCommand=N(new d({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:w.MenuId.MenubarEditMenu,group:"1_do",title:L.localize(2,null),order:2},{menuId:w.MenuId.CommandPalette,group:"",title:L.localize(3,null),order:1}]})),N(new s(e.RedoCommand,{id:"default:redo",precondition:void 0})),e.SelectAllCommand=N(new d({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:w.MenuId.MenubarSelectionMenu,group:"1_basic",title:L.localize(4,null),order:1},{menuId:w.MenuId.CommandPalette,group:"",title:L.localize(5,null),order:1}]}))}),define(ne[197],se([1,0,629,59,20,44,16,35,520,76,213,214,256,9,5,21,14,126,6]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CoreEditingCommands=e.CoreNavigationCommands=e.RevealLine_=e.EditorScroll_=e.CoreEditorCommand=void 0;const d=0;class s extends S.EditorCommand{runEditorCommand(R,M,N){const P=M._getViewModel();P&&this.runCoreEditorCommand(P,N||{})}}e.CoreEditorCommand=s;var l;(function(A){const R=function(N){if(!y.isObject(N))return!1;const P=N;return!(!y.isString(P.to)||!y.isUndefined(P.by)&&!y.isString(P.by)||!y.isUndefined(P.value)&&!y.isNumber(P.value)||!y.isUndefined(P.revealCursor)&&!y.isBoolean(P.revealCursor))};A.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:R,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},A.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},A.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function M(N){let P;switch(N.to){case A.RawDirection.Up:P=1;break;case A.RawDirection.Right:P=2;break;case A.RawDirection.Down:P=3;break;case A.RawDirection.Left:P=4;break;default:return null}let F;switch(N.by){case A.RawUnit.Line:F=1;break;case A.RawUnit.WrappedLine:F=2;break;case A.RawUnit.Page:F=3;break;case A.RawUnit.HalfPage:F=4;break;case A.RawUnit.Editor:F=5;break;case A.RawUnit.Column:F=6;break;default:F=2}const O=Math.floor(N.value||1),B=!!N.revealCursor;return{direction:P,unit:F,value:O,revealCursor:B,select:!!N.select}}A.parse=M})(l||(e.EditorScroll_=l={}));var r;(function(A){const R=function(M){if(!y.isObject(M))return!1;const N=M;return!(!y.isNumber(N.lineNumber)&&!y.isString(N.lineNumber)||!y.isUndefined(N.at)&&!y.isString(N.at))};A.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:R,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},A.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})(r||(e.RevealLine_=r={}));class h{constructor(R){R.addImplementation(1e4,"code-editor",(M,N)=>{const P=M.get(p.ICodeEditorService).getFocusedCodeEditor();return P&&P.hasTextFocus()?this._runEditorCommand(M,P,N):!1}),R.addImplementation(1e3,"generic-dom-input-textarea",(M,N)=>{const P=(0,c.getActiveElement)();return P&&["input","textarea"].indexOf(P.tagName.toLowerCase())>=0?(this.runDOMCommand(P),!0):!1}),R.addImplementation(0,"generic-dom",(M,N)=>{const P=M.get(p.ICodeEditorService).getActiveCodeEditor();return P?(P.focus(),this._runEditorCommand(M,P,N)):!1})}_runEditorCommand(R,M,N){const P=this.runEditorCommand(R,M,N);return P||!0}}var u;(function(A){class R extends s{constructor(Y){super(Y),this._inSelectionMode=Y.inSelectionMode}runCoreEditorCommand(Y,le){if(!le.position)return;Y.model.pushStackElement(),Y.setCursorStates(le.source,3,[a.CursorMoveCommands.moveTo(Y,Y.getPrimaryCursorState(),this._inSelectionMode,le.position,le.viewPosition)])&&le.revealType!==2&&Y.revealPrimaryCursor(le.source,!0,!0)}}A.MoveTo=(0,S.registerEditorCommand)(new R({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),A.MoveToSelect=(0,S.registerEditorCommand)(new R({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class M extends s{runCoreEditorCommand(Y,le){Y.model.pushStackElement();const de=this._getColumnSelectResult(Y,Y.getPrimaryCursorState(),Y.getCursorColumnSelectData(),le);de!==null&&(Y.setCursorStates(le.source,3,de.viewStates.map(ge=>v.CursorState.fromViewState(ge))),Y.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:de.fromLineNumber,fromViewVisualColumn:de.fromVisualColumn,toViewLineNumber:de.toLineNumber,toViewVisualColumn:de.toVisualColumn}),de.reversed?Y.revealTopMostCursor(le.source):Y.revealBottomMostCursor(le.source))}}A.ColumnSelect=(0,S.registerEditorCommand)(new class extends M{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(X,Y,le,de){if(typeof de.position>"u"||typeof de.viewPosition>"u"||typeof de.mouseColumn>"u")return null;const ge=X.model.validatePosition(de.position),pe=X.coordinatesConverter.validateViewPosition(new i.Position(de.viewPosition.lineNumber,de.viewPosition.column),ge),Q=de.doColumnSelect?le.fromViewLineNumber:pe.lineNumber,U=de.doColumnSelect?le.fromViewVisualColumn:de.mouseColumn-1;return w.ColumnSelection.columnSelect(X.cursorConfig,X,Q,U,pe.lineNumber,de.mouseColumn-1)}}),A.CursorColumnSelectLeft=(0,S.registerEditorCommand)(new class extends M{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(X,Y,le,de){return w.ColumnSelection.columnSelectLeft(X.cursorConfig,X,le)}}),A.CursorColumnSelectRight=(0,S.registerEditorCommand)(new class extends M{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(X,Y,le,de){return w.ColumnSelection.columnSelectRight(X.cursorConfig,X,le)}});class N extends M{constructor(Y){super(Y),this._isPaged=Y.isPaged}_getColumnSelectResult(Y,le,de,ge){return w.ColumnSelection.columnSelectUp(Y.cursorConfig,Y,de,this._isPaged)}}A.CursorColumnSelectUp=(0,S.registerEditorCommand)(new N({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),A.CursorColumnSelectPageUp=(0,S.registerEditorCommand)(new N({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class P extends M{constructor(Y){super(Y),this._isPaged=Y.isPaged}_getColumnSelectResult(Y,le,de,ge){return w.ColumnSelection.columnSelectDown(Y.cursorConfig,Y,de,this._isPaged)}}A.CursorColumnSelectDown=(0,S.registerEditorCommand)(new P({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),A.CursorColumnSelectPageDown=(0,S.registerEditorCommand)(new P({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class F extends s{constructor(){super({id:"cursorMove",precondition:void 0,metadata:a.CursorMove.metadata})}runCoreEditorCommand(Y,le){const de=a.CursorMove.parse(le);de&&this._runCursorMove(Y,le.source,de)}_runCursorMove(Y,le,de){Y.model.pushStackElement(),Y.setCursorStates(le,3,F._move(Y,Y.getCursorStates(),de)),Y.revealPrimaryCursor(le,!0)}static _move(Y,le,de){const ge=de.select,pe=de.value;switch(de.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return a.CursorMoveCommands.simpleMove(Y,le,de.direction,ge,pe,de.unit);case 11:case 13:case 12:case 14:return a.CursorMoveCommands.viewportMove(Y,le,de.direction,ge,pe);default:return null}}}A.CursorMoveImpl=F,A.CursorMove=(0,S.registerEditorCommand)(new F);class O extends s{constructor(Y){super(Y),this._staticArgs=Y.args}runCoreEditorCommand(Y,le){let de=this._staticArgs;this._staticArgs.value===-1&&(de={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:le.pageSize||Y.cursorConfig.pageSize}),Y.model.pushStackElement(),Y.setCursorStates(le.source,3,a.CursorMoveCommands.simpleMove(Y,Y.getCursorStates(),de.direction,de.select,de.value,de.unit)),Y.revealPrimaryCursor(le.source,!0)}}A.CursorLeft=(0,S.registerEditorCommand)(new O({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),A.CursorLeftSelect=(0,S.registerEditorCommand)(new O({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1039}})),A.CursorRight=(0,S.registerEditorCommand)(new O({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),A.CursorRightSelect=(0,S.registerEditorCommand)(new O({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1041}})),A.CursorUp=(0,S.registerEditorCommand)(new O({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),A.CursorUpSelect=(0,S.registerEditorCommand)(new O({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),A.CursorPageUp=(0,S.registerEditorCommand)(new O({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:11}})),A.CursorPageUpSelect=(0,S.registerEditorCommand)(new O({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1035}})),A.CursorDown=(0,S.registerEditorCommand)(new O({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),A.CursorDownSelect=(0,S.registerEditorCommand)(new O({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),A.CursorPageDown=(0,S.registerEditorCommand)(new O({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:12}})),A.CursorPageDownSelect=(0,S.registerEditorCommand)(new O({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1036}})),A.CreateCursor=(0,S.registerEditorCommand)(new class extends s{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(X,Y){if(!Y.position)return;let le;Y.wholeLine?le=a.CursorMoveCommands.line(X,X.getPrimaryCursorState(),!1,Y.position,Y.viewPosition):le=a.CursorMoveCommands.moveTo(X,X.getPrimaryCursorState(),!1,Y.position,Y.viewPosition);const de=X.getCursorStates();if(de.length>1){const ge=le.modelState?le.modelState.position:null,pe=le.viewState?le.viewState.position:null;for(let Q=0,U=de.length;Qpe&&(ge=pe);const Q=new t.Range(ge,1,ge,X.model.getLineMaxColumn(ge));let U=0;if(le.at)switch(le.at){case r.RawAtArgument.Top:U=3;break;case r.RawAtArgument.Center:U=1;break;case r.RawAtArgument.Bottom:U=4;break;default:break}const Z=X.coordinatesConverter.convertModelRangeToViewRange(Q);X.revealRange(Y.source,!1,Z,U,0)}}),A.SelectAll=new class extends h{constructor(){super(S.SelectAllCommand)}runDOMCommand(X){k.isFirefox&&(X.focus(),X.select()),X.ownerDocument.execCommand("selectAll")}runEditorCommand(X,Y,le){const de=Y._getViewModel();de&&this.runCoreEditorCommand(de,le)}runCoreEditorCommand(X,Y){X.model.pushStackElement(),X.setCursorStates("keyboard",3,[a.CursorMoveCommands.selectAll(X,X.getPrimaryCursorState())])}},A.SetSelection=(0,S.registerEditorCommand)(new class extends s{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(X,Y){Y.selection&&(X.model.pushStackElement(),X.setCursorStates(Y.source,3,[v.CursorState.fromModelSelection(Y.selection)]))}})})(u||(e.CoreNavigationCommands=u={}));const f=g.ContextKeyExpr.and(o.EditorContextKeys.textInputFocus,o.EditorContextKeys.columnSelection);function C(A,R){m.KeybindingsRegistry.registerKeybindingRule({id:A,primary:R,when:f,weight:d+1})}C(u.CursorColumnSelectLeft.id,1039),C(u.CursorColumnSelectRight.id,1041),C(u.CursorColumnSelectUp.id,1040),C(u.CursorColumnSelectPageUp.id,1035),C(u.CursorColumnSelectDown.id,1042),C(u.CursorColumnSelectPageDown.id,1036);function _(A){return A.register(),A}var E;(function(A){class R extends S.EditorCommand{runEditorCommand(N,P,F){const O=P._getViewModel();O&&this.runCoreEditingCommand(P,O,F||{})}}A.CoreEditingCommand=R,A.LineBreakInsert=(0,S.registerEditorCommand)(new class extends R{constructor(){super({id:"lineBreakInsert",precondition:o.EditorContextKeys.writable,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(M,N,P){M.pushUndoStop(),M.executeCommands(this.id,n.TypeOperations.lineBreakInsert(N.cursorConfig,N.model,N.getCursorStates().map(F=>F.modelState.selection)))}}),A.Outdent=(0,S.registerEditorCommand)(new class extends R{constructor(){super({id:"outdent",precondition:o.EditorContextKeys.writable,kbOpts:{weight:d,kbExpr:g.ContextKeyExpr.and(o.EditorContextKeys.editorTextFocus,o.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(M,N,P){M.pushUndoStop(),M.executeCommands(this.id,n.TypeOperations.outdent(N.cursorConfig,N.model,N.getCursorStates().map(F=>F.modelState.selection))),M.pushUndoStop()}}),A.Tab=(0,S.registerEditorCommand)(new class extends R{constructor(){super({id:"tab",precondition:o.EditorContextKeys.writable,kbOpts:{weight:d,kbExpr:g.ContextKeyExpr.and(o.EditorContextKeys.editorTextFocus,o.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(M,N,P){M.pushUndoStop(),M.executeCommands(this.id,n.TypeOperations.tab(N.cursorConfig,N.model,N.getCursorStates().map(F=>F.modelState.selection))),M.pushUndoStop()}}),A.DeleteLeft=(0,S.registerEditorCommand)(new class extends R{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(M,N,P){const[F,O]=b.DeleteOperations.deleteLeft(N.getPrevEditOperationType(),N.cursorConfig,N.model,N.getCursorStates().map(B=>B.modelState.selection),N.getCursorAutoClosedCharacters());F&&M.pushUndoStop(),M.executeCommands(this.id,O),N.setPrevEditOperationType(2)}}),A.DeleteRight=(0,S.registerEditorCommand)(new class extends R{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:d,kbExpr:o.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(M,N,P){const[F,O]=b.DeleteOperations.deleteRight(N.getPrevEditOperationType(),N.cursorConfig,N.model,N.getCursorStates().map(B=>B.modelState.selection));F&&M.pushUndoStop(),M.executeCommands(this.id,O),N.setPrevEditOperationType(3)}}),A.Undo=new class extends h{constructor(){super(S.UndoCommand)}runDOMCommand(M){M.ownerDocument.execCommand("undo")}runEditorCommand(M,N,P){if(!(!N.hasModel()||N.getOption(91)===!0))return N.getModel().undo()}},A.Redo=new class extends h{constructor(){super(S.RedoCommand)}runDOMCommand(M){M.ownerDocument.execCommand("redo")}runEditorCommand(M,N,P){if(!(!N.hasModel()||N.getOption(91)===!0))return N.getModel().redo()}}})(E||(e.CoreEditingCommands=E={}));class I extends S.Command{constructor(R,M,N){super({id:R,precondition:void 0,metadata:N}),this._handlerId=M}runCommand(R,M){const N=R.get(p.ICodeEditorService).getFocusedCodeEditor();N&&N.trigger("keyboard",this._handlerId,M)}}function T(A,R){_(new I("default:"+A,A)),_(new I(A,A,R))}T("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),T("replacePreviousChar"),T("compositionType"),T("compositionStart"),T("compositionEnd"),T("paste"),T("cut")}),define(ne[817],se([1,0,243,16]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsContribution=void 0;let y=class{constructor(S,p){}dispose(){}};e.MarkerDecorationsContribution=y,y.ID="editor.contrib.markerDecorations",e.MarkerDecorationsContribution=y=De([he(1,L.IMarkerDecorationsService)],y),(0,k.registerEditorContribution)(y.ID,y,0)}),define(ne[818],se([1,0,197,9,17]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewController=void 0;class D{constructor(p,w,v,b){this.configuration=p,this.viewModel=w,this.userInputEvents=v,this.commandDelegate=b}paste(p,w,v,b){this.commandDelegate.paste(p,w,v,b)}type(p){this.commandDelegate.type(p)}compositionType(p,w,v,b){this.commandDelegate.compositionType(p,w,v,b)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(p){L.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:p})}_validateViewColumn(p){const w=this.viewModel.getLineMinColumn(p.lineNumber);return p.column=4?this._selectAll():p.mouseDownCount===3?this._hasMulticursorModifier(p)?p.inSelectionMode?this._lastCursorLineSelectDrag(p.position,p.revealType):this._lastCursorLineSelect(p.position,p.revealType):p.inSelectionMode?this._lineSelectDrag(p.position,p.revealType):this._lineSelect(p.position,p.revealType):p.mouseDownCount===2?p.onInjectedText||(this._hasMulticursorModifier(p)?this._lastCursorWordSelect(p.position,p.revealType):p.inSelectionMode?this._wordSelectDrag(p.position,p.revealType):this._wordSelect(p.position,p.revealType)):this._hasMulticursorModifier(p)?this._hasNonMulticursorModifier(p)||(p.shiftKey?this._columnSelect(p.position,p.mouseColumn,!0):p.inSelectionMode?this._lastCursorMoveToSelect(p.position,p.revealType):this._createCursor(p.position,!1)):p.inSelectionMode?p.altKey?this._columnSelect(p.position,p.mouseColumn,!0):b?this._columnSelect(p.position,p.mouseColumn,!0):this._moveToSelect(p.position,p.revealType):this.moveTo(p.position,p.revealType)}_usualArgs(p,w){return p=this._validateViewColumn(p),{source:"mouse",position:this._convertViewToModelPosition(p),viewPosition:p,revealType:w}}moveTo(p,w){L.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_moveToSelect(p,w){L.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_columnSelect(p,w,v){p=this._validateViewColumn(p),L.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(p),viewPosition:p,mouseColumn:w,doColumnSelect:v})}_createCursor(p,w){p=this._validateViewColumn(p),L.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(p),viewPosition:p,wholeLine:w})}_lastCursorMoveToSelect(p,w){L.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_wordSelect(p,w){L.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_wordSelectDrag(p,w){L.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_lastCursorWordSelect(p,w){L.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_lineSelect(p,w){L.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_lineSelectDrag(p,w){L.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_lastCursorLineSelect(p,w){L.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_lastCursorLineSelectDrag(p,w){L.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(p,w))}_selectAll(){L.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(p){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(p)}emitKeyDown(p){this.userInputEvents.emitKeyDown(p)}emitKeyUp(p){this.userInputEvents.emitKeyUp(p)}emitContextMenu(p){this.userInputEvents.emitContextMenu(p)}emitMouseMove(p){this.userInputEvents.emitMouseMove(p)}emitMouseLeave(p){this.userInputEvents.emitMouseLeave(p)}emitMouseUp(p){this.userInputEvents.emitMouseUp(p)}emitMouseDown(p){this.userInputEvents.emitMouseDown(p)}emitMouseDrag(p){this.userInputEvents.emitMouseDrag(p)}emitMouseDrop(p){this.userInputEvents.emitMouseDrop(p)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(p){this.userInputEvents.emitMouseWheel(p)}}e.ViewController=D}),define(ne[819],se([1,0,45,8,7,63,64,115,123,61]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";var b;Object.defineProperty(e,"__esModule",{value:!0}),e.WorkerBasedDocumentDiffProvider=e.WorkerBasedDiffProviderFactoryService=e.IDiffProviderFactoryService=void 0,e.IDiffProviderFactoryService=(0,k.createDecorator)("diffProviderFactoryService");let a=class{constructor(t){this.instantiationService=t}createDiffProvider(t){return this.instantiationService.createInstance(n,t)}};e.WorkerBasedDiffProviderFactoryService=a,e.WorkerBasedDiffProviderFactoryService=a=De([he(0,k.IInstantiationService)],a),(0,L.registerSingleton)(e.IDiffProviderFactoryService,a,1);let n=b=class{constructor(t,o,g){this.editorWorkerService=o,this.telemetryService=g,this.onDidChangeEventEmitter=new y.Emitter,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(t)}dispose(){var t;(t=this.diffAlgorithmOnDidChangeSubscription)===null||t===void 0||t.dispose()}async computeDiff(t,o,g,m){var c,d;if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(t,o,g,m);if(t.getLineCount()===1&&t.getLineMaxColumn(1)===1)return o.getLineCount()===1&&o.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new p.DetailedLineRangeMapping(new S.LineRange(1,2),new S.LineRange(1,o.getLineCount()+1),[new p.RangeMapping(t.getFullModelRange(),o.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const s=JSON.stringify([t.uri.toString(),o.uri.toString()]),l=JSON.stringify([t.id,o.id,t.getAlternativeVersionId(),o.getAlternativeVersionId(),JSON.stringify(g)]),r=b.diffCache.get(s);if(r&&r.context===l)return r.result;const h=D.StopWatch.create(),u=await this.editorWorkerService.computeDiff(t.uri,o.uri,g,this.diffAlgorithm),f=h.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:f,timedOut:(c=u?.quitEarly)!==null&&c!==void 0?c:!0,detectedMoves:g.computeMoves?(d=u?.moves.length)!==null&&d!==void 0?d:0:-1}),m.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!u)throw new Error("no diff result available");return b.diffCache.size>10&&b.diffCache.delete(b.diffCache.keys().next().value),b.diffCache.set(s,{result:u,context:l}),u}setOptions(t){var o;let g=!1;t.diffAlgorithm&&this.diffAlgorithm!==t.diffAlgorithm&&((o=this.diffAlgorithmOnDidChangeSubscription)===null||o===void 0||o.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=t.diffAlgorithm,typeof t.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=t.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),g=!0),g&&this.onDidChangeEventEmitter.fire()}};e.WorkerBasedDocumentDiffProvider=n,n.diffCache=new Map,e.WorkerBasedDocumentDiffProvider=n=b=De([he(1,w.IEditorWorkerService),he(2,v.ITelemetryService)],n)}),define(ne[366],se([1,0,15,19,2,32,819,87,64,294,115,185,296,292,20,13,90]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnchangedRegion=e.DiffMapping=e.DiffState=e.DiffEditorViewModel=void 0;let m=class extends y.Disposable{setActiveMovedText(C){this._activeMovedText.set(C,void 0)}constructor(C,_,E){super(),this.model=C,this._options=_,this._diffProviderFactoryService=E,this._isDiffUpToDate=(0,D.observableValue)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,D.observableValue)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,D.observableValue)(this,void 0),this.unchangedRegions=(0,D.derived)(this,R=>{var M,N;return this._options.hideUnchangedRegions.read(R)?(N=(M=this._unchangedRegions.read(R))===null||M===void 0?void 0:M.regions)!==null&&N!==void 0?N:[]:((0,D.transaction)(P=>{var F;for(const O of((F=this._unchangedRegions.get())===null||F===void 0?void 0:F.regions)||[])O.collapseAll(P)}),[])}),this.movedTextToCompare=(0,D.observableValue)(this,void 0),this._activeMovedText=(0,D.observableValue)(this,void 0),this._hoveredMovedText=(0,D.observableValue)(this,void 0),this.activeMovedText=(0,D.derived)(this,R=>{var M,N;return(N=(M=this.movedTextToCompare.read(R))!==null&&M!==void 0?M:this._hoveredMovedText.read(R))!==null&&N!==void 0?N:this._activeMovedText.read(R)}),this._cancellationTokenSource=new k.CancellationTokenSource,this._diffProvider=(0,D.derived)(this,R=>{const M=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(R)}),N=(0,D.observableSignalFromEvent)("onDidChange",M.onDidChange);return{diffProvider:M,onChangeSignal:N}}),this._register((0,y.toDisposable)(()=>this._cancellationTokenSource.cancel()));const I=(0,D.observableSignal)("contentChangedSignal"),T=this._register(new L.RunOnceScheduler(()=>I.trigger(void 0),200));this._register((0,D.autorun)(R=>{const M=this._unchangedRegions.read(R);if(!M||M.regions.some(W=>W.isDragged.read(R)))return;const N=M.originalDecorationIds.map(W=>C.original.getDecorationRange(W)).map(W=>W?w.LineRange.fromRangeInclusive(W):void 0),P=M.modifiedDecorationIds.map(W=>C.modified.getDecorationRange(W)).map(W=>W?w.LineRange.fromRangeInclusive(W):void 0),F=M.regions.map((W,V)=>!N[V]||!P[V]?void 0:new r(N[V].startLineNumber,P[V].startLineNumber,N[V].length,W.visibleLineCountTop.read(R),W.visibleLineCountBottom.read(R))).filter(t.isDefined),O=[];let B=!1;for(const W of(0,o.groupAdjacentBy)(F,(V,z)=>V.getHiddenModifiedRange(R).endLineNumberExclusive===z.getHiddenModifiedRange(R).startLineNumber))if(W.length>1){B=!0;const V=W.reduce((K,j)=>K+j.lineCount,0),z=new r(W[0].originalLineNumber,W[0].modifiedLineNumber,V,W[0].visibleLineCountTop.get(),W[W.length-1].visibleLineCountBottom.get());O.push(z)}else O.push(W[0]);if(B){const W=C.original.deltaDecorations(M.originalDecorationIds,O.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),V=C.modified.deltaDecorations(M.modifiedDecorationIds,O.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));(0,D.transaction)(z=>{this._unchangedRegions.set({regions:O,originalDecorationIds:W,modifiedDecorationIds:V},z)})}}));const A=(R,M,N)=>{const P=r.fromDiffs(R.changes,C.original.getLineCount(),C.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(N),this._options.hideUnchangedRegionsContextLineCount.read(N));let F;const O=this._unchangedRegions.get();if(O){const z=O.originalDecorationIds.map(re=>C.original.getDecorationRange(re)).map(re=>re?w.LineRange.fromRangeInclusive(re):void 0),K=O.modifiedDecorationIds.map(re=>C.modified.getDecorationRange(re)).map(re=>re?w.LineRange.fromRangeInclusive(re):void 0);let x=(0,p.filterWithPrevious)(O.regions.map((re,ie)=>{if(!z[ie]||!K[ie])return;const J=z[ie].length;return new r(z[ie].startLineNumber,K[ie].startLineNumber,J,Math.min(re.visibleLineCountTop.get(),J),Math.min(re.visibleLineCountBottom.get(),J-re.visibleLineCountTop.get()))}).filter(t.isDefined),(re,ie)=>!ie||re.modifiedLineNumber>=ie.modifiedLineNumber+ie.lineCount&&re.originalLineNumber>=ie.originalLineNumber+ie.lineCount).map(re=>new b.LineRangeMapping(re.getHiddenOriginalRange(N),re.getHiddenModifiedRange(N)));x=b.LineRangeMapping.clip(x,w.LineRange.ofLength(1,C.original.getLineCount()),w.LineRange.ofLength(1,C.modified.getLineCount())),F=b.LineRangeMapping.inverse(x,C.original.getLineCount(),C.modified.getLineCount())}const B=[];if(F)for(const z of P){const K=F.filter(j=>j.original.intersectsStrict(z.originalUnchangedRange)&&j.modified.intersectsStrict(z.modifiedUnchangedRange));B.push(...z.setVisibleRanges(K,M))}else B.push(...P);const W=C.original.deltaDecorations(O?.originalDecorationIds||[],B.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),V=C.modified.deltaDecorations(O?.modifiedDecorationIds||[],B.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:B,originalDecorationIds:W,modifiedDecorationIds:V},M)};this._register(C.modified.onDidChangeContent(R=>{if(this._diff.get()){const N=a.TextEditInfo.fromModelContentChanges(R.changes),P=(this._lastDiff,C.original,C.modified,void 0);P&&(this._lastDiff=P,(0,D.transaction)(F=>{this._diff.set(s.fromDiffResult(this._lastDiff),F),A(P,F);const O=this.movedTextToCompare.get();this.movedTextToCompare.set(O?this._lastDiff.moves.find(B=>B.lineRangeMapping.modified.intersect(O.lineRangeMapping.modified)):void 0,F)}))}this._isDiffUpToDate.set(!1,void 0),T.schedule()})),this._register(C.original.onDidChangeContent(R=>{if(this._diff.get()){const N=a.TextEditInfo.fromModelContentChanges(R.changes),P=(this._lastDiff,C.original,C.modified,void 0);P&&(this._lastDiff=P,(0,D.transaction)(F=>{this._diff.set(s.fromDiffResult(this._lastDiff),F),A(P,F);const O=this.movedTextToCompare.get();this.movedTextToCompare.set(O?this._lastDiff.moves.find(B=>B.lineRangeMapping.modified.intersect(O.lineRangeMapping.modified)):void 0,F)}))}this._isDiffUpToDate.set(!1,void 0),T.schedule()})),this._register((0,D.autorunWithStore)(async(R,M)=>{var N,P;this._options.hideUnchangedRegionsMinimumLineCount.read(R),this._options.hideUnchangedRegionsContextLineCount.read(R),T.cancel(),I.read(R);const F=this._diffProvider.read(R);F.onChangeSignal.read(R),(0,p.readHotReloadableExport)(v.DefaultLinesDiffComputer,R),(0,p.readHotReloadableExport)(i.optimizeSequenceDiffs,R),this._isDiffUpToDate.set(!1,void 0);let O=[];M.add(C.original.onDidChangeContent(V=>{const z=a.TextEditInfo.fromModelContentChanges(V.changes);O=(0,n.combineTextEditInfos)(O,z)}));let B=[];M.add(C.modified.onDidChangeContent(V=>{const z=a.TextEditInfo.fromModelContentChanges(V.changes);B=(0,n.combineTextEditInfos)(B,z)}));let W=await F.diffProvider.computeDiff(C.original,C.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(R),maxComputationTimeMs:this._options.maxComputationTimeMs.read(R),computeMoves:this._options.showMoves.read(R)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||(W=c(W,C.original,C.modified),W=(N=(C.original,C.modified,void 0))!==null&&N!==void 0?N:W,W=(P=(C.original,C.modified,void 0))!==null&&P!==void 0?P:W,(0,D.transaction)(V=>{A(W,V),this._lastDiff=W;const z=s.fromDiffResult(W);this._diff.set(z,V),this._isDiffUpToDate.set(!0,V);const K=this.movedTextToCompare.get();this.movedTextToCompare.set(K?this._lastDiff.moves.find(j=>j.lineRangeMapping.modified.intersect(K.lineRangeMapping.modified)):void 0,V)}))}))}ensureModifiedLineIsVisible(C,_,E){var I,T;if(((I=this.diff.get())===null||I===void 0?void 0:I.mappings.length)===0)return;const A=((T=this._unchangedRegions.get())===null||T===void 0?void 0:T.regions)||[];for(const R of A)if(R.getHiddenModifiedRange(void 0).contains(C)){R.showModifiedLine(C,_,E);return}}ensureOriginalLineIsVisible(C,_,E){var I,T;if(((I=this.diff.get())===null||I===void 0?void 0:I.mappings.length)===0)return;const A=((T=this._unchangedRegions.get())===null||T===void 0?void 0:T.regions)||[];for(const R of A)if(R.getHiddenOriginalRange(void 0).contains(C)){R.showOriginalLine(C,_,E);return}}async waitForDiff(){await(0,D.waitForState)(this.isDiffUpToDate,C=>C)}serializeState(){const C=this._unchangedRegions.get();return{collapsedRegions:C?.regions.map(_=>({range:_.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(C){var _;const E=(_=C.collapsedRegions)===null||_===void 0?void 0:_.map(T=>w.LineRange.deserialize(T.range)),I=this._unchangedRegions.get();!I||!E||(0,D.transaction)(T=>{for(const A of I.regions)for(const R of E)if(A.modifiedUnchangedRange.intersect(R)){A.setHiddenModifiedRange(R,T);break}})}};e.DiffEditorViewModel=m,e.DiffEditorViewModel=m=De([he(2,S.IDiffProviderFactoryService)],m);function c(f,C,_){return{changes:f.changes.map(E=>new b.DetailedLineRangeMapping(E.original,E.modified,E.innerChanges?E.innerChanges.map(I=>d(I,C,_)):void 0)),moves:f.moves,identical:f.identical,quitEarly:f.quitEarly}}function d(f,C,_){let E=f.originalRange,I=f.modifiedRange;return(E.endColumn!==1||I.endColumn!==1)&&E.endColumn===C.getLineMaxColumn(E.endLineNumber)&&I.endColumn===_.getLineMaxColumn(I.endLineNumber)&&E.endLineNumbernew l(_)),C.moves||[],C.identical,C.quitEarly)}constructor(C,_,E,I){this.mappings=C,this.movedTexts=_,this.identical=E,this.quitEarly=I}}e.DiffState=s;class l{constructor(C){this.lineRangeMapping=C}}e.DiffMapping=l;class r{static fromDiffs(C,_,E,I,T){const A=b.DetailedLineRangeMapping.inverse(C,_,E),R=[];for(const M of A){let N=M.original.startLineNumber,P=M.modified.startLineNumber,F=M.original.length;const O=N===1&&P===1,B=N+F===_+1&&P+F===E+1;(O||B)&&F>=T+I?(O&&!B&&(F-=T),B&&!O&&(N+=T,P+=T,F-=T),R.push(new r(N,P,F,0,0))):F>=T*2+I&&(N+=T,P+=T,F-=T*2,R.push(new r(N,P,F,0,0)))}return R}get originalUnchangedRange(){return w.LineRange.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return w.LineRange.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(C,_,E,I,T){this.originalLineNumber=C,this.modifiedLineNumber=_,this.lineCount=E,this._visibleLineCountTop=(0,D.observableValue)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,D.observableValue)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,D.derived)(this,M=>this.visibleLineCountTop.read(M)+this.visibleLineCountBottom.read(M)===this.lineCount&&!this.isDragged.read(M)),this.isDragged=(0,D.observableValue)(this,void 0);const A=Math.max(Math.min(I,this.lineCount),0),R=Math.max(Math.min(T,this.lineCount-I),0);(0,g.softAssert)(I===A),(0,g.softAssert)(T===R),this._visibleLineCountTop.set(A,void 0),this._visibleLineCountBottom.set(R,void 0)}setVisibleRanges(C,_){const E=[],I=new w.LineRangeSet(C.map(M=>M.modified)).subtractFrom(this.modifiedUnchangedRange);let T=this.originalLineNumber,A=this.modifiedLineNumber;const R=this.modifiedLineNumber+this.lineCount;if(I.ranges.length===0)this.showAll(_),E.push(this);else{let M=0;for(const N of I.ranges){const P=M===I.ranges.length-1;M++;const F=(P?R:N.endLineNumberExclusive)-A,O=new r(T,A,F,0,0);O.setHiddenModifiedRange(N,_),E.push(O),T=O.originalUnchangedRange.endLineNumberExclusive,A=O.modifiedUnchangedRange.endLineNumberExclusive}}return E}shouldHideControls(C){return this._shouldHideControls.read(C)}getHiddenOriginalRange(C){return w.LineRange.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(C),this.lineCount-this._visibleLineCountTop.read(C)-this._visibleLineCountBottom.read(C))}getHiddenModifiedRange(C){return w.LineRange.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(C),this.lineCount-this._visibleLineCountTop.read(C)-this._visibleLineCountBottom.read(C))}setHiddenModifiedRange(C,_){const E=C.startLineNumber-this.modifiedLineNumber,I=this.modifiedLineNumber+this.lineCount-C.endLineNumberExclusive;this.setState(E,I,_)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(C=10,_){const E=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+C,E),_)}showMoreBelow(C=10,_){const E=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+C,E),_)}showAll(C){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),C)}showModifiedLine(C,_,E){const I=C+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),T=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-C;_===0&&Ithis.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const m=this.editor.getPosition();this.editor.changeDecorations(c=>{this.decorationId&&c.removeDecoration(this.decorationId),this.decorationId=c.addDecoration(S.Selection.fromPositions(m,m),{description:"selection-anchor",stickiness:1,hoverMessage:new k.MarkdownString().appendText((0,w.localize)(0,null)),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,L.alert)((0,w.localize)(1,null,m.lineNumber,m.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const m=this.editor.getModel().getDecorationRange(this.decorationId);m&&this.editor.setPosition(m.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const m=this.editor.getModel().getDecorationRange(this.decorationId);if(m){const c=this.editor.getPosition();this.editor.setSelection(S.Selection.fromPositions(m.getStartPosition(),c)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const m=this.decorationId;this.editor.changeDecorations(c=>{c.removeDecoration(m),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};a.ID="editor.contrib.selectionAnchorController",a=b=De([he(1,v.IContextKeyService)],a);class n extends D.EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:(0,w.localize)(2,null),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:(0,y.KeyChord)(2089,2080),weight:100}})}async run(m,c){var d;(d=a.get(c))===null||d===void 0||d.setSelectionAnchor()}}class i extends D.EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:(0,w.localize)(3,null),alias:"Go to Selection Anchor",precondition:e.SelectionAnchorSet})}async run(m,c){var d;(d=a.get(c))===null||d===void 0||d.goToSelectionAnchor()}}class t extends D.EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:(0,w.localize)(4,null),alias:"Select from Anchor to Cursor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:(0,y.KeyChord)(2089,2089),weight:100}})}async run(m,c){var d;(d=a.get(c))===null||d===void 0||d.selectFromAnchorToCursor()}}class o extends D.EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:(0,w.localize)(5,null),alias:"Cancel Selection Anchor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(m,c){var d;(d=a.get(c))===null||d===void 0||d.cancelSelectionAnchor()}}(0,D.registerEditorContribution)(a.ID,a,4),(0,D.registerEditorAction)(n),(0,D.registerEditorAction)(i),(0,D.registerEditorAction)(t),(0,D.registerEditorAction)(o)}),define(ne[821],se([1,0,16,21,561,661]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class S extends L.EditorAction{constructor(b,a){super(a),this.left=b}run(b,a){if(!a.hasModel())return;const n=[],i=a.getSelections();for(const t of i)n.push(new y.MoveCaretCommand(t,this.left));a.pushUndoStop(),a.executeCommands(this.id,n),a.pushUndoStop()}}class p extends S{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:D.localize(0,null),alias:"Move Selected Text Left",precondition:k.EditorContextKeys.writable})}}class w extends S{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:D.localize(1,null),alias:"Move Selected Text Right",precondition:k.EditorContextKeys.writable})}}(0,L.registerEditorAction)(p),(0,L.registerEditorAction)(w)}),define(ne[822],se([1,0,16,134,212,5,21,662]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class w extends L.EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:p.localize(0,null),alias:"Transpose Letters",precondition:S.EditorContextKeys.writable,kbOpts:{kbExpr:S.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(b,a){if(!a.hasModel())return;const n=a.getModel(),i=[],t=a.getSelections();for(const o of t){if(!o.isEmpty())continue;const g=o.startLineNumber,m=o.startColumn,c=n.getLineMaxColumn(g);if(g===1&&(m===1||m===2&&c===2))continue;const d=m===c?o.getPosition():y.MoveOperations.rightPosition(n,o.getPosition().lineNumber,o.getPosition().column),s=y.MoveOperations.leftPosition(n,d),l=y.MoveOperations.leftPosition(n,s),r=n.getValueInRange(D.Range.fromPositions(l,s)),h=n.getValueInRange(D.Range.fromPositions(s,d)),u=D.Range.fromPositions(l,d);i.push(new k.ReplaceCommand(u,h+r))}i.length>0&&(a.pushUndoStop(),a.executeCommands(this.id,i),a.pushUndoStop())}}(0,L.registerEditorAction)(w)}),define(ne[823],se([1,0,66,16,5,21,33,309,563,673,28]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class a extends k.EditorAction{constructor(m,c){super(c),this._type=m}run(m,c){const d=m.get(S.ILanguageConfigurationService);if(!c.hasModel())return;const s=c.getModel(),l=[],r=s.getOptions(),h=c.getOption(23),u=c.getSelections().map((C,_)=>({selection:C,index:_,ignoreFirstLine:!1}));u.sort((C,_)=>y.Range.compareRangesUsingStarts(C.selection,_.selection));let f=u[0];for(let C=1;C{this._undoStack=[],this._redoStack=[]})),this._register(n.onDidChangeModelContent(i=>{this._undoStack=[],this._redoStack=[]})),this._register(n.onDidChangeCursorSelection(i=>{if(this._isCursorUndoRedo||!i.oldSelections||i.oldModelVersionId!==i.modelVersionId)return;const t=new S(i.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(t)||(this._undoStack.push(new p(t,n.getScrollTop(),n.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new p(new S(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new p(new S(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(n){this._isCursorUndoRedo=!0,this._editor.setSelections(n.cursorState.selections),this._editor.setScrollPosition({scrollTop:n.scrollTop,scrollLeft:n.scrollLeft}),this._isCursorUndoRedo=!1}}e.CursorUndoRedoController=w,w.ID="editor.contrib.cursorUndoRedoController";class v extends k.EditorAction{constructor(){super({id:"cursorUndo",label:D.localize(0,null),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(n,i,t){var o;(o=w.get(i))===null||o===void 0||o.cursorUndo()}}e.CursorUndo=v;class b extends k.EditorAction{constructor(){super({id:"cursorRedo",label:D.localize(1,null),alias:"Cursor Redo",precondition:void 0})}run(n,i,t){var o;(o=w.get(i))===null||o===void 0||o.cursorRedo()}}e.CursorRedo=b,(0,k.registerEditorContribution)(w.ID,w,0),(0,k.registerEditorAction)(v),(0,k.registerEditorAction)(b)}),define(ne[825],se([1,0,16,14,19,67,8,45,681]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorKeybindingCancellationTokenSource=void 0;const v=(0,S.createDecorator)("IEditorCancelService"),b=new k.RawContextKey("cancellableOperation",!1,(0,w.localize)(0,null));(0,p.registerSingleton)(v,class{constructor(){this._tokens=new WeakMap}add(n,i){let t=this._tokens.get(n);t||(t=n.invokeWithinContext(g=>{const m=b.bindTo(g.get(k.IContextKeyService)),c=new D.LinkedList;return{key:m,tokens:c}}),this._tokens.set(n,t));let o;return t.key.set(!0),o=t.tokens.push(i),()=>{o&&(o(),t.key.set(!t.tokens.isEmpty()),o=void 0)}}cancel(n){const i=this._tokens.get(n);if(!i)return;const t=i.tokens.pop();t&&(t.cancel(),i.key.set(!i.tokens.isEmpty()))}},1);class a extends y.CancellationTokenSource{constructor(i,t){super(t),this.editor=i,this._unregister=i.invokeWithinContext(o=>o.get(v).add(i,this))}dispose(){this._unregister(),super.dispose()}}e.EditorKeybindingCancellationTokenSource=a,(0,L.registerEditorCommand)(new class extends L.EditorCommand{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:b})}runEditorCommand(n,i){n.get(v).cancel(i)}})}),define(ne[109],se([1,0,11,5,19,2,825]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextModelCancellationTokenSource=e.EditorStateCancellationTokenSource=e.EditorState=void 0;class p{constructor(a,n){if(this.flags=n,this.flags&1){const i=a.getModel();this.modelVersionId=i?L.format("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=a.getPosition():this.position=null,this.flags&2?this.selection=a.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=a.getScrollLeft(),this.scrollTop=a.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(a){if(!(a instanceof p))return!1;const n=a;return!(this.modelVersionId!==n.modelVersionId||this.scrollLeft!==n.scrollLeft||this.scrollTop!==n.scrollTop||!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position)||!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))}validate(a){return this._equals(new p(a,this.flags))}}e.EditorState=p;class w extends S.EditorKeybindingCancellationTokenSource{constructor(a,n,i,t){super(a,t),this._listener=new D.DisposableStore,n&4&&this._listener.add(a.onDidChangeCursorPosition(o=>{(!i||!k.Range.containsPosition(i,o.position))&&this.cancel()})),n&2&&this._listener.add(a.onDidChangeCursorSelection(o=>{(!i||!k.Range.containsRange(i,o.selection))&&this.cancel()})),n&8&&this._listener.add(a.onDidScrollChange(o=>this.cancel())),n&1&&(this._listener.add(a.onDidChangeModel(o=>this.cancel())),this._listener.add(a.onDidChangeModelContent(o=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}e.EditorStateCancellationTokenSource=w;class v extends y.CancellationTokenSource{constructor(a,n){super(n),this._listener=a.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}e.TextModelCancellationTokenSource=v}),define(ne[146],se([1,0,13,19,12,2,22,142,5,23,18,51,109,664,25,49,88,61,119]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.applyCodeAction=e.ApplyCodeActionReason=e.getCodeActions=e.fixAllCommandId=e.organizeImportsCommandId=e.sourceActionCommandId=e.refactorCommandId=e.autoFixCommandId=e.quickFixCommandId=e.codeActionCommandId=void 0,e.codeActionCommandId="editor.action.codeAction",e.quickFixCommandId="editor.action.quickFix",e.autoFixCommandId="editor.action.autoFix",e.refactorCommandId="editor.action.refactor",e.sourceActionCommandId="editor.action.sourceAction",e.organizeImportsCommandId="editor.action.organizeImports",e.fixAllCommandId="editor.action.fixAll";class d extends D.Disposable{static codeActionsPreferredComparator(I,T){return I.isPreferred&&!T.isPreferred?-1:!I.isPreferred&&T.isPreferred?1:0}static codeActionsComparator({action:I},{action:T}){return I.isAI&&!T.isAI?1:!I.isAI&&T.isAI?-1:(0,L.isNonEmptyArray)(I.diagnostics)?(0,L.isNonEmptyArray)(T.diagnostics)?d.codeActionsPreferredComparator(I,T):-1:(0,L.isNonEmptyArray)(T.diagnostics)?1:d.codeActionsPreferredComparator(I,T)}constructor(I,T,A){super(),this.documentation=T,this._register(A),this.allActions=[...I].sort(d.codeActionsComparator),this.validActions=this.allActions.filter(({action:R})=>!R.disabled)}get hasAutoFix(){return this.validActions.some(({action:I})=>!!I.kind&&c.CodeActionKind.QuickFix.contains(new c.CodeActionKind(I.kind))&&!!I.isPreferred)}get hasAIFix(){return this.validActions.some(({action:I})=>!!I.isAI)}get allAIFixes(){return this.validActions.every(({action:I})=>!!I.isAI)}}const s={actions:[],documentation:void 0};async function l(E,I,T,A,R,M){var N;const P=A.filter||{},F={...P,excludes:[...P.excludes||[],c.CodeActionKind.Notebook]},O={only:(N=P.include)===null||N===void 0?void 0:N.value,trigger:A.type},B=new n.TextModelCancellationTokenSource(I,M),W=A.type===2,V=r(E,I,W?F:P),z=new D.DisposableStore,K=V.map(async x=>{try{R.report(x);const re=await x.provideCodeActions(I,T,O,B.token);if(re&&z.add(re),B.token.isCancellationRequested)return s;const ie=(re?.actions||[]).filter(X=>X&&(0,c.filtersAction)(P,X)),J=u(x,ie,P.include);return{actions:ie.map(X=>new c.CodeActionItem(X,x)),documentation:J}}catch(re){if((0,y.isCancellationError)(re))throw re;return(0,y.onUnexpectedExternalError)(re),s}}),j=E.onDidChange(()=>{const x=E.all(I);(0,L.equals)(x,V)||B.cancel()});try{const x=await Promise.all(K),re=x.map(J=>J.actions).flat(),ie=[...(0,L.coalesce)(x.map(J=>J.documentation)),...h(E,I,A,re)];return new d(re,ie,z)}finally{j.dispose(),B.dispose()}}e.getCodeActions=l;function r(E,I,T){return E.all(I).filter(A=>A.providedCodeActionKinds?A.providedCodeActionKinds.some(R=>(0,c.mayIncludeActionsOfKind)(T,new c.CodeActionKind(R))):!0)}function*h(E,I,T,A){var R,M,N;if(I&&A.length)for(const P of E.all(I))P._getAdditionalMenuItems&&(yield*(R=P._getAdditionalMenuItems)===null||R===void 0?void 0:R.call(P,{trigger:T.type,only:(N=(M=T.filter)===null||M===void 0?void 0:M.include)===null||N===void 0?void 0:N.value},A.map(F=>F.action)))}function u(E,I,T){if(!E.documentation)return;const A=E.documentation.map(R=>({kind:new c.CodeActionKind(R.kind),command:R.command}));if(T){let R;for(const M of A)M.kind.contains(T)&&(R?R.kind.contains(M.kind)&&(R=M):R=M);if(R)return R?.command}for(const R of I)if(R.kind){for(const M of A)if(M.kind.contains(new c.CodeActionKind(R.kind)))return M.command}}var f;(function(E){E.OnSave="onSave",E.FromProblemsView="fromProblemsView",E.FromCodeActions="fromCodeActions",E.FromAILightbulb="fromAILightbulb"})(f||(e.ApplyCodeActionReason=f={}));async function C(E,I,T,A,R=k.CancellationToken.None){var M;const N=E.get(p.IBulkEditService),P=E.get(t.ICommandService),F=E.get(m.ITelemetryService),O=E.get(o.INotificationService);if(F.publicLog2("codeAction.applyCodeAction",{codeActionTitle:I.action.title,codeActionKind:I.action.kind,codeActionIsPreferred:!!I.action.isPreferred,reason:T}),await I.resolve(R),!R.isCancellationRequested&&!(!((M=I.action.edit)===null||M===void 0)&&M.edits.length&&!(await N.apply(I.action.edit,{editor:A?.editor,label:I.action.title,quotableLabel:I.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:T!==f.OnSave,showPreview:A?.preview})).isApplied)&&I.action.command)try{await P.executeCommand(I.action.command.id,...I.action.command.arguments||[])}catch(B){const W=_(B);O.error(typeof W=="string"?W:i.localize(0,null))}}e.applyCodeAction=C;function _(E){return typeof E=="string"?E:E instanceof Error&&typeof E.message=="string"?E.message:void 0}t.CommandsRegistry.registerCommand("_executeCodeActionProvider",async function(E,I,T,A,R){if(!(I instanceof S.URI))throw(0,y.illegalArgument)();const{codeActionProvider:M}=E.get(b.ILanguageFeaturesService),N=E.get(a.IModelService).getModel(I);if(!N)throw(0,y.illegalArgument)();const P=v.Selection.isISelection(T)?v.Selection.liftSelection(T):w.Range.isIRange(T)?N.validateRange(T):void 0;if(!P)throw(0,y.illegalArgument)();const F=typeof A=="string"?new c.CodeActionKind(A):void 0,O=await l(M,N,P,{type:1,triggerAction:c.CodeActionTriggerSource.Default,filter:{includeSourceActions:!0,include:F}},g.Progress.None,k.CancellationToken.None),B=[],W=Math.min(O.validActions.length,typeof R=="number"?R:0);for(let V=0;VV.action)}finally{setTimeout(()=>O.dispose(),100)}})}),define(ne[826],se([1,0,96,146,119,34]),function(ee,e,L,k,y,D){"use strict";var S;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionKeybindingResolver=void 0;let p=S=class{constructor(v){this.keybindingService=v}getResolver(){const v=new L.Lazy(()=>this.keybindingService.getKeybindings().filter(b=>S.codeActionCommands.indexOf(b.command)>=0).filter(b=>b.resolvedKeybinding).map(b=>{let a=b.commandArgs;return b.command===k.organizeImportsCommandId?a={kind:y.CodeActionKind.SourceOrganizeImports.value}:b.command===k.fixAllCommandId&&(a={kind:y.CodeActionKind.SourceFixAll.value}),{resolvedKeybinding:b.resolvedKeybinding,...y.CodeActionCommandArgs.fromUser(a,{kind:y.CodeActionKind.None,apply:"never"})}}));return b=>{if(b.kind){const a=this.bestKeybindingForCodeAction(b,v.value);return a?.resolvedKeybinding}}}bestKeybindingForCodeAction(v,b){if(!v.kind)return;const a=new y.CodeActionKind(v.kind);return b.filter(n=>n.kind.contains(a)).filter(n=>n.preferred?v.isPreferred:!0).reduceRight((n,i)=>n?n.kind.contains(i.kind)?i:n:i,void 0)}};e.CodeActionKeybindingResolver=p,p.codeActionCommands=[k.refactorCommandId,k.codeActionCommandId,k.sourceActionCommandId,k.organizeImportsCommandId,k.fixAllCommandId],e.CodeActionKeybindingResolver=p=S=De([he(0,D.IKeybindingService)],p)}),define(ne[367],se([1,0,15,12,7,2,48,36,9,23,14,88,119,146]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionModel=e.CodeActionsState=e.APPLY_FIX_ALL_COMMAND_ID=e.SUPPORTED_CODE_ACTIONS=void 0,e.SUPPORTED_CODE_ACTIONS=new b.RawContextKey("supportedCodeAction",""),e.APPLY_FIX_ALL_COMMAND_ID="_typescript.applyFixAllCodeAction";class t extends D.Disposable{constructor(d,s,l,r=250){super(),this._editor=d,this._markerService=s,this._signalChange=l,this._delay=r,this._autoTriggerTimer=this._register(new L.TimeoutTimer),this._register(this._markerService.onMarkerChanged(h=>this._onMarkerChanges(h))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(d){const s=this._getRangeOfSelectionUnlessWhitespaceEnclosed(d);this._signalChange(s?{trigger:d,selection:s}:void 0)}_onMarkerChanges(d){const s=this._editor.getModel();s&&d.some(l=>(0,S.isEqual)(l,s.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:n.CodeActionTriggerSource.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(d){if(!this._editor.hasModel())return;const s=this._editor.getSelection();if(d.type===1)return s;const l=this._editor.getOption(65).enabled;if(l!==p.ShowLightbulbIconMode.Off){{if(l===p.ShowLightbulbIconMode.On)return s;if(l===p.ShowLightbulbIconMode.OnCode){if(!s.isEmpty())return s;const h=this._editor.getModel(),{lineNumber:u,column:f}=s.getPosition(),C=h.getLineContent(u);if(C.length===0)return;if(f===1){if(/\s/.test(C[0]))return}else if(f===h.getLineMaxColumn(u)){if(/\s/.test(C[C.length-1]))return}else if(/\s/.test(C[f-2])&&/\s/.test(C[f-1]))return}}return s}}}var o;(function(c){c.Empty={type:0};class d{constructor(l,r,h){this.trigger=l,this.position=r,this._cancellablePromise=h,this.type=1,this.actions=h.catch(u=>{if((0,k.isCancellationError)(u))return g;throw u})}cancel(){this._cancellablePromise.cancel()}}c.Triggered=d})(o||(e.CodeActionsState=o={}));const g=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class m extends D.Disposable{constructor(d,s,l,r,h,u){super(),this._editor=d,this._registry=s,this._markerService=l,this._progressService=h,this._configurationService=u,this._codeActionOracle=this._register(new D.MutableDisposable),this._state=o.Empty,this._onDidChangeState=this._register(new y.Emitter),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=e.SUPPORTED_CODE_ACTIONS.bindTo(r),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(f=>{f.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(o.Empty,!0))}_settingEnabledNearbyQuickfixes(){var d;const s=(d=this._editor)===null||d===void 0?void 0:d.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:s?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(o.Empty);const d=this._editor.getModel();if(d&&this._registry.has(d)&&!this._editor.getOption(91)){const s=this._registry.all(d).flatMap(l=>{var r;return(r=l.providedCodeActionKinds)!==null&&r!==void 0?r:[]});this._supportedCodeActions.set(s.join(" ")),this._codeActionOracle.value=new t(this._editor,this._markerService,l=>{var r;if(!l){this.setState(o.Empty);return}const h=l.selection.getStartPosition(),u=(0,L.createCancelablePromise)(async f=>{var C,_,E,I,T,A,R,M,N,P;if(this._settingEnabledNearbyQuickfixes()&&l.trigger.type===1&&(l.trigger.triggerAction===n.CodeActionTriggerSource.QuickFix||!((_=(C=l.trigger.filter)===null||C===void 0?void 0:C.include)===null||_===void 0)&&_.contains(n.CodeActionKind.QuickFix))){const F=await(0,i.getCodeActions)(this._registry,d,l.selection,l.trigger,a.Progress.None,f),O=[...F.allActions];if(f.isCancellationRequested)return g;const B=(E=F.validActions)===null||E===void 0?void 0:E.some(V=>V.action.kind?n.CodeActionKind.QuickFix.contains(new n.CodeActionKind(V.action.kind)):!1),W=this._markerService.read({resource:d.uri});if(B){for(const V of F.validActions)!((T=(I=V.action.command)===null||I===void 0?void 0:I.arguments)===null||T===void 0)&&T.some(z=>typeof z=="string"&&z.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(V.action.diagnostics=[...W.filter(z=>z.relatedInformation)]);return{validActions:F.validActions,allActions:O,documentation:F.documentation,hasAutoFix:F.hasAutoFix,hasAIFix:F.hasAIFix,allAIFixes:F.allAIFixes,dispose:()=>{F.dispose()}}}else if(!B&&W.length>0){const V=l.selection.getPosition();let z=V,K=Number.MAX_VALUE;const j=[...F.validActions];for(const re of W){const ie=re.endColumn,J=re.endLineNumber,X=re.startLineNumber;if(J===V.lineNumber||X===V.lineNumber){z=new w.Position(J,ie);const Y={type:l.trigger.type,triggerAction:l.trigger.triggerAction,filter:{include:!((A=l.trigger.filter)===null||A===void 0)&&A.include?(R=l.trigger.filter)===null||R===void 0?void 0:R.include:n.CodeActionKind.QuickFix},autoApply:l.trigger.autoApply,context:{notAvailableMessage:((M=l.trigger.context)===null||M===void 0?void 0:M.notAvailableMessage)||"",position:z}},le=new v.Selection(z.lineNumber,z.column,z.lineNumber,z.column),de=await(0,i.getCodeActions)(this._registry,d,le,Y,a.Progress.None,f);if(de.validActions.length!==0){for(const ge of de.validActions)!((P=(N=ge.action.command)===null||N===void 0?void 0:N.arguments)===null||P===void 0)&&P.some(pe=>typeof pe=="string"&&pe.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(ge.action.diagnostics=[...W.filter(pe=>pe.relatedInformation)]);F.allActions.length===0&&O.push(...de.allActions),Math.abs(V.column-ie)J.findIndex(X=>X.action.title===re.action.title)===ie);return x.sort((re,ie)=>re.action.isPreferred&&!ie.action.isPreferred?-1:!re.action.isPreferred&&ie.action.isPreferred||re.action.isAI&&!ie.action.isAI?1:!re.action.isAI&&ie.action.isAI?-1:0),{validActions:x,allActions:O,documentation:F.documentation,hasAutoFix:F.hasAutoFix,hasAIFix:F.hasAIFix,allAIFixes:F.allAIFixes,dispose:()=>{F.dispose()}}}}return(0,i.getCodeActions)(this._registry,d,l.selection,l.trigger,a.Progress.None,f)});l.trigger.type===1&&((r=this._progressService)===null||r===void 0||r.showWhile(u,250)),this.setState(new o.Triggered(l.trigger,h,u))},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:n.CodeActionTriggerSource.Default})}else this._supportedCodeActions.reset()}trigger(d){var s;(s=this._codeActionOracle.value)===null||s===void 0||s.trigger(d)}setState(d,s){d!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=d,!s&&!this._disposed&&this._onDidChangeState.fire(d))}}e.CodeActionModel=m}),define(ne[368],se([1,0,6,65,27,7,2,29,216,146,669,25,34,462]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.LightBulbWidget=void 0;var t;(function(g){g.Hidden={type:0};class m{constructor(d,s,l,r){this.actions=d,this.trigger=s,this.editorPosition=l,this.widgetPosition=r,this.type=1}}g.Showing=m})(t||(t={}));let o=i=class extends S.Disposable{constructor(m,c,d){super(),this._editor=m,this._keybindingService=c,this._onClick=this._register(new D.Emitter),this.onClick=this._onClick.event,this._state=t.Hidden,this._iconClasses=[],this._domNode=L.$("div.lightBulbWidget"),this._register(k.Gesture.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(s=>{const l=this._editor.getModel();(this.state.type!==1||!l||this.state.editorPosition.lineNumber>=l.getLineCount())&&this.hide()})),this._register(L.addStandardDisposableGenericMouseDownListener(this._domNode,s=>{if(this.state.type!==1)return;this._editor.focus(),s.preventDefault();const{top:l,height:r}=L.getDomNodePagePosition(this._domNode),h=this._editor.getOption(67);let u=Math.floor(h/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(s.buttons&1)===1&&this.hide()})),this._register(D.Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var s,l,r,h;this._preferredKbLabel=(l=(s=this._keybindingService.lookupKeybinding(v.autoFixCommandId))===null||s===void 0?void 0:s.getLabel())!==null&&l!==void 0?l:void 0,this._quickFixKbLabel=(h=(r=this._keybindingService.lookupKeybinding(v.quickFixCommandId))===null||r===void 0?void 0:r.getLabel())!==null&&h!==void 0?h:void 0,this._updateLightBulbTitleAndIcon()}))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(m,c,d){if(m.validActions.length<=0)return this.hide();if(!this._editor.getOptions().get(65).enabled)return this.hide();const l=this._editor.getModel();if(!l)return this.hide();const{lineNumber:r,column:h}=l.validatePosition(d),u=l.getOptions().tabSize,f=this._editor.getOptions().get(50),C=l.getLineContent(r),_=(0,w.computeIndentLevel)(C,u),E=f.spaceWidth*_>22,I=R=>R>2&&this._editor.getTopForLineNumber(R)===this._editor.getTopForLineNumber(R-1);let T=r,A=1;if(!E){if(r>1&&!I(r-1))T-=1;else if(r0&&n.Range.areIntersectingOrTouching(re[ie-1],de)?re[ie-1]=n.Range.fromPositions(re[ie-1].getStartPosition(),de.getEndPosition()):ie=re.push(de);const J=async de=>{var ge,pe;z.trace("[format][provideDocumentRangeFormattingEdits] (request)",(ge=M.extensionId)===null||ge===void 0?void 0:ge.value,de);const Q=await M.provideDocumentRangeFormattingEdits(j,de,j.getFormattingOptions(),x.token)||[];return z.trace("[format][provideDocumentRangeFormattingEdits] (response)",(pe=M.extensionId)===null||pe===void 0?void 0:pe.value,Q),Q},X=(de,ge)=>{if(!de.length||!ge.length)return!1;const pe=de.reduce((Q,U)=>n.Range.plusRange(Q,U.range),de[0].range);if(!ge.some(Q=>n.Range.intersectRanges(pe,Q.range)))return!1;for(const Q of de)for(const U of ge)if(n.Range.intersectRanges(Q.range,U.range))return!0;return!1},Y=[],le=[];try{if(typeof M.provideDocumentRangesFormattingEdits=="function"){z.trace("[format][provideDocumentRangeFormattingEdits] (request)",(B=M.extensionId)===null||B===void 0?void 0:B.value,re);const de=await M.provideDocumentRangesFormattingEdits(j,re,j.getFormattingOptions(),x.token)||[];z.trace("[format][provideDocumentRangeFormattingEdits] (response)",(W=M.extensionId)===null||W===void 0?void 0:W.value,de),le.push(de)}else{for(const de of re){if(x.token.isCancellationRequested)return!0;le.push(await J(de))}for(let de=0;de({text:pe.text,range:n.Range.lift(pe.range),forceMoveMarkers:!0})),pe=>{for(const{range:Q}of pe)if(n.Range.areIntersectingOrTouching(Q,ge))return[new i.Selection(Q.startLineNumber,Q.startColumn,Q.endLineNumber,Q.endColumn)];return null})}return K.playSignal(r.AccessibilitySignal.format,{userGesture:O}),!0}e.formatDocumentRangesWithProvider=C;async function _(R,M,N,P,F,O){const B=R.get(d.IInstantiationService),W=R.get(s.ILanguageFeaturesService),V=(0,b.isCodeEditor)(M)?M.getModel():M,z=h(W.documentFormattingEditProvider,W.documentRangeFormattingEditProvider,V),K=await u.select(z,V,N,1);K&&(P.report(K),await B.invokeFunction(E,K,M,N,F,O))}e.formatDocumentWithSelectedProvider=_;async function E(R,M,N,P,F,O){const B=R.get(t.IEditorWorkerService),W=R.get(r.IAccessibilitySignalService);let V,z;(0,b.isCodeEditor)(N)?(V=N.getModel(),z=new v.EditorStateCancellationTokenSource(N,5,void 0,F)):(V=N,z=new v.TextModelCancellationTokenSource(N,F));let K;try{const j=await M.provideDocumentFormattingEdits(V,V.getFormattingOptions(),z.token);if(K=await B.computeMoreMinimalEdits(V.uri,j),z.token.isCancellationRequested)return!0}finally{z.dispose()}if(!K||K.length===0)return!1;if((0,b.isCodeEditor)(N))g.FormattingEdit.execute(N,K,P!==2),P!==2&&N.revealPositionInCenterIfOutsideViewport(N.getPosition(),1);else{const[{range:j}]=K,x=new i.Selection(j.startLineNumber,j.startColumn,j.endLineNumber,j.endColumn);V.pushEditOperations([x],K.map(re=>({text:re.text,range:n.Range.lift(re.range),forceMoveMarkers:!0})),re=>{for(const{range:ie}of re)if(n.Range.areIntersectingOrTouching(ie,x))return[new i.Selection(ie.startLineNumber,ie.startColumn,ie.endLineNumber,ie.endColumn)];return null})}return W.playSignal(r.AccessibilitySignal.format,{userGesture:O}),!0}e.formatDocumentWithProvider=E;async function I(R,M,N,P,F,O){const B=M.documentRangeFormattingEditProvider.ordered(N);for(const W of B){const V=await Promise.resolve(W.provideDocumentRangeFormattingEdits(N,P,F,O)).catch(y.onUnexpectedExternalError);if((0,L.isNonEmptyArray)(V))return await R.computeMoreMinimalEdits(N.uri,V)}}e.getDocumentRangeFormattingEditsUntilResult=I;async function T(R,M,N,P,F){const O=h(M.documentFormattingEditProvider,M.documentRangeFormattingEditProvider,N);for(const B of O){const W=await Promise.resolve(B.provideDocumentFormattingEdits(N,P,F)).catch(y.onUnexpectedExternalError);if((0,L.isNonEmptyArray)(W))return await R.computeMoreMinimalEdits(N.uri,W)}}e.getDocumentFormattingEditsUntilResult=T;function A(R,M,N,P,F,O,B){const W=M.onTypeFormattingEditProvider.ordered(N);return W.length===0||W[0].autoFormatTriggerCharacters.indexOf(F)<0?Promise.resolve(void 0):Promise.resolve(W[0].provideOnTypeFormattingEdits(N,P,F,O,B)).catch(y.onUnexpectedExternalError).then(V=>R.computeMoreMinimalEdits(N.uri,V))}e.getOnTypeFormattingEdits=A,m.CommandsRegistry.registerCommand("_executeFormatRangeProvider",async function(R,...M){const[N,P,F]=M;(0,p.assertType)(w.URI.isUri(N)),(0,p.assertType)(n.Range.isIRange(P));const O=R.get(o.ITextModelService),B=R.get(t.IEditorWorkerService),W=R.get(s.ILanguageFeaturesService),V=await O.createModelReference(N);try{return I(B,W,V.object.textEditorModel,n.Range.lift(P),F,k.CancellationToken.None)}finally{V.dispose()}}),m.CommandsRegistry.registerCommand("_executeFormatDocumentProvider",async function(R,...M){const[N,P]=M;(0,p.assertType)(w.URI.isUri(N));const F=R.get(o.ITextModelService),O=R.get(t.IEditorWorkerService),B=R.get(s.ILanguageFeaturesService),W=await F.createModelReference(N);try{return T(O,B,W.object.textEditorModel,P,k.CancellationToken.None)}finally{W.dispose()}}),m.CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",async function(R,...M){const[N,P,F,O]=M;(0,p.assertType)(w.URI.isUri(N)),(0,p.assertType)(a.Position.isIPosition(P)),(0,p.assertType)(typeof F=="string");const B=R.get(o.ITextModelService),W=R.get(t.IEditorWorkerService),V=R.get(s.ILanguageFeaturesService),z=await B.createModelReference(N);try{return A(W,V,z.object.textEditorModel,a.Position.lift(P),F,O,k.CancellationToken.None)}finally{z.dispose()}})}),define(ne[828],se([1,0,13,19,12,66,2,16,35,132,5,21,123,18,369,313,687,124,25,14,8,88]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormatOnType=void 0;let r=class{constructor(_,E,I,T){this._editor=_,this._languageFeaturesService=E,this._workerService=I,this._accessibilitySignalService=T,this._disposables=new S.DisposableStore,this._sessionDisposables=new S.DisposableStore,this._disposables.add(E.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(_.onDidChangeModel(()=>this._update())),this._disposables.add(_.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(_.onDidChangeConfiguration(A=>{A.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const _=this._editor.getModel(),[E]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(_);if(!E||!E.autoFormatTriggerCharacters)return;const I=new v.CharacterSet;for(const T of E.autoFormatTriggerCharacters)I.add(T.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(T=>{const A=T.charCodeAt(T.length-1);I.has(A)&&this._trigger(String.fromCharCode(A))}))}_trigger(_){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const E=this._editor.getModel(),I=this._editor.getPosition(),T=new k.CancellationTokenSource,A=this._editor.onDidChangeModelContent(R=>{if(R.isFlush){T.cancel(),A.dispose();return}for(let M=0,N=R.changes.length;M{T.token.isCancellationRequested||(0,L.isNonEmptyArray)(R)&&(this._accessibilitySignalService.playSignal(m.AccessibilitySignal.format,{userGesture:!1}),o.FormattingEdit.execute(this._editor,R,!0))}).finally(()=>{A.dispose()})}};e.FormatOnType=r,r.ID="editor.contrib.autoFormat",e.FormatOnType=r=De([he(1,i.ILanguageFeaturesService),he(2,n.IEditorWorkerService),he(3,m.IAccessibilitySignalService)],r);let h=class{constructor(_,E,I){this.editor=_,this._languageFeaturesService=E,this._instantiationService=I,this._callOnDispose=new S.DisposableStore,this._callOnModel=new S.DisposableStore,this._callOnDispose.add(_.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(_.onDidChangeModel(()=>this._update())),this._callOnDispose.add(_.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(E.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:_})=>this._trigger(_)))}_trigger(_){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(t.formatDocumentRangesWithSelectedProvider,this.editor,_,2,l.Progress.None,k.CancellationToken.None,!1).catch(y.onUnexpectedError))}};h.ID="editor.contrib.formatOnPaste",h=De([he(1,i.ILanguageFeaturesService),he(2,s.IInstantiationService)],h);class u extends p.EditorAction{constructor(){super({id:"editor.action.formatDocument",label:g.localize(0,null),alias:"Format Document",precondition:d.ContextKeyExpr.and(a.EditorContextKeys.notInCompositeEditor,a.EditorContextKeys.writable,a.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(_,E){if(E.hasModel()){const I=_.get(s.IInstantiationService);await _.get(l.IEditorProgressService).showWhile(I.invokeFunction(t.formatDocumentWithSelectedProvider,E,1,l.Progress.None,k.CancellationToken.None,!0),250)}}}class f extends p.EditorAction{constructor(){super({id:"editor.action.formatSelection",label:g.localize(1,null),alias:"Format Selection",precondition:d.ContextKeyExpr.and(a.EditorContextKeys.writable,a.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2084),weight:100},contextMenuOpts:{when:a.EditorContextKeys.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(_,E){if(!E.hasModel())return;const I=_.get(s.IInstantiationService),T=E.getModel(),A=E.getSelections().map(M=>M.isEmpty()?new b.Range(M.startLineNumber,1,M.startLineNumber,T.getLineMaxColumn(M.startLineNumber)):M);await _.get(l.IEditorProgressService).showWhile(I.invokeFunction(t.formatDocumentRangesWithSelectedProvider,E,A,1,l.Progress.None,k.CancellationToken.None,!0),250)}}(0,p.registerEditorContribution)(r.ID,r,2),(0,p.registerEditorContribution)(h.ID,h,2),(0,p.registerEditorAction)(u),(0,p.registerEditorAction)(f),c.CommandsRegistry.registerCommand("editor.action.format",async C=>{const _=C.get(w.ICodeEditorService).getFocusedCodeEditor();if(!_||!_.hasModel())return;const E=C.get(c.ICommandService);_.getSelection().isEmpty()?await E.executeCommand("editor.action.formatDocument"):await E.executeCommand("editor.action.formatSelection")})}),define(ne[257],se([1,0,13,19,12,16,18,163]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getReferencesAtPosition=e.getTypeDefinitionsAtPosition=e.getImplementationsAtPosition=e.getDeclarationsAtPosition=e.getDefinitionsAtPosition=void 0;async function w(o,g,m,c){const s=m.ordered(o).map(r=>Promise.resolve(c(r,o,g)).then(void 0,h=>{(0,y.onUnexpectedExternalError)(h)})),l=await Promise.all(s);return(0,L.coalesce)(l.flat())}function v(o,g,m,c){return w(g,m,o,(d,s,l)=>d.provideDefinition(s,l,c))}e.getDefinitionsAtPosition=v;function b(o,g,m,c){return w(g,m,o,(d,s,l)=>d.provideDeclaration(s,l,c))}e.getDeclarationsAtPosition=b;function a(o,g,m,c){return w(g,m,o,(d,s,l)=>d.provideImplementation(s,l,c))}e.getImplementationsAtPosition=a;function n(o,g,m,c){return w(g,m,o,(d,s,l)=>d.provideTypeDefinition(s,l,c))}e.getTypeDefinitionsAtPosition=n;function i(o,g,m,c,d){return w(g,m,o,async(s,l,r)=>{const h=await s.provideReferences(l,r,{includeDeclaration:!0},d);if(!c||!h||h.length!==2)return h;const u=await s.provideReferences(l,r,{includeDeclaration:!1},d);return u&&u.length===1?u:h})}e.getReferencesAtPosition=i;async function t(o){const g=await o(),m=new p.ReferencesModel(g,""),c=m.references.map(d=>d.link);return m.dispose(),c}(0,D.registerModelAndPositionCommand)("_executeDefinitionProvider",(o,g,m)=>{const c=o.get(S.ILanguageFeaturesService),d=v(c.definitionProvider,g,m,k.CancellationToken.None);return t(()=>d)}),(0,D.registerModelAndPositionCommand)("_executeTypeDefinitionProvider",(o,g,m)=>{const c=o.get(S.ILanguageFeaturesService),d=n(c.typeDefinitionProvider,g,m,k.CancellationToken.None);return t(()=>d)}),(0,D.registerModelAndPositionCommand)("_executeDeclarationProvider",(o,g,m)=>{const c=o.get(S.ILanguageFeaturesService),d=b(c.declarationProvider,g,m,k.CancellationToken.None);return t(()=>d)}),(0,D.registerModelAndPositionCommand)("_executeReferenceProvider",(o,g,m)=>{const c=o.get(S.ILanguageFeaturesService),d=i(c.referenceProvider,g,m,!1,k.CancellationToken.None);return t(()=>d)}),(0,D.registerModelAndPositionCommand)("_executeImplementationProvider",(o,g,m)=>{const c=o.get(S.ILanguageFeaturesService),d=a(c.implementationProvider,g,m,k.CancellationToken.None);return t(()=>d)})}),define(ne[829],se([1,0,7,2,48,16,35,5,696,14,45,8,34,126,49]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISymbolNavigationService=e.ctxHasSymbols=void 0,e.ctxHasSymbols=new v.RawContextKey("hasSymbols",!1,(0,w.localize)(0,null)),e.ISymbolNavigationService=(0,a.createDecorator)("ISymbolNavigationService");let o=class{constructor(c,d,s,l){this._editorService=d,this._notificationService=s,this._keybindingService=l,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=e.ctxHasSymbols.bindTo(c)}reset(){var c,d;this._ctxHasSymbols.reset(),(c=this._currentState)===null||c===void 0||c.dispose(),(d=this._currentMessage)===null||d===void 0||d.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(c){const d=c.parent.parent;if(d.references.length<=1){this.reset();return}this._currentModel=d,this._currentIdx=d.references.indexOf(c),this._ctxHasSymbols.set(!0),this._showMessage();const s=new g(this._editorService),l=s.onDidChange(r=>{if(this._ignoreEditorChange)return;const h=this._editorService.getActiveCodeEditor();if(!h)return;const u=h.getModel(),f=h.getPosition();if(!u||!f)return;let C=!1,_=!1;for(const E of d.references)if((0,y.isEqual)(E.uri,u.uri))C=!0,_=_||p.Range.containsPosition(E.range,f);else if(C)break;(!C||!_)&&this.reset()});this._currentState=(0,k.combinedDisposable)(s,l)}revealNext(c){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const d=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:d.uri,options:{selection:p.Range.collapseToStart(d.range),selectionRevealType:3}},c).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var c;(c=this._currentMessage)===null||c===void 0||c.dispose();const d=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),s=d?(0,w.localize)(1,null,this._currentIdx+1,this._currentModel.references.length,d.getLabel()):(0,w.localize)(2,null,this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(s)}};o=De([he(0,v.IContextKeyService),he(1,S.ICodeEditorService),he(2,t.INotificationService),he(3,n.IKeybindingService)],o),(0,b.registerSingleton)(e.ISymbolNavigationService,o,1),(0,D.registerEditorCommand)(new class extends D.EditorCommand{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:e.ctxHasSymbols,kbOpts:{weight:100,primary:70}})}runEditorCommand(m,c){return m.get(e.ISymbolNavigationService).revealNext(c)}}),i.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:e.ctxHasSymbols,primary:9,handler(m){m.get(e.ISymbolNavigationService).reset()}});let g=class{constructor(c){this._listener=new Map,this._disposables=new k.DisposableStore,this._onDidChange=new L.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(c.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(c.onCodeEditorAdd(this._onDidAddEditor,this)),c.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),(0,k.dispose)(this._listener.values())}_onDidAddEditor(c){this._listener.set(c,(0,k.combinedDisposable)(c.onDidChangeCursorPosition(d=>this._onDidChange.fire({editor:c})),c.onDidChangeModelContent(d=>this._onDidChange.fire({editor:c}))))}_onDidRemoveEditor(c){var d;(d=this._listener.get(c))===null||d===void 0||d.dispose(),this._listener.delete(c)}};g=De([he(0,S.ICodeEditorService)],g)}),define(ne[370],se([1,0,15,19,12,16,18]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getHoverPromise=e.getHover=e.HoverProviderResult=void 0;class p{constructor(i,t,o){this.provider=i,this.hover=t,this.ordinal=o}}e.HoverProviderResult=p;async function w(n,i,t,o,g){try{const m=await Promise.resolve(n.provideHover(t,o,g));if(m&&a(m))return new p(n,m,i)}catch(m){(0,y.onUnexpectedExternalError)(m)}}function v(n,i,t,o){const m=n.ordered(i).map((c,d)=>w(c,d,i,t,o));return L.AsyncIterableObject.fromPromises(m).coalesce()}e.getHover=v;function b(n,i,t,o){return v(n,i,t,o).map(g=>g.hover).toPromise()}e.getHoverPromise=b,(0,D.registerModelAndPositionCommand)("_executeHoverProvider",(n,i,t)=>{const o=n.get(S.ILanguageFeaturesService);return b(o.hoverProvider,i,t,k.CancellationToken.None)});function a(n){const i=typeof n.range<"u",t=typeof n.contents<"u"&&n.contents&&n.contents.length>0;return i&&t}}),define(ne[258],se([1,0,6,13,15,58,2,108,9,5,43,370,698,26,57,18]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderMarkdownHovers=e.MarkdownHoverParticipant=e.MarkdownHover=void 0;const g=L.$;class m{constructor(l,r,h,u,f){this.owner=l,this.range=r,this.contents=h,this.isBeforeContent=u,this.ordinal=f}isValidForHoverAnchor(l){return l.type===1&&this.range.startColumn<=l.range.startColumn&&this.range.endColumn>=l.range.endColumn}}e.MarkdownHover=m;let c=class{constructor(l,r,h,u,f){this._editor=l,this._languageService=r,this._openerService=h,this._configurationService=u,this._languageFeaturesService=f,this.hoverOrdinal=3}createLoadingMessage(l){return new m(this,l.range,[new D.MarkdownString().appendText(n.localize(0,null))],!1,2e3)}computeSync(l,r){if(!this._editor.hasModel()||l.type!==1)return[];const h=this._editor.getModel(),u=l.range.startLineNumber,f=h.getLineMaxColumn(u),C=[];let _=1e3;const E=h.getLineLength(u),I=h.getLanguageIdAtPosition(l.range.startLineNumber,l.range.startColumn),T=this._editor.getOption(117),A=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:I});let R=!1;T>=0&&E>T&&l.range.startColumn>=T&&(R=!0,C.push(new m(this,l.range,[{value:n.localize(1,null)}],!1,_++))),!R&&typeof A=="number"&&E>=A&&C.push(new m(this,l.range,[{value:n.localize(2,null)}],!1,_++));let M=!1;for(const N of r){const P=N.range.startLineNumber===u?N.range.startColumn:1,F=N.range.endLineNumber===u?N.range.endColumn:f,O=N.options.hoverMessage;if(!O||(0,D.isEmptyMarkdownString)(O))continue;N.options.beforeContentClassName&&(M=!0);const B=new v.Range(l.range.startLineNumber,P,l.range.startLineNumber,F);C.push(new m(this,B,(0,k.asArray)(O),M,_++))}return C}computeAsync(l,r,h){if(!this._editor.hasModel()||l.type!==1)return y.AsyncIterableObject.EMPTY;const u=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(u))return y.AsyncIterableObject.EMPTY;const f=new w.Position(l.range.startLineNumber,l.range.startColumn);return(0,a.getHover)(this._languageFeaturesService.hoverProvider,u,f,h).filter(C=>!(0,D.isEmptyMarkdownString)(C.hover.contents)).map(C=>{const _=C.hover.range?v.Range.lift(C.hover.range):l.range;return new m(this,_,C.hover.contents,!1,C.ordinal)})}renderHoverParts(l,r){return d(l,r,this._editor,this._languageService,this._openerService)}};e.MarkdownHoverParticipant=c,e.MarkdownHoverParticipant=c=De([he(1,b.ILanguageService),he(2,t.IOpenerService),he(3,i.IConfigurationService),he(4,o.ILanguageFeaturesService)],c);function d(s,l,r,h,u){l.sort((C,_)=>C.ordinal-_.ordinal);const f=new S.DisposableStore;for(const C of l)for(const _ of C.contents){if((0,D.isEmptyMarkdownString)(_))continue;const E=g("div.hover-row.markdown-hover"),I=L.append(E,g("div.hover-contents")),T=f.add(new p.MarkdownRenderer({editor:r},h,u));f.add(T.onDidRenderAsync(()=>{I.className="hover-contents code-hover-contents",s.onContentsChanged()}));const A=f.add(T.render(_));I.appendChild(A.element),s.fragment.appendChild(E)}return f}e.renderMarkdownHovers=d}),define(ne[830],se([1,0,2,11,16,255,68,5,23,21,33,51,314,701,72,209,253]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentationToTabsCommand=e.IndentationToSpacesCommand=e.AutoIndentOnPaste=e.AutoIndentOnPasteCommand=e.ReindentSelectedLinesAction=e.ReindentLinesAction=e.DetectIndentation=e.ChangeTabDisplaySize=e.IndentUsingSpaces=e.IndentUsingTabs=e.ChangeIndentationSizeAction=e.IndentationToTabsAction=e.IndentationToSpacesAction=e.getReindentEditOperations=void 0;function m(R,M,N,P,F){if(R.getLineCount()===1&&R.getLineMaxColumn(1)===1)return[];const O=M.getLanguageConfiguration(R.getLanguageId()).indentationRules;if(!O)return[];for(P=Math.min(P,R.getLineCount());N<=P&&O.unIndentedLinePattern;){const X=R.getLineContent(N);if(!O.unIndentedLinePattern.test(X))break;N++}if(N>P-1)return[];const{tabSize:B,indentSize:W,insertSpaces:V}=R.getOptions(),z=(X,Y)=>(Y=Y||1,D.ShiftCommand.shiftIndent(X,X.length+Y,B,W,V)),K=(X,Y)=>(Y=Y||1,D.ShiftCommand.unshiftIndent(X,X.length+Y,B,W,V)),j=[];let x;const re=R.getLineContent(N);let ie=re;if(F!=null){x=F;const X=k.getLeadingWhitespace(re);ie=x+re.substring(X.length),O.decreaseIndentPattern&&O.decreaseIndentPattern.test(ie)&&(x=K(x),ie=x+re.substring(X.length)),re!==ie&&j.push(S.EditOperation.replaceMove(new w.Selection(N,1,N,X.length+1),(0,o.normalizeIndentation)(x,W,V)))}else x=k.getLeadingWhitespace(re);let J=x;O.increaseIndentPattern&&O.increaseIndentPattern.test(ie)?(J=z(J),x=z(x)):O.indentNextLinePattern&&O.indentNextLinePattern.test(ie)&&(J=z(J)),N++;for(let X=N;X<=P;X++){const Y=R.getLineContent(X),le=k.getLeadingWhitespace(Y),de=J+Y.substring(le.length);O.decreaseIndentPattern&&O.decreaseIndentPattern.test(de)&&(J=K(J),x=K(x)),le!==J&&j.push(S.EditOperation.replaceMove(new w.Selection(X,1,X,le.length+1),(0,o.normalizeIndentation)(J,W,V))),!(O.unIndentedLinePattern&&O.unIndentedLinePattern.test(Y))&&(O.increaseIndentPattern&&O.increaseIndentPattern.test(de)?(x=z(x),J=x):O.indentNextLinePattern&&O.indentNextLinePattern.test(de)?J=z(J):J=x)}return j}e.getReindentEditOperations=m;class c extends y.EditorAction{constructor(){super({id:c.ID,label:i.localize(0,null),alias:"Convert Indentation to Spaces",precondition:v.EditorContextKeys.writable})}run(M,N){const P=N.getModel();if(!P)return;const F=P.getOptions(),O=N.getSelection();if(!O)return;const B=new T(O,F.tabSize);N.pushUndoStop(),N.executeCommands(this.id,[B]),N.pushUndoStop(),P.updateOptions({insertSpaces:!0})}}e.IndentationToSpacesAction=c,c.ID="editor.action.indentationToSpaces";class d extends y.EditorAction{constructor(){super({id:d.ID,label:i.localize(1,null),alias:"Convert Indentation to Tabs",precondition:v.EditorContextKeys.writable})}run(M,N){const P=N.getModel();if(!P)return;const F=P.getOptions(),O=N.getSelection();if(!O)return;const B=new A(O,F.tabSize);N.pushUndoStop(),N.executeCommands(this.id,[B]),N.pushUndoStop(),P.updateOptions({insertSpaces:!1})}}e.IndentationToTabsAction=d,d.ID="editor.action.indentationToTabs";class s extends y.EditorAction{constructor(M,N,P){super(P),this.insertSpaces=M,this.displaySizeOnly=N}run(M,N){const P=M.get(t.IQuickInputService),F=M.get(a.IModelService),O=N.getModel();if(!O)return;const B=F.getCreationOptions(O.getLanguageId(),O.uri,O.isForSimpleWidget),W=O.getOptions(),V=[1,2,3,4,5,6,7,8].map(K=>({id:K.toString(),label:K.toString(),description:K===B.tabSize&&K===W.tabSize?i.localize(2,null):K===B.tabSize?i.localize(3,null):K===W.tabSize?i.localize(4,null):void 0})),z=Math.min(O.getOptions().tabSize-1,7);setTimeout(()=>{P.pick(V,{placeHolder:i.localize(5,null),activeItem:V[z]}).then(K=>{if(K&&O&&!O.isDisposed()){const j=parseInt(K.label,10);this.displaySizeOnly?O.updateOptions({tabSize:j}):O.updateOptions({tabSize:j,indentSize:j,insertSpaces:this.insertSpaces})}})},50)}}e.ChangeIndentationSizeAction=s;class l extends s{constructor(){super(!1,!1,{id:l.ID,label:i.localize(6,null),alias:"Indent Using Tabs",precondition:void 0})}}e.IndentUsingTabs=l,l.ID="editor.action.indentUsingTabs";class r extends s{constructor(){super(!0,!1,{id:r.ID,label:i.localize(7,null),alias:"Indent Using Spaces",precondition:void 0})}}e.IndentUsingSpaces=r,r.ID="editor.action.indentUsingSpaces";class h extends s{constructor(){super(!0,!0,{id:h.ID,label:i.localize(8,null),alias:"Change Tab Display Size",precondition:void 0})}}e.ChangeTabDisplaySize=h,h.ID="editor.action.changeTabDisplaySize";class u extends y.EditorAction{constructor(){super({id:u.ID,label:i.localize(9,null),alias:"Detect Indentation from Content",precondition:void 0})}run(M,N){const P=M.get(a.IModelService),F=N.getModel();if(!F)return;const O=P.getCreationOptions(F.getLanguageId(),F.uri,F.isForSimpleWidget);F.detectIndentation(O.insertSpaces,O.tabSize)}}e.DetectIndentation=u,u.ID="editor.action.detectIndentation";class f extends y.EditorAction{constructor(){super({id:"editor.action.reindentlines",label:i.localize(10,null),alias:"Reindent Lines",precondition:v.EditorContextKeys.writable})}run(M,N){const P=M.get(b.ILanguageConfigurationService),F=N.getModel();if(!F)return;const O=m(F,P,1,F.getLineCount());O.length>0&&(N.pushUndoStop(),N.executeEdits(this.id,O),N.pushUndoStop())}}e.ReindentLinesAction=f;class C extends y.EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:i.localize(11,null),alias:"Reindent Selected Lines",precondition:v.EditorContextKeys.writable})}run(M,N){const P=M.get(b.ILanguageConfigurationService),F=N.getModel();if(!F)return;const O=N.getSelections();if(O===null)return;const B=[];for(const W of O){let V=W.startLineNumber,z=W.endLineNumber;if(V!==z&&W.endColumn===1&&z--,V===1){if(V===z)continue}else V--;const K=m(F,P,V,z);B.push(...K)}B.length>0&&(N.pushUndoStop(),N.executeEdits(this.id,B),N.pushUndoStop())}}e.ReindentSelectedLinesAction=C;class _{constructor(M,N){this._initialSelection=N,this._edits=[],this._selectionId=null;for(const P of M)P.range&&typeof P.text=="string"&&this._edits.push(P)}getEditOperations(M,N){for(const F of this._edits)N.addEditOperation(p.Range.lift(F.range),F.text);let P=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(P=!0,this._selectionId=N.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(P=!0,this._selectionId=N.trackSelection(this._initialSelection,!1))),P||(this._selectionId=N.trackSelection(this._initialSelection))}computeCursorState(M,N){return N.getTrackedSelection(this._selectionId)}}e.AutoIndentOnPasteCommand=_;let E=class{constructor(M,N){this.editor=M,this._languageConfigurationService=N,this.callOnDispose=new L.DisposableStore,this.callOnModel=new L.DisposableStore,this.callOnDispose.add(M.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(M.onDidChangeModel(()=>this.update())),this.callOnDispose.add(M.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:M})=>{this.trigger(M)}))}trigger(M){const N=this.editor.getSelections();if(N===null||N.length>1)return;const P=this.editor.getModel();if(!P||!P.tokenization.isCheapToTokenize(M.getStartPosition().lineNumber))return;const F=this.editor.getOption(12),{tabSize:O,indentSize:B,insertSpaces:W}=P.getOptions(),V=[],z={shiftIndent:re=>D.ShiftCommand.shiftIndent(re,re.length+1,O,B,W),unshiftIndent:re=>D.ShiftCommand.unshiftIndent(re,re.length+1,O,B,W)};let K=M.startLineNumber;for(;K<=M.endLineNumber;){if(this.shouldIgnoreLine(P,K)){K++;continue}break}if(K>M.endLineNumber)return;let j=P.getLineContent(K);if(!/\S/.test(j.substring(0,M.startColumn-1))){const re=(0,g.getGoodIndentForLine)(F,P,P.getLanguageId(),K,z,this._languageConfigurationService);if(re!==null){const ie=k.getLeadingWhitespace(j),J=n.getSpaceCnt(re,O),X=n.getSpaceCnt(ie,O);if(J!==X){const Y=n.generateIndent(J,O,W);V.push({range:new p.Range(K,1,K,ie.length+1),text:Y}),j=Y+j.substr(ie.length)}else{const Y=(0,g.getIndentMetadata)(P,K,this._languageConfigurationService);if(Y===0||Y===8)return}}}const x=K;for(;KP.tokenization.getLineTokens(J),getLanguageId:()=>P.getLanguageId(),getLanguageIdAtPosition:(J,X)=>P.getLanguageIdAtPosition(J,X)},getLineContent:J=>J===x?j:P.getLineContent(J)},ie=(0,g.getGoodIndentForLine)(F,re,P.getLanguageId(),K+1,z,this._languageConfigurationService);if(ie!==null){const J=n.getSpaceCnt(ie,O),X=n.getSpaceCnt(k.getLeadingWhitespace(P.getLineContent(K+1)),O);if(J!==X){const Y=J-X;for(let le=K+1;le<=M.endLineNumber;le++){const de=P.getLineContent(le),ge=k.getLeadingWhitespace(de),Q=n.getSpaceCnt(ge,O)+Y,U=n.generateIndent(Q,O,W);U!==ge&&V.push({range:new p.Range(le,1,le,ge.length+1),text:U})}}}}if(V.length>0){this.editor.pushUndoStop();const re=new _(V,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",re),this.editor.pushUndoStop()}}shouldIgnoreLine(M,N){M.tokenization.forceTokenization(N);const P=M.getLineFirstNonWhitespaceColumn(N);if(P===0)return!0;const F=M.tokenization.getLineTokens(N);if(F.getCount()>0){const O=F.findTokenIndexAtOffset(P);if(O>=0&&F.getStandardTokenType(O)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};e.AutoIndentOnPaste=E,E.ID="editor.contrib.autoIndentOnPaste",e.AutoIndentOnPaste=E=De([he(1,b.ILanguageConfigurationService)],E);function I(R,M,N,P){if(R.getLineCount()===1&&R.getLineMaxColumn(1)===1)return;let F="";for(let B=0;B({selection:U,index:Z,ignore:!1}));ge.sort((U,Z)=>b.Range.compareRangesUsingStarts(U.selection,Z.selection));let pe=ge[0];for(let U=1;Unew v.Position(Z.positionLineNumber,Z.positionColumn)));const Q=de.getSelection();if(Q===null)return;const U=new S.TrimTrailingWhitespaceCommand(Q,pe);de.pushUndoStop(),de.executeCommands(this.id,[U]),de.pushUndoStop()}}e.TrimTrailingWhitespaceAction=T,T.ID="editor.action.trimTrailingWhitespace";class A extends y.EditorAction{constructor(){super({id:"editor.action.deleteLines",label:g.localize(14,null),alias:"Delete Line",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(le,de){if(!de.hasModel())return;const ge=this._getLinesToRemove(de),pe=de.getModel();if(pe.getLineCount()===1&&pe.getLineMaxColumn(1)===1)return;let Q=0;const U=[],Z=[];for(let H=0,q=ge.length;H1&&(G-=1,oe=pe.getLineMaxColumn(G)),U.push(w.EditOperation.replace(new a.Selection(G,oe,$,ae),"")),Z.push(new a.Selection(G-Q,te.positionColumn,G-Q,te.positionColumn)),Q+=te.endLineNumber-te.startLineNumber+1}de.pushUndoStop(),de.executeEdits(this.id,U,Z),de.pushUndoStop()}_getLinesToRemove(le){const de=le.getSelections().map(Q=>{let U=Q.endLineNumber;return Q.startLineNumberQ.startLineNumber===U.startLineNumber?Q.endLineNumber-U.endLineNumber:Q.startLineNumber-U.startLineNumber);const ge=[];let pe=de[0];for(let Q=1;Q=de[Q].startLineNumber?pe.endLineNumber=de[Q].endLineNumber:(ge.push(pe),pe=de[Q]);return ge.push(pe),ge}}e.DeleteLinesAction=A;class R extends y.EditorAction{constructor(){super({id:"editor.action.indentLines",label:g.localize(15,null),alias:"Indent Line",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:2142,weight:100}})}run(le,de){const ge=de._getViewModel();ge&&(de.pushUndoStop(),de.executeCommands(this.id,p.TypeOperations.indent(ge.cursorConfig,de.getModel(),de.getSelections())),de.pushUndoStop())}}e.IndentLinesAction=R;class M extends y.EditorAction{constructor(){super({id:"editor.action.outdentLines",label:g.localize(16,null),alias:"Outdent Line",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:2140,weight:100}})}run(le,de){k.CoreEditingCommands.Outdent.runEditorCommand(le,de,null)}}class N extends y.EditorAction{constructor(){super({id:"editor.action.insertLineBefore",label:g.localize(17,null),alias:"Insert Line Above",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(le,de){const ge=de._getViewModel();ge&&(de.pushUndoStop(),de.executeCommands(this.id,p.TypeOperations.lineInsertBefore(ge.cursorConfig,de.getModel(),de.getSelections())))}}e.InsertLineBeforeAction=N;class P extends y.EditorAction{constructor(){super({id:"editor.action.insertLineAfter",label:g.localize(18,null),alias:"Insert Line Below",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(le,de){const ge=de._getViewModel();ge&&(de.pushUndoStop(),de.executeCommands(this.id,p.TypeOperations.lineInsertAfter(ge.cursorConfig,de.getModel(),de.getSelections())))}}e.InsertLineAfterAction=P;class F extends y.EditorAction{run(le,de){if(!de.hasModel())return;const ge=de.getSelection(),pe=this._getRangesToDelete(de),Q=[];for(let H=0,q=pe.length-1;Hw.EditOperation.replace(H,""));de.pushUndoStop(),de.executeEdits(this.id,Z,U),de.pushUndoStop()}}e.AbstractDeleteAllToBoundaryAction=F;class O extends F{constructor(){super({id:"deleteAllLeft",label:g.localize(19,null),alias:"Delete All Left",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(le,de){let ge=null;const pe=[];let Q=0;return de.forEach(U=>{let Z;if(U.endColumn===1&&Q>0){const H=U.startLineNumber-Q;Z=new a.Selection(H,U.startColumn,H,U.startColumn)}else Z=new a.Selection(U.startLineNumber,U.startColumn,U.startLineNumber,U.startColumn);Q+=U.endLineNumber-U.startLineNumber,U.intersectRanges(le)?ge=Z:pe.push(Z)}),ge&&pe.unshift(ge),pe}_getRangesToDelete(le){const de=le.getSelections();if(de===null)return[];let ge=de;const pe=le.getModel();return pe===null?[]:(ge.sort(b.Range.compareRangesUsingStarts),ge=ge.map(Q=>{if(Q.isEmpty())if(Q.startColumn===1){const U=Math.max(1,Q.startLineNumber-1),Z=Q.startLineNumber===1?1:pe.getLineLength(U)+1;return new b.Range(U,Z,Q.startLineNumber,1)}else return new b.Range(Q.startLineNumber,1,Q.startLineNumber,Q.startColumn);else return new b.Range(Q.startLineNumber,1,Q.endLineNumber,Q.endColumn)}),ge)}}e.DeleteAllLeftAction=O;class B extends F{constructor(){super({id:"deleteAllRight",label:g.localize(20,null),alias:"Delete All Right",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(le,de){let ge=null;const pe=[];for(let Q=0,U=de.length,Z=0;Q{if(Q.isEmpty()){const U=de.getLineMaxColumn(Q.startLineNumber);return Q.startColumn===U?new b.Range(Q.startLineNumber,Q.startColumn,Q.startLineNumber+1,1):new b.Range(Q.startLineNumber,Q.startColumn,Q.startLineNumber,U)}return Q});return pe.sort(b.Range.compareRangesUsingStarts),pe}}e.DeleteAllRightAction=B;class W extends y.EditorAction{constructor(){super({id:"editor.action.joinLines",label:g.localize(21,null),alias:"Join Lines",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(le,de){const ge=de.getSelections();if(ge===null)return;let pe=de.getSelection();if(pe===null)return;ge.sort(b.Range.compareRangesUsingStarts);const Q=[],U=ge.reduce(($,oe)=>$.isEmpty()?$.endLineNumber===oe.startLineNumber?(pe.equalsSelection($)&&(pe=oe),oe):oe.startLineNumber>$.endLineNumber+1?(Q.push($),oe):new a.Selection($.startLineNumber,$.startColumn,oe.endLineNumber,oe.endColumn):oe.startLineNumber>$.endLineNumber?(Q.push($),oe):new a.Selection($.startLineNumber,$.startColumn,oe.endLineNumber,oe.endColumn));Q.push(U);const Z=de.getModel();if(Z===null)return;const H=[],q=[];let te=pe,G=0;for(let $=0,oe=Q.length;$=1){let We=!0;_e===""&&(We=!1),We&&(_e.charAt(_e.length-1)===" "||_e.charAt(_e.length-1)===" ")&&(We=!1,_e=_e.replace(/[\s\uFEFF\xA0]+$/g," "));const ye=Oe.substr(xe-1);_e+=(We?" ":"")+ye,We?fe=ye.length+1:fe=ye.length}else fe=0}const Ie=new b.Range(ue,ce,ve,Ce);if(!Ie.isEmpty()){let Ne;ae.isEmpty()?(H.push(w.EditOperation.replace(Ie,_e)),Ne=new a.Selection(Ie.startLineNumber-G,_e.length-fe+1,ue-G,_e.length-fe+1)):ae.startLineNumber===ae.endLineNumber?(H.push(w.EditOperation.replace(Ie,_e)),Ne=new a.Selection(ae.startLineNumber-G,ae.startColumn,ae.endLineNumber-G,ae.endColumn)):(H.push(w.EditOperation.replace(Ie,_e)),Ne=new a.Selection(ae.startLineNumber-G,ae.startColumn,ae.startLineNumber-G,_e.length-Se)),b.Range.intersectRanges(Ie,pe)!==null?te=Ne:q.push(Ne)}G+=Ie.endLineNumber-Ie.startLineNumber}q.unshift(te),de.pushUndoStop(),de.executeEdits(this.id,H,q),de.pushUndoStop()}}e.JoinLinesAction=W;class V extends y.EditorAction{constructor(){super({id:"editor.action.transpose",label:g.localize(22,null),alias:"Transpose Characters around the Cursor",precondition:n.EditorContextKeys.writable})}run(le,de){const ge=de.getSelections();if(ge===null)return;const pe=de.getModel();if(pe===null)return;const Q=[];for(let U=0,Z=ge.length;U=te){if(q.lineNumber===pe.getLineCount())continue;const G=new b.Range(q.lineNumber,Math.max(1,q.column-1),q.lineNumber+1,1),$=pe.getValueInRange(G).split("").reverse().join("");Q.push(new D.ReplaceCommand(new a.Selection(q.lineNumber,Math.max(1,q.column-1),q.lineNumber+1,1),$))}else{const G=new b.Range(q.lineNumber,Math.max(1,q.column-1),q.lineNumber,q.column+1),$=pe.getValueInRange(G).split("").reverse().join("");Q.push(new D.ReplaceCommandThatPreservesSelection(G,$,new a.Selection(q.lineNumber,q.column+1,q.lineNumber,q.column+1)))}}de.pushUndoStop(),de.executeCommands(this.id,Q),de.pushUndoStop()}}e.TransposeAction=V;class z extends y.EditorAction{run(le,de){const ge=de.getSelections();if(ge===null)return;const pe=de.getModel();if(pe===null)return;const Q=de.getOption(130),U=[];for(const Z of ge)if(Z.isEmpty()){const H=Z.getStartPosition(),q=de.getConfiguredWordAtPosition(H);if(!q)continue;const te=new b.Range(H.lineNumber,q.startColumn,H.lineNumber,q.endColumn),G=pe.getValueInRange(te);U.push(w.EditOperation.replace(te,this._modifyText(G,Q)))}else{const H=pe.getValueInRange(Z);U.push(w.EditOperation.replace(Z,this._modifyText(H,Q)))}de.pushUndoStop(),de.executeEdits(this.id,U),de.pushUndoStop()}}e.AbstractCaseAction=z;class K extends z{constructor(){super({id:"editor.action.transformToUppercase",label:g.localize(23,null),alias:"Transform to Uppercase",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){return le.toLocaleUpperCase()}}e.UpperCaseAction=K;class j extends z{constructor(){super({id:"editor.action.transformToLowercase",label:g.localize(24,null),alias:"Transform to Lowercase",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){return le.toLocaleLowerCase()}}e.LowerCaseAction=j;class x{constructor(le,de){this._pattern=le,this._flags=de,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class re extends z{constructor(){super({id:"editor.action.transformToTitlecase",label:g.localize(25,null),alias:"Transform to Title Case",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){const ge=re.titleBoundary.get();return ge?le.toLocaleLowerCase().replace(ge,pe=>pe.toLocaleUpperCase()):le}}e.TitleCaseAction=re,re.titleBoundary=new x("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class ie extends z{constructor(){super({id:"editor.action.transformToSnakecase",label:g.localize(26,null),alias:"Transform to Snake Case",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){const ge=ie.caseBoundary.get(),pe=ie.singleLetters.get();return!ge||!pe?le:le.replace(ge,"$1_$2").replace(pe,"$1_$2$3").toLocaleLowerCase()}}e.SnakeCaseAction=ie,ie.caseBoundary=new x("(\\p{Ll})(\\p{Lu})","gmu"),ie.singleLetters=new x("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class J extends z{constructor(){super({id:"editor.action.transformToCamelcase",label:g.localize(27,null),alias:"Transform to Camel Case",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){const ge=J.wordBoundary.get();if(!ge)return le;const pe=le.split(ge);return pe.shift()+pe.map(U=>U.substring(0,1).toLocaleUpperCase()+U.substring(1)).join("")}}e.CamelCaseAction=J,J.wordBoundary=new x("[_\\s-]","gm");class X extends z{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(de=>de.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:g.localize(28,null),alias:"Transform to Kebab Case",precondition:n.EditorContextKeys.writable})}_modifyText(le,de){const ge=X.caseBoundary.get(),pe=X.singleLetters.get(),Q=X.underscoreBoundary.get();return!ge||!pe||!Q?le:le.replace(Q,"$1-$3").replace(ge,"$1-$2").replace(pe,"$1-$2").toLocaleLowerCase()}}e.KebabCaseAction=X,X.caseBoundary=new x("(\\p{Ll})(\\p{Lu})","gmu"),X.singleLetters=new x("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),X.underscoreBoundary=new x("(\\S)(_)(\\S)","gm"),(0,y.registerEditorAction)(s),(0,y.registerEditorAction)(l),(0,y.registerEditorAction)(r),(0,y.registerEditorAction)(u),(0,y.registerEditorAction)(f),(0,y.registerEditorAction)(_),(0,y.registerEditorAction)(E),(0,y.registerEditorAction)(I),(0,y.registerEditorAction)(T),(0,y.registerEditorAction)(A),(0,y.registerEditorAction)(R),(0,y.registerEditorAction)(M),(0,y.registerEditorAction)(N),(0,y.registerEditorAction)(P),(0,y.registerEditorAction)(O),(0,y.registerEditorAction)(B),(0,y.registerEditorAction)(W),(0,y.registerEditorAction)(V),(0,y.registerEditorAction)(K),(0,y.registerEditorAction)(j),ie.caseBoundary.isSupported()&&ie.singleLetters.isSupported()&&(0,y.registerEditorAction)(ie),J.wordBoundary.isSupported()&&(0,y.registerEditorAction)(J),re.titleBoundary.isSupported()&&(0,y.registerEditorAction)(re),X.isSupported()&&(0,y.registerEditorAction)(X)}),define(ne[833],se([1,0,2,16]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class y extends L.Disposable{constructor(S){super(),this._editor=S,this._register(this._editor.onMouseDown(p=>{const w=this._editor.getOption(117);w>=0&&p.target.type===6&&p.target.position.column>=w&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}y.ID="editor.contrib.longLinesHelper",(0,k.registerEditorContribution)(y.ID,y,2)}),define(ne[168],se([1,0,191,44,7,58,2,16,5,108,712,14,57,6,481]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";var t;Object.defineProperty(e,"__esModule",{value:!0}),e.MessageController=void 0;let o=t=class{static get(d){return d.getContribution(t.ID)}constructor(d,s,l){this._openerService=l,this._messageWidget=new S.MutableDisposable,this._messageListeners=new S.DisposableStore,this._mouseOverMessage=!1,this._editor=d,this._visible=t.MESSAGE_VISIBLE.bindTo(s)}dispose(){var d;(d=this._message)===null||d===void 0||d.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(d,s){(0,k.alert)((0,D.isMarkdownString)(d)?d.value:d),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=(0,D.isMarkdownString)(d)?(0,L.renderMarkdown)(d,{actionHandler:{callback:r=>{this.closeMessage(),(0,v.openLinkFromMarkdown)(this._openerService,r,(0,D.isMarkdownString)(d)?d.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new m(this._editor,s,typeof d=="string"?d:this._message.element),this._messageListeners.add(y.Event.debounce(this._editor.onDidBlurEditorText,(r,h)=>h,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&i.isAncestor(i.getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(i.addDisposableListener(this._messageWidget.value.getDomNode(),i.EventType.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(i.addDisposableListener(this._messageWidget.value.getDomNode(),i.EventType.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let l;this._messageListeners.add(this._editor.onMouseMove(r=>{r.target.position&&(l?l.containsPosition(r.target.position)||this.closeMessage():l=new w.Range(s.lineNumber-3,1,r.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(m.fadeOut(this._messageWidget.value))}};e.MessageController=o,o.ID="editor.contrib.messageController",o.MESSAGE_VISIBLE=new a.RawContextKey("messageVisible",!1,b.localize(0,null)),e.MessageController=o=t=De([he(1,a.IContextKeyService),he(2,n.IOpenerService)],o);const g=p.EditorCommand.bindToContribution(o.get);(0,p.registerEditorCommand)(new g({id:"leaveEditorMessage",precondition:o.MESSAGE_VISIBLE,handler:c=>c.closeMessage(),kbOpts:{weight:130,primary:9}}));class m{static fadeOut(d){const s=()=>{d.dispose(),clearTimeout(l),d.getDomNode().removeEventListener("animationend",s)},l=setTimeout(s,110);return d.getDomNode().addEventListener("animationend",s),d.getDomNode().classList.add("fadeOut"),{dispose:s}}constructor(d,{lineNumber:s,column:l},r){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=d,this._editor.revealLinesInCenterIfOutsideViewport(s,s,0),this._position={lineNumber:s,column:l},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const h=document.createElement("div");h.classList.add("anchor","top"),this._domNode.appendChild(h);const u=document.createElement("div");typeof r=="string"?(u.classList.add("message"),u.textContent=r):(r.classList.add("message"),u.appendChild(r)),this._domNode.appendChild(u);const f=document.createElement("div");f.classList.add("anchor","below"),this._domNode.appendChild(f),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(d){this._domNode.classList.toggle("below",d===2)}}(0,p.registerEditorContribution)(o.ID,o,4)}),define(ne[834],se([1,0,58,2,16,168,719]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadOnlyMessageController=void 0;class p extends k.Disposable{constructor(v){super(),this.editor=v,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const v=D.MessageController.get(this.editor);if(v&&this.editor.hasModel()){let b=this.editor.getOptions().get(92);b||(this.editor.isSimpleWidget?b=new L.MarkdownString(S.localize(0,null)):b=new L.MarkdownString(S.localize(1,null))),v.showMessage(b,this.editor.getPosition())}}}e.ReadOnlyMessageController=p,p.ID="editor.contrib.readOnlyMessageController",(0,y.registerEditorContribution)(p.ID,p,2)}),define(ne[835],se([1,0,13,19,12,16,9,5,23,21,316,572,722,28,25,18,70,20,22]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";var d;Object.defineProperty(e,"__esModule",{value:!0}),e.provideSelectionRanges=e.SmartSelectController=void 0;class s{constructor(_,E){this.index=_,this.ranges=E}mov(_){const E=this.index+(_?1:-1);if(E<0||E>=this.ranges.length)return this;const I=new s(E,this.ranges);return I.ranges[E].equalsRange(this.ranges[this.index])?I.mov(_):I}}let l=d=class{static get(_){return _.getContribution(d.ID)}constructor(_,E){this._editor=_,this._languageFeaturesService=E,this._ignoreSelection=!1}dispose(){var _;(_=this._selectionListener)===null||_===void 0||_.dispose()}async run(_){if(!this._editor.hasModel())return;const E=this._editor.getSelections(),I=this._editor.getModel();if(this._state||await f(this._languageFeaturesService.selectionRangeProvider,I,E.map(A=>A.getPosition()),this._editor.getOption(113),k.CancellationToken.None).then(A=>{var R;if(!(!L.isNonEmptyArray(A)||A.length!==E.length)&&!(!this._editor.hasModel()||!L.equals(this._editor.getSelections(),E,(M,N)=>M.equalsSelection(N)))){for(let M=0;MN.containsPosition(E[M].getStartPosition())&&N.containsPosition(E[M].getEndPosition())),A[M].unshift(E[M]);this._state=A.map(M=>new s(0,M)),(R=this._selectionListener)===null||R===void 0||R.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var M;this._ignoreSelection||((M=this._selectionListener)===null||M===void 0||M.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(A=>A.mov(_));const T=this._state.map(A=>w.Selection.fromPositions(A.ranges[A.index].getStartPosition(),A.ranges[A.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(T)}finally{this._ignoreSelection=!1}}};e.SmartSelectController=l,l.ID="editor.contrib.smartSelectController",e.SmartSelectController=l=d=De([he(1,o.ILanguageFeaturesService)],l);class r extends D.EditorAction{constructor(_,E){super(E),this._forward=_}async run(_,E){const I=l.get(E);I&&await I.run(this._forward)}}class h extends r{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:n.localize(0,null),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:v.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"1_basic",title:n.localize(1,null),order:2}})}}t.CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class u extends r{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:n.localize(2,null),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:v.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"1_basic",title:n.localize(3,null),order:3}})}}(0,D.registerEditorContribution)(l.ID,l,4),(0,D.registerEditorAction)(h),(0,D.registerEditorAction)(u);async function f(C,_,E,I,T){const A=C.all(_).concat(new a.WordSelectionRangeProvider(I.selectSubwords));A.length===1&&A.unshift(new b.BracketSelectionRangeProvider);const R=[],M=[];for(const N of A)R.push(Promise.resolve(N.provideSelectionRanges(_,E,T)).then(P=>{if(L.isNonEmptyArray(P)&&P.length===E.length)for(let F=0;F{if(N.length===0)return[];N.sort((B,W)=>S.Position.isBefore(B.getStartPosition(),W.getStartPosition())?1:S.Position.isBefore(W.getStartPosition(),B.getStartPosition())||S.Position.isBefore(B.getEndPosition(),W.getEndPosition())?-1:S.Position.isBefore(W.getEndPosition(),B.getEndPosition())?1:0);const P=[];let F;for(const B of N)(!F||p.Range.containsRange(B,F)&&!p.Range.equalsRange(B,F))&&(P.push(B),F=B);if(!I.selectLeadingAndTrailingWhitespace)return P;const O=[P[0]];for(let B=1;B{g.hasChanged(126)&&(this._config=this._editor.getOption(126),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(g=>{g.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const i=this._editor.getModel();if(!i.mightContainUnusualLineTerminators()||b(this._codeEditorService,i)===!0||this._editor.getOption(91))return;if(this._config==="auto"){i.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let o;try{this._isPresentingDialog=!0,o=await this._dialogService.confirm({title:S.localize(0,null),message:S.localize(1,null),detail:S.localize(2,null,(0,k.basename)(i.uri)),primaryButton:S.localize(3,null),cancelButton:S.localize(4,null)})}finally{this._isPresentingDialog=!1}if(!o.confirmed){v(this._codeEditorService,i,!0);return}i.removeUnusualLineTerminators(this._editor.getSelections())}};e.UnusualLineTerminatorsDetector=a,a.ID="editor.contrib.unusualLineTerminatorsDetector",e.UnusualLineTerminatorsDetector=a=De([he(1,p.IDialogService),he(2,D.ICodeEditorService)],a),(0,y.registerEditorContribution)(a.ID,a,1)}),define(ne[371],se([1,0,16,134,36,76,184,154,9,5,23,21,33,739,71,14,195]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DeleteInsideWord=e.DeleteWordRight=e.DeleteWordEndRight=e.DeleteWordStartRight=e.DeleteWordLeft=e.DeleteWordEndLeft=e.DeleteWordStartLeft=e.DeleteWordRightCommand=e.DeleteWordLeftCommand=e.DeleteWordCommand=e.CursorWordAccessibilityRightSelect=e.CursorWordAccessibilityRight=e.CursorWordRightSelect=e.CursorWordEndRightSelect=e.CursorWordStartRightSelect=e.CursorWordRight=e.CursorWordEndRight=e.CursorWordStartRight=e.CursorWordAccessibilityLeftSelect=e.CursorWordAccessibilityLeft=e.CursorWordLeftSelect=e.CursorWordEndLeftSelect=e.CursorWordStartLeftSelect=e.CursorWordLeft=e.CursorWordEndLeft=e.CursorWordStartLeft=e.WordRightCommand=e.WordLeftCommand=e.MoveWordCommand=void 0;class m extends L.EditorCommand{constructor(J){super(J),this._inSelectionMode=J.inSelectionMode,this._wordNavigationType=J.wordNavigationType}runEditorCommand(J,X,Y){if(!X.hasModel())return;const le=(0,p.getMapForWordSeparators)(X.getOption(130)),de=X.getModel(),pe=X.getSelections().map(Q=>{const U=new w.Position(Q.positionLineNumber,Q.positionColumn),Z=this._move(le,de,U,this._wordNavigationType);return this._moveTo(Q,Z,this._inSelectionMode)});if(de.pushStackElement(),X._getViewModel().setCursorStates("moveWordCommand",3,pe.map(Q=>D.CursorState.fromModelSelection(Q))),pe.length===1){const Q=new w.Position(pe[0].positionLineNumber,pe[0].positionColumn);X.revealPosition(Q,0)}}_moveTo(J,X,Y){return Y?new b.Selection(J.selectionStartLineNumber,J.selectionStartColumn,X.lineNumber,X.column):new b.Selection(X.lineNumber,X.column,X.lineNumber,X.column)}}e.MoveWordCommand=m;class c extends m{_move(J,X,Y,le){return S.WordOperations.moveWordLeft(J,X,Y,le)}}e.WordLeftCommand=c;class d extends m{_move(J,X,Y,le){return S.WordOperations.moveWordRight(J,X,Y,le)}}e.WordRightCommand=d;class s extends c{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}e.CursorWordStartLeft=s;class l extends c{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}e.CursorWordEndLeft=l;class r extends c{constructor(){var J;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:o.ContextKeyExpr.and(a.EditorContextKeys.textInputFocus,(J=o.ContextKeyExpr.and(t.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext))===null||J===void 0?void 0:J.negate()),primary:2063,mac:{primary:527},weight:100}})}}e.CursorWordLeft=r;class h extends c{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}e.CursorWordStartLeftSelect=h;class u extends c{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}e.CursorWordEndLeftSelect=u;class f extends c{constructor(){var J;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:o.ContextKeyExpr.and(a.EditorContextKeys.textInputFocus,(J=o.ContextKeyExpr.and(t.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext))===null||J===void 0?void 0:J.negate()),primary:3087,mac:{primary:1551},weight:100}})}}e.CursorWordLeftSelect=f;class C extends c{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(J,X,Y,le){return super._move((0,p.getMapForWordSeparators)(y.EditorOptions.wordSeparators.defaultValue),X,Y,le)}}e.CursorWordAccessibilityLeft=C;class _ extends c{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(J,X,Y,le){return super._move((0,p.getMapForWordSeparators)(y.EditorOptions.wordSeparators.defaultValue),X,Y,le)}}e.CursorWordAccessibilityLeftSelect=_;class E extends d{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}e.CursorWordStartRight=E;class I extends d{constructor(){var J;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:o.ContextKeyExpr.and(a.EditorContextKeys.textInputFocus,(J=o.ContextKeyExpr.and(t.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext))===null||J===void 0?void 0:J.negate()),primary:2065,mac:{primary:529},weight:100}})}}e.CursorWordEndRight=I;class T extends d{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}e.CursorWordRight=T;class A extends d{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}e.CursorWordStartRightSelect=A;class R extends d{constructor(){var J;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:o.ContextKeyExpr.and(a.EditorContextKeys.textInputFocus,(J=o.ContextKeyExpr.and(t.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext))===null||J===void 0?void 0:J.negate()),primary:3089,mac:{primary:1553},weight:100}})}}e.CursorWordEndRightSelect=R;class M extends d{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}e.CursorWordRightSelect=M;class N extends d{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(J,X,Y,le){return super._move((0,p.getMapForWordSeparators)(y.EditorOptions.wordSeparators.defaultValue),X,Y,le)}}e.CursorWordAccessibilityRight=N;class P extends d{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(J,X,Y,le){return super._move((0,p.getMapForWordSeparators)(y.EditorOptions.wordSeparators.defaultValue),X,Y,le)}}e.CursorWordAccessibilityRightSelect=P;class F extends L.EditorCommand{constructor(J){super(J),this._whitespaceHeuristics=J.whitespaceHeuristics,this._wordNavigationType=J.wordNavigationType}runEditorCommand(J,X,Y){const le=J.get(n.ILanguageConfigurationService);if(!X.hasModel())return;const de=(0,p.getMapForWordSeparators)(X.getOption(130)),ge=X.getModel(),pe=X.getSelections(),Q=X.getOption(6),U=X.getOption(11),Z=le.getLanguageConfiguration(ge.getLanguageId()).getAutoClosingPairs(),H=X._getViewModel(),q=pe.map(te=>{const G=this._delete({wordSeparators:de,model:ge,selection:te,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:X.getOption(9),autoClosingBrackets:Q,autoClosingQuotes:U,autoClosingPairs:Z,autoClosedCharacters:H.getCursorAutoClosedCharacters()},this._wordNavigationType);return new k.ReplaceCommand(G,"")});X.pushUndoStop(),X.executeCommands(this.id,q),X.pushUndoStop()}}e.DeleteWordCommand=F;class O extends F{_delete(J,X){const Y=S.WordOperations.deleteWordLeft(J,X);return Y||new v.Range(1,1,1,1)}}e.DeleteWordLeftCommand=O;class B extends F{_delete(J,X){const Y=S.WordOperations.deleteWordRight(J,X);if(Y)return Y;const le=J.model.getLineCount(),de=J.model.getLineMaxColumn(le);return new v.Range(le,de,le,de)}}e.DeleteWordRightCommand=B;class W extends O{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:a.EditorContextKeys.writable})}}e.DeleteWordStartLeft=W;class V extends O{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:a.EditorContextKeys.writable})}}e.DeleteWordEndLeft=V;class z extends O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:a.EditorContextKeys.writable,kbOpts:{kbExpr:a.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}e.DeleteWordLeft=z;class K extends B{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:a.EditorContextKeys.writable})}}e.DeleteWordStartRight=K;class j extends B{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:a.EditorContextKeys.writable})}}e.DeleteWordEndRight=j;class x extends B{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:a.EditorContextKeys.writable,kbOpts:{kbExpr:a.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}e.DeleteWordRight=x;class re extends L.EditorAction{constructor(){super({id:"deleteInsideWord",precondition:a.EditorContextKeys.writable,label:i.localize(0,null),alias:"Delete Word"})}run(J,X,Y){if(!X.hasModel())return;const le=(0,p.getMapForWordSeparators)(X.getOption(130)),de=X.getModel(),pe=X.getSelections().map(Q=>{const U=S.WordOperations.deleteInsideWord(le,de,Q);return new k.ReplaceCommand(U,"")});X.pushUndoStop(),X.executeCommands(this.id,pe),X.pushUndoStop()}}e.DeleteInsideWord=re,(0,L.registerEditorCommand)(new s),(0,L.registerEditorCommand)(new l),(0,L.registerEditorCommand)(new r),(0,L.registerEditorCommand)(new h),(0,L.registerEditorCommand)(new u),(0,L.registerEditorCommand)(new f),(0,L.registerEditorCommand)(new E),(0,L.registerEditorCommand)(new I),(0,L.registerEditorCommand)(new T),(0,L.registerEditorCommand)(new A),(0,L.registerEditorCommand)(new R),(0,L.registerEditorCommand)(new M),(0,L.registerEditorCommand)(new C),(0,L.registerEditorCommand)(new _),(0,L.registerEditorCommand)(new N),(0,L.registerEditorCommand)(new P),(0,L.registerEditorCommand)(new W),(0,L.registerEditorCommand)(new V),(0,L.registerEditorCommand)(new z),(0,L.registerEditorCommand)(new K),(0,L.registerEditorCommand)(new j),(0,L.registerEditorCommand)(new x),(0,L.registerEditorAction)(re)}),define(ne[838],se([1,0,16,184,5,21,371,25]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorWordPartRightSelect=e.CursorWordPartRight=e.WordPartRightCommand=e.CursorWordPartLeftSelect=e.CursorWordPartLeft=e.WordPartLeftCommand=e.DeleteWordPartRight=e.DeleteWordPartLeft=void 0;class w extends S.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:D.EditorContextKeys.writable,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(m,c){const d=k.WordPartOperations.deleteWordPartLeft(m);return d||new y.Range(1,1,1,1)}}e.DeleteWordPartLeft=w;class v extends S.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:D.EditorContextKeys.writable,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(m,c){const d=k.WordPartOperations.deleteWordPartRight(m);if(d)return d;const s=m.model.getLineCount(),l=m.model.getLineMaxColumn(s);return new y.Range(s,l,s,l)}}e.DeleteWordPartRight=v;class b extends S.MoveWordCommand{_move(m,c,d,s){return k.WordPartOperations.moveWordPartLeft(m,c,d)}}e.WordPartLeftCommand=b;class a extends b{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}e.CursorWordPartLeft=a,p.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class n extends b{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}e.CursorWordPartLeftSelect=n,p.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class i extends S.MoveWordCommand{_move(m,c,d,s){return k.WordPartOperations.moveWordPartRight(m,c,d)}}e.WordPartRightCommand=i;class t extends i{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}e.CursorWordPartRight=t;class o extends i{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:D.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}e.CursorWordPartRightSelect=o,(0,L.registerEditorCommand)(new w),(0,L.registerEditorCommand)(new v),(0,L.registerEditorCommand)(new a),(0,L.registerEditorCommand)(new n),(0,L.registerEditorCommand)(new t),(0,L.registerEditorCommand)(new o)}),define(ne[839],se([1,0,6,2,16,17,493]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IPadShowKeyboard=void 0;class S extends k.Disposable{constructor(v){super(),this.editor=v,this.widget=null,D.isIOS&&(this._register(v.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const v=!this.editor.getOption(91);!this.widget&&v?this.widget=new p(this.editor):this.widget&&!v&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}e.IPadShowKeyboard=S,S.ID="editor.contrib.iPadShowKeyboard";class p extends k.Disposable{constructor(v){super(),this.editor=v,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(L.addDisposableListener(this._domNode,"touchstart",b=>{this.editor.focus()})),this._register(L.addDisposableListener(this._domNode,"focus",b=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return p.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}p.ID="editor.contrib.ShowKeyboardWidget",(0,y.registerEditorContribution)(S.ID,S,3)}),define(ne[840],se([1,0,6,39,2,16,30,136,162,43,143,99,494]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0});let i=n=class extends y.Disposable{static get(d){return d.getContribution(n.ID)}constructor(d,s,l){super(),this._editor=d,this._languageService=l,this._widget=null,this._register(this._editor.onDidChangeModel(r=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(r=>this.stop())),this._register(S.TokenizationRegistry.onDidChange(r=>this.stop())),this._register(this._editor.onKeyUp(r=>r.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new m(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};i.ID="editor.contrib.inspectTokens",i=n=De([he(1,b.IStandaloneThemeService),he(2,v.ILanguageService)],i);class t extends D.EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:a.InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(d,s){const l=i.get(s);l?.launch()}}function o(c){let d="";for(let s=0,l=c.length;sw.NullState,tokenize:(r,h,u)=>(0,w.nullTokenize)(d,u),tokenizeEncoded:(r,h,u)=>(0,w.nullTokenizeEncoded)(l,u)}}class m extends y.Disposable{constructor(d,s){super(),this.allowEditorOverflow=!0,this._editor=d,this._languageService=s,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=g(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(l=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return m._ID}_compute(d){const s=this._getTokensAtLine(d.lineNumber);let l=0;for(let C=s.tokens1.length-1;C>=0;C--){const _=s.tokens1[C];if(d.column-1>=_.offset){l=C;break}}let r=0;for(let C=s.tokens2.length>>>1;C>=0;C--)if(d.column-1>=s.tokens2[C<<1]){r=C;break}const h=this._model.getLineContent(d.lineNumber);let u="";if(l{const W=new w.TfIdfCalculator;W.updateDocuments(A.map(z=>({key:z.commandId,textChunks:[this.getTfIdfChunk(z)]})));const V=W.calculateScores(h,f);return(0,w.normalizeTfIdfScores)(V).filter(z=>z.score>c.TFIDF_THRESHOLD).slice(0,c.TFIDF_MAX_RESULTS)}),M=[];for(const W of A){const V=(_=c.WORD_FILTER(h,W.label))!==null&&_!==void 0?_:void 0,z=W.commandAlias&&(E=c.WORD_FILTER(h,W.commandAlias))!==null&&E!==void 0?E:void 0;if(V||z)W.highlights={label:V,detail:this.options.showAlias?z:void 0},M.push(W);else if(h===W.commandId)M.push(W);else if(h.length>=3){const K=R();if(f.isCancellationRequested)return[];const j=K.find(x=>x.key===W.commandId);j&&(W.tfIdfScore=j.score,M.push(W))}}const N=new Map;for(const W of M){const V=N.get(W.label);V?(W.description=W.commandId,V.description=V.commandId):N.set(W.label,W)}M.sort((W,V)=>{if(W.tfIdfScore&&V.tfIdfScore)return W.tfIdfScore===V.tfIdfScore?W.label.localeCompare(V.label):V.tfIdfScore-W.tfIdfScore;if(W.tfIdfScore)return 1;if(V.tfIdfScore)return-1;const z=this.commandsHistory.peek(W.commandId),K=this.commandsHistory.peek(V.commandId);if(z&&K)return z>K?-1:1;if(z)return-1;if(K)return 1;if(this.options.suggestedCommandIds){const j=this.options.suggestedCommandIds.has(W.commandId),x=this.options.suggestedCommandIds.has(V.commandId);if(j&&x)return 0;if(j)return-1;if(x)return 1}return W.label.localeCompare(V.label)});const P=[];let F=!1,O=!0,B=!!this.options.suggestedCommandIds;for(let W=0;W{var W;const V=await this.getAdditionalCommandPicks(A,M,h,f);if(f.isCancellationRequested)return[];const z=V.map(K=>this.toCommandPick(K,C));return O&&((W=z[0])===null||W===void 0?void 0:W.type)!=="separator"&&z.unshift({type:"separator",label:(0,v.localize)(4,null)}),z})()}:P}toCommandPick(h,u){if(h.type==="separator")return h;const f=this.keybindingService.lookupKeybinding(h.commandId),C=f?(0,v.localize)(5,null,h.label,f.getAriaLabel()):h.label;return{...h,ariaLabel:C,detail:this.options.showAlias&&h.commandAlias!==h.label?h.commandAlias:void 0,keybinding:f,accept:async()=>{var _,E;this.commandsHistory.push(h.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:(_=u?.from)!==null&&_!==void 0?_:"quick open"});try{!((E=h.args)===null||E===void 0)&&E.length?await this.commandService.executeCommand(h.commandId,...h.args):await this.commandService.executeCommand(h.commandId)}catch(I){(0,k.isCancellationError)(I)||this.dialogService.error((0,v.localize)(6,null,h.label),(0,L.toErrorMessage)(I))}}}}getTfIdfChunk({label:h,commandAlias:u,commandDescription:f}){let C=h;return u&&u!==h&&(C+=` - ${u}`),f&&f.value!==h&&(C+=` - ${f.value===f.original?f.value:`${f.value} (${f.original})`}`),C}};e.AbstractCommandsQuickAccessProvider=s,s.PREFIX=">",s.TFIDF_THRESHOLD=.5,s.TFIDF_MAX_RESULTS=5,s.WORD_FILTER=(0,y.or)(y.matchesPrefix,y.matchesWords,y.matchesContiguousSubString),e.AbstractCommandsQuickAccessProvider=s=c=De([he(1,i.IInstantiationService),he(2,t.IKeybindingService),he(3,b.ICommandService),he(4,m.ITelemetryService),he(5,n.IDialogService)],s);let l=d=class extends S.Disposable{constructor(h,u){super(),this.storageService=h,this.configurationService=u,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(h=>this.updateConfiguration(h))),this._register(this.storageService.onWillSaveState(h=>{h.reason===g.WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(h){h&&!h.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=d.getConfiguredCommandHistoryLength(this.configurationService),d.cache&&d.cache.limit!==this.configuredCommandsHistoryLength&&(d.cache.limit=this.configuredCommandsHistoryLength,d.hasChanges=!0))}load(){const h=this.storageService.get(d.PREF_KEY_CACHE,0);let u;if(h)try{u=JSON.parse(h)}catch{}const f=d.cache=new p.LRUCache(this.configuredCommandsHistoryLength,1);if(u){let C;u.usesLRU?C=u.entries:C=u.entries.sort((_,E)=>_.value-E.value),C.forEach(_=>f.set(_.key,_.value))}d.counter=this.storageService.getNumber(d.PREF_KEY_COUNTER,0,d.counter)}push(h){d.cache&&(d.cache.set(h,d.counter++),d.hasChanges=!0)}peek(h){var u;return(u=d.cache)===null||u===void 0?void 0:u.peek(h)}saveState(){if(!d.cache||!d.hasChanges)return;const h={usesLRU:!0,entries:[]};d.cache.forEach((u,f)=>h.entries.push({key:f,value:u})),this.storageService.store(d.PREF_KEY_CACHE,JSON.stringify(h),0,0),this.storageService.store(d.PREF_KEY_COUNTER,d.counter,0,0),d.hasChanges=!1}static getConfiguredCommandHistoryLength(h){var u,f;const _=(f=(u=h.getValue().workbench)===null||u===void 0?void 0:u.commandPalette)===null||f===void 0?void 0:f.history;return typeof _=="number"?_:d.DEFAULT_COMMANDS_HISTORY_LENGTH}};e.CommandsHistory=l,l.DEFAULT_COMMANDS_HISTORY_LENGTH=50,l.PREF_KEY_CACHE="commandPalette.mru.cache",l.PREF_KEY_COUNTER="commandPalette.mru.counter",l.counter=1,l.hasChanges=!1,e.CommandsHistory=l=d=De([he(0,g.IStorageService),he(1,a.IConfigurationService)],l)}),define(ne[842],se([1,0,130,841]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorCommandsQuickAccessProvider=void 0;class y extends k.AbstractCommandsQuickAccessProvider{constructor(S,p,w,v,b,a){super(S,p,w,v,b,a)}getCodeEditorCommandPicks(){const S=this.activeTextEditorControl;if(!S)return[];const p=[];for(const w of S.getSupportedActions())p.push({commandId:w.id,commandAlias:w.alias,label:(0,L.stripIcons)(w.label)||w.id});return p}}e.AbstractEditorCommandsQuickAccessProvider=y}),define(ne[843],se([1,0,37,145,99,35,842,8,34,25,61,164,16,21,72]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneCommandsQuickAccessProvider=void 0;let o=class extends S.AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){var c;return(c=this.codeEditorService.getFocusedCodeEditor())!==null&&c!==void 0?c:void 0}constructor(c,d,s,l,r,h){super({showAlias:!1},c,s,l,r,h),this.codeEditorService=d}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};e.StandaloneCommandsQuickAccessProvider=o,e.StandaloneCommandsQuickAccessProvider=o=De([he(0,p.IInstantiationService),he(1,D.ICodeEditorService),he(2,w.IKeybindingService),he(3,v.ICommandService),he(4,b.ITelemetryService),he(5,a.IDialogService)],o);class g extends n.EditorAction{constructor(){super({id:g.ID,label:y.QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:i.EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(c){c.get(t.IQuickInputService).quickAccess.show(o.PREFIX)}}e.GotoLineAction=g,g.ID="editor.action.quickCommand",(0,n.registerEditorAction)(g),L.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:o,prefix:o.PREFIX,helpEntries:[{description:y.QuickCommandNLS.quickCommandHelp,commandId:g.ID}]})}),define(ne[31],se([1,0,90,15,39,7,762,250,37]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.workbenchColorsSchemaId=e.resolveColorValue=e.ifDefinedThenElse=e.oneOf=e.transparent=e.lighten=e.darken=e.executeTransform=e.chartsPurple=e.chartsGreen=e.chartsOrange=e.chartsYellow=e.chartsBlue=e.chartsRed=e.chartsLines=e.chartsForeground=e.problemsInfoIconForeground=e.problemsWarningIconForeground=e.problemsErrorIconForeground=e.minimapSliderActiveBackground=e.minimapSliderHoverBackground=e.minimapSliderBackground=e.minimapForegroundOpacity=e.minimapBackground=e.minimapError=e.minimapWarning=e.minimapInfo=e.minimapSelection=e.minimapSelectionOccurrenceHighlight=e.minimapFindMatch=e.overviewRulerSelectionHighlightForeground=e.overviewRulerFindMatchForeground=e.overviewRulerCommonContentForeground=e.overviewRulerIncomingContentForeground=e.overviewRulerCurrentContentForeground=e.mergeBorder=e.mergeCommonContentBackground=e.mergeCommonHeaderBackground=e.mergeIncomingContentBackground=e.mergeIncomingHeaderBackground=e.mergeCurrentContentBackground=e.mergeCurrentHeaderBackground=e.breadcrumbsPickerBackground=e.breadcrumbsActiveSelectionForeground=e.breadcrumbsFocusForeground=e.breadcrumbsBackground=e.breadcrumbsForeground=e.snippetFinalTabstopHighlightBorder=e.snippetFinalTabstopHighlightBackground=e.snippetTabstopHighlightBorder=e.snippetTabstopHighlightBackground=e.toolbarActiveBackground=e.toolbarHoverOutline=e.toolbarHoverBackground=e.menuSeparatorBackground=e.menuSelectionBorder=e.menuSelectionBackground=e.menuSelectionForeground=e.menuBackground=e.menuForeground=e.menuBorder=e.quickInputListFocusBackground=e.quickInputListFocusIconForeground=e.quickInputListFocusForeground=e._deprecatedQuickInputListFocusBackground=e.checkboxSelectBorder=e.checkboxBorder=e.checkboxForeground=e.checkboxSelectBackground=e.checkboxBackground=e.listDeemphasizedForeground=e.tableOddRowsBackgroundColor=e.tableColumnsBorder=e.treeInactiveIndentGuidesStroke=e.treeIndentGuidesStroke=e.listFilterMatchHighlightBorder=e.listFilterMatchHighlight=e.listFilterWidgetShadow=e.listFilterWidgetNoMatchesOutline=e.listFilterWidgetOutline=e.listFilterWidgetBackground=e.listWarningForeground=e.listErrorForeground=e.listInvalidItemForeground=e.listFocusHighlightForeground=e.listHighlightForeground=e.listDropBetweenBackground=e.listDropOverBackground=e.listHoverForeground=e.listHoverBackground=e.listInactiveFocusOutline=e.listInactiveFocusBackground=e.listInactiveSelectionIconForeground=e.listInactiveSelectionForeground=e.listInactiveSelectionBackground=e.listActiveSelectionIconForeground=e.listActiveSelectionForeground=e.listActiveSelectionBackground=e.listFocusAndSelectionOutline=e.listFocusOutline=e.listFocusForeground=e.listFocusBackground=e.diffUnchangedTextBackground=e.diffUnchangedRegionForeground=e.diffUnchangedRegionBackground=e.diffDiagonalFill=e.diffBorder=e.diffRemovedOutline=e.diffInsertedOutline=e.diffOverviewRulerRemoved=e.diffOverviewRulerInserted=e.diffRemovedLineGutter=e.diffInsertedLineGutter=e.diffRemovedLine=e.diffInsertedLine=e.diffRemoved=e.diffInserted=e.defaultRemoveColor=e.defaultInsertColor=e.editorLightBulbAiForeground=e.editorLightBulbAutoFixForeground=e.editorLightBulbForeground=e.editorInlayHintParameterBackground=e.editorInlayHintParameterForeground=e.editorInlayHintTypeBackground=e.editorInlayHintTypeForeground=e.editorInlayHintBackground=e.editorInlayHintForeground=e.editorActiveLinkForeground=e.editorHoverStatusBarBackground=e.editorHoverBorder=e.editorHoverForeground=e.editorHoverBackground=e.editorHoverHighlight=e.searchResultsInfoForeground=e.searchEditorFindMatchBorder=e.searchEditorFindMatch=e.editorFindRangeHighlightBorder=e.editorFindMatchHighlightBorder=e.editorFindMatchBorder=e.editorFindRangeHighlight=e.editorFindMatchHighlight=e.editorFindMatch=e.editorSelectionHighlightBorder=e.editorSelectionHighlight=e.editorInactiveSelection=e.editorSelectionForeground=e.editorSelectionBackground=e.keybindingLabelBottomBorder=e.keybindingLabelBorder=e.keybindingLabelForeground=e.keybindingLabelBackground=e.pickerGroupBorder=e.pickerGroupForeground=e.quickInputTitleBackground=e.quickInputForeground=e.quickInputBackground=e.editorWidgetResizeBorder=e.editorWidgetBorder=e.editorWidgetForeground=e.editorWidgetBackground=e.editorStickyScrollShadow=e.editorStickyScrollBorder=e.editorStickyScrollHoverBackground=e.editorStickyScrollBackground=e.editorForeground=e.editorBackground=e.sashHoverBorder=e.editorHintBorder=e.editorHintForeground=e.editorInfoBorder=e.editorInfoForeground=e.editorInfoBackground=e.editorWarningBorder=e.editorWarningForeground=e.editorWarningBackground=e.editorErrorBorder=e.editorErrorForeground=e.editorErrorBackground=e.progressBarBackground=e.scrollbarSliderActiveBackground=e.scrollbarSliderHoverBackground=e.scrollbarSliderBackground=e.scrollbarShadow=e.badgeForeground=e.badgeBackground=e.buttonSecondaryHoverBackground=e.buttonSecondaryBackground=e.buttonSecondaryForeground=e.buttonBorder=e.buttonHoverBackground=e.buttonBackground=e.buttonSeparator=e.buttonForeground=e.selectBorder=e.selectForeground=e.selectListBackground=e.selectBackground=e.inputValidationErrorBorder=e.inputValidationErrorForeground=e.inputValidationErrorBackground=e.inputValidationWarningBorder=e.inputValidationWarningForeground=e.inputValidationWarningBackground=e.inputValidationInfoBorder=e.inputValidationInfoForeground=e.inputValidationInfoBackground=e.inputPlaceholderForeground=e.inputActiveOptionForeground=e.inputActiveOptionBackground=e.inputActiveOptionHoverBackground=e.inputActiveOptionBorder=e.inputBorder=e.inputForeground=e.inputBackground=e.widgetBorder=e.widgetShadow=e.textCodeBlockBackground=e.textBlockQuoteBorder=e.textBlockQuoteBackground=e.textPreformatBackground=e.textPreformatForeground=e.textLinkActiveForeground=e.textLinkForeground=e.textSeparatorForeground=e.selectionBackground=e.activeContrastBorder=e.contrastBorder=e.focusBorder=e.iconForeground=e.descriptionForeground=e.errorForeground=e.disabledForeground=e.foreground=e.registerColor=e.Extensions=e.asCssVariableWithDefault=e.asCssVariable=e.asCssVariableName=void 0;function v(A){return`--vscode-${A.replace(/\./g,"-")}`}e.asCssVariableName=v;function b(A){return`var(${v(A)})`}e.asCssVariable=b;function a(A,R){return`var(${v(A)}, ${R})`}e.asCssVariableWithDefault=a,e.Extensions={ColorContribution:"base.contributions.colors"};class n{constructor(){this._onDidChangeSchema=new D.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(R,M,N,P=!1,F){const O={id:R,description:N,defaults:M,needsTransparency:P,deprecationMessage:F};this.colorsById[R]=O;const B={type:"string",description:N,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return F&&(B.deprecationMessage=F),P&&(B.pattern="^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",B.patternErrorMessage="This color must be transparent or it will obscure content"),this.colorSchema.properties[R]=B,this.colorReferenceSchema.enum.push(R),this.colorReferenceSchema.enumDescriptions.push(N),this._onDidChangeSchema.fire(),R}getColors(){return Object.keys(this.colorsById).map(R=>this.colorsById[R])}resolveDefaultColor(R,M){const N=this.colorsById[R];if(N&&N.defaults){const P=N.defaults[M.type];return E(P,M)}}getColorSchema(){return this.colorSchema}toString(){const R=(M,N)=>{const P=M.indexOf(".")===-1?0:1,F=N.indexOf(".")===-1?0:1;return P!==F?P-F:M.localeCompare(N)};return Object.keys(this.colorsById).sort(R).map(M=>`- \`${M}\`: ${this.colorsById[M].description}`).join(` +`)}}const i=new n;w.Registry.add(e.Extensions.ColorContribution,i);function t(A,R,M,N,P){return i.registerColor(A,R,M,N,P)}e.registerColor=t,e.foreground=t("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},S.localize(0,null)),e.disabledForeground=t("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},S.localize(1,null)),e.errorForeground=t("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},S.localize(2,null)),e.descriptionForeground=t("descriptionForeground",{light:"#717171",dark:u(e.foreground,.7),hcDark:u(e.foreground,.7),hcLight:u(e.foreground,.7)},S.localize(3,null)),e.iconForeground=t("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},S.localize(4,null)),e.focusBorder=t("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},S.localize(5,null)),e.contrastBorder=t("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},S.localize(6,null)),e.activeContrastBorder=t("contrastActiveBorder",{light:null,dark:null,hcDark:e.focusBorder,hcLight:e.focusBorder},S.localize(7,null)),e.selectionBackground=t("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},S.localize(8,null)),e.textSeparatorForeground=t("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:y.Color.black,hcLight:"#292929"},S.localize(9,null)),e.textLinkForeground=t("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},S.localize(10,null)),e.textLinkActiveForeground=t("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},S.localize(11,null)),e.textPreformatForeground=t("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},S.localize(12,null)),e.textPreformatBackground=t("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},S.localize(13,null)),e.textBlockQuoteBackground=t("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},S.localize(14,null)),e.textBlockQuoteBorder=t("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:y.Color.white,hcLight:"#292929"},S.localize(15,null)),e.textCodeBlockBackground=t("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:y.Color.black,hcLight:"#F2F2F2"},S.localize(16,null)),e.widgetShadow=t("widget.shadow",{dark:u(y.Color.black,.36),light:u(y.Color.black,.16),hcDark:null,hcLight:null},S.localize(17,null)),e.widgetBorder=t("widget.border",{dark:null,light:null,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(18,null)),e.inputBackground=t("input.background",{dark:"#3C3C3C",light:y.Color.white,hcDark:y.Color.black,hcLight:y.Color.white},S.localize(19,null)),e.inputForeground=t("input.foreground",{dark:e.foreground,light:e.foreground,hcDark:e.foreground,hcLight:e.foreground},S.localize(20,null)),e.inputBorder=t("input.border",{dark:null,light:null,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(21,null)),e.inputActiveOptionBorder=t("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(22,null)),e.inputActiveOptionHoverBackground=t("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},S.localize(23,null)),e.inputActiveOptionBackground=t("inputOption.activeBackground",{dark:u(e.focusBorder,.4),light:u(e.focusBorder,.2),hcDark:y.Color.transparent,hcLight:y.Color.transparent},S.localize(24,null)),e.inputActiveOptionForeground=t("inputOption.activeForeground",{dark:y.Color.white,light:y.Color.black,hcDark:e.foreground,hcLight:e.foreground},S.localize(25,null)),e.inputPlaceholderForeground=t("input.placeholderForeground",{light:u(e.foreground,.5),dark:u(e.foreground,.5),hcDark:u(e.foreground,.7),hcLight:u(e.foreground,.7)},S.localize(26,null)),e.inputValidationInfoBackground=t("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:y.Color.black,hcLight:y.Color.white},S.localize(27,null)),e.inputValidationInfoForeground=t("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:e.foreground},S.localize(28,null)),e.inputValidationInfoBorder=t("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(29,null)),e.inputValidationWarningBackground=t("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:y.Color.black,hcLight:y.Color.white},S.localize(30,null)),e.inputValidationWarningForeground=t("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:e.foreground},S.localize(31,null)),e.inputValidationWarningBorder=t("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(32,null)),e.inputValidationErrorBackground=t("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:y.Color.black,hcLight:y.Color.white},S.localize(33,null)),e.inputValidationErrorForeground=t("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:e.foreground},S.localize(34,null)),e.inputValidationErrorBorder=t("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(35,null)),e.selectBackground=t("dropdown.background",{dark:"#3C3C3C",light:y.Color.white,hcDark:y.Color.black,hcLight:y.Color.white},S.localize(36,null)),e.selectListBackground=t("dropdown.listBackground",{dark:null,light:null,hcDark:y.Color.black,hcLight:y.Color.white},S.localize(37,null)),e.selectForeground=t("dropdown.foreground",{dark:"#F0F0F0",light:e.foreground,hcDark:y.Color.white,hcLight:e.foreground},S.localize(38,null)),e.selectBorder=t("dropdown.border",{dark:e.selectBackground,light:"#CECECE",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(39,null)),e.buttonForeground=t("button.foreground",{dark:y.Color.white,light:y.Color.white,hcDark:y.Color.white,hcLight:y.Color.white},S.localize(40,null)),e.buttonSeparator=t("button.separator",{dark:u(e.buttonForeground,.4),light:u(e.buttonForeground,.4),hcDark:u(e.buttonForeground,.4),hcLight:u(e.buttonForeground,.4)},S.localize(41,null)),e.buttonBackground=t("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},S.localize(42,null)),e.buttonHoverBackground=t("button.hoverBackground",{dark:h(e.buttonBackground,.2),light:r(e.buttonBackground,.2),hcDark:e.buttonBackground,hcLight:e.buttonBackground},S.localize(43,null)),e.buttonBorder=t("button.border",{dark:e.contrastBorder,light:e.contrastBorder,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(44,null)),e.buttonSecondaryForeground=t("button.secondaryForeground",{dark:y.Color.white,light:y.Color.white,hcDark:y.Color.white,hcLight:e.foreground},S.localize(45,null)),e.buttonSecondaryBackground=t("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:y.Color.white},S.localize(46,null)),e.buttonSecondaryHoverBackground=t("button.secondaryHoverBackground",{dark:h(e.buttonSecondaryBackground,.2),light:r(e.buttonSecondaryBackground,.2),hcDark:null,hcLight:null},S.localize(47,null)),e.badgeBackground=t("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:y.Color.black,hcLight:"#0F4A85"},S.localize(48,null)),e.badgeForeground=t("badge.foreground",{dark:y.Color.white,light:"#333",hcDark:y.Color.white,hcLight:y.Color.white},S.localize(49,null)),e.scrollbarShadow=t("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},S.localize(50,null)),e.scrollbarSliderBackground=t("scrollbarSlider.background",{dark:y.Color.fromHex("#797979").transparent(.4),light:y.Color.fromHex("#646464").transparent(.4),hcDark:u(e.contrastBorder,.6),hcLight:u(e.contrastBorder,.4)},S.localize(51,null)),e.scrollbarSliderHoverBackground=t("scrollbarSlider.hoverBackground",{dark:y.Color.fromHex("#646464").transparent(.7),light:y.Color.fromHex("#646464").transparent(.7),hcDark:u(e.contrastBorder,.8),hcLight:u(e.contrastBorder,.8)},S.localize(52,null)),e.scrollbarSliderActiveBackground=t("scrollbarSlider.activeBackground",{dark:y.Color.fromHex("#BFBFBF").transparent(.4),light:y.Color.fromHex("#000000").transparent(.6),hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(53,null)),e.progressBarBackground=t("progressBar.background",{dark:y.Color.fromHex("#0E70C0"),light:y.Color.fromHex("#0E70C0"),hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(54,null)),e.editorErrorBackground=t("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(55,null),!0),e.editorErrorForeground=t("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},S.localize(56,null)),e.editorErrorBorder=t("editorError.border",{dark:null,light:null,hcDark:y.Color.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},S.localize(57,null)),e.editorWarningBackground=t("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(58,null),!0),e.editorWarningForeground=t("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},S.localize(59,null)),e.editorWarningBorder=t("editorWarning.border",{dark:null,light:null,hcDark:y.Color.fromHex("#FFCC00").transparent(.8),hcLight:y.Color.fromHex("#FFCC00").transparent(.8)},S.localize(60,null)),e.editorInfoBackground=t("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(61,null),!0),e.editorInfoForeground=t("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},S.localize(62,null)),e.editorInfoBorder=t("editorInfo.border",{dark:null,light:null,hcDark:y.Color.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},S.localize(63,null)),e.editorHintForeground=t("editorHint.foreground",{dark:y.Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},S.localize(64,null)),e.editorHintBorder=t("editorHint.border",{dark:null,light:null,hcDark:y.Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},S.localize(65,null)),e.sashHoverBorder=t("sash.hoverBorder",{dark:e.focusBorder,light:e.focusBorder,hcDark:e.focusBorder,hcLight:e.focusBorder},S.localize(66,null)),e.editorBackground=t("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:y.Color.black,hcLight:y.Color.white},S.localize(67,null)),e.editorForeground=t("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:y.Color.white,hcLight:e.foreground},S.localize(68,null)),e.editorStickyScrollBackground=t("editorStickyScroll.background",{light:e.editorBackground,dark:e.editorBackground,hcDark:e.editorBackground,hcLight:e.editorBackground},S.localize(69,null)),e.editorStickyScrollHoverBackground=t("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:y.Color.fromHex("#0F4A85").transparent(.1)},S.localize(70,null)),e.editorStickyScrollBorder=t("editorStickyScroll.border",{dark:null,light:null,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(71,null)),e.editorStickyScrollShadow=t("editorStickyScroll.shadow",{dark:e.scrollbarShadow,light:e.scrollbarShadow,hcDark:e.scrollbarShadow,hcLight:e.scrollbarShadow},S.localize(72,null)),e.editorWidgetBackground=t("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:y.Color.white},S.localize(73,null)),e.editorWidgetForeground=t("editorWidget.foreground",{dark:e.foreground,light:e.foreground,hcDark:e.foreground,hcLight:e.foreground},S.localize(74,null)),e.editorWidgetBorder=t("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(75,null)),e.editorWidgetResizeBorder=t("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},S.localize(76,null)),e.quickInputBackground=t("quickInput.background",{dark:e.editorWidgetBackground,light:e.editorWidgetBackground,hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(77,null)),e.quickInputForeground=t("quickInput.foreground",{dark:e.editorWidgetForeground,light:e.editorWidgetForeground,hcDark:e.editorWidgetForeground,hcLight:e.editorWidgetForeground},S.localize(78,null)),e.quickInputTitleBackground=t("quickInputTitle.background",{dark:new y.Color(new y.RGBA(255,255,255,.105)),light:new y.Color(new y.RGBA(0,0,0,.06)),hcDark:"#000000",hcLight:y.Color.white},S.localize(79,null)),e.pickerGroupForeground=t("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:y.Color.white,hcLight:"#0F4A85"},S.localize(80,null)),e.pickerGroupBorder=t("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:y.Color.white,hcLight:"#0F4A85"},S.localize(81,null)),e.keybindingLabelBackground=t("keybindingLabel.background",{dark:new y.Color(new y.RGBA(128,128,128,.17)),light:new y.Color(new y.RGBA(221,221,221,.4)),hcDark:y.Color.transparent,hcLight:y.Color.transparent},S.localize(82,null)),e.keybindingLabelForeground=t("keybindingLabel.foreground",{dark:y.Color.fromHex("#CCCCCC"),light:y.Color.fromHex("#555555"),hcDark:y.Color.white,hcLight:e.foreground},S.localize(83,null)),e.keybindingLabelBorder=t("keybindingLabel.border",{dark:new y.Color(new y.RGBA(51,51,51,.6)),light:new y.Color(new y.RGBA(204,204,204,.4)),hcDark:new y.Color(new y.RGBA(111,195,223)),hcLight:e.contrastBorder},S.localize(84,null)),e.keybindingLabelBottomBorder=t("keybindingLabel.bottomBorder",{dark:new y.Color(new y.RGBA(68,68,68,.6)),light:new y.Color(new y.RGBA(187,187,187,.4)),hcDark:new y.Color(new y.RGBA(111,195,223)),hcLight:e.foreground},S.localize(85,null)),e.editorSelectionBackground=t("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},S.localize(86,null)),e.editorSelectionForeground=t("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:y.Color.white},S.localize(87,null)),e.editorInactiveSelection=t("editor.inactiveSelectionBackground",{light:u(e.editorSelectionBackground,.5),dark:u(e.editorSelectionBackground,.5),hcDark:u(e.editorSelectionBackground,.7),hcLight:u(e.editorSelectionBackground,.5)},S.localize(88,null),!0),e.editorSelectionHighlight=t("editor.selectionHighlightBackground",{light:_(e.editorSelectionBackground,e.editorBackground,.3,.6),dark:_(e.editorSelectionBackground,e.editorBackground,.3,.6),hcDark:null,hcLight:null},S.localize(89,null),!0),e.editorSelectionHighlightBorder=t("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(90,null)),e.editorFindMatch=t("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},S.localize(91,null)),e.editorFindMatchHighlight=t("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},S.localize(92,null),!0),e.editorFindRangeHighlight=t("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},S.localize(93,null),!0),e.editorFindMatchBorder=t("editor.findMatchBorder",{light:null,dark:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(94,null)),e.editorFindMatchHighlightBorder=t("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(95,null)),e.editorFindRangeHighlightBorder=t("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:u(e.activeContrastBorder,.4),hcLight:u(e.activeContrastBorder,.4)},S.localize(96,null),!0),e.searchEditorFindMatch=t("searchEditor.findMatchBackground",{light:u(e.editorFindMatchHighlight,.66),dark:u(e.editorFindMatchHighlight,.66),hcDark:e.editorFindMatchHighlight,hcLight:e.editorFindMatchHighlight},S.localize(97,null)),e.searchEditorFindMatchBorder=t("searchEditor.findMatchBorder",{light:u(e.editorFindMatchHighlightBorder,.66),dark:u(e.editorFindMatchHighlightBorder,.66),hcDark:e.editorFindMatchHighlightBorder,hcLight:e.editorFindMatchHighlightBorder},S.localize(98,null)),e.searchResultsInfoForeground=t("search.resultsInfoForeground",{light:e.foreground,dark:u(e.foreground,.65),hcDark:e.foreground,hcLight:e.foreground},S.localize(99,null)),e.editorHoverHighlight=t("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},S.localize(100,null),!0),e.editorHoverBackground=t("editorHoverWidget.background",{light:e.editorWidgetBackground,dark:e.editorWidgetBackground,hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(101,null)),e.editorHoverForeground=t("editorHoverWidget.foreground",{light:e.editorWidgetForeground,dark:e.editorWidgetForeground,hcDark:e.editorWidgetForeground,hcLight:e.editorWidgetForeground},S.localize(102,null)),e.editorHoverBorder=t("editorHoverWidget.border",{light:e.editorWidgetBorder,dark:e.editorWidgetBorder,hcDark:e.editorWidgetBorder,hcLight:e.editorWidgetBorder},S.localize(103,null)),e.editorHoverStatusBarBackground=t("editorHoverWidget.statusBarBackground",{dark:h(e.editorHoverBackground,.2),light:r(e.editorHoverBackground,.05),hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(104,null)),e.editorActiveLinkForeground=t("editorLink.activeForeground",{dark:"#4E94CE",light:y.Color.blue,hcDark:y.Color.cyan,hcLight:"#292929"},S.localize(105,null)),e.editorInlayHintForeground=t("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:y.Color.white,hcLight:y.Color.black},S.localize(106,null)),e.editorInlayHintBackground=t("editorInlayHint.background",{dark:u(e.badgeBackground,.1),light:u(e.badgeBackground,.1),hcDark:u(y.Color.white,.1),hcLight:u(e.badgeBackground,.1)},S.localize(107,null)),e.editorInlayHintTypeForeground=t("editorInlayHint.typeForeground",{dark:e.editorInlayHintForeground,light:e.editorInlayHintForeground,hcDark:e.editorInlayHintForeground,hcLight:e.editorInlayHintForeground},S.localize(108,null)),e.editorInlayHintTypeBackground=t("editorInlayHint.typeBackground",{dark:e.editorInlayHintBackground,light:e.editorInlayHintBackground,hcDark:e.editorInlayHintBackground,hcLight:e.editorInlayHintBackground},S.localize(109,null)),e.editorInlayHintParameterForeground=t("editorInlayHint.parameterForeground",{dark:e.editorInlayHintForeground,light:e.editorInlayHintForeground,hcDark:e.editorInlayHintForeground,hcLight:e.editorInlayHintForeground},S.localize(110,null)),e.editorInlayHintParameterBackground=t("editorInlayHint.parameterBackground",{dark:e.editorInlayHintBackground,light:e.editorInlayHintBackground,hcDark:e.editorInlayHintBackground,hcLight:e.editorInlayHintBackground},S.localize(111,null)),e.editorLightBulbForeground=t("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},S.localize(112,null)),e.editorLightBulbAutoFixForeground=t("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},S.localize(113,null)),e.editorLightBulbAiForeground=t("editorLightBulbAi.foreground",{dark:e.editorLightBulbForeground,light:e.editorLightBulbForeground,hcDark:e.editorLightBulbForeground,hcLight:e.editorLightBulbForeground},S.localize(114,null)),e.defaultInsertColor=new y.Color(new y.RGBA(155,185,85,.2)),e.defaultRemoveColor=new y.Color(new y.RGBA(255,0,0,.2)),e.diffInserted=t("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},S.localize(115,null),!0),e.diffRemoved=t("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},S.localize(116,null),!0),e.diffInsertedLine=t("diffEditor.insertedLineBackground",{dark:e.defaultInsertColor,light:e.defaultInsertColor,hcDark:null,hcLight:null},S.localize(117,null),!0),e.diffRemovedLine=t("diffEditor.removedLineBackground",{dark:e.defaultRemoveColor,light:e.defaultRemoveColor,hcDark:null,hcLight:null},S.localize(118,null),!0),e.diffInsertedLineGutter=t("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(119,null)),e.diffRemovedLineGutter=t("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(120,null)),e.diffOverviewRulerInserted=t("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(121,null)),e.diffOverviewRulerRemoved=t("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(122,null)),e.diffInsertedOutline=t("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},S.localize(123,null)),e.diffRemovedOutline=t("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},S.localize(124,null)),e.diffBorder=t("diffEditor.border",{dark:null,light:null,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(125,null)),e.diffDiagonalFill=t("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},S.localize(126,null)),e.diffUnchangedRegionBackground=t("diffEditor.unchangedRegionBackground",{dark:"sideBar.background",light:"sideBar.background",hcDark:"sideBar.background",hcLight:"sideBar.background"},S.localize(127,null)),e.diffUnchangedRegionForeground=t("diffEditor.unchangedRegionForeground",{dark:"foreground",light:"foreground",hcDark:"foreground",hcLight:"foreground"},S.localize(128,null)),e.diffUnchangedTextBackground=t("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},S.localize(129,null)),e.listFocusBackground=t("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(130,null)),e.listFocusForeground=t("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(131,null)),e.listFocusOutline=t("list.focusOutline",{dark:e.focusBorder,light:e.focusBorder,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(132,null)),e.listFocusAndSelectionOutline=t("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(133,null)),e.listActiveSelectionBackground=t("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:y.Color.fromHex("#0F4A85").transparent(.1)},S.localize(134,null)),e.listActiveSelectionForeground=t("list.activeSelectionForeground",{dark:y.Color.white,light:y.Color.white,hcDark:null,hcLight:null},S.localize(135,null)),e.listActiveSelectionIconForeground=t("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(136,null)),e.listInactiveSelectionBackground=t("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:y.Color.fromHex("#0F4A85").transparent(.1)},S.localize(137,null)),e.listInactiveSelectionForeground=t("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(138,null)),e.listInactiveSelectionIconForeground=t("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(139,null)),e.listInactiveFocusBackground=t("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(140,null)),e.listInactiveFocusOutline=t("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(141,null)),e.listHoverBackground=t("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:y.Color.white.transparent(.1),hcLight:y.Color.fromHex("#0F4A85").transparent(.1)},S.localize(142,null)),e.listHoverForeground=t("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(143,null)),e.listDropOverBackground=t("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},S.localize(144,null)),e.listDropBetweenBackground=t("list.dropBetweenBackground",{dark:e.iconForeground,light:e.iconForeground,hcDark:null,hcLight:null},S.localize(145,null)),e.listHighlightForeground=t("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:e.focusBorder,hcLight:e.focusBorder},S.localize(146,null)),e.listFocusHighlightForeground=t("list.focusHighlightForeground",{dark:e.listHighlightForeground,light:C(e.listActiveSelectionBackground,e.listHighlightForeground,"#BBE7FF"),hcDark:e.listHighlightForeground,hcLight:e.listHighlightForeground},S.localize(147,null)),e.listInvalidItemForeground=t("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},S.localize(148,null)),e.listErrorForeground=t("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},S.localize(149,null)),e.listWarningForeground=t("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},S.localize(150,null)),e.listFilterWidgetBackground=t("listFilterWidget.background",{light:r(e.editorWidgetBackground,0),dark:h(e.editorWidgetBackground,0),hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(151,null)),e.listFilterWidgetOutline=t("listFilterWidget.outline",{dark:y.Color.transparent,light:y.Color.transparent,hcDark:"#f38518",hcLight:"#007ACC"},S.localize(152,null)),e.listFilterWidgetNoMatchesOutline=t("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(153,null)),e.listFilterWidgetShadow=t("listFilterWidget.shadow",{dark:e.widgetShadow,light:e.widgetShadow,hcDark:e.widgetShadow,hcLight:e.widgetShadow},S.localize(154,null)),e.listFilterMatchHighlight=t("list.filterMatchBackground",{dark:e.editorFindMatchHighlight,light:e.editorFindMatchHighlight,hcDark:null,hcLight:null},S.localize(155,null)),e.listFilterMatchHighlightBorder=t("list.filterMatchBorder",{dark:e.editorFindMatchHighlightBorder,light:e.editorFindMatchHighlightBorder,hcDark:e.contrastBorder,hcLight:e.activeContrastBorder},S.localize(156,null)),e.treeIndentGuidesStroke=t("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},S.localize(157,null)),e.treeInactiveIndentGuidesStroke=t("tree.inactiveIndentGuidesStroke",{dark:u(e.treeIndentGuidesStroke,.4),light:u(e.treeIndentGuidesStroke,.4),hcDark:u(e.treeIndentGuidesStroke,.4),hcLight:u(e.treeIndentGuidesStroke,.4)},S.localize(158,null)),e.tableColumnsBorder=t("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},S.localize(159,null)),e.tableOddRowsBackgroundColor=t("tree.tableOddRowsBackground",{dark:u(e.foreground,.04),light:u(e.foreground,.04),hcDark:null,hcLight:null},S.localize(160,null)),e.listDeemphasizedForeground=t("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},S.localize(161,null)),e.checkboxBackground=t("checkbox.background",{dark:e.selectBackground,light:e.selectBackground,hcDark:e.selectBackground,hcLight:e.selectBackground},S.localize(162,null)),e.checkboxSelectBackground=t("checkbox.selectBackground",{dark:e.editorWidgetBackground,light:e.editorWidgetBackground,hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(163,null)),e.checkboxForeground=t("checkbox.foreground",{dark:e.selectForeground,light:e.selectForeground,hcDark:e.selectForeground,hcLight:e.selectForeground},S.localize(164,null)),e.checkboxBorder=t("checkbox.border",{dark:e.selectBorder,light:e.selectBorder,hcDark:e.selectBorder,hcLight:e.selectBorder},S.localize(165,null)),e.checkboxSelectBorder=t("checkbox.selectBorder",{dark:e.iconForeground,light:e.iconForeground,hcDark:e.iconForeground,hcLight:e.iconForeground},S.localize(166,null)),e._deprecatedQuickInputListFocusBackground=t("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,S.localize(167,null)),e.quickInputListFocusForeground=t("quickInputList.focusForeground",{dark:e.listActiveSelectionForeground,light:e.listActiveSelectionForeground,hcDark:e.listActiveSelectionForeground,hcLight:e.listActiveSelectionForeground},S.localize(168,null)),e.quickInputListFocusIconForeground=t("quickInputList.focusIconForeground",{dark:e.listActiveSelectionIconForeground,light:e.listActiveSelectionIconForeground,hcDark:e.listActiveSelectionIconForeground,hcLight:e.listActiveSelectionIconForeground},S.localize(169,null)),e.quickInputListFocusBackground=t("quickInputList.focusBackground",{dark:f(e._deprecatedQuickInputListFocusBackground,e.listActiveSelectionBackground),light:f(e._deprecatedQuickInputListFocusBackground,e.listActiveSelectionBackground),hcDark:null,hcLight:null},S.localize(170,null)),e.menuBorder=t("menu.border",{dark:null,light:null,hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(171,null)),e.menuForeground=t("menu.foreground",{dark:e.selectForeground,light:e.selectForeground,hcDark:e.selectForeground,hcLight:e.selectForeground},S.localize(172,null)),e.menuBackground=t("menu.background",{dark:e.selectBackground,light:e.selectBackground,hcDark:e.selectBackground,hcLight:e.selectBackground},S.localize(173,null)),e.menuSelectionForeground=t("menu.selectionForeground",{dark:e.listActiveSelectionForeground,light:e.listActiveSelectionForeground,hcDark:e.listActiveSelectionForeground,hcLight:e.listActiveSelectionForeground},S.localize(174,null)),e.menuSelectionBackground=t("menu.selectionBackground",{dark:e.listActiveSelectionBackground,light:e.listActiveSelectionBackground,hcDark:e.listActiveSelectionBackground,hcLight:e.listActiveSelectionBackground},S.localize(175,null)),e.menuSelectionBorder=t("menu.selectionBorder",{dark:null,light:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(176,null)),e.menuSeparatorBackground=t("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:e.contrastBorder,hcLight:e.contrastBorder},S.localize(177,null)),e.toolbarHoverBackground=t("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},S.localize(178,null)),e.toolbarHoverOutline=t("toolbar.hoverOutline",{dark:null,light:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},S.localize(179,null)),e.toolbarActiveBackground=t("toolbar.activeBackground",{dark:h(e.toolbarHoverBackground,.1),light:r(e.toolbarHoverBackground,.1),hcDark:null,hcLight:null},S.localize(180,null)),e.snippetTabstopHighlightBackground=t("editor.snippetTabstopHighlightBackground",{dark:new y.Color(new y.RGBA(124,124,124,.3)),light:new y.Color(new y.RGBA(10,50,100,.2)),hcDark:new y.Color(new y.RGBA(124,124,124,.3)),hcLight:new y.Color(new y.RGBA(10,50,100,.2))},S.localize(181,null)),e.snippetTabstopHighlightBorder=t("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(182,null)),e.snippetFinalTabstopHighlightBackground=t("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(183,null)),e.snippetFinalTabstopHighlightBorder=t("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new y.Color(new y.RGBA(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},S.localize(184,null)),e.breadcrumbsForeground=t("breadcrumb.foreground",{light:u(e.foreground,.8),dark:u(e.foreground,.8),hcDark:u(e.foreground,.8),hcLight:u(e.foreground,.8)},S.localize(185,null)),e.breadcrumbsBackground=t("breadcrumb.background",{light:e.editorBackground,dark:e.editorBackground,hcDark:e.editorBackground,hcLight:e.editorBackground},S.localize(186,null)),e.breadcrumbsFocusForeground=t("breadcrumb.focusForeground",{light:r(e.foreground,.2),dark:h(e.foreground,.1),hcDark:h(e.foreground,.1),hcLight:h(e.foreground,.1)},S.localize(187,null)),e.breadcrumbsActiveSelectionForeground=t("breadcrumb.activeSelectionForeground",{light:r(e.foreground,.2),dark:h(e.foreground,.1),hcDark:h(e.foreground,.1),hcLight:h(e.foreground,.1)},S.localize(188,null)),e.breadcrumbsPickerBackground=t("breadcrumbPicker.background",{light:e.editorWidgetBackground,dark:e.editorWidgetBackground,hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},S.localize(189,null));const o=.5,g=y.Color.fromHex("#40C8AE").transparent(o),m=y.Color.fromHex("#40A6FF").transparent(o),c=y.Color.fromHex("#606060").transparent(.4),d=.4,s=1;e.mergeCurrentHeaderBackground=t("merge.currentHeaderBackground",{dark:g,light:g,hcDark:null,hcLight:null},S.localize(190,null),!0),e.mergeCurrentContentBackground=t("merge.currentContentBackground",{dark:u(e.mergeCurrentHeaderBackground,d),light:u(e.mergeCurrentHeaderBackground,d),hcDark:u(e.mergeCurrentHeaderBackground,d),hcLight:u(e.mergeCurrentHeaderBackground,d)},S.localize(191,null),!0),e.mergeIncomingHeaderBackground=t("merge.incomingHeaderBackground",{dark:m,light:m,hcDark:null,hcLight:null},S.localize(192,null),!0),e.mergeIncomingContentBackground=t("merge.incomingContentBackground",{dark:u(e.mergeIncomingHeaderBackground,d),light:u(e.mergeIncomingHeaderBackground,d),hcDark:u(e.mergeIncomingHeaderBackground,d),hcLight:u(e.mergeIncomingHeaderBackground,d)},S.localize(193,null),!0),e.mergeCommonHeaderBackground=t("merge.commonHeaderBackground",{dark:c,light:c,hcDark:null,hcLight:null},S.localize(194,null),!0),e.mergeCommonContentBackground=t("merge.commonContentBackground",{dark:u(e.mergeCommonHeaderBackground,d),light:u(e.mergeCommonHeaderBackground,d),hcDark:u(e.mergeCommonHeaderBackground,d),hcLight:u(e.mergeCommonHeaderBackground,d)},S.localize(195,null),!0),e.mergeBorder=t("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},S.localize(196,null)),e.overviewRulerCurrentContentForeground=t("editorOverviewRuler.currentContentForeground",{dark:u(e.mergeCurrentHeaderBackground,s),light:u(e.mergeCurrentHeaderBackground,s),hcDark:e.mergeBorder,hcLight:e.mergeBorder},S.localize(197,null)),e.overviewRulerIncomingContentForeground=t("editorOverviewRuler.incomingContentForeground",{dark:u(e.mergeIncomingHeaderBackground,s),light:u(e.mergeIncomingHeaderBackground,s),hcDark:e.mergeBorder,hcLight:e.mergeBorder},S.localize(198,null)),e.overviewRulerCommonContentForeground=t("editorOverviewRuler.commonContentForeground",{dark:u(e.mergeCommonHeaderBackground,s),light:u(e.mergeCommonHeaderBackground,s),hcDark:e.mergeBorder,hcLight:e.mergeBorder},S.localize(199,null)),e.overviewRulerFindMatchForeground=t("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},S.localize(200,null),!0),e.overviewRulerSelectionHighlightForeground=t("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},S.localize(201,null),!0),e.minimapFindMatch=t("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},S.localize(202,null),!0),e.minimapSelectionOccurrenceHighlight=t("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},S.localize(203,null),!0),e.minimapSelection=t("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},S.localize(204,null),!0),e.minimapInfo=t("minimap.infoHighlight",{dark:e.editorInfoForeground,light:e.editorInfoForeground,hcDark:e.editorInfoBorder,hcLight:e.editorInfoBorder},S.localize(205,null)),e.minimapWarning=t("minimap.warningHighlight",{dark:e.editorWarningForeground,light:e.editorWarningForeground,hcDark:e.editorWarningBorder,hcLight:e.editorWarningBorder},S.localize(206,null)),e.minimapError=t("minimap.errorHighlight",{dark:new y.Color(new y.RGBA(255,18,18,.7)),light:new y.Color(new y.RGBA(255,18,18,.7)),hcDark:new y.Color(new y.RGBA(255,50,50,1)),hcLight:"#B5200D"},S.localize(207,null)),e.minimapBackground=t("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},S.localize(208,null)),e.minimapForegroundOpacity=t("minimap.foregroundOpacity",{dark:y.Color.fromHex("#000f"),light:y.Color.fromHex("#000f"),hcDark:y.Color.fromHex("#000f"),hcLight:y.Color.fromHex("#000f")},S.localize(209,null)),e.minimapSliderBackground=t("minimapSlider.background",{light:u(e.scrollbarSliderBackground,.5),dark:u(e.scrollbarSliderBackground,.5),hcDark:u(e.scrollbarSliderBackground,.5),hcLight:u(e.scrollbarSliderBackground,.5)},S.localize(210,null)),e.minimapSliderHoverBackground=t("minimapSlider.hoverBackground",{light:u(e.scrollbarSliderHoverBackground,.5),dark:u(e.scrollbarSliderHoverBackground,.5),hcDark:u(e.scrollbarSliderHoverBackground,.5),hcLight:u(e.scrollbarSliderHoverBackground,.5)},S.localize(211,null)),e.minimapSliderActiveBackground=t("minimapSlider.activeBackground",{light:u(e.scrollbarSliderActiveBackground,.5),dark:u(e.scrollbarSliderActiveBackground,.5),hcDark:u(e.scrollbarSliderActiveBackground,.5),hcLight:u(e.scrollbarSliderActiveBackground,.5)},S.localize(212,null)),e.problemsErrorIconForeground=t("problemsErrorIcon.foreground",{dark:e.editorErrorForeground,light:e.editorErrorForeground,hcDark:e.editorErrorForeground,hcLight:e.editorErrorForeground},S.localize(213,null)),e.problemsWarningIconForeground=t("problemsWarningIcon.foreground",{dark:e.editorWarningForeground,light:e.editorWarningForeground,hcDark:e.editorWarningForeground,hcLight:e.editorWarningForeground},S.localize(214,null)),e.problemsInfoIconForeground=t("problemsInfoIcon.foreground",{dark:e.editorInfoForeground,light:e.editorInfoForeground,hcDark:e.editorInfoForeground,hcLight:e.editorInfoForeground},S.localize(215,null)),e.chartsForeground=t("charts.foreground",{dark:e.foreground,light:e.foreground,hcDark:e.foreground,hcLight:e.foreground},S.localize(216,null)),e.chartsLines=t("charts.lines",{dark:u(e.foreground,.5),light:u(e.foreground,.5),hcDark:u(e.foreground,.5),hcLight:u(e.foreground,.5)},S.localize(217,null)),e.chartsRed=t("charts.red",{dark:e.editorErrorForeground,light:e.editorErrorForeground,hcDark:e.editorErrorForeground,hcLight:e.editorErrorForeground},S.localize(218,null)),e.chartsBlue=t("charts.blue",{dark:e.editorInfoForeground,light:e.editorInfoForeground,hcDark:e.editorInfoForeground,hcLight:e.editorInfoForeground},S.localize(219,null)),e.chartsYellow=t("charts.yellow",{dark:e.editorWarningForeground,light:e.editorWarningForeground,hcDark:e.editorWarningForeground,hcLight:e.editorWarningForeground},S.localize(220,null)),e.chartsOrange=t("charts.orange",{dark:e.minimapFindMatch,light:e.minimapFindMatch,hcDark:e.minimapFindMatch,hcLight:e.minimapFindMatch},S.localize(221,null)),e.chartsGreen=t("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},S.localize(222,null)),e.chartsPurple=t("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},S.localize(223,null));function l(A,R){var M,N,P,F;switch(A.op){case 0:return(M=E(A.value,R))===null||M===void 0?void 0:M.darken(A.factor);case 1:return(N=E(A.value,R))===null||N===void 0?void 0:N.lighten(A.factor);case 2:return(P=E(A.value,R))===null||P===void 0?void 0:P.transparent(A.factor);case 3:{const O=E(A.background,R);return O?(F=E(A.value,R))===null||F===void 0?void 0:F.makeOpaque(O):E(A.value,R)}case 4:for(const O of A.values){const B=E(O,R);if(B)return B}return;case 6:return E(R.defines(A.if)?A.then:A.else,R);case 5:{const O=E(A.value,R);if(!O)return;const B=E(A.background,R);return B?O.isDarkerThan(B)?y.Color.getLighterColor(O,B,A.factor).transparent(A.transparency):y.Color.getDarkerColor(O,B,A.factor).transparent(A.transparency):O.transparent(A.factor*A.transparency)}default:throw(0,L.assertNever)(A)}}e.executeTransform=l;function r(A,R){return{op:0,value:A,factor:R}}e.darken=r;function h(A,R){return{op:1,value:A,factor:R}}e.lighten=h;function u(A,R){return{op:2,value:A,factor:R}}e.transparent=u;function f(...A){return{op:4,values:A}}e.oneOf=f;function C(A,R,M){return{op:6,if:A,then:R,else:M}}e.ifDefinedThenElse=C;function _(A,R,M,N){return{op:5,value:A,background:R,factor:M,transparency:N}}function E(A,R){if(A!==null){if(typeof A=="string")return A[0]==="#"?y.Color.fromHex(A):R.getColor(A);if(A instanceof y.Color)return A;if(typeof A=="object")return l(A,R)}}e.resolveColorValue=E,e.workbenchColorsSchemaId="vscode://schemas/workbench-colors";const I=w.Registry.as(p.Extensions.JSONContribution);I.registerSchema(e.workbenchColorsSchemaId,i.getColorSchema());const T=new k.RunOnceScheduler(()=>I.notifySchemaChanged(e.workbenchColorsSchemaId),200);i.onDidChangeSchema(()=>{T.isScheduled()||T.schedule()})}),define(ne[169],se([1,0,6,159,69,15,2,31]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicCssRules=e.GlobalEditorPointerMoveMonitor=e.EditorPointerEventFactory=e.EditorMouseEventFactory=e.EditorMouseEvent=e.createCoordinatesRelativeToEditor=e.createEditorPagePosition=e.CoordinatesRelativeToEditor=e.EditorPagePosition=e.ClientCoordinates=e.PageCoordinates=void 0;class w{constructor(r,h){this.x=r,this.y=h,this._pageCoordinatesBrand=void 0}toClientCoordinates(r){return new v(this.x-r.scrollX,this.y-r.scrollY)}}e.PageCoordinates=w;class v{constructor(r,h){this.clientX=r,this.clientY=h,this._clientCoordinatesBrand=void 0}toPageCoordinates(r){return new w(this.clientX+r.scrollX,this.clientY+r.scrollY)}}e.ClientCoordinates=v;class b{constructor(r,h,u,f){this.x=r,this.y=h,this.width=u,this.height=f,this._editorPagePositionBrand=void 0}}e.EditorPagePosition=b;class a{constructor(r,h){this.x=r,this.y=h,this._positionRelativeToEditorBrand=void 0}}e.CoordinatesRelativeToEditor=a;function n(l){const r=L.getDomNodePagePosition(l);return new b(r.left,r.top,r.width,r.height)}e.createEditorPagePosition=n;function i(l,r,h){const u=r.width/l.offsetWidth,f=r.height/l.offsetHeight,C=(h.x-r.x)/u,_=(h.y-r.y)/f;return new a(C,_)}e.createCoordinatesRelativeToEditor=i;class t extends y.StandardMouseEvent{constructor(r,h,u){super(L.getWindow(u),r),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=h,this.pos=new w(this.posx,this.posy),this.editorPos=n(u),this.relativePos=i(u,this.editorPos,this.pos)}}e.EditorMouseEvent=t;class o{constructor(r){this._editorViewDomNode=r}_create(r){return new t(r,!1,this._editorViewDomNode)}onContextMenu(r,h){return L.addDisposableListener(r,"contextmenu",u=>{h(this._create(u))})}onMouseUp(r,h){return L.addDisposableListener(r,"mouseup",u=>{h(this._create(u))})}onMouseDown(r,h){return L.addDisposableListener(r,L.EventType.MOUSE_DOWN,u=>{h(this._create(u))})}onPointerDown(r,h){return L.addDisposableListener(r,L.EventType.POINTER_DOWN,u=>{h(this._create(u),u.pointerId)})}onMouseLeave(r,h){return L.addDisposableListener(r,L.EventType.MOUSE_LEAVE,u=>{h(this._create(u))})}onMouseMove(r,h){return L.addDisposableListener(r,"mousemove",u=>h(this._create(u)))}}e.EditorMouseEventFactory=o;class g{constructor(r){this._editorViewDomNode=r}_create(r){return new t(r,!1,this._editorViewDomNode)}onPointerUp(r,h){return L.addDisposableListener(r,"pointerup",u=>{h(this._create(u))})}onPointerDown(r,h){return L.addDisposableListener(r,L.EventType.POINTER_DOWN,u=>{h(this._create(u),u.pointerId)})}onPointerLeave(r,h){return L.addDisposableListener(r,L.EventType.POINTER_LEAVE,u=>{h(this._create(u))})}onPointerMove(r,h){return L.addDisposableListener(r,"pointermove",u=>h(this._create(u)))}}e.EditorPointerEventFactory=g;class m extends S.Disposable{constructor(r){super(),this._editorViewDomNode=r,this._globalPointerMoveMonitor=this._register(new k.GlobalPointerMoveMonitor),this._keydownListener=null}startMonitoring(r,h,u,f,C){this._keydownListener=L.addStandardDisposableListener(r.ownerDocument,"keydown",_=>{_.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,_.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(r,h,u,_=>{f(new t(_,!0,this._editorViewDomNode))},_=>{this._keydownListener.dispose(),C(_)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}e.GlobalEditorPointerMoveMonitor=m;class c{constructor(r){this._editor=r,this._instanceId=++c._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new D.RunOnceScheduler(()=>this.garbageCollect(),1e3)}createClassNameRef(r){const h=this.getOrCreateRule(r);return h.increaseRefCount(),{className:h.className,dispose:()=>{h.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(r){const h=this.computeUniqueKey(r);let u=this._rules.get(h);if(!u){const f=this._counter++;u=new d(h,`dyn-rule-${this._instanceId}-${f}`,L.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,r),this._rules.set(h,u)}return u}computeUniqueKey(r){return JSON.stringify(r)}garbageCollect(){for(const r of this._rules.values())r.hasReferences()||(this._rules.delete(r.key),r.dispose())}}e.DynamicCssRules=c,c._idPool=0;class d{constructor(r,h,u,f){this.key=r,this.className=h,this.properties=f,this._referenceCount=0,this._styleElementDisposables=new S.DisposableStore,this._styleElement=L.createStyleSheet(u,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(r,h){let u=`.${r} {`;for(const f in h){const C=h[f];let _;typeof C=="object"?_=(0,p.asCssVariable)(C.id):_=C;const E=s(f);u+=` + ${E}: ${_};`}return u+=` +}`,u}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function s(l){return l.replace(/(^[A-Z])/,([r])=>r.toLowerCase()).replace(/([A-Z])/g,([r])=>`-${r.toLowerCase()}`)}}),define(ne[844],se([1,0,6,41,159,2,17,11,239,55,36,5,289,345,86,31,23,65,506,40,112,447]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Minimap=void 0;const l=140,r=2;class h{constructor(M,N,P){const F=M.options,O=F.get(142),B=F.get(144),W=B.minimap,V=F.get(50),z=F.get(73);this.renderMinimap=W.renderMinimap,this.size=z.size,this.minimapHeightIsEditorHeight=W.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=F.get(105),this.paddingTop=F.get(84).top,this.paddingBottom=F.get(84).bottom,this.showSlider=z.showSlider,this.autohide=z.autohide,this.pixelRatio=O,this.typicalHalfwidthCharacterWidth=V.typicalHalfwidthCharacterWidth,this.lineHeight=F.get(67),this.minimapLeft=W.minimapLeft,this.minimapWidth=W.minimapWidth,this.minimapHeight=B.height,this.canvasInnerWidth=W.minimapCanvasInnerWidth,this.canvasInnerHeight=W.minimapCanvasInnerHeight,this.canvasOuterWidth=W.minimapCanvasOuterWidth,this.canvasOuterHeight=W.minimapCanvasOuterHeight,this.isSampling=W.minimapIsSampling,this.editorHeight=B.height,this.fontScale=W.minimapScale,this.minimapLineHeight=W.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=(0,s.createSingleCallFunction)(()=>c.MinimapCharRendererFactory.create(this.fontScale,V.fontFamily)),this.defaultBackgroundColor=P.getColor(2),this.backgroundColor=h._getMinimapBackground(N,this.defaultBackgroundColor),this.foregroundAlpha=h._getMinimapForegroundOpacity(N)}static _getMinimapBackground(M,N){const P=M.getColor(o.minimapBackground);return P?new n.RGBA8(P.rgba.r,P.rgba.g,P.rgba.b,Math.round(255*P.rgba.a)):N}static _getMinimapForegroundOpacity(M){const N=M.getColor(o.minimapForegroundOpacity);return N?n.RGBA8._clamp(Math.round(255*N.rgba.a)):255}equals(M){return this.renderMinimap===M.renderMinimap&&this.size===M.size&&this.minimapHeightIsEditorHeight===M.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===M.scrollBeyondLastLine&&this.paddingTop===M.paddingTop&&this.paddingBottom===M.paddingBottom&&this.showSlider===M.showSlider&&this.autohide===M.autohide&&this.pixelRatio===M.pixelRatio&&this.typicalHalfwidthCharacterWidth===M.typicalHalfwidthCharacterWidth&&this.lineHeight===M.lineHeight&&this.minimapLeft===M.minimapLeft&&this.minimapWidth===M.minimapWidth&&this.minimapHeight===M.minimapHeight&&this.canvasInnerWidth===M.canvasInnerWidth&&this.canvasInnerHeight===M.canvasInnerHeight&&this.canvasOuterWidth===M.canvasOuterWidth&&this.canvasOuterHeight===M.canvasOuterHeight&&this.isSampling===M.isSampling&&this.editorHeight===M.editorHeight&&this.fontScale===M.fontScale&&this.minimapLineHeight===M.minimapLineHeight&&this.minimapCharWidth===M.minimapCharWidth&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(M.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(M.backgroundColor)&&this.foregroundAlpha===M.foregroundAlpha}}class u{constructor(M,N,P,F,O,B,W,V,z){this.scrollTop=M,this.scrollHeight=N,this.sliderNeeded=P,this._computedSliderRatio=F,this.sliderTop=O,this.sliderHeight=B,this.topPaddingLineCount=W,this.startLineNumber=V,this.endLineNumber=z}getDesiredScrollTopFromDelta(M){return Math.round(this.scrollTop+M/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(M){return Math.round((M-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(M){const N=Math.max(this.startLineNumber,M.startLineNumber),P=Math.min(this.endLineNumber,M.endLineNumber);return N>P?null:[N,P]}getYForLineNumber(M,N){return+(M-this.startLineNumber+this.topPaddingLineCount)*N}static create(M,N,P,F,O,B,W,V,z,K,j){const x=M.pixelRatio,re=M.minimapLineHeight,ie=Math.floor(M.canvasInnerHeight/re),J=M.lineHeight;if(M.minimapHeightIsEditorHeight){let Q=V*M.lineHeight+M.paddingTop+M.paddingBottom;M.scrollBeyondLastLine&&(Q+=Math.max(0,O-M.lineHeight-M.paddingBottom));const U=Math.max(1,Math.floor(O*O/Q)),Z=Math.max(0,M.minimapHeight-U),H=Z/(K-O),q=z*H,te=Z>0,G=Math.floor(M.canvasInnerHeight/M.minimapLineHeight),$=Math.floor(M.paddingTop/M.lineHeight);return new u(z,K,te,H,q,U,$,1,Math.min(W,G))}let X;if(B&&P!==W){const Q=P-N+1;X=Math.floor(Q*re/x)}else{const Q=O/J;X=Math.floor(Q*re/x)}const Y=Math.floor(M.paddingTop/J);let le=Math.floor(M.paddingBottom/J);if(M.scrollBeyondLastLine){const Q=O/J;le=Math.max(le,Q-1)}let de;if(le>0){const Q=O/J;de=(Y+W+le-Q-1)*re/x}else de=Math.max(0,(Y+W)*re/x-X);de=Math.min(M.minimapHeight-X,de);const ge=de/(K-O),pe=z*ge;if(ie>=Y+W+le){const Q=de>0;return new u(z,K,Q,ge,pe,X,Y,1,W)}else{let Q;N>1?Q=N+Y:Q=Math.max(1,z/J);let U,Z=Math.max(1,Math.floor(Q-pe*x/re));Zz&&(Z=Math.min(Z,j.startLineNumber),U=Math.max(U,j.topPaddingLineCount)),j.scrollTop=M.paddingTop?te=(N-Z+U+q)*re/x:te=z/M.paddingTop*(U+q)*re/x,new u(z,K,!0,ge,te,X,U,Z,H)}}}class f{constructor(M){this.dy=M}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}f.INVALID=new f(-1);class C{constructor(M,N,P){this.renderedLayout=M,this._imageData=N,this._renderedLines=new w.RenderedLinesCollection(()=>f.INVALID),this._renderedLines._set(M.startLineNumber,P)}linesEquals(M){if(!this.scrollEquals(M))return!1;const P=this._renderedLines._get().lines;for(let F=0,O=P.length;F1){for(let Y=0,le=F-1;Y0&&this.minimapLines[P-1]>=M;)P--;let F=this.modelLineToMinimapLine(N)-1;for(;F+1N)return null}return[P+1,F+1]}decorationLineRangeToMinimapLineRange(M,N){let P=this.modelLineToMinimapLine(M),F=this.modelLineToMinimapLine(N);return M!==N&&F===P&&(F===this.minimapLines.length?P>1&&P--:F++),[P,F]}onLinesDeleted(M){const N=M.toLineNumber-M.fromLineNumber+1;let P=this.minimapLines.length,F=0;for(let O=this.minimapLines.length-1;O>=0&&!(this.minimapLines[O]=0&&!(this.minimapLines[P]0,scrollWidth:M.scrollWidth,scrollHeight:M.scrollHeight,viewportStartLineNumber:N,viewportEndLineNumber:P,viewportStartLineNumberVerticalOffset:M.getVerticalOffsetForLineNumber(N),scrollTop:M.scrollTop,scrollLeft:M.scrollLeft,viewportWidth:M.viewportWidth,viewportHeight:M.viewportHeight};this._actual.render(F)}_recreateLineSampling(){this._minimapSelections=null;const M=!!this._samplingState,[N,P]=E.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=N,M&&this._samplingState)for(const F of P)switch(F.type){case"deleted":this._actual.onLinesDeleted(F.deleteFromLineNumber,F.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(F.insertFromLineNumber,F.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(M){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[M-1]):this._context.viewModel.getLineContent(M)}getLineMaxColumn(M){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[M-1]):this._context.viewModel.getLineMaxColumn(M)}getMinimapLinesRenderingData(M,N,P){if(this._samplingState){const F=[];for(let O=0,B=N-M+1;O{if(P.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(P.button===0&&this._lastRenderData){const z=L.getDomNodePagePosition(this._slider.domNode),K=z.top+z.height/2;this._startSliderDragging(P,K,this._lastRenderData.renderedLayout)}return}const O=this._model.options.minimapLineHeight,B=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*P.offsetY;let V=Math.floor(B/O)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;V=Math.min(V,this._model.getLineCount()),this._model.revealLineNumber(V)}),this._sliderPointerMoveMonitor=new y.GlobalPointerMoveMonitor,this._sliderPointerDownListener=L.addStandardDisposableListener(this._slider.domNode,L.EventType.POINTER_DOWN,P=>{P.preventDefault(),P.stopPropagation(),P.button===0&&this._lastRenderData&&this._startSliderDragging(P,P.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=m.Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=L.addDisposableListener(this._domNode.domNode,m.EventType.Start,P=>{P.preventDefault(),P.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(P))},{passive:!1}),this._sliderTouchMoveListener=L.addDisposableListener(this._domNode.domNode,m.EventType.Change,P=>{P.preventDefault(),P.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(P)},{passive:!1}),this._sliderTouchEndListener=L.addStandardDisposableListener(this._domNode.domNode,m.EventType.End,P=>{P.preventDefault(),P.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(M,N,P){if(!M.target||!(M.target instanceof Element))return;const F=M.pageX;this._slider.toggleClassName("active",!0);const O=(B,W)=>{const V=L.getDomNodePagePosition(this._domNode.domNode),z=Math.min(Math.abs(W-F),Math.abs(W-V.left),Math.abs(W-V.left-V.width));if(S.isWindows&&z>l){this._model.setScrollTop(P.scrollTop);return}const K=B-N;this._model.setScrollTop(P.getDesiredScrollTopFromDelta(K))};M.pageY!==N&&O(M.pageY,F),this._sliderPointerMoveMonitor.startMonitoring(M.target,M.pointerId,M.buttons,B=>O(B.pageY,B.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(M){const N=this._domNode.domNode.getBoundingClientRect().top,P=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(M.pageY-N);this._model.setScrollTop(P)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const M=["minimap"];return this._model.options.showSlider==="always"?M.push("slider-always"):M.push("slider-mouseover"),this._model.options.autohide&&M.push("autohide"),M.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new _(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(M,N){return this._lastRenderData?this._lastRenderData.onLinesChanged(M,N):!1}onLinesDeleted(M,N){var P;return(P=this._lastRenderData)===null||P===void 0||P.onLinesDeleted(M,N),!0}onLinesInserted(M,N){var P;return(P=this._lastRenderData)===null||P===void 0||P.onLinesInserted(M,N),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(o.minimapSelection),this._renderDecorations=!0,!0}onTokensChanged(M){return this._lastRenderData?this._lastRenderData.onTokensChanged(M):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(M){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}M.scrollLeft+M.viewportWidth>=M.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const P=u.create(this._model.options,M.viewportStartLineNumber,M.viewportEndLineNumber,M.viewportStartLineNumberVerticalOffset,M.viewportHeight,M.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),M.scrollTop,M.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(P.sliderNeeded?"block":"none"),this._slider.setTop(P.sliderTop),this._slider.setHeight(P.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(P.sliderHeight),this.renderDecorations(P),this._lastRenderData=this.renderLines(P)}renderDecorations(M){if(this._renderDecorations){this._renderDecorations=!1;const N=this._model.getSelections();N.sort(a.Range.compareRangesUsingStarts);const P=this._model.getMinimapDecorationsInViewport(M.startLineNumber,M.endLineNumber);P.sort((x,re)=>(x.options.zIndex||0)-(re.options.zIndex||0));const{canvasInnerWidth:F,canvasInnerHeight:O}=this._model.options,B=this._model.options.minimapLineHeight,W=this._model.options.minimapCharWidth,V=this._model.getOptions().tabSize,z=this._decorationsCanvas.domNode.getContext("2d");z.clearRect(0,0,F,O);const K=new A(M.startLineNumber,M.endLineNumber,!1);this._renderSelectionLineHighlights(z,N,K,M,B),this._renderDecorationsLineHighlights(z,P,K,M,B);const j=new A(M.startLineNumber,M.endLineNumber,null);this._renderSelectionsHighlights(z,N,j,M,B,V,W,F),this._renderDecorationsHighlights(z,P,j,M,B,V,W,F)}}_renderSelectionLineHighlights(M,N,P,F,O){if(!this._selectionColor||this._selectionColor.isTransparent())return;M.fillStyle=this._selectionColor.transparent(.5).toString();let B=0,W=0;for(const V of N){const z=F.intersectWithViewport(V);if(!z)continue;const[K,j]=z;for(let ie=K;ie<=j;ie++)P.set(ie,!0);const x=F.getYForLineNumber(K,O),re=F.getYForLineNumber(j,O);W>=x||(W>B&&M.fillRect(b.MINIMAP_GUTTER_WIDTH,B,M.canvas.width,W-B),B=x),W=re}W>B&&M.fillRect(b.MINIMAP_GUTTER_WIDTH,B,M.canvas.width,W-B)}_renderDecorationsLineHighlights(M,N,P,F,O){const B=new Map;for(let W=N.length-1;W>=0;W--){const V=N[W],z=V.options.minimap;if(!z||z.position!==d.MinimapPosition.Inline)continue;const K=F.intersectWithViewport(V.range);if(!K)continue;const[j,x]=K,re=z.getColor(this._theme.value);if(!re||re.isTransparent())continue;let ie=B.get(re.toString());ie||(ie=re.transparent(.5).toString(),B.set(re.toString(),ie)),M.fillStyle=ie;for(let J=j;J<=x;J++){if(P.has(J))continue;P.set(J,!0);const X=F.getYForLineNumber(j,O);M.fillRect(b.MINIMAP_GUTTER_WIDTH,X,M.canvas.width,O)}}}_renderSelectionsHighlights(M,N,P,F,O,B,W,V){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const z of N){const K=F.intersectWithViewport(z);if(!K)continue;const[j,x]=K;for(let re=j;re<=x;re++)this.renderDecorationOnLine(M,P,z,this._selectionColor,F,re,O,O,B,W,V)}}_renderDecorationsHighlights(M,N,P,F,O,B,W,V){for(const z of N){const K=z.options.minimap;if(!K)continue;const j=F.intersectWithViewport(z.range);if(!j)continue;const[x,re]=j,ie=K.getColor(this._theme.value);if(!(!ie||ie.isTransparent()))for(let J=x;J<=re;J++)switch(K.position){case d.MinimapPosition.Inline:this.renderDecorationOnLine(M,P,z.range,ie,F,J,O,O,B,W,V);continue;case d.MinimapPosition.Gutter:{const X=F.getYForLineNumber(J,O);this.renderDecoration(M,ie,2,X,r,O);continue}}}}renderDecorationOnLine(M,N,P,F,O,B,W,V,z,K,j){const x=O.getYForLineNumber(B,V);if(x+W<0||x>this._model.options.canvasInnerHeight)return;const{startLineNumber:re,endLineNumber:ie}=P,J=re===B?P.startColumn:1,X=ie===B?P.endColumn:this._model.getLineMaxColumn(B),Y=this.getXOffsetForPosition(N,B,J,z,K,j),le=this.getXOffsetForPosition(N,B,X,z,K,j);this.renderDecoration(M,F,Y,x,le-Y,W)}getXOffsetForPosition(M,N,P,F,O,B){if(P===1)return b.MINIMAP_GUTTER_WIDTH;if((P-1)*O>=B)return B;let V=M.get(N);if(!V){const z=this._model.getLineContent(N);V=[b.MINIMAP_GUTTER_WIDTH];let K=b.MINIMAP_GUTTER_WIDTH;for(let j=1;j=B){V[j]=B;break}V[j]=ie,K=ie}M.set(N,V)}return P-1pe?Math.floor((F-pe)/2):0,U=x.a/255,Z=new n.RGBA8(Math.round((x.r-j.r)*U+j.r),Math.round((x.g-j.g)*U+j.g),Math.round((x.b-j.b)*U+j.b),255);let H=M.topPaddingLineCount*F;const q=[];for(let ae=0,ue=P-N+1;ae=0&&tele)return;const G=X.charCodeAt(pe);if(G===9){const $=x-(pe+Q)%x;Q+=$-1,ge+=$*B}else if(G===32)ge+=B;else{const $=p.isFullWidthCharacter(G)?2:1;for(let oe=0;oe<$;oe++)if(O===2?z.blockRenderChar(M,ge,K+j,te,V,N,P,de):z.renderChar(M,ge,K+j,G,te,V,N,P,ie,F,de),ge+=B,ge>le)return}}}}}class A{constructor(M,N,P){this._startLineNumber=M,this._endLineNumber=N,this._defaultValue=P,this._values=[];for(let F=0,O=this._endLineNumber-this._startLineNumber+1;Fthis._endLineNumber||(this._values[M-this._startLineNumber]=N)}get(M){return Mthis._endLineNumber?this._defaultValue:this._values[M-this._startLineNumber]}}}),define(ne[845],se([1,0,643,31]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.multiDiffEditorBorder=e.multiDiffEditorBackground=e.multiDiffEditorHeaderBackground=void 0,e.multiDiffEditorHeaderBackground=(0,k.registerColor)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,L.localize)(0,null)),e.multiDiffEditorBackground=(0,k.registerColor)("multiDiffEditor.background",{dark:"editorBackground",light:"editorBackground",hcDark:"editorBackground",hcLight:"editorBackground"},(0,L.localize)(1,null)),e.multiDiffEditorBorder=(0,k.registerColor)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,L.localize)(2,null))}),define(ne[259],se([1,0,732,31,488]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SYMBOL_ICON_VARIABLE_FOREGROUND=e.SYMBOL_ICON_UNIT_FOREGROUND=e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=e.SYMBOL_ICON_TEXT_FOREGROUND=e.SYMBOL_ICON_STRUCT_FOREGROUND=e.SYMBOL_ICON_STRING_FOREGROUND=e.SYMBOL_ICON_SNIPPET_FOREGROUND=e.SYMBOL_ICON_REFERENCE_FOREGROUND=e.SYMBOL_ICON_PROPERTY_FOREGROUND=e.SYMBOL_ICON_PACKAGE_FOREGROUND=e.SYMBOL_ICON_OPERATOR_FOREGROUND=e.SYMBOL_ICON_OBJECT_FOREGROUND=e.SYMBOL_ICON_NUMBER_FOREGROUND=e.SYMBOL_ICON_NULL_FOREGROUND=e.SYMBOL_ICON_NAMESPACE_FOREGROUND=e.SYMBOL_ICON_MODULE_FOREGROUND=e.SYMBOL_ICON_METHOD_FOREGROUND=e.SYMBOL_ICON_KEYWORD_FOREGROUND=e.SYMBOL_ICON_KEY_FOREGROUND=e.SYMBOL_ICON_INTERFACE_FOREGROUND=e.SYMBOL_ICON_FUNCTION_FOREGROUND=e.SYMBOL_ICON_FOLDER_FOREGROUND=e.SYMBOL_ICON_FILE_FOREGROUND=e.SYMBOL_ICON_FIELD_FOREGROUND=e.SYMBOL_ICON_EVENT_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=e.SYMBOL_ICON_CONSTANT_FOREGROUND=e.SYMBOL_ICON_COLOR_FOREGROUND=e.SYMBOL_ICON_CLASS_FOREGROUND=e.SYMBOL_ICON_BOOLEAN_FOREGROUND=e.SYMBOL_ICON_ARRAY_FOREGROUND=void 0,e.SYMBOL_ICON_ARRAY_FOREGROUND=(0,k.registerColor)("symbolIcon.arrayForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(0,null)),e.SYMBOL_ICON_BOOLEAN_FOREGROUND=(0,k.registerColor)("symbolIcon.booleanForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(1,null)),e.SYMBOL_ICON_CLASS_FOREGROUND=(0,k.registerColor)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,L.localize)(2,null)),e.SYMBOL_ICON_COLOR_FOREGROUND=(0,k.registerColor)("symbolIcon.colorForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(3,null)),e.SYMBOL_ICON_CONSTANT_FOREGROUND=(0,k.registerColor)("symbolIcon.constantForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(4,null)),e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=(0,k.registerColor)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,L.localize)(5,null)),e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,L.localize)(6,null)),e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,L.localize)(7,null)),e.SYMBOL_ICON_EVENT_FOREGROUND=(0,k.registerColor)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,L.localize)(8,null)),e.SYMBOL_ICON_FIELD_FOREGROUND=(0,k.registerColor)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,L.localize)(9,null)),e.SYMBOL_ICON_FILE_FOREGROUND=(0,k.registerColor)("symbolIcon.fileForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(10,null)),e.SYMBOL_ICON_FOLDER_FOREGROUND=(0,k.registerColor)("symbolIcon.folderForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(11,null)),e.SYMBOL_ICON_FUNCTION_FOREGROUND=(0,k.registerColor)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,L.localize)(12,null)),e.SYMBOL_ICON_INTERFACE_FOREGROUND=(0,k.registerColor)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,L.localize)(13,null)),e.SYMBOL_ICON_KEY_FOREGROUND=(0,k.registerColor)("symbolIcon.keyForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(14,null)),e.SYMBOL_ICON_KEYWORD_FOREGROUND=(0,k.registerColor)("symbolIcon.keywordForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(15,null)),e.SYMBOL_ICON_METHOD_FOREGROUND=(0,k.registerColor)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,L.localize)(16,null)),e.SYMBOL_ICON_MODULE_FOREGROUND=(0,k.registerColor)("symbolIcon.moduleForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(17,null)),e.SYMBOL_ICON_NAMESPACE_FOREGROUND=(0,k.registerColor)("symbolIcon.namespaceForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(18,null)),e.SYMBOL_ICON_NULL_FOREGROUND=(0,k.registerColor)("symbolIcon.nullForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(19,null)),e.SYMBOL_ICON_NUMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.numberForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(20,null)),e.SYMBOL_ICON_OBJECT_FOREGROUND=(0,k.registerColor)("symbolIcon.objectForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(21,null)),e.SYMBOL_ICON_OPERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.operatorForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(22,null)),e.SYMBOL_ICON_PACKAGE_FOREGROUND=(0,k.registerColor)("symbolIcon.packageForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(23,null)),e.SYMBOL_ICON_PROPERTY_FOREGROUND=(0,k.registerColor)("symbolIcon.propertyForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(24,null)),e.SYMBOL_ICON_REFERENCE_FOREGROUND=(0,k.registerColor)("symbolIcon.referenceForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(25,null)),e.SYMBOL_ICON_SNIPPET_FOREGROUND=(0,k.registerColor)("symbolIcon.snippetForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(26,null)),e.SYMBOL_ICON_STRING_FOREGROUND=(0,k.registerColor)("symbolIcon.stringForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(27,null)),e.SYMBOL_ICON_STRUCT_FOREGROUND=(0,k.registerColor)("symbolIcon.structForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(28,null)),e.SYMBOL_ICON_TEXT_FOREGROUND=(0,k.registerColor)("symbolIcon.textForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(29,null)),e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=(0,k.registerColor)("symbolIcon.typeParameterForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(30,null)),e.SYMBOL_ICON_UNIT_FOREGROUND=(0,k.registerColor)("symbolIcon.unitForeground",{dark:k.foreground,light:k.foreground,hcDark:k.foreground,hcLight:k.foreground},(0,L.localize)(31,null)),e.SYMBOL_ICON_VARIABLE_FOREGROUND=(0,k.registerColor)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,L.localize)(32,null))}),define(ne[846],se([1,0,27,119,668,180,259]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toMenuItems=void 0;const D=Object.freeze({kind:k.CodeActionKind.Empty,title:(0,y.localize)(0,null)}),S=Object.freeze([{kind:k.CodeActionKind.QuickFix,title:(0,y.localize)(1,null)},{kind:k.CodeActionKind.RefactorExtract,title:(0,y.localize)(2,null),icon:L.Codicon.wrench},{kind:k.CodeActionKind.RefactorInline,title:(0,y.localize)(3,null),icon:L.Codicon.wrench},{kind:k.CodeActionKind.RefactorRewrite,title:(0,y.localize)(4,null),icon:L.Codicon.wrench},{kind:k.CodeActionKind.RefactorMove,title:(0,y.localize)(5,null),icon:L.Codicon.wrench},{kind:k.CodeActionKind.SurroundWith,title:(0,y.localize)(6,null),icon:L.Codicon.surroundWith},{kind:k.CodeActionKind.Source,title:(0,y.localize)(7,null),icon:L.Codicon.symbolFile},D]);function p(w,v,b){if(!v)return w.map(i=>{var t;return{kind:"action",item:i,group:D,disabled:!!i.action.disabled,label:i.action.disabled||i.action.title,canPreview:!!(!((t=i.action.edit)===null||t===void 0)&&t.edits.length)}});const a=S.map(i=>({group:i,actions:[]}));for(const i of w){const t=i.action.kind?new k.CodeActionKind(i.action.kind):k.CodeActionKind.None;for(const o of a)if(o.group.kind.contains(t)){o.actions.push(i);break}}const n=[];for(const i of a)if(i.actions.length){n.push({kind:"header",group:i.group});for(const t of i.actions){const o=i.group;n.push({kind:"action",item:t,group:t.action.isAI?{title:o.title,kind:o.kind,icon:L.Codicon.sparkle}:o,label:t.action.title,disabled:!!t.action.disabled,keybinding:b(t.action)})}}return n}e.toMenuItems=p}),define(ne[102],se([1,0,31,39]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultMenuStyles=e.defaultSelectBoxStyles=e.getListStyles=e.defaultListStyles=e.defaultBreadcrumbsWidgetStyles=e.defaultCountBadgeStyles=e.defaultFindWidgetStyles=e.defaultInputBoxStyles=e.defaultDialogStyles=e.defaultCheckboxStyles=e.defaultToggleStyles=e.defaultProgressBarStyles=e.defaultButtonStyles=e.defaultKeybindingLabelStyles=void 0;function y(S,p){const w={...p};for(const v in S){const b=S[v];w[v]=b!==void 0?(0,L.asCssVariable)(b):void 0}return w}e.defaultKeybindingLabelStyles={keybindingLabelBackground:(0,L.asCssVariable)(L.keybindingLabelBackground),keybindingLabelForeground:(0,L.asCssVariable)(L.keybindingLabelForeground),keybindingLabelBorder:(0,L.asCssVariable)(L.keybindingLabelBorder),keybindingLabelBottomBorder:(0,L.asCssVariable)(L.keybindingLabelBottomBorder),keybindingLabelShadow:(0,L.asCssVariable)(L.widgetShadow)},e.defaultButtonStyles={buttonForeground:(0,L.asCssVariable)(L.buttonForeground),buttonSeparator:(0,L.asCssVariable)(L.buttonSeparator),buttonBackground:(0,L.asCssVariable)(L.buttonBackground),buttonHoverBackground:(0,L.asCssVariable)(L.buttonHoverBackground),buttonSecondaryForeground:(0,L.asCssVariable)(L.buttonSecondaryForeground),buttonSecondaryBackground:(0,L.asCssVariable)(L.buttonSecondaryBackground),buttonSecondaryHoverBackground:(0,L.asCssVariable)(L.buttonSecondaryHoverBackground),buttonBorder:(0,L.asCssVariable)(L.buttonBorder)},e.defaultProgressBarStyles={progressBarBackground:(0,L.asCssVariable)(L.progressBarBackground)},e.defaultToggleStyles={inputActiveOptionBorder:(0,L.asCssVariable)(L.inputActiveOptionBorder),inputActiveOptionForeground:(0,L.asCssVariable)(L.inputActiveOptionForeground),inputActiveOptionBackground:(0,L.asCssVariable)(L.inputActiveOptionBackground)},e.defaultCheckboxStyles={checkboxBackground:(0,L.asCssVariable)(L.checkboxBackground),checkboxBorder:(0,L.asCssVariable)(L.checkboxBorder),checkboxForeground:(0,L.asCssVariable)(L.checkboxForeground)},e.defaultDialogStyles={dialogBackground:(0,L.asCssVariable)(L.editorWidgetBackground),dialogForeground:(0,L.asCssVariable)(L.editorWidgetForeground),dialogShadow:(0,L.asCssVariable)(L.widgetShadow),dialogBorder:(0,L.asCssVariable)(L.contrastBorder),errorIconForeground:(0,L.asCssVariable)(L.problemsErrorIconForeground),warningIconForeground:(0,L.asCssVariable)(L.problemsWarningIconForeground),infoIconForeground:(0,L.asCssVariable)(L.problemsInfoIconForeground),textLinkForeground:(0,L.asCssVariable)(L.textLinkForeground)},e.defaultInputBoxStyles={inputBackground:(0,L.asCssVariable)(L.inputBackground),inputForeground:(0,L.asCssVariable)(L.inputForeground),inputBorder:(0,L.asCssVariable)(L.inputBorder),inputValidationInfoBorder:(0,L.asCssVariable)(L.inputValidationInfoBorder),inputValidationInfoBackground:(0,L.asCssVariable)(L.inputValidationInfoBackground),inputValidationInfoForeground:(0,L.asCssVariable)(L.inputValidationInfoForeground),inputValidationWarningBorder:(0,L.asCssVariable)(L.inputValidationWarningBorder),inputValidationWarningBackground:(0,L.asCssVariable)(L.inputValidationWarningBackground),inputValidationWarningForeground:(0,L.asCssVariable)(L.inputValidationWarningForeground),inputValidationErrorBorder:(0,L.asCssVariable)(L.inputValidationErrorBorder),inputValidationErrorBackground:(0,L.asCssVariable)(L.inputValidationErrorBackground),inputValidationErrorForeground:(0,L.asCssVariable)(L.inputValidationErrorForeground)},e.defaultFindWidgetStyles={listFilterWidgetBackground:(0,L.asCssVariable)(L.listFilterWidgetBackground),listFilterWidgetOutline:(0,L.asCssVariable)(L.listFilterWidgetOutline),listFilterWidgetNoMatchesOutline:(0,L.asCssVariable)(L.listFilterWidgetNoMatchesOutline),listFilterWidgetShadow:(0,L.asCssVariable)(L.listFilterWidgetShadow),inputBoxStyles:e.defaultInputBoxStyles,toggleStyles:e.defaultToggleStyles},e.defaultCountBadgeStyles={badgeBackground:(0,L.asCssVariable)(L.badgeBackground),badgeForeground:(0,L.asCssVariable)(L.badgeForeground),badgeBorder:(0,L.asCssVariable)(L.contrastBorder)},e.defaultBreadcrumbsWidgetStyles={breadcrumbsBackground:(0,L.asCssVariable)(L.breadcrumbsBackground),breadcrumbsForeground:(0,L.asCssVariable)(L.breadcrumbsForeground),breadcrumbsHoverForeground:(0,L.asCssVariable)(L.breadcrumbsFocusForeground),breadcrumbsFocusForeground:(0,L.asCssVariable)(L.breadcrumbsFocusForeground),breadcrumbsFocusAndSelectionForeground:(0,L.asCssVariable)(L.breadcrumbsActiveSelectionForeground)},e.defaultListStyles={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:(0,L.asCssVariable)(L.listFocusBackground),listFocusForeground:(0,L.asCssVariable)(L.listFocusForeground),listFocusOutline:(0,L.asCssVariable)(L.listFocusOutline),listActiveSelectionBackground:(0,L.asCssVariable)(L.listActiveSelectionBackground),listActiveSelectionForeground:(0,L.asCssVariable)(L.listActiveSelectionForeground),listActiveSelectionIconForeground:(0,L.asCssVariable)(L.listActiveSelectionIconForeground),listFocusAndSelectionOutline:(0,L.asCssVariable)(L.listFocusAndSelectionOutline),listFocusAndSelectionBackground:(0,L.asCssVariable)(L.listActiveSelectionBackground),listFocusAndSelectionForeground:(0,L.asCssVariable)(L.listActiveSelectionForeground),listInactiveSelectionBackground:(0,L.asCssVariable)(L.listInactiveSelectionBackground),listInactiveSelectionIconForeground:(0,L.asCssVariable)(L.listInactiveSelectionIconForeground),listInactiveSelectionForeground:(0,L.asCssVariable)(L.listInactiveSelectionForeground),listInactiveFocusBackground:(0,L.asCssVariable)(L.listInactiveFocusBackground),listInactiveFocusOutline:(0,L.asCssVariable)(L.listInactiveFocusOutline),listHoverBackground:(0,L.asCssVariable)(L.listHoverBackground),listHoverForeground:(0,L.asCssVariable)(L.listHoverForeground),listDropOverBackground:(0,L.asCssVariable)(L.listDropOverBackground),listDropBetweenBackground:(0,L.asCssVariable)(L.listDropBetweenBackground),listSelectionOutline:(0,L.asCssVariable)(L.activeContrastBorder),listHoverOutline:(0,L.asCssVariable)(L.activeContrastBorder),treeIndentGuidesStroke:(0,L.asCssVariable)(L.treeIndentGuidesStroke),treeInactiveIndentGuidesStroke:(0,L.asCssVariable)(L.treeInactiveIndentGuidesStroke),tableColumnsBorder:(0,L.asCssVariable)(L.tableColumnsBorder),tableOddRowsBackgroundColor:(0,L.asCssVariable)(L.tableOddRowsBackgroundColor)};function D(S){return y(S,e.defaultListStyles)}e.getListStyles=D,e.defaultSelectBoxStyles={selectBackground:(0,L.asCssVariable)(L.selectBackground),selectListBackground:(0,L.asCssVariable)(L.selectListBackground),selectForeground:(0,L.asCssVariable)(L.selectForeground),decoratorRightForeground:(0,L.asCssVariable)(L.pickerGroupForeground),selectBorder:(0,L.asCssVariable)(L.selectBorder),focusBorder:(0,L.asCssVariable)(L.focusBorder),listFocusBackground:(0,L.asCssVariable)(L.quickInputListFocusBackground),listInactiveSelectionIconForeground:(0,L.asCssVariable)(L.quickInputListFocusIconForeground),listFocusForeground:(0,L.asCssVariable)(L.quickInputListFocusForeground),listFocusOutline:(0,L.asCssVariableWithDefault)(L.activeContrastBorder,k.Color.transparent.toString()),listHoverBackground:(0,L.asCssVariable)(L.listHoverBackground),listHoverForeground:(0,L.asCssVariable)(L.listHoverForeground),listHoverOutline:(0,L.asCssVariable)(L.activeContrastBorder),selectListBorder:(0,L.asCssVariable)(L.editorWidgetBorder),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0},e.defaultMenuStyles={shadowColor:(0,L.asCssVariable)(L.widgetShadow),borderColor:(0,L.asCssVariable)(L.menuBorder),foregroundColor:(0,L.asCssVariable)(L.menuForeground),backgroundColor:(0,L.asCssVariable)(L.menuBackground),selectionForegroundColor:(0,L.asCssVariable)(L.menuSelectionForeground),selectionBackgroundColor:(0,L.asCssVariable)(L.menuSelectionBackground),selectionBorderColor:(0,L.asCssVariable)(L.menuSelectionBorder),separatorColor:(0,L.asCssVariable)(L.menuSeparatorBackground),scrollbarShadow:(0,L.asCssVariable)(L.scrollbarShadow),scrollbarSliderBackground:(0,L.asCssVariable)(L.scrollbarSliderBackground),scrollbarSliderHoverBackground:(0,L.asCssVariable)(L.scrollbarSliderHoverBackground),scrollbarSliderActiveBackground:(0,L.asCssVariable)(L.scrollbarSliderActiveBackground)}}),define(ne[847],se([1,0,6,326,327,236,73,2,48,70,693,8,34,166,102,163]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityProvider=e.OneReferenceRenderer=e.FileReferencesRenderer=e.IdentityProvider=e.StringRepresentationProvider=e.Delegate=e.DataSource=void 0;let m=class{constructor(_){this._resolverService=_}hasChildren(_){return _ instanceof o.ReferencesModel||_ instanceof o.FileReferences}getChildren(_){if(_ instanceof o.ReferencesModel)return _.groups;if(_ instanceof o.FileReferences)return _.resolve(this._resolverService).then(E=>E.children);throw new Error("bad tree")}};e.DataSource=m,e.DataSource=m=De([he(0,v.ITextModelService)],m);class c{getHeight(){return 23}getTemplateId(_){return _ instanceof o.FileReferences?r.id:u.id}}e.Delegate=c;let d=class{constructor(_){this._keybindingService=_}getKeyboardNavigationLabel(_){var E;if(_ instanceof o.OneReference){const I=(E=_.parent.getPreview(_))===null||E===void 0?void 0:E.preview(_.range);if(I)return I.value}return(0,w.basename)(_.uri)}};e.StringRepresentationProvider=d,e.StringRepresentationProvider=d=De([he(0,n.IKeybindingService)],d);class s{getId(_){return _ instanceof o.OneReference?_.id:_.uri}}e.IdentityProvider=s;let l=class extends p.Disposable{constructor(_,E){super(),this._labelService=E;const I=document.createElement("div");I.classList.add("reference-file"),this.file=this._register(new D.IconLabel(I,{supportHighlights:!0})),this.badge=new k.CountBadge(L.append(I,L.$(".count")),{},t.defaultCountBadgeStyles),_.appendChild(I)}set(_,E){const I=(0,w.dirname)(_.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(_.uri),this._labelService.getUriLabel(I,{relative:!0}),{title:this._labelService.getUriLabel(_.uri),matches:E});const T=_.children.length;this.badge.setCount(T),T>1?this.badge.setTitleFormat((0,b.localize)(0,null,T)):this.badge.setTitleFormat((0,b.localize)(1,null,T))}};l=De([he(1,i.ILabelService)],l);let r=g=class{constructor(_){this._instantiationService=_,this.templateId=g.id}renderTemplate(_){return this._instantiationService.createInstance(l,_)}renderElement(_,E,I){I.set(_.element,(0,S.createMatches)(_.filterData))}disposeTemplate(_){_.dispose()}};e.FileReferencesRenderer=r,r.id="FileReferencesRenderer",e.FileReferencesRenderer=r=g=De([he(0,a.IInstantiationService)],r);class h{constructor(_){this.label=new y.HighlightedLabel(_)}set(_,E){var I;const T=(I=_.parent.getPreview(_))===null||I===void 0?void 0:I.preview(_.range);if(!T||!T.value)this.label.set(`${(0,w.basename)(_.uri)}:${_.range.startLineNumber+1}:${_.range.startColumn+1}`);else{const{value:A,highlight:R}=T;E&&!S.FuzzyScore.isDefault(E)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(A,(0,S.createMatches)(E))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(A,[R]))}}}class u{constructor(){this.templateId=u.id}renderTemplate(_){return new h(_)}renderElement(_,E,I){I.set(_.element,_.filterData)}disposeTemplate(){}}e.OneReferenceRenderer=u,u.id="OneReferenceRenderer";class f{getWidgetAriaLabel(){return(0,b.localize)(2,null)}getAriaLabel(_){return _.ariaMessage}}e.AccessibilityProvider=f}),define(ne[848],se([1,0,6,190,105,19,27,2,17,29,742,56,34,102,31,284]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionList=e.previewSelectedActionCommand=e.acceptSelectedActionCommand=void 0,e.acceptSelectedActionCommand="acceptSelectedCodeAction",e.previewSelectedActionCommand="previewSelectedCodeAction";class o{get templateId(){return"header"}renderTemplate(h){h.classList.add("group-header");const u=document.createElement("span");return h.append(u),{container:h,text:u}}renderElement(h,u,f){var C,_;f.text.textContent=(_=(C=h.group)===null||C===void 0?void 0:C.title)!==null&&_!==void 0?_:""}disposeTemplate(h){}}let g=class{get templateId(){return"action"}constructor(h,u){this._supportsPreview=h,this._keybindingService=u}renderTemplate(h){h.classList.add(this.templateId);const u=document.createElement("div");u.className="icon",h.append(u);const f=document.createElement("span");f.className="title",h.append(f);const C=new k.KeybindingLabel(h,w.OS);return{container:h,icon:u,text:f,keybinding:C}}renderElement(h,u,f){var C,_,E;if(!((C=h.group)===null||C===void 0)&&C.icon?(f.icon.className=v.ThemeIcon.asClassName(h.group.icon),h.group.icon.color&&(f.icon.style.color=(0,t.asCssVariable)(h.group.icon.color.id))):(f.icon.className=v.ThemeIcon.asClassName(S.Codicon.lightBulb),f.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!h.item||!h.label)return;f.text.textContent=l(h.label),f.keybinding.set(h.keybinding),L.setVisibility(!!h.keybinding,f.keybinding.element);const I=(_=this._keybindingService.lookupKeybinding(e.acceptSelectedActionCommand))===null||_===void 0?void 0:_.getLabel(),T=(E=this._keybindingService.lookupKeybinding(e.previewSelectedActionCommand))===null||E===void 0?void 0:E.getLabel();f.container.classList.toggle("option-disabled",h.disabled),h.disabled?f.container.title=h.label:I&&T?this._supportsPreview&&h.canPreview?f.container.title=(0,b.localize)(0,null,I,T):f.container.title=(0,b.localize)(1,null,I):f.container.title=""}disposeTemplate(h){}};g=De([he(1,n.IKeybindingService)],g);class m extends UIEvent{constructor(){super("acceptSelectedAction")}}class c extends UIEvent{constructor(){super("previewSelectedAction")}}function d(r){if(r.kind==="action")return r.label}let s=class extends p.Disposable{constructor(h,u,f,C,_,E){super(),this._delegate=C,this._contextViewService=_,this._keybindingService=E,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new D.CancellationTokenSource),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const I={getHeight:T=>T.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:T=>T.kind};this._list=this._register(new y.List(h,this.domNode,I,[new g(u,this._keybindingService),new o],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:d},accessibilityProvider:{getAriaLabel:T=>{if(T.kind==="action"){let A=T.label?l(T?.label):"";return T.disabled&&(A=(0,b.localize)(2,null,A,T.disabled)),A}return null},getWidgetAriaLabel:()=>(0,b.localize)(3,null),getRole:T=>T.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(i.defaultListStyles),this._register(this._list.onMouseClick(T=>this.onListClick(T))),this._register(this._list.onMouseOver(T=>this.onListHover(T))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(T=>this.onListSelection(T))),this._allMenuItems=f,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(h){return!h.disabled&&h.kind==="action"}hide(h){this._delegate.onHide(h),this.cts.cancel(),this._contextViewService.hideContextView()}layout(h){const u=this._allMenuItems.filter(T=>T.kind==="header").length,C=this._allMenuItems.length*this._actionLineHeight+u*this._headerLineHeight-u*this._actionLineHeight;this._list.layout(C);let _=h;if(this._allMenuItems.length>=50)_=380;else{const T=this._allMenuItems.map((A,R)=>{const M=this.domNode.ownerDocument.getElementById(this._list.getElementID(R));if(M){M.style.width="auto";const N=M.getBoundingClientRect().width;return M.style.width="",N}return 0});_=Math.max(...T,h)}const I=Math.min(C,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(I,_),this.domNode.style.height=`${I}px`,this._list.domFocus(),_}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(h){const u=this._list.getFocus();if(u.length===0)return;const f=u[0],C=this._list.element(f);if(!this.focusCondition(C))return;const _=h?new c:new m;this._list.setSelection([f],_)}onListSelection(h){if(!h.elements.length)return;const u=h.elements[0];u.item&&this.focusCondition(u)?this._delegate.onSelect(u.item,h.browserEvent instanceof c):this._list.setSelection([])}onFocus(){var h,u;const f=this._list.getFocus();if(f.length===0)return;const C=f[0],_=this._list.element(C);(u=(h=this._delegate).onFocus)===null||u===void 0||u.call(h,_.item)}async onListHover(h){const u=h.element;if(u&&u.item&&this.focusCondition(u)){if(this._delegate.onHover&&!u.disabled&&u.kind==="action"){const f=await this._delegate.onHover(u.item,this.cts.token);u.canPreview=f?f.canPreview:void 0}h.index&&this._list.splice(h.index,1,[u])}this._list.setFocus(typeof h.index=="number"?[h.index]:[])}onListClick(h){h.element&&this.focusCondition(h.element)&&this._list.setFocus([])}};e.ActionList=s,e.ActionList=s=De([he(4,a.IContextViewService),he(5,n.IKeybindingService)],s);function l(r){return r.replace(/\r\n|\r|\n/g," ")}}),define(ne[849],se([1,0,6,79,2,743,848,28,14,56,45,8,31,284]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IActionWidgetService=void 0,(0,n.registerColor)("actionBar.toggledBackground",{dark:n.inputActiveOptionBackground,light:n.inputActiveOptionBackground,hcDark:n.inputActiveOptionBackground,hcLight:n.inputActiveOptionBackground},(0,D.localize)(0,null));const i={Visible:new w.RawContextKey("codeActionMenuVisible",!1,(0,D.localize)(1,null))};e.IActionWidgetService=(0,a.createDecorator)("actionWidgetService");let t=class extends y.Disposable{get isVisible(){return i.Visible.getValue(this._contextKeyService)||!1}constructor(m,c,d){super(),this._contextViewService=m,this._contextKeyService=c,this._instantiationService=d,this._list=this._register(new y.MutableDisposable)}show(m,c,d,s,l,r,h){const u=i.Visible.bindTo(this._contextKeyService),f=this._instantiationService.createInstance(S.ActionList,m,c,d,s);this._contextViewService.showContextView({getAnchor:()=>l,render:C=>(u.set(!0),this._renderWidget(C,f,h??[])),onHide:C=>{u.reset(),this._onWidgetClosed(C)}},r,!1)}acceptSelected(m){var c;(c=this._list.value)===null||c===void 0||c.acceptSelected(m)}focusPrevious(){var m,c;(c=(m=this._list)===null||m===void 0?void 0:m.value)===null||c===void 0||c.focusPrevious()}focusNext(){var m,c;(c=(m=this._list)===null||m===void 0?void 0:m.value)===null||c===void 0||c.focusNext()}hide(){var m;(m=this._list.value)===null||m===void 0||m.hide(),this._list.clear()}_renderWidget(m,c,d){var s;const l=document.createElement("div");if(l.classList.add("action-widget"),m.appendChild(l),this._list.value=c,this._list.value)l.appendChild(this._list.value.domNode);else throw new Error("List has no value");const r=new y.DisposableStore,h=document.createElement("div"),u=m.appendChild(h);u.classList.add("context-view-block"),r.add(L.addDisposableListener(u,L.EventType.MOUSE_DOWN,T=>T.stopPropagation()));const f=document.createElement("div"),C=m.appendChild(f);C.classList.add("context-view-pointerBlock"),r.add(L.addDisposableListener(C,L.EventType.POINTER_MOVE,()=>C.remove())),r.add(L.addDisposableListener(C,L.EventType.MOUSE_DOWN,()=>C.remove()));let _=0;if(d.length){const T=this._createActionBar(".action-widget-action-bar",d);T&&(l.appendChild(T.getContainer().parentElement),r.add(T),_=T.getContainer().offsetWidth)}const E=(s=this._list.value)===null||s===void 0?void 0:s.layout(_);l.style.width=`${E}px`;const I=r.add(L.trackFocus(m));return r.add(I.onDidBlur(()=>this.hide())),r}_createActionBar(m,c){if(!c.length)return;const d=L.$(m),s=new k.ActionBar(d);return s.push(c,{icon:!1,label:!0}),s}_onWidgetClosed(m){var c;(c=this._list.value)===null||c===void 0||c.hide(m)}};t=De([he(0,v.IContextViewService),he(1,w.IContextKeyService),he(2,a.IInstantiationService)],t),(0,b.registerSingleton)(e.IActionWidgetService,t,1);const o=1100;(0,p.registerAction2)(class extends p.Action2{constructor(){super({id:"hideCodeActionWidget",title:(0,D.localize2)(2,"Hide action widget"),precondition:i.Visible,keybinding:{weight:o,primary:9,secondary:[1033]}})}run(g){g.get(e.IActionWidgetService).hide()}}),(0,p.registerAction2)(class extends p.Action2{constructor(){super({id:"selectPrevCodeAction",title:(0,D.localize2)(3,"Select previous action"),precondition:i.Visible,keybinding:{weight:o,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(g){const m=g.get(e.IActionWidgetService);m instanceof t&&m.focusPrevious()}}),(0,p.registerAction2)(class extends p.Action2{constructor(){super({id:"selectNextCodeAction",title:(0,D.localize2)(4,"Select next action"),precondition:i.Visible,keybinding:{weight:o,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(g){const m=g.get(e.IActionWidgetService);m instanceof t&&m.focusNext()}}),(0,p.registerAction2)(class extends p.Action2{constructor(){super({id:S.acceptSelectedActionCommand,title:(0,D.localize2)(5,"Accept selected action"),precondition:i.Visible,keybinding:{weight:o,primary:3,secondary:[2137]}})}run(g){const m=g.get(e.IActionWidgetService);m instanceof t&&m.acceptSelected()}}),(0,p.registerAction2)(class extends p.Action2{constructor(){super({id:S.previewSelectedActionCommand,title:(0,D.localize2)(6,"Preview selected action"),precondition:i.Visible,keybinding:{weight:o,primary:2051}})}run(g){const m=g.get(e.IActionWidgetService);m instanceof t&&m.acceptSelected(!0)}})}),define(ne[850],se([1,0,6,69,607,42,12,2,102]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuHandler=void 0;class v{constructor(a,n,i,t){this.contextViewService=a,this.telemetryService=n,this.notificationService=i,this.keybindingService=t,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(a){this.options=a}showContextMenu(a){const n=a.getActions();if(!n.length)return;this.focusToReturn=(0,L.getActiveElement)();let i;const t=a.domForShadowRoot instanceof HTMLElement?a.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>a.getAnchor(),canRelayout:!1,anchorAlignment:a.anchorAlignment,anchorAxisAlignment:a.anchorAxisAlignment,render:o=>{var g;this.lastContainer=o;const m=a.getMenuClassName?a.getMenuClassName():"";m&&(o.className+=" "+m),this.options.blockMouse&&(this.block=o.appendChild((0,L.$)(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(g=this.blockDisposable)===null||g===void 0||g.dispose(),this.blockDisposable=(0,L.addDisposableListener)(this.block,L.EventType.MOUSE_DOWN,l=>l.stopPropagation()));const c=new p.DisposableStore,d=a.actionRunner||new D.ActionRunner;d.onWillRun(l=>this.onActionRun(l,!a.skipTelemetry),this,c),d.onDidRun(this.onDidActionRun,this,c),i=new y.Menu(o,n,{actionViewItemProvider:a.getActionViewItem,context:a.getActionsContext?a.getActionsContext():null,actionRunner:d,getKeyBinding:a.getKeyBinding?a.getKeyBinding:l=>this.keybindingService.lookupKeybinding(l.id)},w.defaultMenuStyles),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,c),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,c);const s=(0,L.getWindow)(o);return c.add((0,L.addDisposableListener)(s,L.EventType.BLUR,()=>this.contextViewService.hideContextView(!0))),c.add((0,L.addDisposableListener)(s,L.EventType.MOUSE_DOWN,l=>{if(l.defaultPrevented)return;const r=new k.StandardMouseEvent(s,l);let h=r.target;if(!r.rightButton){for(;h;){if(h===o)return;h=h.parentElement}this.contextViewService.hideContextView(!0)}})),(0,p.combinedDisposable)(c,i)},focus:()=>{i?.focus(!!a.autoSelectFirstItem)},onHide:o=>{var g,m,c;(g=a.onHide)===null||g===void 0||g.call(a,!!o),this.block&&(this.block.remove(),this.block=null),(m=this.blockDisposable)===null||m===void 0||m.dispose(),this.blockDisposable=null,this.lastContainer&&((0,L.getActiveElement)()===this.lastContainer||(0,L.isAncestor)((0,L.getActiveElement)(),this.lastContainer))&&((c=this.focusToReturn)===null||c===void 0||c.focus()),this.lastContainer=null}},t,!!t)}onActionRun(a,n){n&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:a.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(a){a.error&&!(0,S.isCancellationError)(a.error)&&this.notificationService.error(a.error)}}e.ContextMenuHandler=v}),define(ne[198],se([1,0,6,604,105,608,192,612,611,332,7,2,754,26,101,14,195,56,8,34,37,102]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkbenchCompressibleAsyncDataTree=e.WorkbenchAsyncDataTree=e.WorkbenchDataTree=e.WorkbenchCompressibleObjectTree=e.WorkbenchObjectTree=e.WorkbenchTable=e.WorkbenchPagedList=e.WorkbenchList=e.WorkbenchTreeFindOpen=e.WorkbenchTreeElementHasChild=e.WorkbenchTreeElementCanExpand=e.WorkbenchTreeElementHasParent=e.WorkbenchTreeElementCanCollapse=e.WorkbenchListSupportsFind=e.WorkbenchListSelectionNavigation=e.WorkbenchListMultiSelection=e.WorkbenchListDoubleSelection=e.WorkbenchListHasSelectionOrFocus=e.WorkbenchListFocusContextKey=e.WorkbenchListSupportsMultiSelectContextKey=e.WorkbenchTreeStickyScrollFocused=e.RawWorkbenchListFocusContextKey=e.WorkbenchListScrollAtBottomContextKey=e.WorkbenchListScrollAtTopContextKey=e.RawWorkbenchListScrollAtBoundaryContextKey=e.ListService=e.IListService=void 0,e.IListService=(0,c.createDecorator)("listService");class r{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new a.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(ce){var fe,ve;ce!==this._lastFocusedWidget&&((fe=this._lastFocusedWidget)===null||fe===void 0||fe.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=ce,(ve=this._lastFocusedWidget)===null||ve===void 0||ve.getHTMLElement().classList.add("last-focused"))}register(ce,fe){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new y.DefaultStyleController((0,L.createStyleSheet)(),"").style(l.defaultListStyles)),this.lists.some(Ce=>Ce.widget===ce))throw new Error("Cannot register the same widget multiple times");const ve={widget:ce,extraContextKeys:fe};return this.lists.push(ve),(0,L.isActiveElement)(ce.getHTMLElement())&&this.setLastFocusedList(ce),(0,a.combinedDisposable)(ce.onDidFocus(()=>this.setLastFocusedList(ce)),(0,a.toDisposable)(()=>this.lists.splice(this.lists.indexOf(ve),1)),ce.onDidDispose(()=>{this.lists=this.lists.filter(Ce=>Ce!==ve),this._lastFocusedWidget===ce&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}e.ListService=r,e.RawWorkbenchListScrollAtBoundaryContextKey=new o.RawContextKey("listScrollAtBoundary","none"),e.WorkbenchListScrollAtTopContextKey=o.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("top"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.WorkbenchListScrollAtBottomContextKey=o.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("bottom"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.RawWorkbenchListFocusContextKey=new o.RawContextKey("listFocus",!0),e.WorkbenchTreeStickyScrollFocused=new o.RawContextKey("treestickyScrollFocused",!1),e.WorkbenchListSupportsMultiSelectContextKey=new o.RawContextKey("listSupportsMultiselect",!0),e.WorkbenchListFocusContextKey=o.ContextKeyExpr.and(e.RawWorkbenchListFocusContextKey,o.ContextKeyExpr.not(g.InputFocusedContextKey),e.WorkbenchTreeStickyScrollFocused.negate()),e.WorkbenchListHasSelectionOrFocus=new o.RawContextKey("listHasSelectionOrFocus",!1),e.WorkbenchListDoubleSelection=new o.RawContextKey("listDoubleSelection",!1),e.WorkbenchListMultiSelection=new o.RawContextKey("listMultiSelection",!1),e.WorkbenchListSelectionNavigation=new o.RawContextKey("listSelectionNavigation",!1),e.WorkbenchListSupportsFind=new o.RawContextKey("listSupportsFind",!0),e.WorkbenchTreeElementCanCollapse=new o.RawContextKey("treeElementCanCollapse",!1),e.WorkbenchTreeElementHasParent=new o.RawContextKey("treeElementHasParent",!1),e.WorkbenchTreeElementCanExpand=new o.RawContextKey("treeElementCanExpand",!1),e.WorkbenchTreeElementHasChild=new o.RawContextKey("treeElementHasChild",!1),e.WorkbenchTreeFindOpen=new o.RawContextKey("treeFindOpen",!1);const h="listTypeNavigationMode",u="listAutomaticKeyboardNavigation";function f(ue,ce){const fe=ue.createScoped(ce.getHTMLElement());return e.RawWorkbenchListFocusContextKey.bindTo(fe),fe}function C(ue,ce){const fe=e.RawWorkbenchListScrollAtBoundaryContextKey.bindTo(ue),ve=()=>{const Ce=ce.scrollTop===0,Se=ce.scrollHeight-ce.renderHeight-ce.scrollTop<1;Ce&&Se?fe.set("both"):Ce?fe.set("top"):Se?fe.set("bottom"):fe.set("none")};return ve(),ce.onDidScroll(ve)}const _="workbench.list.multiSelectModifier",E="workbench.list.openMode",I="workbench.list.horizontalScrolling",T="workbench.list.defaultFindMode",A="workbench.list.typeNavigationMode",R="workbench.list.keyboardNavigation",M="workbench.list.scrollByPage",N="workbench.list.defaultFindMatchType",P="workbench.tree.indent",F="workbench.tree.renderIndentGuides",O="workbench.list.smoothScrolling",B="workbench.list.mouseWheelScrollSensitivity",W="workbench.list.fastScrollSensitivity",V="workbench.tree.expandMode",z="workbench.tree.enableStickyScroll",K="workbench.tree.stickyScrollMaxItemCount";function j(ue){return ue.getValue(_)==="alt"}class x extends a.Disposable{constructor(ce){super(),this.configurationService=ce,this.useAltAsMultipleSelectionModifier=j(ce),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(ce=>{ce.affectsConfiguration(_)&&(this.useAltAsMultipleSelectionModifier=j(this.configurationService))}))}isSelectionSingleChangeEvent(ce){return this.useAltAsMultipleSelectionModifier?ce.browserEvent.altKey:(0,y.isSelectionSingleChangeEvent)(ce)}isSelectionRangeChangeEvent(ce){return(0,y.isSelectionRangeChangeEvent)(ce)}}function re(ue,ce){var fe;const ve=ue.get(i.IConfigurationService),Ce=ue.get(d.IKeybindingService),Se=new a.DisposableStore;return[{...ce,keyboardNavigationDelegate:{mightProducePrintableCharacter(Ie){return Ce.mightProducePrintableCharacter(Ie)}},smoothScrolling:!!ve.getValue(O),mouseWheelScrollSensitivity:ve.getValue(B),fastScrollSensitivity:ve.getValue(W),multipleSelectionController:(fe=ce.multipleSelectionController)!==null&&fe!==void 0?fe:Se.add(new x(ve)),keyboardNavigationEventFilter:pe(Ce),scrollByPage:!!ve.getValue(M)},Se]}let ie=class extends y.List{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe){const xe=typeof Se.horizontalScrolling<"u"?Se.horizontalScrolling:!!Ne.getValue(I),[We,ye]=Oe.invokeFunction(re,Se);super(ce,fe,ve,Ce,{keyboardSupport:!1,...We,horizontalScrolling:xe}),this.disposables.add(ye),this.contextKeyService=f(_e,this),this.disposables.add(C(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Se.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Se.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=Se.horizontalScrolling,this._useAltAsMultipleSelectionModifier=j(Ne),this.disposables.add(this.contextKeyService),this.disposables.add(Ie.register(this)),this.updateStyles(Se.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const me=this.getSelection(),be=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(me.length>0||be.length>0),this.listMultiSelection.set(me.length>1),this.listDoubleSelection.set(me.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const me=this.getSelection(),be=this.getFocus();this.listHasSelectionOrFocus.set(me.length>0||be.length>0)})),this.disposables.add(Ne.onDidChangeConfiguration(me=>{me.affectsConfiguration(_)&&(this._useAltAsMultipleSelectionModifier=j(Ne));let be={};if(me.affectsConfiguration(I)&&this.horizontalScrolling===void 0){const Ae=!!Ne.getValue(I);be={...be,horizontalScrolling:Ae}}if(me.affectsConfiguration(M)){const Ae=!!Ne.getValue(M);be={...be,scrollByPage:Ae}}if(me.affectsConfiguration(O)){const Ae=!!Ne.getValue(O);be={...be,smoothScrolling:Ae}}if(me.affectsConfiguration(B)){const Ae=Ne.getValue(B);be={...be,mouseWheelScrollSensitivity:Ae}}if(me.affectsConfiguration(W)){const Ae=Ne.getValue(W);be={...be,fastScrollSensitivity:Ae}}Object.keys(be).length>0&&this.updateOptions(be)})),this.navigator=new le(this,{configurationService:Ne,...Se}),this.disposables.add(this.navigator)}updateOptions(ce){super.updateOptions(ce),ce.overrideStyles!==void 0&&this.updateStyles(ce.overrideStyles),ce.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!ce.multipleSelectionSupport)}updateStyles(ce){this.style(ce?(0,l.getListStyles)(ce):l.defaultListStyles)}};e.WorkbenchList=ie,e.WorkbenchList=ie=De([he(5,o.IContextKeyService),he(6,e.IListService),he(7,i.IConfigurationService),he(8,c.IInstantiationService)],ie);let J=class extends k.PagedList{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe){const xe=typeof Se.horizontalScrolling<"u"?Se.horizontalScrolling:!!Ne.getValue(I),[We,ye]=Oe.invokeFunction(re,Se);super(ce,fe,ve,Ce,{keyboardSupport:!1,...We,horizontalScrolling:xe}),this.disposables=new a.DisposableStore,this.disposables.add(ye),this.contextKeyService=f(_e,this),this.disposables.add(C(this.contextKeyService,this.widget)),this.horizontalScrolling=Se.horizontalScrolling,this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Se.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Se.selectionNavigation),this._useAltAsMultipleSelectionModifier=j(Ne),this.disposables.add(this.contextKeyService),this.disposables.add(Ie.register(this)),this.updateStyles(Se.overrideStyles),this.disposables.add(Ne.onDidChangeConfiguration(me=>{me.affectsConfiguration(_)&&(this._useAltAsMultipleSelectionModifier=j(Ne));let be={};if(me.affectsConfiguration(I)&&this.horizontalScrolling===void 0){const Ae=!!Ne.getValue(I);be={...be,horizontalScrolling:Ae}}if(me.affectsConfiguration(M)){const Ae=!!Ne.getValue(M);be={...be,scrollByPage:Ae}}if(me.affectsConfiguration(O)){const Ae=!!Ne.getValue(O);be={...be,smoothScrolling:Ae}}if(me.affectsConfiguration(B)){const Ae=Ne.getValue(B);be={...be,mouseWheelScrollSensitivity:Ae}}if(me.affectsConfiguration(W)){const Ae=Ne.getValue(W);be={...be,fastScrollSensitivity:Ae}}Object.keys(be).length>0&&this.updateOptions(be)})),this.navigator=new le(this,{configurationService:Ne,...Se}),this.disposables.add(this.navigator)}updateOptions(ce){super.updateOptions(ce),ce.overrideStyles!==void 0&&this.updateStyles(ce.overrideStyles),ce.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!ce.multipleSelectionSupport)}updateStyles(ce){this.style(ce?(0,l.getListStyles)(ce):l.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchPagedList=J,e.WorkbenchPagedList=J=De([he(5,o.IContextKeyService),he(6,e.IListService),he(7,i.IConfigurationService),he(8,c.IInstantiationService)],J);let X=class extends D.Table{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe){const We=typeof _e.horizontalScrolling<"u"?_e.horizontalScrolling:!!Oe.getValue(I),[ye,Me]=xe.invokeFunction(re,_e);super(ce,fe,ve,Ce,Se,{keyboardSupport:!1,...ye,horizontalScrolling:We}),this.disposables.add(Me),this.contextKeyService=f(Ie,this),this.disposables.add(C(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(_e.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!_e.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=_e.horizontalScrolling,this._useAltAsMultipleSelectionModifier=j(Oe),this.disposables.add(this.contextKeyService),this.disposables.add(Ne.register(this)),this.updateStyles(_e.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const be=this.getSelection(),Ae=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(be.length>0||Ae.length>0),this.listMultiSelection.set(be.length>1),this.listDoubleSelection.set(be.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const be=this.getSelection(),Ae=this.getFocus();this.listHasSelectionOrFocus.set(be.length>0||Ae.length>0)})),this.disposables.add(Oe.onDidChangeConfiguration(be=>{be.affectsConfiguration(_)&&(this._useAltAsMultipleSelectionModifier=j(Oe));let Ae={};if(be.affectsConfiguration(I)&&this.horizontalScrolling===void 0){const Be=!!Oe.getValue(I);Ae={...Ae,horizontalScrolling:Be}}if(be.affectsConfiguration(M)){const Be=!!Oe.getValue(M);Ae={...Ae,scrollByPage:Be}}if(be.affectsConfiguration(O)){const Be=!!Oe.getValue(O);Ae={...Ae,smoothScrolling:Be}}if(be.affectsConfiguration(B)){const Be=Oe.getValue(B);Ae={...Ae,mouseWheelScrollSensitivity:Be}}if(be.affectsConfiguration(W)){const Be=Oe.getValue(W);Ae={...Ae,fastScrollSensitivity:Be}}Object.keys(Ae).length>0&&this.updateOptions(Ae)})),this.navigator=new de(this,{configurationService:Oe,..._e}),this.disposables.add(this.navigator)}updateOptions(ce){super.updateOptions(ce),ce.overrideStyles!==void 0&&this.updateStyles(ce.overrideStyles),ce.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!ce.multipleSelectionSupport)}updateStyles(ce){this.style(ce?(0,l.getListStyles)(ce):l.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchTable=X,e.WorkbenchTable=X=De([he(6,o.IContextKeyService),he(7,e.IListService),he(8,i.IConfigurationService),he(9,c.IInstantiationService)],X);class Y extends a.Disposable{constructor(ce,fe){var ve;super(),this.widget=ce,this._onDidOpen=this._register(new b.Emitter),this.onDidOpen=this._onDidOpen.event,this._register(b.Event.filter(this.widget.onDidChangeSelection,Ce=>(0,L.isKeyboardEvent)(Ce.browserEvent))(Ce=>this.onSelectionFromKeyboard(Ce))),this._register(this.widget.onPointer(Ce=>this.onPointer(Ce.element,Ce.browserEvent))),this._register(this.widget.onMouseDblClick(Ce=>this.onMouseDblClick(Ce.element,Ce.browserEvent))),typeof fe?.openOnSingleClick!="boolean"&&fe?.configurationService?(this.openOnSingleClick=fe?.configurationService.getValue(E)!=="doubleClick",this._register(fe?.configurationService.onDidChangeConfiguration(Ce=>{Ce.affectsConfiguration(E)&&(this.openOnSingleClick=fe?.configurationService.getValue(E)!=="doubleClick")}))):this.openOnSingleClick=(ve=fe?.openOnSingleClick)!==null&&ve!==void 0?ve:!0}onSelectionFromKeyboard(ce){if(ce.elements.length!==1)return;const fe=ce.browserEvent,ve=typeof fe.preserveFocus=="boolean"?fe.preserveFocus:!0,Ce=typeof fe.pinned=="boolean"?fe.pinned:!ve;this._open(this.getSelectedElement(),ve,Ce,!1,ce.browserEvent)}onPointer(ce,fe){if(!this.openOnSingleClick||fe.detail===2)return;const Ce=fe.button===1,Se=!0,_e=Ce,Ie=fe.ctrlKey||fe.metaKey||fe.altKey;this._open(ce,Se,_e,Ie,fe)}onMouseDblClick(ce,fe){if(!fe)return;const ve=fe.target;if(ve.classList.contains("monaco-tl-twistie")||ve.classList.contains("monaco-icon-label")&&ve.classList.contains("folder-icon")&&fe.offsetX<16)return;const Se=!1,_e=!0,Ie=fe.ctrlKey||fe.metaKey||fe.altKey;this._open(ce,Se,_e,Ie,fe)}_open(ce,fe,ve,Ce,Se){ce&&this._onDidOpen.fire({editorOptions:{preserveFocus:fe,pinned:ve,revealIfVisible:!0},sideBySide:Ce,element:ce,browserEvent:Se})}}class le extends Y{constructor(ce,fe){super(ce,fe),this.widget=ce}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class de extends Y{constructor(ce,fe){super(ce,fe)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class ge extends Y{constructor(ce,fe){super(ce,fe)}getSelectedElement(){var ce;return(ce=this.widget.getSelection()[0])!==null&&ce!==void 0?ce:void 0}}function pe(ue){let ce=!1;return fe=>{if(fe.toKeyCodeChord().isModifierKey())return!1;if(ce)return ce=!1,!1;const ve=ue.softDispatch(fe,fe.target);return ve.kind===1?(ce=!0,!1):(ce=!1,ve.kind===0)}}let Q=class extends v.ObjectTree{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe){const{options:xe,getTypeNavigationMode:We,disposable:ye}=_e.invokeFunction($,Se);super(ce,fe,ve,Ce,xe),this.disposables.add(ye),this.internals=new oe(this,Se,We,Se.overrideStyles,Ie,Ne,Oe),this.disposables.add(this.internals)}updateOptions(ce){super.updateOptions(ce),this.internals.updateOptions(ce)}};e.WorkbenchObjectTree=Q,e.WorkbenchObjectTree=Q=De([he(5,c.IInstantiationService),he(6,o.IContextKeyService),he(7,e.IListService),he(8,i.IConfigurationService)],Q);let U=class extends v.CompressibleObjectTree{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe){const{options:xe,getTypeNavigationMode:We,disposable:ye}=_e.invokeFunction($,Se);super(ce,fe,ve,Ce,xe),this.disposables.add(ye),this.internals=new oe(this,Se,We,Se.overrideStyles,Ie,Ne,Oe),this.disposables.add(this.internals)}updateOptions(ce={}){super.updateOptions(ce),ce.overrideStyles&&this.internals.updateStyleOverrides(ce.overrideStyles),this.internals.updateOptions(ce)}};e.WorkbenchCompressibleObjectTree=U,e.WorkbenchCompressibleObjectTree=U=De([he(5,c.IInstantiationService),he(6,o.IContextKeyService),he(7,e.IListService),he(8,i.IConfigurationService)],U);let Z=class extends w.DataTree{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe){const{options:We,getTypeNavigationMode:ye,disposable:Me}=Ie.invokeFunction($,_e);super(ce,fe,ve,Ce,Se,We),this.disposables.add(Me),this.internals=new oe(this,_e,ye,_e.overrideStyles,Ne,Oe,xe),this.disposables.add(this.internals)}updateOptions(ce={}){super.updateOptions(ce),ce.overrideStyles!==void 0&&this.internals.updateStyleOverrides(ce.overrideStyles),this.internals.updateOptions(ce)}};e.WorkbenchDataTree=Z,e.WorkbenchDataTree=Z=De([he(6,c.IInstantiationService),he(7,o.IContextKeyService),he(8,e.IListService),he(9,i.IConfigurationService)],Z);let H=class extends p.AsyncDataTree{get onDidOpen(){return this.internals.onDidOpen}constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe){const{options:We,getTypeNavigationMode:ye,disposable:Me}=Ie.invokeFunction($,_e);super(ce,fe,ve,Ce,Se,We),this.disposables.add(Me),this.internals=new oe(this,_e,ye,_e.overrideStyles,Ne,Oe,xe),this.disposables.add(this.internals)}updateOptions(ce={}){super.updateOptions(ce),ce.overrideStyles&&this.internals.updateStyleOverrides(ce.overrideStyles),this.internals.updateOptions(ce)}};e.WorkbenchAsyncDataTree=H,e.WorkbenchAsyncDataTree=H=De([he(6,c.IInstantiationService),he(7,o.IContextKeyService),he(8,e.IListService),he(9,i.IConfigurationService)],H);let q=class extends p.CompressibleAsyncDataTree{constructor(ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe,We){const{options:ye,getTypeNavigationMode:Me,disposable:me}=Ne.invokeFunction($,Ie);super(ce,fe,ve,Ce,Se,_e,ye),this.disposables.add(me),this.internals=new oe(this,Ie,Me,Ie.overrideStyles,Oe,xe,We),this.disposables.add(this.internals)}updateOptions(ce){super.updateOptions(ce),this.internals.updateOptions(ce)}};e.WorkbenchCompressibleAsyncDataTree=q,e.WorkbenchCompressibleAsyncDataTree=q=De([he(7,c.IInstantiationService),he(8,o.IContextKeyService),he(9,e.IListService),he(10,i.IConfigurationService)],q);function te(ue){const ce=ue.getValue(T);if(ce==="highlight")return S.TreeFindMode.Highlight;if(ce==="filter")return S.TreeFindMode.Filter;const fe=ue.getValue(R);if(fe==="simple"||fe==="highlight")return S.TreeFindMode.Highlight;if(fe==="filter")return S.TreeFindMode.Filter}function G(ue){const ce=ue.getValue(N);if(ce==="fuzzy")return S.TreeFindMatchType.Fuzzy;if(ce==="contiguous")return S.TreeFindMatchType.Contiguous}function $(ue,ce){var fe;const ve=ue.get(i.IConfigurationService),Ce=ue.get(m.IContextViewService),Se=ue.get(o.IContextKeyService),_e=ue.get(c.IInstantiationService),Ie=()=>{const Me=Se.getContextKeyValue(h);if(Me==="automatic")return y.TypeNavigationMode.Automatic;if(Me==="trigger"||Se.getContextKeyValue(u)===!1)return y.TypeNavigationMode.Trigger;const be=ve.getValue(A);if(be==="automatic")return y.TypeNavigationMode.Automatic;if(be==="trigger")return y.TypeNavigationMode.Trigger},Ne=ce.horizontalScrolling!==void 0?ce.horizontalScrolling:!!ve.getValue(I),[Oe,xe]=_e.invokeFunction(re,ce),We=ce.paddingBottom,ye=ce.renderIndentGuides!==void 0?ce.renderIndentGuides:ve.getValue(F);return{getTypeNavigationMode:Ie,disposable:xe,options:{keyboardSupport:!1,...Oe,indent:typeof ve.getValue(P)=="number"?ve.getValue(P):void 0,renderIndentGuides:ye,smoothScrolling:!!ve.getValue(O),defaultFindMode:te(ve),defaultFindMatchType:G(ve),horizontalScrolling:Ne,scrollByPage:!!ve.getValue(M),paddingBottom:We,hideTwistiesOfChildlessElements:ce.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(fe=ce.expandOnlyOnTwistieClick)!==null&&fe!==void 0?fe:ve.getValue(V)==="doubleClick",contextViewProvider:Ce,findWidgetStyles:l.defaultFindWidgetStyles,enableStickyScroll:!!ve.getValue(z),stickyScrollMaxItemCount:Number(ve.getValue(K))}}}let oe=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(ce,fe,ve,Ce,Se,_e,Ie){var Ne;this.tree=ce,this.disposables=[],this.contextKeyService=f(Se,ce),this.disposables.push(C(this.contextKeyService,ce)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(fe.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!fe.selectionNavigation),this.listSupportFindWidget=e.WorkbenchListSupportsFind.bindTo(this.contextKeyService),this.listSupportFindWidget.set((Ne=fe.findWidgetEnabled)!==null&&Ne!==void 0?Ne:!0),this.hasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.treeElementCanCollapse=e.WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService),this.treeElementHasParent=e.WorkbenchTreeElementHasParent.bindTo(this.contextKeyService),this.treeElementCanExpand=e.WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService),this.treeElementHasChild=e.WorkbenchTreeElementHasChild.bindTo(this.contextKeyService),this.treeFindOpen=e.WorkbenchTreeFindOpen.bindTo(this.contextKeyService),this.treeStickyScrollFocused=e.WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=j(Ie),this.updateStyleOverrides(Ce);const xe=()=>{const ye=ce.getFocus()[0];if(!ye)return;const Me=ce.getNode(ye);this.treeElementCanCollapse.set(Me.collapsible&&!Me.collapsed),this.treeElementHasParent.set(!!ce.getParentElement(ye)),this.treeElementCanExpand.set(Me.collapsible&&Me.collapsed),this.treeElementHasChild.set(!!ce.getFirstElementChild(ye))},We=new Set;We.add(h),We.add(u),this.disposables.push(this.contextKeyService,_e.register(ce),ce.onDidChangeSelection(()=>{const ye=ce.getSelection(),Me=ce.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(ye.length>0||Me.length>0),this.hasMultiSelection.set(ye.length>1),this.hasDoubleSelection.set(ye.length===2)})}),ce.onDidChangeFocus(()=>{const ye=ce.getSelection(),Me=ce.getFocus();this.hasSelectionOrFocus.set(ye.length>0||Me.length>0),xe()}),ce.onDidChangeCollapseState(xe),ce.onDidChangeModel(xe),ce.onDidChangeFindOpenState(ye=>this.treeFindOpen.set(ye)),ce.onDidChangeStickyScrollFocused(ye=>this.treeStickyScrollFocused.set(ye)),Ie.onDidChangeConfiguration(ye=>{let Me={};if(ye.affectsConfiguration(_)&&(this._useAltAsMultipleSelectionModifier=j(Ie)),ye.affectsConfiguration(P)){const me=Ie.getValue(P);Me={...Me,indent:me}}if(ye.affectsConfiguration(F)&&fe.renderIndentGuides===void 0){const me=Ie.getValue(F);Me={...Me,renderIndentGuides:me}}if(ye.affectsConfiguration(O)){const me=!!Ie.getValue(O);Me={...Me,smoothScrolling:me}}if(ye.affectsConfiguration(T)||ye.affectsConfiguration(R)){const me=te(Ie);Me={...Me,defaultFindMode:me}}if(ye.affectsConfiguration(A)||ye.affectsConfiguration(R)){const me=ve();Me={...Me,typeNavigationMode:me}}if(ye.affectsConfiguration(N)){const me=G(Ie);Me={...Me,defaultFindMatchType:me}}if(ye.affectsConfiguration(I)&&fe.horizontalScrolling===void 0){const me=!!Ie.getValue(I);Me={...Me,horizontalScrolling:me}}if(ye.affectsConfiguration(M)){const me=!!Ie.getValue(M);Me={...Me,scrollByPage:me}}if(ye.affectsConfiguration(V)&&fe.expandOnlyOnTwistieClick===void 0&&(Me={...Me,expandOnlyOnTwistieClick:Ie.getValue(V)==="doubleClick"}),ye.affectsConfiguration(z)){const me=Ie.getValue(z);Me={...Me,enableStickyScroll:me}}if(ye.affectsConfiguration(K)){const me=Math.max(1,Ie.getValue(K));Me={...Me,stickyScrollMaxItemCount:me}}if(ye.affectsConfiguration(B)){const me=Ie.getValue(B);Me={...Me,mouseWheelScrollSensitivity:me}}if(ye.affectsConfiguration(W)){const me=Ie.getValue(W);Me={...Me,fastScrollSensitivity:me}}Object.keys(Me).length>0&&ce.updateOptions(Me)}),this.contextKeyService.onDidChangeContext(ye=>{ye.affectsSome(We)&&ce.updateOptions({typeNavigationMode:ve()})})),this.navigator=new ge(ce,{configurationService:Ie,...fe}),this.disposables.push(this.navigator)}updateOptions(ce){ce.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!ce.multipleSelectionSupport)}updateStyleOverrides(ce){this.tree.style(ce?(0,l.getListStyles)(ce):l.defaultListStyles)}dispose(){this.disposables=(0,a.dispose)(this.disposables)}};oe=De([he(4,o.IContextKeyService),he(5,e.IListService),he(6,i.IConfigurationService)],oe),s.Registry.as(t.Extensions.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,n.localize)(0,null),type:"object",properties:{[_]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,n.localize)(1,null),(0,n.localize)(2,null)],default:"ctrlCmd",description:(0,n.localize)(3,null)},[E]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,n.localize)(4,null)},[I]:{type:"boolean",default:!1,description:(0,n.localize)(5,null)},[M]:{type:"boolean",default:!1,description:(0,n.localize)(6,null)},[P]:{type:"number",default:8,minimum:4,maximum:40,description:(0,n.localize)(7,null)},[F]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,n.localize)(8,null)},[O]:{type:"boolean",default:!1,description:(0,n.localize)(9,null)},[B]:{type:"number",default:1,markdownDescription:(0,n.localize)(10,null)},[W]:{type:"number",default:5,markdownDescription:(0,n.localize)(11,null)},[T]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,n.localize)(12,null),(0,n.localize)(13,null)],default:"highlight",description:(0,n.localize)(14,null)},[R]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,n.localize)(15,null),(0,n.localize)(16,null),(0,n.localize)(17,null)],default:"highlight",description:(0,n.localize)(18,null),deprecated:!0,deprecationMessage:(0,n.localize)(19,null)},[N]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[(0,n.localize)(20,null),(0,n.localize)(21,null)],default:"fuzzy",description:(0,n.localize)(22,null)},[V]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,n.localize)(23,null)},[z]:{type:"boolean",default:!0,description:(0,n.localize)(24,null)},[K]:{type:"number",minimum:1,default:7,markdownDescription:(0,n.localize)(25,null)},[A]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:(0,n.localize)(26,null)}}})}),define(ne[82],se([1,0,15,27,29,7,20,22,763,250,37]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.spinningLoading=e.syncing=e.gotoNextLocation=e.gotoPreviousLocation=e.widgetClose=e.iconsSchemaId=e.getIconRegistry=e.registerIcon=e.IconFontDefinition=e.IconContribution=e.Extensions=void 0,e.Extensions={IconContribution:"base.contributions.icons"};var a;(function(s){function l(r,h){let u=r.defaults;for(;y.ThemeIcon.isThemeIcon(u);){const f=t.getIcon(u.id);if(!f)return;u=f.defaults}return u}s.getDefinition=l})(a||(e.IconContribution=a={}));var n;(function(s){function l(h){return{weight:h.weight,style:h.style,src:h.src.map(u=>({format:u.format,location:u.location.toString()}))}}s.toJSONObject=l;function r(h){const u=f=>(0,S.isString)(f)?f:void 0;if(h&&Array.isArray(h.src)&&h.src.every(f=>(0,S.isString)(f.format)&&(0,S.isString)(f.location)))return{weight:u(h.weight),style:u(h.style),src:h.src.map(f=>({format:f.format,location:p.URI.parse(f.location)}))}}s.fromJSONObject=r})(n||(e.IconFontDefinition=n={}));class i{constructor(){this._onDidChange=new D.Emitter,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,w.localize)(0,null)},fontCharacter:{type:"string",description:(0,w.localize)(1,null)}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${y.ThemeIcon.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(l,r,h,u){const f=this.iconsById[l];if(f){if(h&&!f.description){f.description=h,this.iconSchema.properties[l].markdownDescription=`${h} $(${l})`;const E=this.iconReferenceSchema.enum.indexOf(l);E!==-1&&(this.iconReferenceSchema.enumDescriptions[E]=h),this._onDidChange.fire()}return f}const C={id:l,description:h,defaults:r,deprecationMessage:u};this.iconsById[l]=C;const _={$ref:"#/definitions/icons"};return u&&(_.deprecationMessage=u),h&&(_.markdownDescription=`${h}: $(${l})`),this.iconSchema.properties[l]=_,this.iconReferenceSchema.enum.push(l),this.iconReferenceSchema.enumDescriptions.push(h||""),this._onDidChange.fire(),{id:l}}getIcons(){return Object.keys(this.iconsById).map(l=>this.iconsById[l])}getIcon(l){return this.iconsById[l]}getIconSchema(){return this.iconSchema}toString(){const l=(f,C)=>f.id.localeCompare(C.id),r=f=>{for(;y.ThemeIcon.isThemeIcon(f.defaults);)f=this.iconsById[f.defaults.id];return`codicon codicon-${f?f.id:""}`},h=[];h.push("| preview | identifier | default codicon ID | description"),h.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const u=Object.keys(this.iconsById).map(f=>this.iconsById[f]);for(const f of u.filter(C=>!!C.description).sort(l))h.push(`||${f.id}|${y.ThemeIcon.isThemeIcon(f.defaults)?f.defaults.id:f.id}|${f.description||""}|`);h.push("| preview | identifier "),h.push("| ----------- | --------------------------------- |");for(const f of u.filter(C=>!y.ThemeIcon.isThemeIcon(C.defaults)).sort(l))h.push(`||${f.id}|`);return h.join(` +`)}}const t=new i;b.Registry.add(e.Extensions.IconContribution,t);function o(s,l,r,h){return t.registerIcon(s,l,r,h)}e.registerIcon=o;function g(){return t}e.getIconRegistry=g;function m(){const s=(0,k.getCodiconFontCharacters)();for(const l in s){const r="\\"+s[l].toString(16);t.registerIcon(l,{fontCharacter:r})}}m(),e.iconsSchemaId="vscode://schemas/icons";const c=b.Registry.as(v.Extensions.JSONContribution);c.registerSchema(e.iconsSchemaId,t.getIconSchema());const d=new L.RunOnceScheduler(()=>c.notifySchemaChanged(e.iconsSchemaId),200);t.onDidChange(()=>{d.isScheduled()||d.schedule()}),e.widgetClose=o("widget-close",k.Codicon.close,(0,w.localize)(2,null)),e.gotoPreviousLocation=o("goto-previous-location",k.Codicon.arrowUp,(0,w.localize)(3,null)),e.gotoNextLocation=o("goto-next-location",k.Codicon.arrowDown,(0,w.localize)(4,null)),e.syncing=y.ThemeIcon.modify(k.Codicon.sync,"spin"),e.spinningLoading=y.ThemeIcon.modify(k.Codicon.loading,"spin")}),define(ne[851],se([1,0,6,95,79,78,42,13,27,2,32,29,74,87,36,64,75,9,5,115,43,97,122,86,632,124,8,82,454]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerModelFromEditors=e.AccessibleDiffViewer=void 0;const E=(0,_.registerIcon)("diff-review-insert",w.Codicon.add,(0,u.localize)(0,null)),I=(0,_.registerIcon)("diff-review-remove",w.Codicon.remove,(0,u.localize)(1,null)),T=(0,_.registerIcon)("diff-review-close",w.Codicon.close,(0,u.localize)(2,null));let A=class extends v.Disposable{constructor(x,re,ie,J,X,Y,le,de,ge){super(),this._parentNode=x,this._visible=re,this._setVisible=ie,this._canClose=J,this._width=X,this._height=Y,this._diffs=le,this._models=de,this._instantiationService=ge,this._state=(0,b.derivedWithStore)(this,(pe,Q)=>{const U=this._visible.read(pe);if(this._parentNode.style.visibility=U?"visible":"hidden",!U)return null;const Z=Q.add(this._instantiationService.createInstance(R,this._diffs,this._models,this._setVisible,this._canClose)),H=Q.add(this._instantiationService.createInstance(z,this._parentNode,Z,this._width,this._height,this._models));return{model:Z,view:H}}).recomputeInitiallyAndOnChange(this._store)}next(){(0,b.transaction)(x=>{const re=this._visible.get();this._setVisible(!0,x),re&&this._state.get().model.nextGroup(x)})}prev(){(0,b.transaction)(x=>{this._setVisible(!0,x),this._state.get().model.previousGroup(x)})}close(){(0,b.transaction)(x=>{this._setVisible(!1,x)})}};e.AccessibleDiffViewer=A,A._ttPolicy=(0,k.createTrustedTypesPolicy)("diffReview",{createHTML:j=>j}),e.AccessibleDiffViewer=A=De([he(8,C.IInstantiationService)],A);let R=class extends v.Disposable{constructor(x,re,ie,J,X){super(),this._diffs=x,this._models=re,this._setVisible=ie,this.canClose=J,this._accessibilitySignalService=X,this._groups=(0,b.observableValue)(this,[]),this._currentGroupIdx=(0,b.observableValue)(this,0),this._currentElementIdx=(0,b.observableValue)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((Y,le)=>this._groups.read(le)[Y]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((Y,le)=>{var de;return(de=this.currentGroup.read(le))===null||de===void 0?void 0:de.lines[Y]}),this._register((0,b.autorun)(Y=>{const le=this._diffs.read(Y);if(!le){this._groups.set([],void 0);return}const de=N(le,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,b.transaction)(ge=>{const pe=this._models.getModifiedPosition();if(pe){const Q=de.findIndex(U=>pe?.lineNumber{const le=this.currentElement.read(Y);le?.type===P.Deleted?this._accessibilitySignalService.playSignal(f.AccessibilitySignal.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):le?.type===P.Added&&this._accessibilitySignalService.playSignal(f.AccessibilitySignal.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register((0,b.autorun)(Y=>{var le;const de=this.currentElement.read(Y);if(de&&de.type!==P.Header){const ge=(le=de.modifiedLineNumber)!==null&&le!==void 0?le:de.diff.modified.startLineNumber;this._models.modifiedSetSelection(c.Range.fromPositions(new m.Position(ge,1)))}}))}_goToGroupDelta(x,re){const ie=this.groups.get();!ie||ie.length<=1||(0,b.subtransaction)(re,J=>{this._currentGroupIdx.set(g.OffsetRange.ofLength(ie.length).clipCyclic(this._currentGroupIdx.get()+x),J),this._currentElementIdx.set(0,J)})}nextGroup(x){this._goToGroupDelta(1,x)}previousGroup(x){this._goToGroupDelta(-1,x)}_goToLineDelta(x){const re=this.currentGroup.get();!re||re.lines.length<=1||(0,b.transaction)(ie=>{this._currentElementIdx.set(g.OffsetRange.ofLength(re.lines.length).clip(this._currentElementIdx.get()+x),ie)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(x){const re=this.currentGroup.get();if(!re)return;const ie=re.lines.indexOf(x);ie!==-1&&(0,b.transaction)(J=>{this._currentElementIdx.set(ie,J)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const x=this.currentElement.get();x&&(x.type===P.Deleted?this._models.originalReveal(c.Range.fromPositions(new m.Position(x.originalLineNumber,1))):this._models.modifiedReveal(x.type!==P.Header?c.Range.fromPositions(new m.Position(x.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};R=De([he(4,f.IAccessibilitySignalService)],R);const M=3;function N(j,x,re){const ie=[];for(const J of(0,p.groupAdjacentBy)(j,(X,Y)=>Y.modified.startLineNumber-X.modified.endLineNumberExclusive<2*M)){const X=[];X.push(new O);const Y=new o.LineRange(Math.max(1,J[0].original.startLineNumber-M),Math.min(J[J.length-1].original.endLineNumberExclusive+M,x+1)),le=new o.LineRange(Math.max(1,J[0].modified.startLineNumber-M),Math.min(J[J.length-1].modified.endLineNumberExclusive+M,re+1));(0,p.forEachAdjacent)(J,(pe,Q)=>{const U=new o.LineRange(pe?pe.original.endLineNumberExclusive:Y.startLineNumber,Q?Q.original.startLineNumber:Y.endLineNumberExclusive),Z=new o.LineRange(pe?pe.modified.endLineNumberExclusive:le.startLineNumber,Q?Q.modified.startLineNumber:le.endLineNumberExclusive);U.forEach(H=>{X.push(new V(H,Z.startLineNumber+(H-U.startLineNumber)))}),Q&&(Q.original.forEach(H=>{X.push(new B(Q,H))}),Q.modified.forEach(H=>{X.push(new W(Q,H))}))});const de=J[0].modified.join(J[J.length-1].modified),ge=J[0].original.join(J[J.length-1].original);ie.push(new F(new d.LineRangeMapping(de,ge),X))}return ie}var P;(function(j){j[j.Header=0]="Header",j[j.Unchanged=1]="Unchanged",j[j.Deleted=2]="Deleted",j[j.Added=3]="Added"})(P||(P={}));class F{constructor(x,re){this.range=x,this.lines=re}}class O{constructor(){this.type=P.Header}}class B{constructor(x,re){this.diff=x,this.originalLineNumber=re,this.type=P.Deleted,this.modifiedLineNumber=void 0}}class W{constructor(x,re){this.diff=x,this.modifiedLineNumber=re,this.type=P.Added,this.originalLineNumber=void 0}}class V{constructor(x,re){this.originalLineNumber=x,this.modifiedLineNumber=re,this.type=P.Unchanged}}let z=class extends v.Disposable{constructor(x,re,ie,J,X,Y){super(),this._element=x,this._model=re,this._width=ie,this._height=J,this._models=X,this._languageService=Y,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const le=document.createElement("div");le.className="diff-review-actions",this._actionBar=this._register(new y.ActionBar(le)),this._register((0,b.autorun)(de=>{this._actionBar.clear(),this._model.canClose.read(de)&&this._actionBar.push(new S.Action("diffreview.close",(0,u.localize)(3,null),"close-diff-review "+a.ThemeIcon.asClassName(T),!0,async()=>re.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new D.DomScrollableElement(this._content,{})),(0,L.reset)(this.domNode,this._scrollbar.getDomNode(),le),this._register((0,b.autorun)(de=>{this._height.read(de),this._width.read(de),this._scrollbar.scanDomNode()})),this._register((0,v.toDisposable)(()=>{(0,L.reset)(this.domNode)})),this._register((0,i.applyStyle)(this.domNode,{width:this._width,height:this._height})),this._register((0,i.applyStyle)(this._content,{width:this._width,height:this._height})),this._register((0,b.autorunWithStore)((de,ge)=>{this._model.currentGroup.read(de),this._render(ge)})),this._register((0,L.addStandardDisposableListener)(this.domNode,"keydown",de=>{(de.equals(18)||de.equals(2066)||de.equals(530))&&(de.preventDefault(),this._model.goToNextLine()),(de.equals(16)||de.equals(2064)||de.equals(528))&&(de.preventDefault(),this._model.goToPreviousLine()),(de.equals(9)||de.equals(2057)||de.equals(521)||de.equals(1033))&&(de.preventDefault(),this._model.close()),(de.equals(10)||de.equals(3))&&(de.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(x){const re=this._models.getOriginalOptions(),ie=this._models.getModifiedOptions(),J=document.createElement("div");J.className="diff-review-table",J.setAttribute("role","list"),J.setAttribute("aria-label",(0,u.localize)(4,null)),(0,n.applyFontInfo)(J,ie.get(50)),(0,L.reset)(this._content,J);const X=this._models.getOriginalModel(),Y=this._models.getModifiedModel();if(!X||!Y)return;const le=X.getOptions(),de=Y.getOptions(),ge=ie.get(67),pe=this._model.currentGroup.get();for(const Q of pe?.lines||[]){if(!pe)break;let U;if(Q.type===P.Header){const H=document.createElement("div");H.className="diff-review-row",H.setAttribute("role","listitem");const q=pe.range,te=this._model.currentGroupIndex.get(),G=this._model.groups.get().length,$=ce=>ce===0?(0,u.localize)(5,null):ce===1?(0,u.localize)(6,null):(0,u.localize)(7,null,ce),oe=$(q.original.length),ae=$(q.modified.length);H.setAttribute("aria-label",(0,u.localize)(8,null,te+1,G,q.original.startLineNumber,oe,q.modified.startLineNumber,ae));const ue=document.createElement("div");ue.className="diff-review-cell diff-review-summary",ue.appendChild(document.createTextNode(`${te+1}/${G}: @@ -${q.original.startLineNumber},${q.original.length} +${q.modified.startLineNumber},${q.modified.length} @@`)),H.appendChild(ue),U=H}else U=this._createRow(Q,ge,this._width.get(),re,X,le,ie,Y,de);J.appendChild(U);const Z=(0,b.derived)(H=>this._model.currentElement.read(H)===Q);x.add((0,b.autorun)(H=>{const q=Z.read(H);U.tabIndex=q?0:-1,q&&U.focus()})),x.add((0,L.addDisposableListener)(U,"focus",()=>{this._model.goToLine(Q)}))}this._scrollbar.scanDomNode()}_createRow(x,re,ie,J,X,Y,le,de,ge){const pe=J.get(144),Q=pe.glyphMarginWidth+pe.lineNumbersWidth,U=le.get(144),Z=10+U.glyphMarginWidth+U.lineNumbersWidth;let H="diff-review-row",q="";const te="diff-review-spacer";let G=null;switch(x.type){case P.Added:H="diff-review-row line-insert",q=" char-insert",G=E;break;case P.Deleted:H="diff-review-row line-delete",q=" char-delete",G=I;break}const $=document.createElement("div");$.style.minWidth=ie+"px",$.className=H,$.setAttribute("role","listitem"),$.ariaLevel="";const oe=document.createElement("div");oe.className="diff-review-cell",oe.style.height=`${re}px`,$.appendChild(oe);const ae=document.createElement("span");ae.style.width=Q+"px",ae.style.minWidth=Q+"px",ae.className="diff-review-line-number"+q,x.originalLineNumber!==void 0?ae.appendChild(document.createTextNode(String(x.originalLineNumber))):ae.innerText="\xA0",oe.appendChild(ae);const ue=document.createElement("span");ue.style.width=Z+"px",ue.style.minWidth=Z+"px",ue.style.paddingRight="10px",ue.className="diff-review-line-number"+q,x.modifiedLineNumber!==void 0?ue.appendChild(document.createTextNode(String(x.modifiedLineNumber))):ue.innerText="\xA0",oe.appendChild(ue);const ce=document.createElement("span");if(ce.className=te,G){const Ce=document.createElement("span");Ce.className=a.ThemeIcon.asClassName(G),Ce.innerText="\xA0\xA0",ce.appendChild(Ce)}else ce.innerText="\xA0\xA0";oe.appendChild(ce);let fe;if(x.modifiedLineNumber!==void 0){let Ce=this._getLineHtml(de,le,ge.tabSize,x.modifiedLineNumber,this._languageService.languageIdCodec);A._ttPolicy&&(Ce=A._ttPolicy.createHTML(Ce)),oe.insertAdjacentHTML("beforeend",Ce),fe=de.getLineContent(x.modifiedLineNumber)}else{let Ce=this._getLineHtml(X,J,Y.tabSize,x.originalLineNumber,this._languageService.languageIdCodec);A._ttPolicy&&(Ce=A._ttPolicy.createHTML(Ce)),oe.insertAdjacentHTML("beforeend",Ce),fe=X.getLineContent(x.originalLineNumber)}fe.length===0&&(fe=(0,u.localize)(9,null));let ve="";switch(x.type){case P.Unchanged:x.originalLineNumber===x.modifiedLineNumber?ve=(0,u.localize)(10,null,fe,x.originalLineNumber):ve=(0,u.localize)(11,null,fe,x.originalLineNumber,x.modifiedLineNumber);break;case P.Added:ve=(0,u.localize)(12,null,fe,x.modifiedLineNumber);break;case P.Deleted:ve=(0,u.localize)(13,null,fe,x.originalLineNumber);break}return $.setAttribute("aria-label",ve),$}_getLineHtml(x,re,ie,J,X){const Y=x.getLineContent(J),le=re.get(50),de=l.LineTokens.createEmpty(Y,X),ge=h.ViewLineRenderingData.isBasicASCII(Y,x.mightContainNonBasicASCII()),pe=h.ViewLineRenderingData.containsRTL(Y,ge,x.mightContainRTL());return(0,r.renderViewLine2)(new r.RenderLineInput(le.isMonospace&&!re.get(33),le.canUseHalfwidthRightwardsArrow,Y,!1,ge,pe,0,de,[],ie,0,le.spaceWidth,le.middotWidth,le.wsmiddotWidth,re.get(117),re.get(99),re.get(94),re.get(51)!==t.EditorFontLigatures.OFF,null)).html}};z=De([he(5,s.ILanguageService)],z);class K{constructor(x){this.editors=x}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(x){this.editors.original.revealRange(x),this.editors.original.setSelection(x),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(x){x&&(this.editors.modified.revealRange(x),this.editors.modified.setSelection(x)),this.editors.modified.focus()}modifiedSetSelection(x){this.editors.modified.setSelection(x)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var x;return(x=this.editors.modified.getPosition())!==null&&x!==void 0?x:void 0}}e.AccessibleDiffViewerModelFromEditors=K}),define(ne[852],se([1,0,230,6,159,77,27,39,7,2,29,671,31,82,207]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerWidget=e.InsertButton=e.ColorPickerBody=e.ColorPickerHeader=void 0;const t=k.$;class o extends v.Disposable{constructor(f,C,_,E=!1){super(),this.model=C,this.showingStandaloneColorPicker=E,this._closeButton=null,this._domNode=t(".colorpicker-header"),k.append(f,this._domNode),this._pickedColorNode=k.append(this._domNode,t(".picked-color")),k.append(this._pickedColorNode,t("span.codicon.codicon-color-mode")),this._pickedColorPresentation=k.append(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const I=(0,a.localize)(0,null);this._pickedColorNode.setAttribute("title",I),this._originalColorNode=k.append(this._domNode,t(".original-color")),this._originalColorNode.style.backgroundColor=p.Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=_.getColorTheme().getColor(n.editorHoverBackground)||p.Color.white,this._register(_.onDidColorThemeChange(T=>{this.backgroundColor=T.getColor(n.editorHoverBackground)||p.Color.white})),this._register(k.addDisposableListener(this._pickedColorNode,k.EventType.CLICK,()=>this.model.selectNextColorPresentation())),this._register(k.addDisposableListener(this._originalColorNode,k.EventType.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(C.onDidChangeColor(this.onDidChangeColor,this)),this._register(C.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=p.Color.Format.CSS.format(C.color)||"",this._pickedColorNode.classList.toggle("light",C.color.rgba.a<.5?this.backgroundColor.isLighter():C.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new g(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(f){this._pickedColorNode.style.backgroundColor=p.Color.Format.CSS.format(f)||"",this._pickedColorNode.classList.toggle("light",f.rgba.a<.5?this.backgroundColor.isLighter():f.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}e.ColorPickerHeader=o;class g extends v.Disposable{constructor(f){super(),this._onClicked=this._register(new w.Emitter),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),k.append(f,this._button);const C=document.createElement("div");C.classList.add("close-button-inner-div"),k.append(this._button,C),k.append(C,t(".button"+b.ThemeIcon.asCSSSelector((0,i.registerIcon)("color-picker-close",S.Codicon.close,(0,a.localize)(1,null))))).classList.add("close-icon"),this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}}class m extends v.Disposable{constructor(f,C,_,E=!1){super(),this.model=C,this.pixelRatio=_,this._insertButton=null,this._domNode=t(".colorpicker-body"),k.append(f,this._domNode),this._saturationBox=new c(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new s(this._domNode,this.model,E),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new l(this._domNode,this.model,E),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),E&&(this._insertButton=this._register(new r(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:f,v:C}){const _=this.model.color.hsva;this.model.color=new p.Color(new p.HSVA(_.h,f,C,_.a))}onDidOpacityChange(f){const C=this.model.color.hsva;this.model.color=new p.Color(new p.HSVA(C.h,C.s,C.v,f))}onDidHueChange(f){const C=this.model.color.hsva,_=(1-f)*360;this.model.color=new p.Color(new p.HSVA(_===360?0:_,C.s,C.v,C.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}e.ColorPickerBody=m;class c extends v.Disposable{constructor(f,C,_){super(),this.model=C,this.pixelRatio=_,this._onDidChange=new w.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new w.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._domNode=t(".saturation-wrap"),k.append(f,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",k.append(this._domNode,this._canvas),this.selection=t(".saturation-selection"),k.append(this._domNode,this.selection),this.layout(),this._register(k.addDisposableListener(this._domNode,k.EventType.POINTER_DOWN,E=>this.onPointerDown(E))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;this.monitor=this._register(new y.GlobalPointerMoveMonitor);const C=k.getDomNodePagePosition(this._domNode);f.target!==this.selection&&this.onDidChangePosition(f.offsetX,f.offsetY),this.monitor.startMonitoring(f.target,f.pointerId,f.buttons,E=>this.onDidChangePosition(E.pageX-C.left,E.pageY-C.top),()=>null);const _=k.addDisposableListener(f.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),_.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(f,C){const _=Math.max(0,Math.min(1,f/this.width)),E=Math.max(0,Math.min(1,1-C/this.height));this.paintSelection(_,E),this._onDidChange.fire({s:_,v:E})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const f=this.model.color.hsva;this.paintSelection(f.s,f.v)}paint(){const f=this.model.color.hsva,C=new p.Color(new p.HSVA(f.h,1,1,1)),_=this._canvas.getContext("2d"),E=_.createLinearGradient(0,0,this._canvas.width,0);E.addColorStop(0,"rgba(255, 255, 255, 1)"),E.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),E.addColorStop(1,"rgba(255, 255, 255, 0)");const I=_.createLinearGradient(0,0,0,this._canvas.height);I.addColorStop(0,"rgba(0, 0, 0, 0)"),I.addColorStop(1,"rgba(0, 0, 0, 1)"),_.rect(0,0,this._canvas.width,this._canvas.height),_.fillStyle=p.Color.Format.CSS.format(C),_.fill(),_.fillStyle=E,_.fill(),_.fillStyle=I,_.fill()}paintSelection(f,C){this.selection.style.left=`${f*this.width}px`,this.selection.style.top=`${this.height-C*this.height}px`}onDidChangeColor(f){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const C=f.hsva;this.paintSelection(C.s,C.v)}}class d extends v.Disposable{constructor(f,C,_=!1){super(),this.model=C,this._onDidChange=new w.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new w.Emitter,this.onColorFlushed=this._onColorFlushed.event,_?(this.domNode=k.append(f,t(".standalone-strip")),this.overlay=k.append(this.domNode,t(".standalone-overlay"))):(this.domNode=k.append(f,t(".strip")),this.overlay=k.append(this.domNode,t(".overlay"))),this.slider=k.append(this.domNode,t(".slider")),this.slider.style.top="0px",this._register(k.addDisposableListener(this.domNode,k.EventType.POINTER_DOWN,E=>this.onPointerDown(E))),this._register(C.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const f=this.getValue(this.model.color);this.updateSliderPosition(f)}onDidChangeColor(f){const C=this.getValue(f);this.updateSliderPosition(C)}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;const C=this._register(new y.GlobalPointerMoveMonitor),_=k.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),f.target!==this.slider&&this.onDidChangeTop(f.offsetY),C.startMonitoring(f.target,f.pointerId,f.buttons,I=>this.onDidChangeTop(I.pageY-_.top),()=>null);const E=k.addDisposableListener(f.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),E.dispose(),C.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(f){const C=Math.max(0,Math.min(1,1-f/this.height));this.updateSliderPosition(C),this._onDidChange.fire(C)}updateSliderPosition(f){this.slider.style.top=`${(1-f)*this.height}px`}}class s extends d{constructor(f,C,_=!1){super(f,C,_),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(f){super.onDidChangeColor(f);const{r:C,g:_,b:E}=f.rgba,I=new p.Color(new p.RGBA(C,_,E,1)),T=new p.Color(new p.RGBA(C,_,E,0));this.overlay.style.background=`linear-gradient(to bottom, ${I} 0%, ${T} 100%)`}getValue(f){return f.hsva.a}}class l extends d{constructor(f,C,_=!1){super(f,C,_),this.domNode.classList.add("hue-strip")}getValue(f){return 1-f.hsva.h/360}}class r extends v.Disposable{constructor(f){super(),this._onClicked=this._register(new w.Emitter),this.onClicked=this._onClicked.event,this._button=k.append(f,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}e.InsertButton=r;class h extends D.Widget{constructor(f,C,_,E,I=!1){super(),this.model=C,this.pixelRatio=_,this._register(L.PixelRatio.getInstance(k.getWindow(f)).onDidChange(()=>this.layout()));const T=t(".colorpicker-widget");f.appendChild(T),this.header=this._register(new o(T,this.model,E,I)),this.body=this._register(new m(T,this.model,this.pixelRatio,I))}layout(){this.body.layout()}}e.ColorPickerWidget=h}),define(ne[853],se([1,0,6,44,78,27,7,2,11,20,43,108,247,715,14,57,31,82,29,482]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";var d;Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsWidget=void 0;const s=L.$,l=(0,m.registerIcon)("parameter-hints-next",D.Codicon.chevronDown,i.localize(0,null)),r=(0,m.registerIcon)("parameter-hints-previous",D.Codicon.chevronUp,i.localize(1,null));let h=d=class extends p.Disposable{constructor(f,C,_,E,I){super(),this.editor=f,this.model=C,this.renderDisposeables=this._register(new p.DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new a.MarkdownRenderer({editor:f},I,E)),this.keyVisible=n.Context.Visible.bindTo(_),this.keyMultipleSignatures=n.Context.MultipleSignatures.bindTo(_)}createParameterHintDOMNodes(){const f=s(".editor-widget.parameter-hints-widget"),C=L.append(f,s(".phwrapper"));C.tabIndex=-1;const _=L.append(C,s(".controls")),E=L.append(_,s(".button"+c.ThemeIcon.asCSSSelector(r))),I=L.append(_,s(".overloads")),T=L.append(_,s(".button"+c.ThemeIcon.asCSSSelector(l)));this._register(L.addDisposableListener(E,"click",F=>{L.EventHelper.stop(F),this.previous()})),this._register(L.addDisposableListener(T,"click",F=>{L.EventHelper.stop(F),this.next()}));const A=s(".body"),R=new y.DomScrollableElement(A,{alwaysConsumeMouseWheel:!0});this._register(R),C.appendChild(R.getDomNode());const M=L.append(A,s(".signature")),N=L.append(A,s(".docs"));f.style.userSelect="text",this.domNodes={element:f,signature:M,overloads:I,docs:N,scrollbar:R},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(F=>{this.visible&&this.editor.layoutContentWidget(this)}));const P=()=>{if(!this.domNodes)return;const F=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${F.fontSize}px`,this.domNodes.element.style.lineHeight=`${F.lineHeight/F.fontSize}`};P(),this._register(S.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),F=>F.filter(O=>O.hasChanged(50)))(P)),this._register(this.editor.onDidLayoutChange(F=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var f;(f=this.domNodes)===null||f===void 0||f.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var f;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(f=this.domNodes)===null||f===void 0||f.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(f){var C;if(this.renderDisposeables.clear(),!this.domNodes)return;const _=f.signatures.length>1;this.domNodes.element.classList.toggle("multiple",_),this.keyMultipleSignatures.set(_),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const E=f.signatures[f.activeSignature];if(!E)return;const I=L.append(this.domNodes.signature,s(".code")),T=this.editor.getOption(50);I.style.fontSize=`${T.fontSize}px`,I.style.fontFamily=T.fontFamily;const A=E.parameters.length>0,R=(C=E.activeParameter)!==null&&C!==void 0?C:f.activeParameter;if(A)this.renderParameters(I,E,R);else{const P=L.append(I,s("span"));P.textContent=E.label}const M=E.parameters[R];if(M?.documentation){const P=s("span.documentation");if(typeof M.documentation=="string")P.textContent=M.documentation;else{const F=this.renderMarkdownDocs(M.documentation);P.appendChild(F.element)}L.append(this.domNodes.docs,s("p",{},P))}if(E.documentation!==void 0)if(typeof E.documentation=="string")L.append(this.domNodes.docs,s("p",{},E.documentation));else{const P=this.renderMarkdownDocs(E.documentation);L.append(this.domNodes.docs,P.element)}const N=this.hasDocs(E,M);if(this.domNodes.signature.classList.toggle("has-docs",N),this.domNodes.docs.classList.toggle("empty",!N),this.domNodes.overloads.textContent=String(f.activeSignature+1).padStart(f.signatures.length.toString().length,"0")+"/"+f.signatures.length,M){let P="";const F=E.parameters[R];Array.isArray(F.label)?P=E.label.substring(F.label[0],F.label[1]):P=F.label,F.documentation&&(P+=typeof F.documentation=="string"?`, ${F.documentation}`:`, ${F.documentation.value}`),E.documentation&&(P+=typeof E.documentation=="string"?`, ${E.documentation}`:`, ${E.documentation.value}`),this.announcedLabel!==P&&(k.alert(i.localize(2,null,P)),this.announcedLabel=P)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(f){const C=this.renderDisposeables.add(this.markdownRenderer.render(f,{asyncRenderCallback:()=>{var _;(_=this.domNodes)===null||_===void 0||_.scrollbar.scanDomNode()}}));return C.element.classList.add("markdown-docs"),C}hasDocs(f,C){return!!(C&&typeof C.documentation=="string"&&(0,v.assertIsDefined)(C.documentation).length>0||C&&typeof C.documentation=="object"&&(0,v.assertIsDefined)(C.documentation).value.length>0||f.documentation&&typeof f.documentation=="string"&&(0,v.assertIsDefined)(f.documentation).length>0||f.documentation&&typeof f.documentation=="object"&&(0,v.assertIsDefined)(f.documentation.value).length>0)}renderParameters(f,C,_){const[E,I]=this.getParameterLabelOffsets(C,_),T=document.createElement("span");T.textContent=C.label.substring(0,E);const A=document.createElement("span");A.textContent=C.label.substring(E,I),A.className="parameter active";const R=document.createElement("span");R.textContent=C.label.substring(I),L.append(f,T,A,R)}getParameterLabelOffsets(f,C){const _=f.parameters[C];if(_){if(Array.isArray(_.label))return _.label;if(_.label.length){const E=new RegExp(`(\\W|^)${(0,w.escapeRegExpCharacters)(_.label)}(?=\\W|$)`,"g");E.test(f.label);const I=E.lastIndex-_.label.length;return I>=0?[I,E.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return d.ID}updateMaxHeight(){if(!this.domNodes)return;const C=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=C;const _=this.domNodes.element.getElementsByClassName("phwrapper");_.length&&(_[0].style.maxHeight=C)}};e.ParameterHintsWidget=h,h.ID="editor.widget.parameterHintsWidget",e.ParameterHintsWidget=h=d=De([he(2,t.IContextKeyService),he(3,o.IOpenerService),he(4,b.ILanguageService)],h),(0,g.registerColor)("editorHoverWidget.highlightForeground",{dark:g.listHighlightForeground,light:g.listHighlightForeground,hcDark:g.listHighlightForeground,hcLight:g.listHighlightForeground},i.localize(3,null))}),define(ne[854],se([1,0,96,2,16,21,30,18,778,247,714,14,8,853]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";var t;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerParameterHintsAction=e.ParameterHintsController=void 0;let o=t=class extends k.Disposable{static get(s){return s.getContribution(t.ID)}constructor(s,l,r){super(),this.editor=s,this.model=this._register(new w.ParameterHintsModel(s,r.signatureHelpProvider)),this._register(this.model.onChangedHints(h=>{var u;h?(this.widget.value.show(),this.widget.value.render(h)):(u=this.widget.rawValue)===null||u===void 0||u.hide()})),this.widget=new L.Lazy(()=>this._register(l.createInstance(i.ParameterHintsWidget,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var s;(s=this.widget.rawValue)===null||s===void 0||s.previous()}next(){var s;(s=this.widget.rawValue)===null||s===void 0||s.next()}trigger(s){this.model.trigger(s,0)}};e.ParameterHintsController=o,o.ID="editor.controller.parameterHints",e.ParameterHintsController=o=t=De([he(1,n.IInstantiationService),he(2,p.ILanguageFeaturesService)],o);class g extends y.EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:b.localize(0,null),alias:"Trigger Parameter Hints",precondition:D.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:D.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(s,l){const r=o.get(l);r?.trigger({triggerKind:S.SignatureHelpTriggerKind.Invoke})}}e.TriggerParameterHintsAction=g,(0,y.registerEditorContribution)(o.ID,o,2),(0,y.registerEditorAction)(g);const m=175,c=y.EditorCommand.bindToContribution(o.get);(0,y.registerEditorCommand)(new c({id:"closeParameterHints",precondition:v.Context.Visible,handler:d=>d.cancel(),kbOpts:{weight:m,kbExpr:D.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,y.registerEditorCommand)(new c({id:"showPrevParameterHint",precondition:a.ContextKeyExpr.and(v.Context.Visible,v.Context.MultipleSignatures),handler:d=>d.previous(),kbOpts:{weight:m,kbExpr:D.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,y.registerEditorCommand)(new c({id:"showNextParameterHint",precondition:a.ContextKeyExpr.and(v.Context.Visible,v.Context.MultipleSignatures),handler:d=>d.next(),kbOpts:{weight:m,kbExpr:D.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))}),define(ne[855],se([1,0,6,79,42,2,108,8,796,82,29,489]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BannerController=void 0;const a=26;let n=class extends D.Disposable{constructor(o,g){super(),this._editor=o,this.instantiationService=g,this.banner=this._register(this.instantiationService.createInstance(i))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(o){this.banner.show({...o,onClose:()=>{var g;this.hide(),(g=o.onClose)===null||g===void 0||g.call(o)}}),this._editor.setBanner(this.banner.element,a)}};e.BannerController=n,e.BannerController=n=De([he(1,p.IInstantiationService)],n);let i=class extends D.Disposable{constructor(o){super(),this.instantiationService=o,this.markdownRenderer=this.instantiationService.createInstance(S.MarkdownRenderer,{}),this.element=(0,L.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(o){if(o.ariaLabel)return o.ariaLabel;if(typeof o.message=="string")return o.message}getBannerMessage(o){if(typeof o=="string"){const g=(0,L.$)("span");return g.innerText=o,g}return this.markdownRenderer.render(o).element}clear(){(0,L.clearNode)(this.element)}show(o){(0,L.clearNode)(this.element);const g=this.getAriaLabel(o);g&&this.element.setAttribute("aria-label",g);const m=(0,L.append)(this.element,(0,L.$)("div.icon-container"));m.setAttribute("aria-hidden","true"),o.icon&&m.appendChild((0,L.$)(`div${b.ThemeIcon.asCSSSelector(o.icon)}`));const c=(0,L.append)(this.element,(0,L.$)("div.message-container"));if(c.setAttribute("aria-hidden","true"),c.appendChild(this.getBannerMessage(o.message)),this.messageActionsContainer=(0,L.append)(this.element,(0,L.$)("div.message-actions-container")),o.actions)for(const s of o.actions)this._register(this.instantiationService.createInstance(w.Link,this.messageActionsContainer,{...s,tabIndex:-1},{}));const d=(0,L.append)(this.element,(0,L.$)("div.action-container"));this.actionBar=this._register(new k.ActionBar(d)),this.actionBar.push(this._register(new y.Action("banner.close","Close Banner",b.ThemeIcon.asClassName(v.widgetClose),!0,()=>{typeof o.onClose=="function"&&o.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};i=De([he(0,p.IInstantiationService)],i)}),define(ne[856],se([1,0,6,7,2,29,82]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnthemedProductIconTheme=e.getIconsStyleSheet=void 0;function p(v){const b=new y.DisposableStore,a=b.add(new k.Emitter),n=(0,S.getIconRegistry)();return b.add(n.onDidChange(()=>a.fire())),v&&b.add(v.onDidProductIconThemeChange(()=>a.fire())),{dispose:()=>b.dispose(),onDidChange:a.event,getCSS(){const i=v?v.getProductIconTheme():new w,t={},o=m=>{const c=i.getIcon(m);if(!c)return;const d=c.font;return d?(t[d.id]=d.definition,`.codicon-${m.id}:before { content: '${c.fontCharacter}'; font-family: ${(0,L.asCSSPropertyValue)(d.id)}; }`):`.codicon-${m.id}:before { content: '${c.fontCharacter}'; }`},g=[];for(const m of n.getIcons()){const c=o(m);c&&g.push(c)}for(const m in t){const c=t[m],d=c.weight?`font-weight: ${c.weight};`:"",s=c.style?`font-style: ${c.style};`:"",l=c.src.map(r=>`${(0,L.asCSSUrl)(r.location)} format('${r.format}')`).join(", ");g.push(`@font-face { src: ${l}; font-family: ${(0,L.asCSSPropertyValue)(m)};${d}${s} font-display: block; }`)}return g.join(` +`)}}}e.getIconsStyleSheet=p;class w{getIcon(b){const a=(0,S.getIconRegistry)();let n=b.defaults;for(;D.ThemeIcon.isThemeIcon(n);){const i=a.getIcon(n.id);if(!i)return;n=i.defaults}return n}}e.UnthemedProductIconTheme=w}),define(ne[89],se([1,0]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isDark=e.isHighContrast=e.ColorScheme=void 0;var L;(function(D){D.DARK="dark",D.LIGHT="light",D.HIGH_CONTRAST_DARK="hcDark",D.HIGH_CONTRAST_LIGHT="hcLight"})(L||(e.ColorScheme=L={}));function k(D){return D===L.HIGH_CONTRAST_DARK||D===L.HIGH_CONTRAST_LIGHT}e.isHighContrast=k;function y(D){return D===L.DARK||D===L.HIGH_CONTRAST_DARK}e.isDark=y}),define(ne[260],se([1,0,59,41,17,503,152,139,122,89,36]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getColumnOfNodeOffset=e.ViewLine=e.ViewLineOptions=void 0;const a=function(){return y.isNative?!0:!(y.isLinux||L.isFirefox||L.isSafari)}();let n=!0;class i{constructor(h,u){this.themeType=u;const f=h.options,C=f.get(50);f.get(38)==="off"?this.renderWhitespace=f.get(99):this.renderWhitespace="none",this.renderControlCharacters=f.get(94),this.spaceWidth=C.spaceWidth,this.middotWidth=C.middotWidth,this.wsmiddotWidth=C.wsmiddotWidth,this.useMonospaceOptimizations=C.isMonospace&&!f.get(33),this.canUseHalfwidthRightwardsArrow=C.canUseHalfwidthRightwardsArrow,this.lineHeight=f.get(67),this.stopRenderingLineAfter=f.get(117),this.fontLigatures=f.get(51)}equals(h){return this.themeType===h.themeType&&this.renderWhitespace===h.renderWhitespace&&this.renderControlCharacters===h.renderControlCharacters&&this.spaceWidth===h.spaceWidth&&this.middotWidth===h.middotWidth&&this.wsmiddotWidth===h.wsmiddotWidth&&this.useMonospaceOptimizations===h.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===h.canUseHalfwidthRightwardsArrow&&this.lineHeight===h.lineHeight&&this.stopRenderingLineAfter===h.stopRenderingLineAfter&&this.fontLigatures===h.fontLigatures}}e.ViewLineOptions=i;class t{constructor(h){this._options=h,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(h){if(this._renderedViewLine)this._renderedViewLine.domNode=(0,k.createFastDomNode)(h);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(h){this._isMaybeInvalid=!0,this._options=h}onSelectionChanged(){return(0,v.isHighContrast)(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(h,u,f,C){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const _=f.getViewLineRenderingData(h),E=this._options,I=p.LineDecoration.filter(_.inlineDecorations,h,_.minColumn,_.maxColumn);let T=null;if((0,v.isHighContrast)(E.themeType)||this._options.renderWhitespace==="selection"){const N=f.selections;for(const P of N){if(P.endLineNumberh)continue;const F=P.startLineNumber===h?P.startColumn:_.minColumn,O=P.endLineNumber===h?P.endColumn:_.maxColumn;F');const R=(0,w.renderViewLine)(A,C);C.appendString("");let M=null;return n&&a&&_.isBasicASCII&&E.useMonospaceOptimizations&&R.containsForeignElements===0&&(M=new o(this._renderedViewLine?this._renderedViewLine.domNode:null,A,R.characterMapping)),M||(M=c(this._renderedViewLine?this._renderedViewLine.domNode:null,A,R.characterMapping,R.containsRTL,R.containsForeignElements)),this._renderedViewLine=M,!0}layoutLine(h,u){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(u),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(h){return this._renderedViewLine?this._renderedViewLine.getWidth(h):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof o:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof o?this._renderedViewLine.monospaceAssumptionsAreValid():n}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof o&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(h,u,f,C){if(!this._renderedViewLine)return null;u=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,u)),f=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,f));const _=this._renderedViewLine.input.stopRenderingLineAfter;if(_!==-1&&u>_+1&&f>_+1)return new S.VisibleRanges(!0,[new S.FloatHorizontalRange(this.getWidth(C),0)]);_!==-1&&u>_+1&&(u=_+1),_!==-1&&f>_+1&&(f=_+1);const E=this._renderedViewLine.getVisibleRangesForRange(h,u,f,C);return E&&E.length>0?new S.VisibleRanges(!1,E):null}getColumnOfNodeOffset(h,u){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(h,u):1}}e.ViewLine=t,t.CLASS_NAME="view-line";class o{constructor(h,u,f){this._cachedWidth=-1,this.domNode=h,this.input=u;const C=Math.floor(u.lineContent.length/300);if(C>0){this._keyColumnPixelOffsetCache=new Float32Array(C);for(let _=0;_=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),n=!1)}return n}toSlowRenderedLine(){return c(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(h,u,f,C){const _=this._getColumnPixelOffset(h,u,C),E=this._getColumnPixelOffset(h,f,C);return[new S.FloatHorizontalRange(_,E-_)]}_getColumnPixelOffset(h,u,f){if(u<=300){const A=this._characterMapping.getHorizontalOffset(u);return this._charWidth*A}const C=Math.floor((u-1)/300)-1,_=(C+1)*300+1;let E=-1;if(this._keyColumnPixelOffsetCache&&(E=this._keyColumnPixelOffsetCache[C],E===-1&&(E=this._actualReadPixelOffset(h,_,f),this._keyColumnPixelOffsetCache[C]=E)),E===-1){const A=this._characterMapping.getHorizontalOffset(u);return this._charWidth*A}const I=this._characterMapping.getHorizontalOffset(_),T=this._characterMapping.getHorizontalOffset(u);return E+this._charWidth*(T-I)}_getReadingTarget(h){return h.domNode.firstChild}_actualReadPixelOffset(h,u,f){if(!this.domNode)return-1;const C=this._characterMapping.getDomPosition(u),_=D.RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),C.partIndex,C.charIndex,C.partIndex,C.charIndex,f);return!_||_.length===0?-1:_[0].left}getColumnOfNodeOffset(h,u){return l(this._characterMapping,h,u)}}class g{constructor(h,u,f,C,_){if(this.domNode=h,this.input=u,this._characterMapping=f,this._isWhitespaceOnly=/^\s*$/.test(u.lineContent),this._containsForeignElements=_,this._cachedWidth=-1,this._pixelOffsetCache=null,!C||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let E=0,I=this._characterMapping.length;E<=I;E++)this._pixelOffsetCache[E]=-1}}_getReadingTarget(h){return h.domNode.firstChild}getWidth(h){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,h?.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(h,u,f,C){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const _=this._readPixelOffset(this.domNode,h,u,C);if(_===-1)return null;const E=this._readPixelOffset(this.domNode,h,f,C);return E===-1?null:[new S.FloatHorizontalRange(_,E-_)]}return this._readVisibleRangesForRange(this.domNode,h,u,f,C)}_readVisibleRangesForRange(h,u,f,C,_){if(f===C){const E=this._readPixelOffset(h,u,f,_);return E===-1?null:[new S.FloatHorizontalRange(E,0)]}else return this._readRawVisibleRangesForRange(h,f,C,_)}_readPixelOffset(h,u,f,C){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(C);const _=this._getReadingTarget(h);return _.firstChild?(C.markDidDomLayout(),_.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const _=this._pixelOffsetCache[f];if(_!==-1)return _;const E=this._actualReadPixelOffset(h,u,f,C);return this._pixelOffsetCache[f]=E,E}return this._actualReadPixelOffset(h,u,f,C)}_actualReadPixelOffset(h,u,f,C){if(this._characterMapping.length===0){const T=D.RangeUtil.readHorizontalRanges(this._getReadingTarget(h),0,0,0,0,C);return!T||T.length===0?-1:T[0].left}if(f===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(C);const _=this._characterMapping.getDomPosition(f),E=D.RangeUtil.readHorizontalRanges(this._getReadingTarget(h),_.partIndex,_.charIndex,_.partIndex,_.charIndex,C);if(!E||E.length===0)return-1;const I=E[0].left;if(this.input.isBasicASCII){const T=this._characterMapping.getHorizontalOffset(f),A=Math.round(this.input.spaceWidth*T);if(Math.abs(A-I)<=1)return A}return I}_readRawVisibleRangesForRange(h,u,f,C){if(u===1&&f===this._characterMapping.length)return[new S.FloatHorizontalRange(0,this.getWidth(C))];const _=this._characterMapping.getDomPosition(u),E=this._characterMapping.getDomPosition(f);return D.RangeUtil.readHorizontalRanges(this._getReadingTarget(h),_.partIndex,_.charIndex,E.partIndex,E.charIndex,C)}getColumnOfNodeOffset(h,u){return l(this._characterMapping,h,u)}}class m extends g{_readVisibleRangesForRange(h,u,f,C,_){const E=super._readVisibleRangesForRange(h,u,f,C,_);if(!E||E.length===0||f===C||f===1&&C===this._characterMapping.length)return E;if(!this.input.containsRTL){const I=this._readPixelOffset(h,u,C,_);if(I!==-1){const T=E[E.length-1];T.left=4&&f[0]===3&&f[3]===8}static isStrictChildOfViewLines(f){return f.length>4&&f[0]===3&&f[3]===8}static isChildOfScrollableElement(f){return f.length>=2&&f[0]===3&&f[1]===6}static isChildOfMinimap(f){return f.length>=2&&f[0]===3&&f[1]===9}static isChildOfContentWidgets(f){return f.length>=4&&f[0]===3&&f[3]===1}static isChildOfOverflowGuard(f){return f.length>=1&&f[0]===3}static isChildOfOverflowingContentWidgets(f){return f.length>=1&&f[0]===2}static isChildOfOverlayWidgets(f){return f.length>=2&&f[0]===3&&f[1]===4}static isChildOfOverflowingOverlayWidgets(f){return f.length>=1&&f[0]===5}}class g{constructor(f,C,_){this.viewModel=f.viewModel;const E=f.configuration.options;this.layoutInfo=E.get(144),this.viewDomNode=C.viewDomNode,this.lineHeight=E.get(67),this.stickyTabStops=E.get(116),this.typicalHalfwidthCharacterWidth=E.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=_,this._context=f,this._viewHelper=C}getZoneAtCoord(f){return g.getZoneAtCoord(this._context,f)}static getZoneAtCoord(f,C){const _=f.viewLayout.getWhitespaceAtVerticalOffset(C);if(_){const E=_.verticalOffset+_.height/2,I=f.viewModel.getLineCount();let T=null,A,R=null;return _.afterLineNumber!==I&&(R=new D.Position(_.afterLineNumber+1,1)),_.afterLineNumber>0&&(T=new D.Position(_.afterLineNumber,f.viewModel.getLineMaxColumn(_.afterLineNumber))),R===null?A=T:T===null?A=R:C=f.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,l._getMouseColumn(this.mouseContentHorizontalOffset,f.typicalHalfwidthCharacterWidth))}}class c extends m{constructor(f,C,_,E,I){super(f,C,_,E),this._ctx=f,I?(this.target=I,this.targetPath=k.PartFingerprints.collect(I,f.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} + target: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(f=null){return f&&f.columnT.contentLeft+T.width)continue;const A=f.getVerticalOffsetForLineNumber(T.position.lineNumber);if(A<=I&&I<=A+T.height)return C.fulfillContentText(T.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(f,C){const _=f.getZoneAtCoord(C.mouseVerticalOffset);if(_){const E=C.isInContentArea?8:5;return C.fulfillViewZone(E,_.position,_)}return null}static _hitTestTextArea(f,C){return o.isTextArea(C.targetPath)?f.lastRenderData.lastTextareaPosition?C.fulfillContentText(f.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):C.fulfillTextarea():null}static _hitTestMargin(f,C){if(C.isInMarginArea){const _=f.getFullLineRangeAtCoord(C.mouseVerticalOffset),E=_.range.getStartPosition();let I=Math.abs(C.relativePos.x);const T={isAfterLines:_.isAfterLines,glyphMarginLeft:f.layoutInfo.glyphMarginLeft,glyphMarginWidth:f.layoutInfo.glyphMarginWidth,lineNumbersWidth:f.layoutInfo.lineNumbersWidth,offsetX:I};if(I-=f.layoutInfo.glyphMarginLeft,I<=f.layoutInfo.glyphMarginWidth){const A=f.viewModel.coordinatesConverter.convertViewPositionToModelPosition(_.range.getStartPosition()),R=f.viewModel.glyphLanes.getLanesAtLine(A.lineNumber);return T.glyphMarginLane=R[Math.floor(I/f.lineHeight)],C.fulfillMargin(2,E,_.range,T)}return I-=f.layoutInfo.glyphMarginWidth,I<=f.layoutInfo.lineNumbersWidth?C.fulfillMargin(3,E,_.range,T):(I-=f.layoutInfo.lineNumbersWidth,C.fulfillMargin(4,E,_.range,T))}return null}static _hitTestViewLines(f,C,_){if(!o.isChildOfViewLines(C.targetPath))return null;if(f.isInTopPadding(C.mouseVerticalOffset))return C.fulfillContentEmpty(new D.Position(1,1),d);if(f.isAfterLines(C.mouseVerticalOffset)||f.isInBottomPadding(C.mouseVerticalOffset)){const I=f.viewModel.getLineCount(),T=f.viewModel.getLineMaxColumn(I);return C.fulfillContentEmpty(new D.Position(I,T),d)}if(_){if(o.isStrictChildOfViewLines(C.targetPath)){const I=f.getLineNumberAtVerticalOffset(C.mouseVerticalOffset);if(f.viewModel.getLineLength(I)===0){const A=f.getLineWidth(I),R=s(C.mouseContentHorizontalOffset-A);return C.fulfillContentEmpty(new D.Position(I,1),R)}const T=f.getLineWidth(I);if(C.mouseContentHorizontalOffset>=T){const A=s(C.mouseContentHorizontalOffset-T),R=new D.Position(I,f.viewModel.getLineMaxColumn(I));return C.fulfillContentEmpty(R,A)}}return C.fulfillUnknown()}const E=l._doHitTest(f,C);return E.type===1?l.createMouseTargetFromHitTestPosition(f,C,E.spanNode,E.position,E.injectedText):this._createMouseTarget(f,C.withTarget(E.hitTarget),!0)}static _hitTestMinimap(f,C){if(o.isChildOfMinimap(C.targetPath)){const _=f.getLineNumberAtVerticalOffset(C.mouseVerticalOffset),E=f.viewModel.getLineMaxColumn(_);return C.fulfillScrollbar(new D.Position(_,E))}return null}static _hitTestScrollbarSlider(f,C){if(o.isChildOfScrollableElement(C.targetPath)&&C.target&&C.target.nodeType===1){const _=C.target.className;if(_&&/\b(slider|scrollbar)\b/.test(_)){const E=f.getLineNumberAtVerticalOffset(C.mouseVerticalOffset),I=f.viewModel.getLineMaxColumn(E);return C.fulfillScrollbar(new D.Position(E,I))}}return null}static _hitTestScrollbar(f,C){if(o.isChildOfScrollableElement(C.targetPath)){const _=f.getLineNumberAtVerticalOffset(C.mouseVerticalOffset),E=f.viewModel.getLineMaxColumn(_);return C.fulfillScrollbar(new D.Position(_,E))}return null}getMouseColumn(f){const C=this._context.configuration.options,_=C.get(144),E=this._context.viewLayout.getCurrentScrollLeft()+f.x-_.contentLeft;return l._getMouseColumn(E,C.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(f,C){return f<0?1:Math.round(f/C)+1}static createMouseTargetFromHitTestPosition(f,C,_,E,I){const T=E.lineNumber,A=E.column,R=f.getLineWidth(T);if(C.mouseContentHorizontalOffset>R){const z=s(C.mouseContentHorizontalOffset-R);return C.fulfillContentEmpty(E,z)}const M=f.visibleRangeForPosition(T,A);if(!M)return C.fulfillUnknown(E);const N=M.left;if(Math.abs(C.mouseContentHorizontalOffset-N)<1)return C.fulfillContentText(E,null,{mightBeForeignElement:!!I,injectedText:I});const P=[];if(P.push({offset:M.left,column:A}),A>1){const z=f.visibleRangeForPosition(T,A-1);z&&P.push({offset:z.left,column:A-1})}const F=f.viewModel.getLineMaxColumn(T);if(Az.offset-K.offset);const O=C.pos.toClientCoordinates(w.getWindow(f.viewDomNode)),B=_.getBoundingClientRect(),W=B.left<=O.clientX&&O.clientX<=B.right;let V=null;for(let z=1;zI)){const A=Math.floor((E+I)/2);let R=C.pos.y+(A-C.mouseVerticalOffset);R<=C.editorPos.y&&(R=C.editorPos.y+1),R>=C.editorPos.y+C.editorPos.height&&(R=C.editorPos.y+C.editorPos.height-1);const M=new L.PageCoordinates(C.pos.x,R),N=this._actualDoHitTestWithCaretRangeFromPoint(f,M.toClientCoordinates(w.getWindow(f.viewDomNode)));if(N.type===1)return N}return this._actualDoHitTestWithCaretRangeFromPoint(f,C.pos.toClientCoordinates(w.getWindow(f.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(f,C){const _=w.getShadowRoot(f.viewDomNode);let E;if(_?typeof _.caretRangeFromPoint>"u"?E=r(_,C.clientX,C.clientY):E=_.caretRangeFromPoint(C.clientX,C.clientY):E=f.viewDomNode.ownerDocument.caretRangeFromPoint(C.clientX,C.clientY),!E||!E.startContainer)return new b;const I=E.startContainer;if(I.nodeType===I.TEXT_NODE){const T=I.parentNode,A=T?T.parentNode:null,R=A?A.parentNode:null;return(R&&R.nodeType===R.ELEMENT_NODE?R.className:null)===y.ViewLine.CLASS_NAME?n.createFromDOMInfo(f,T,E.startOffset):new b(I.parentNode)}else if(I.nodeType===I.ELEMENT_NODE){const T=I.parentNode,A=T?T.parentNode:null;return(A&&A.nodeType===A.ELEMENT_NODE?A.className:null)===y.ViewLine.CLASS_NAME?n.createFromDOMInfo(f,I,I.textContent.length):new b(I)}return new b}static _doHitTestWithCaretPositionFromPoint(f,C){const _=f.viewDomNode.ownerDocument.caretPositionFromPoint(C.clientX,C.clientY);if(_.offsetNode.nodeType===_.offsetNode.TEXT_NODE){const E=_.offsetNode.parentNode,I=E?E.parentNode:null,T=I?I.parentNode:null;return(T&&T.nodeType===T.ELEMENT_NODE?T.className:null)===y.ViewLine.CLASS_NAME?n.createFromDOMInfo(f,_.offsetNode.parentNode,_.offset):new b(_.offsetNode.parentNode)}if(_.offsetNode.nodeType===_.offsetNode.ELEMENT_NODE){const E=_.offsetNode.parentNode,I=E&&E.nodeType===E.ELEMENT_NODE?E.className:null,T=E?E.parentNode:null,A=T&&T.nodeType===T.ELEMENT_NODE?T.className:null;if(I===y.ViewLine.CLASS_NAME){const R=_.offsetNode.childNodes[Math.min(_.offset,_.offsetNode.childNodes.length-1)];if(R)return n.createFromDOMInfo(f,R,0)}else if(A===y.ViewLine.CLASS_NAME)return n.createFromDOMInfo(f,_.offsetNode,0)}return new b(_.offsetNode)}static _snapToSoftTabBoundary(f,C){const _=C.getLineContent(f.lineNumber),{tabSize:E}=C.model.getOptions(),I=v.AtomicTabMoveOperations.atomicPosition(_,f.column-1,E,2);return I!==-1?new D.Position(f.lineNumber,I+1):f}static _doHitTest(f,C){let _=new b;if(typeof f.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?_=this._doHitTestWithCaretRangeFromPoint(f,C):f.viewDomNode.ownerDocument.caretPositionFromPoint&&(_=this._doHitTestWithCaretPositionFromPoint(f,C.pos.toClientCoordinates(w.getWindow(f.viewDomNode)))),_.type===1){const E=f.viewModel.getInjectedTextAt(_.position),I=f.viewModel.normalizePosition(_.position,2);(E||!I.equals(_.position))&&(_=new a(I,_.spanNode,E))}return _}}e.MouseTargetFactory=l;function r(u,f,C){const _=document.createRange();let E=u.elementFromPoint(f,C);if(E!==null){for(;E&&E.firstChild&&E.firstChild.nodeType!==E.firstChild.TEXT_NODE&&E.lastChild&&E.lastChild.firstChild;)E=E.lastChild;const I=E.getBoundingClientRect(),T=w.getWindow(E),A=T.getComputedStyle(E,null).getPropertyValue("font-style"),R=T.getComputedStyle(E,null).getPropertyValue("font-variant"),M=T.getComputedStyle(E,null).getPropertyValue("font-weight"),N=T.getComputedStyle(E,null).getPropertyValue("font-size"),P=T.getComputedStyle(E,null).getPropertyValue("line-height"),F=T.getComputedStyle(E,null).getPropertyValue("font-family"),O=`${A} ${R} ${M} ${N}/${P} ${F}`,B=E.innerText;let W=I.left,V=0,z;if(f>I.left+I.width)V=B.length;else{const K=h.getInstance();for(let j=0;jthis._createMouseTarget(u,f),u=>this._getMouseColumn(u))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(144).height;const r=new p.EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(r.onContextMenu(this.viewHelper.viewDomNode,u=>this._onContextMenu(u,!0))),this._register(r.onMouseMove(this.viewHelper.viewDomNode,u=>{this._onMouseMove(u),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=L.addDisposableListener(this.viewHelper.viewDomNode.ownerDocument,"mousemove",f=>{this.viewHelper.viewDomNode.contains(f.target)||this._onMouseLeave(new p.EditorMouseEvent(f,!1,this.viewHelper.viewDomNode))}))})),this._register(r.onMouseUp(this.viewHelper.viewDomNode,u=>this._onMouseUp(u))),this._register(r.onMouseLeave(this.viewHelper.viewDomNode,u=>this._onMouseLeave(u)));let h=0;this._register(r.onPointerDown(this.viewHelper.viewDomNode,(u,f)=>{h=f})),this._register(L.addDisposableListener(this.viewHelper.viewDomNode,L.EventType.POINTER_UP,u=>{this._mouseDownOperation.onPointerUp()})),this._register(r.onMouseDown(this.viewHelper.viewDomNode,u=>this._onMouseDown(u,h))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const d=n.MouseWheelClassifier.INSTANCE;let s=0,l=w.EditorZoom.getZoomLevel(),r=!1,h=0;const u=C=>{if(this.viewController.emitMouseWheel(C),!this._context.configuration.options.get(76))return;const _=new k.StandardWheelEvent(C);if(d.acceptStandardWheelEvent(_),d.isPhysicalMouseWheel()){if(f(C)){const E=w.EditorZoom.getZoomLevel(),I=_.deltaY>0?1:-1;w.EditorZoom.setZoomLevel(E+I),_.preventDefault(),_.stopPropagation()}}else Date.now()-s>50&&(l=w.EditorZoom.getZoomLevel(),r=f(C),h=0),s=Date.now(),h+=_.deltaY,r&&(w.EditorZoom.setZoomLevel(l+h/5),_.preventDefault(),_.stopPropagation())};this._register(L.addDisposableListener(this.viewHelper.viewDomNode,L.EventType.MOUSE_WHEEL,u,{capture:!0,passive:!1}));function f(C){return D.isMacintosh?(C.metaKey||C.ctrlKey)&&!C.shiftKey&&!C.altKey:C.ctrlKey&&!C.metaKey&&!C.shiftKey&&!C.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(d){if(d.hasChanged(144)){const s=this._context.configuration.options.get(144).height;this._height!==s&&(this._height=s,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(d){return this._mouseDownOperation.onCursorStateChanged(d),!1}onFocusChanged(d){return!1}getTargetAtClientPoint(d,s){const r=new p.ClientCoordinates(d,s).toPageCoordinates(L.getWindow(this.viewHelper.viewDomNode)),h=(0,p.createEditorPagePosition)(this.viewHelper.viewDomNode);if(r.yh.y+h.height||r.xh.x+h.width)return null;const u=(0,p.createCoordinatesRelativeToEditor)(this.viewHelper.viewDomNode,h,r);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),h,r,u,null)}_createMouseTarget(d,s){let l=d.target;if(!this.viewHelper.viewDomNode.contains(l)){const r=L.getShadowRoot(this.viewHelper.viewDomNode);r&&(l=r.elementsFromPoint(d.posx,d.posy).find(h=>this.viewHelper.viewDomNode.contains(h)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),d.editorPos,d.pos,d.relativePos,s?l:null)}_getMouseColumn(d){return this.mouseTargetFactory.getMouseColumn(d.relativePos)}_onContextMenu(d,s){this.viewController.emitContextMenu({event:d,target:this._createMouseTarget(d,s)})}_onMouseMove(d){this.mouseTargetFactory.mouseTargetIsWidget(d)||d.preventDefault(),!(this._mouseDownOperation.isActive()||d.timestamp{d.preventDefault(),this.viewHelper.focusTextArea()};if(E&&(r||u&&f))I(),this._mouseDownOperation.start(l.type,d,s);else if(h)d.preventDefault();else if(C){const T=l.detail;E&&this.viewHelper.shouldSuppressMouseDownOnViewZone(T.viewZoneId)&&(I(),this._mouseDownOperation.start(l.type,d,s),d.preventDefault())}else _&&this.viewHelper.shouldSuppressMouseDownOnWidget(l.detail)&&(I(),d.preventDefault());this.viewController.emitMouseDown({event:d,target:l})}}e.MouseHandler=i;class t extends y.Disposable{constructor(d,s,l,r,h,u){super(),this._context=d,this._viewController=s,this._viewHelper=l,this._mouseTargetFactory=r,this._createMouseTarget=h,this._getMouseColumn=u,this._mouseMoveMonitor=this._register(new p.GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new o(this._context,this._viewHelper,this._mouseTargetFactory,(f,C,_)=>this._dispatchMouse(f,C,_))),this._mouseState=new m,this._currentSelection=new b.Selection(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(d){this._lastMouseEvent=d,this._mouseState.setModifiers(d);const s=this._findMousePosition(d,!1);s&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:d,target:s}):s.type===13&&(s.outsidePosition==="above"||s.outsidePosition==="below")?this._topBottomDragScrolling.start(s,d):(this._topBottomDragScrolling.stop(),this._dispatchMouse(s,!0,1)))}start(d,s,l){this._lastMouseEvent=s,this._mouseState.setStartedOnLineNumbers(d===3),this._mouseState.setStartButtons(s),this._mouseState.setModifiers(s);const r=this._findMousePosition(s,!0);if(!r||!r.position)return;this._mouseState.trySetCount(s.detail,r.position),s.detail=this._mouseState.count;const h=this._context.configuration.options;if(!h.get(91)&&h.get(35)&&!h.get(22)&&!this._mouseState.altKey&&s.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&r.type===6&&r.position&&this._currentSelection.containsPosition(r.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,l,s.buttons,u=>this._onMouseDownThenMove(u),u=>{const f=this._findMousePosition(this._lastMouseEvent,!1);L.isKeyboardEvent(u)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:f?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(r,s.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,l,s.buttons,u=>this._onMouseDownThenMove(u),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(d){this._currentSelection=d.selections[0]}_getPositionOutsideEditor(d){const s=d.editorPos,l=this._context.viewModel,r=this._context.viewLayout,h=this._getMouseColumn(d);if(d.posys.y+s.height){const f=d.posy-s.y-s.height,C=r.getCurrentScrollTop()+d.relativePos.y,_=S.HitTestContext.getZoneAtCoord(this._context,C);if(_){const I=this._helpPositionJumpOverViewZone(_);if(I)return S.MouseTarget.createOutsideEditor(h,I,"below",f)}const E=r.getLineNumberAtVerticalOffset(C);return S.MouseTarget.createOutsideEditor(h,new v.Position(E,l.getLineMaxColumn(E)),"below",f)}const u=r.getLineNumberAtVerticalOffset(r.getCurrentScrollTop()+d.relativePos.y);if(d.posxs.x+s.width){const f=d.posx-s.x-s.width;return S.MouseTarget.createOutsideEditor(h,new v.Position(u,l.getLineMaxColumn(u)),"right",f)}return null}_findMousePosition(d,s){const l=this._getPositionOutsideEditor(d);if(l)return l;const r=this._createMouseTarget(d,s);if(!r.position)return null;if(r.type===8||r.type===5){const u=this._helpPositionJumpOverViewZone(r.detail);if(u)return S.MouseTarget.createViewZone(r.type,r.element,r.mouseColumn,u,r.detail)}return r}_helpPositionJumpOverViewZone(d){const s=new v.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),l=d.positionBefore,r=d.positionAfter;return l&&r?l.isBefore(s)?l:r:null}_dispatchMouse(d,s,l){d.position&&this._viewController.dispatchMouse({position:d.position,mouseColumn:d.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:l,inSelectionMode:s,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:d.type===6&&d.detail.injectedText!==null})}}class o extends y.Disposable{constructor(d,s,l,r){super(),this._context=d,this._viewHelper=s,this._mouseTargetFactory=l,this._dispatchMouse=r,this._operation=null}dispose(){super.dispose(),this.stop()}start(d,s){this._operation?this._operation.setPosition(d,s):this._operation=new g(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,d,s)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class g extends y.Disposable{constructor(d,s,l,r,h,u){super(),this._context=d,this._viewHelper=s,this._mouseTargetFactory=l,this._dispatchMouse=r,this._position=h,this._mouseEvent=u,this._lastTime=Date.now(),this._animationFrameDisposable=L.scheduleAtNextAnimationFrame(L.getWindow(u.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(d,s){this._position=d,this._mouseEvent=s}_tick(){const d=Date.now(),s=d-this._lastTime;return this._lastTime=d,s}_getScrollSpeed(){const d=this._context.configuration.options.get(67),s=this._context.configuration.options.get(144).height/d,l=this._position.outsideDistance/d;return l<=1.5?Math.max(30,s*(1+l)):l<=3?Math.max(60,s*(2+l)):Math.max(200,s*(7+l))}_execute(){const d=this._context.configuration.options.get(67),s=this._getScrollSpeed(),l=this._tick(),r=s*(l/1e3)*d,h=this._position.outsidePosition==="above"?-r:r;this._context.viewModel.viewLayout.deltaScrollNow(0,h),this._viewHelper.renderNow();const u=this._context.viewLayout.getLinesViewportData(),f=this._position.outsidePosition==="above"?u.startLineNumber:u.endLineNumber;let C;{const _=(0,p.createEditorPagePosition)(this._viewHelper.viewDomNode),E=this._context.configuration.options.get(144).horizontalScrollbarHeight,I=new p.PageCoordinates(this._mouseEvent.pos.x,_.y+_.height-E-.1),T=(0,p.createCoordinatesRelativeToEditor)(this._viewHelper.viewDomNode,_,I);C=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),_,I,T,null)}(!C.position||C.position.lineNumber!==f)&&(this._position.outsidePosition==="above"?C=S.MouseTarget.createOutsideEditor(this._position.mouseColumn,new v.Position(f,1),"above",this._position.outsideDistance):C=S.MouseTarget.createOutsideEditor(this._position.mouseColumn,new v.Position(f,this._context.viewModel.getLineMaxColumn(f)),"below",this._position.outsideDistance)),this._dispatchMouse(C,!0,2),this._animationFrameDisposable=L.scheduleAtNextAnimationFrame(L.getWindow(C.element),()=>this._execute())}}class m{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(d){this._altKey=d.altKey,this._ctrlKey=d.ctrlKey,this._metaKey=d.metaKey,this._shiftKey=d.shiftKey}setStartButtons(d){this._leftButton=d.leftButton,this._middleButton=d.middleButton}setStartedOnLineNumbers(d){this._startedOnLineNumbers=d}trySetCount(d,s){const l=new Date().getTime();l-this._lastSetMouseDownCountTime>m.CLEAR_MOUSE_DOWN_COUNT_TIME&&(d=1),this._lastSetMouseDownCountTime=l,d>this._lastMouseDownCount+1&&(d=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(s)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=s,this._lastMouseDownCount=Math.min(d,this._lastMouseDownPositionEqualCount)}}m.CLEAR_MOUSE_DOWN_COUNT_TIME=400}),define(ne[858],se([1,0,225,6,65,50,2,17,857,196,169]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PointerHandler=e.PointerEventHandler=void 0;class a extends w.MouseHandler{constructor(o,g,m){super(o,g,m),this._register(y.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Tap,d=>this.onTap(d))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Change,d=>this.onChange(d))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Contextmenu,d=>this._onContextMenu(new b.EditorMouseEvent(d,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",d=>{const s=d.pointerType;if(s==="mouse"){this._lastPointerType="mouse";return}else s==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const c=new b.EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(c.onPointerMove(this.viewHelper.viewDomNode,d=>this._onMouseMove(d))),this._register(c.onPointerUp(this.viewHelper.viewDomNode,d=>this._onMouseUp(d))),this._register(c.onPointerLeave(this.viewHelper.viewDomNode,d=>this._onMouseLeave(d))),this._register(c.onPointerDown(this.viewHelper.viewDomNode,(d,s)=>this._onMouseDown(d,s)))}onTap(o){!o.initialTarget||!this.viewHelper.linesContentDomNode.contains(o.initialTarget)||(o.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(o,!1))}onChange(o){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-o.translationX,-o.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(o,!0)}_dispatchGesture(o,g){const m=this._createMouseTarget(new b.EditorMouseEvent(o,!1,this.viewHelper.viewDomNode),!1);m.position&&this.viewController.dispatchMouse({position:m.position,mouseColumn:m.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:o.tapCount,inSelectionMode:g,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:m.type===6&&m.detail.injectedText!==null})}_onMouseDown(o,g){o.browserEvent.pointerType!=="touch"&&super._onMouseDown(o,g)}}e.PointerEventHandler=a;class n extends w.MouseHandler{constructor(o,g,m){super(o,g,m),this._register(y.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Tap,c=>this.onTap(c))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Change,c=>this.onChange(c))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,y.EventType.Contextmenu,c=>this._onContextMenu(new b.EditorMouseEvent(c,!1,this.viewHelper.viewDomNode),!1)))}onTap(o){o.preventDefault(),this.viewHelper.focusTextArea();const g=this._createMouseTarget(new b.EditorMouseEvent(o,!1,this.viewHelper.viewDomNode),!1);if(g.position){const m=document.createEvent("CustomEvent");m.initEvent(v.TextAreaSyntethicEvents.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(m),this.viewController.moveTo(g.position,1)}}onChange(o){this._context.viewModel.viewLayout.deltaScrollNow(-o.translationX,-o.translationY)}}class i extends S.Disposable{constructor(o,g,m){super(),(p.isIOS||p.isAndroid&&p.isMobile)&&L.BrowserFeatures.pointerEvents?this.handler=this._register(new a(o,g,m)):D.mainWindow.TouchEvent?this.handler=this._register(new n(o,g,m)):this.handler=this._register(new w.MouseHandler(o,g,m))}getTargetAtClientPoint(o,g){return this.handler.getTargetAtClientPoint(o,g)}}e.PointerHandler=i}),define(ne[859],se([1,0,206,15,17,74,152,239,55,502,260,9,5,443]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewLines=void 0;class i{constructor(){this._currentVisibleRange=new n.Range(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(c){this._currentVisibleRange=c}}class t{constructor(c,d,s,l,r,h,u){this.minimalReveal=c,this.lineNumber=d,this.startColumn=s,this.endColumn=l,this.startScrollTop=r,this.stopScrollTop=h,this.scrollType=u,this.type="range",this.minLineNumber=d,this.maxLineNumber=d}}class o{constructor(c,d,s,l,r){this.minimalReveal=c,this.selections=d,this.startScrollTop=s,this.stopScrollTop=l,this.scrollType=r,this.type="selections";let h=d[0].startLineNumber,u=d[0].endLineNumber;for(let f=1,C=d.length;f{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new k.RunOnceScheduler(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new i,this._horizontalRevealRequest=null,this._stickyScrollEnabled=l.get(115).enabled,this._maxNumberStickyLines=l.get(115).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new b.ViewLine(this._viewLineOptions)}onConfigurationChanged(c){this._visibleLines.onConfigurationChanged(c),c.hasChanged(145)&&(this._maxLineWidth=0);const d=this._context.configuration.options,s=d.get(50),l=d.get(145);return this._lineHeight=d.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._isViewportWrapping=l.isViewportWrapping,this._revealHorizontalRightPadding=d.get(100),this._cursorSurroundingLines=d.get(29),this._cursorSurroundingLinesStyle=d.get(30),this._canUseLayerHinting=!d.get(32),this._stickyScrollEnabled=d.get(115).enabled,this._maxNumberStickyLines=d.get(115).maxLineCount,(0,D.applyFontInfo)(this.domNode,s),this._onOptionsMaybeChanged(),c.hasChanged(144)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const c=this._context.configuration,d=new b.ViewLineOptions(c,this._context.theme.type);if(!this._viewLineOptions.equals(d)){this._viewLineOptions=d;const s=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber();for(let r=s;r<=l;r++)this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(c){const d=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();let l=!1;for(let r=d;r<=s;r++)l=this._visibleLines.getVisibleLine(r).onSelectionChanged()||l;return l}onDecorationsChanged(c){{const d=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let l=d;l<=s;l++)this._visibleLines.getVisibleLine(l).onDecorationsChanged()}return!0}onFlushed(c){const d=this._visibleLines.onFlushed(c);return this._maxLineWidth=0,d}onLinesChanged(c){return this._visibleLines.onLinesChanged(c)}onLinesDeleted(c){return this._visibleLines.onLinesDeleted(c)}onLinesInserted(c){return this._visibleLines.onLinesInserted(c)}onRevealRangeRequest(c){const d=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),c.source,c.minimalReveal,c.range,c.selections,c.verticalType);if(d===-1)return!1;let s=this._context.viewLayout.validateScrollPosition({scrollTop:d});c.revealHorizontal?c.range&&c.range.startLineNumber!==c.range.endLineNumber?s={scrollTop:s.scrollTop,scrollLeft:0}:c.range?this._horizontalRevealRequest=new t(c.minimalReveal,c.range.startLineNumber,c.range.startColumn,c.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,c.scrollType):c.selections&&c.selections.length>0&&(this._horizontalRevealRequest=new o(c.minimalReveal,c.selections,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,c.scrollType)):this._horizontalRevealRequest=null;const r=Math.abs(this._context.viewLayout.getCurrentScrollTop()-s.scrollTop)<=this._lineHeight?1:c.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(s,r),!0}onScrollChanged(c){if(this._horizontalRevealRequest&&c.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&c.scrollTopChanged){const d=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),s=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(c.scrollTops)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(c.scrollWidth),this._visibleLines.onScrollChanged(c)||!0}onTokensChanged(c){return this._visibleLines.onTokensChanged(c)}onZonesChanged(c){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(c)}onThemeChanged(c){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(c,d){const s=this._getViewLineDomNode(c);if(s===null)return null;const l=this._getLineNumberFor(s);if(l===-1||l<1||l>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(l)===1)return new a.Position(l,1);const r=this._visibleLines.getStartLineNumber(),h=this._visibleLines.getEndLineNumber();if(lh)return null;let u=this._visibleLines.getVisibleLine(l).getColumnOfNodeOffset(c,d);const f=this._context.viewModel.getLineMinColumn(l);return us)return-1;const l=new v.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(c).getWidth(l);return this._updateLineWidthsSlowIfDomDidLayout(l),r}linesVisibleRangesForRange(c,d){if(this.shouldRender())return null;const s=c.endLineNumber,l=n.Range.intersectRanges(c,this._lastRenderedData.getCurrentVisibleRange());if(!l)return null;const r=[];let h=0;const u=new v.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let f=0;d&&(f=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new a.Position(l.startLineNumber,1)).lineNumber);const C=this._visibleLines.getStartLineNumber(),_=this._visibleLines.getEndLineNumber();for(let E=l.startLineNumber;E<=l.endLineNumber;E++){if(E_)continue;const I=E===l.startLineNumber?l.startColumn:1,T=E!==l.endLineNumber,A=T?this._context.viewModel.getLineMaxColumn(E):l.endColumn,R=this._visibleLines.getVisibleLine(E).getVisibleRangesForRange(E,I,A,u);if(R){if(d&&Ethis._visibleLines.getEndLineNumber())return null;const l=new v.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(c).getVisibleRangesForRange(c,d,s,l);return this._updateLineWidthsSlowIfDomDidLayout(l),r}visibleRangeForPosition(c){const d=this._visibleRangesForLineRange(c.lineNumber,c.column,c.column);return d?new S.HorizontalPosition(d.outsideRenderedLine,d.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(c){c.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(c){const d=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();let l=1,r=!0;for(let h=d;h<=s;h++){const u=this._visibleLines.getVisibleLine(h);if(c&&!u.getWidthIsFast()){r=!1;continue}l=Math.max(l,u.getWidth(null))}return r&&d===1&&s===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(l),r}_checkMonospaceFontAssumptions(){let c=-1,d=-1;const s=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber();for(let r=s;r<=l;r++){const h=this._visibleLines.getVisibleLine(r);if(h.needsMonospaceFontCheck()){const u=h.getWidth(null);u>d&&(d=u,c=r)}}if(c!==-1&&!this._visibleLines.getVisibleLine(c).monospaceAssumptionsAreValid())for(let r=s;r<=l;r++)this._visibleLines.getVisibleLine(r).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(c){if(this._visibleLines.renderLines(c),this._lastRenderedData.setCurrentVisibleRange(c.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const s=this._horizontalRevealRequest;if(c.startLineNumber<=s.minLineNumber&&s.maxLineNumber<=c.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const l=this._computeScrollLeftToReveal(s);l&&(this._isViewportWrapping||this._ensureMaxLineWidth(l.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:l.scrollLeft},s.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),y.isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const s=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber();for(let r=s;r<=l;r++)if(this._visibleLines.getVisibleLine(r).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const d=this._context.viewLayout.getCurrentScrollTop()-c.bigNumbersDelta;this._linesContent.setTop(-d),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(c){const d=Math.ceil(c);this._maxLineWidth0){let N=r[0].startLineNumber,P=r[0].endLineNumber;for(let F=1,O=r.length;Ff){if(!_)return-1;M=E}else if(h===5||h===6)if(h===6&&u<=E&&I<=C)M=u;else{const N=Math.max(5*this._lineHeight,f*.2),P=E-N,F=I-f;M=Math.max(F,P)}else if(h===1||h===2)if(h===2&&u<=E&&I<=C)M=u;else{const N=(E+I)/2;M=Math.max(0,N-f/2)}else M=this._computeMinimumScrolling(u,C,E,I,h===3,h===4);return M}_computeScrollLeftToReveal(c){const d=this._context.viewLayout.getCurrentViewport(),s=this._context.configuration.options.get(144),l=d.left,r=l+d.width-s.verticalScrollbarWidth;let h=1073741824,u=0;if(c.type==="range"){const C=this._visibleRangesForLineRange(c.lineNumber,c.startColumn,c.endColumn);if(!C)return null;for(const _ of C.ranges)h=Math.min(h,Math.round(_.left)),u=Math.max(u,Math.round(_.left+_.width))}else for(const C of c.selections){if(C.startLineNumber!==C.endLineNumber)return null;const _=this._visibleRangesForLineRange(C.startLineNumber,C.startColumn,C.endColumn);if(!_)return null;for(const E of _.ranges)h=Math.min(h,Math.round(E.left)),u=Math.max(u,Math.round(E.left+E.width))}return c.minimalReveal||(h=Math.max(0,h-g.HORIZONTAL_EXTRA_PX),u+=this._revealHorizontalRightPadding),c.type==="selections"&&u-h>d.width?null:{scrollLeft:this._computeMinimumScrolling(l,r,h,u),maxHorizontalOffset:u}}_computeMinimumScrolling(c,d,s,l,r,h){c=c|0,d=d|0,s=s|0,l=l|0,r=!!r,h=!!h;const u=d-c;if(l-sd)return Math.max(0,l-u)}else return s;return c}}e.ViewLines=g,g.HORIZONTAL_EXTRA_PX=30}),define(ne[373],se([1,0,6,46,79,236,190,13,15,405,111,12,7,130,2,17,11,760,357,96,22,89,181]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputList=e.QuickInputListFocus=void 0;const r=L.$;class h{constructor(M,N,P,F,O,B,W){var V,z,K;this._checked=!1,this._hidden=!1,this.hasCheckbox=F,this.index=P,this.fireButtonTriggered=O,this.fireSeparatorButtonTriggered=B,this._onChecked=W,this.onChecked=F?n.Event.map(n.Event.filter(this._onChecked.event,j=>j.listElement===this),j=>j.checked):n.Event.None,M.type==="separator"?this._separator=M:(this.item=M,N&&N.type==="separator"&&!N.buttons&&(this._separator=N),this.saneDescription=this.item.description,this.saneDetail=this.item.detail,this._labelHighlights=(V=this.item.highlights)===null||V===void 0?void 0:V.label,this._descriptionHighlights=(z=this.item.highlights)===null||z===void 0?void 0:z.description,this._detailHighlights=(K=this.item.highlights)===null||K===void 0?void 0:K.detail,this.saneTooltip=this.item.tooltip),this._init=new d.Lazy(()=>{var j;const x=(j=M.label)!==null&&j!==void 0?j:"",re=(0,i.parseLabelWithIcons)(x).text.trim(),ie=M.ariaLabel||[x,this.saneDescription,this.saneDetail].map(J=>(0,i.getCodiconAriaLabel)(J)).filter(J=>!!J).join(", ");return{saneLabel:x,saneSortLabel:re,saneAriaLabel:ie}})}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(M){this._element=M}get hidden(){return this._hidden}set hidden(M){this._hidden=M}get checked(){return this._checked}set checked(M){M!==this._checked&&(this._checked=M,this._onChecked.fire({listElement:this,checked:M}))}get separator(){return this._separator}set separator(M){this._separator=M}get labelHighlights(){return this._labelHighlights}set labelHighlights(M){this._labelHighlights=M}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(M){this._descriptionHighlights=M}get detailHighlights(){return this._detailHighlights}set detailHighlights(M){this._detailHighlights=M}}class u{constructor(M,N){this.themeService=M,this.hoverDelegate=N}get templateId(){return u.ID}renderTemplate(M){const N=Object.create(null);N.toDisposeElement=[],N.toDisposeTemplate=[],N.entry=L.append(M,r(".quick-input-list-entry"));const P=L.append(N.entry,r("label.quick-input-list-label"));N.toDisposeTemplate.push(L.addStandardDisposableListener(P,L.EventType.CLICK,z=>{N.checkbox.offsetParent||z.preventDefault()})),N.checkbox=L.append(P,r("input.quick-input-list-checkbox")),N.checkbox.type="checkbox",N.toDisposeTemplate.push(L.addStandardDisposableListener(N.checkbox,L.EventType.CHANGE,z=>{N.element.checked=N.checkbox.checked}));const F=L.append(P,r(".quick-input-list-rows")),O=L.append(F,r(".quick-input-list-row")),B=L.append(F,r(".quick-input-list-row"));N.label=new D.IconLabel(O,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),N.toDisposeTemplate.push(N.label),N.icon=L.prepend(N.label.element,r(".quick-input-list-icon"));const W=L.append(O,r(".quick-input-list-entry-keybinding"));N.keybinding=new S.KeybindingLabel(W,o.OS);const V=L.append(B,r(".quick-input-list-label-meta"));return N.detail=new D.IconLabel(V,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),N.toDisposeTemplate.push(N.detail),N.separator=L.append(N.entry,r(".quick-input-list-separator")),N.actionBar=new y.ActionBar(N.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),N.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),N.toDisposeTemplate.push(N.actionBar),N}renderElement(M,N,P){var F,O,B,W;P.element=M,M.element=(F=P.entry)!==null&&F!==void 0?F:void 0;const V=M.item?M.item:M.separator;P.checkbox.checked=M.checked,P.toDisposeElement.push(M.onChecked(J=>P.checkbox.checked=J));const{labelHighlights:z,descriptionHighlights:K,detailHighlights:j}=M;if(!((O=M.item)===null||O===void 0)&&O.iconPath){const J=(0,l.isDark)(this.themeService.getColorTheme().type)?M.item.iconPath.dark:(B=M.item.iconPath.light)!==null&&B!==void 0?B:M.item.iconPath.dark,X=s.URI.revive(J);P.icon.className="quick-input-list-icon",P.icon.style.backgroundImage=L.asCSSUrl(X)}else P.icon.style.backgroundImage="",P.icon.className=!((W=M.item)===null||W===void 0)&&W.iconClass?`quick-input-list-icon ${M.item.iconClass}`:"";let x;!M.saneTooltip&&M.saneDescription&&(x={markdown:{value:M.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:M.saneDescription});const re={matches:z||[],descriptionTitle:x,descriptionMatches:K||[],labelEscapeNewLines:!0};if(V.type!=="separator"?(re.extraClasses=V.iconClasses,re.italic=V.italic,re.strikethrough=V.strikethrough,P.entry.classList.remove("quick-input-list-separator-as-item")):P.entry.classList.add("quick-input-list-separator-as-item"),P.label.setLabel(M.saneLabel,M.saneDescription,re),P.keybinding.set(V.type==="separator"?void 0:V.keybinding),M.saneDetail){let J;M.saneTooltip||(J={markdown:{value:M.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:M.saneDetail}),P.detail.element.style.display="",P.detail.setLabel(M.saneDetail,void 0,{matches:j,title:J,labelEscapeNewLines:!0})}else P.detail.element.style.display="none";M.item&&M.separator&&M.separator.label?(P.separator.textContent=M.separator.label,P.separator.style.display=""):P.separator.style.display="none",P.entry.classList.toggle("quick-input-list-separator-border",!!M.separator);const ie=V.buttons;ie&&ie.length?(P.actionBar.push(ie.map((J,X)=>(0,c.quickInputButtonToAction)(J,`id-${X}`,()=>V.type!=="separator"?M.fireButtonTriggered({button:J,item:V}):M.fireSeparatorButtonTriggered({button:J,separator:V}))),{icon:!0,label:!1}),P.entry.classList.add("has-actions")):P.entry.classList.remove("has-actions")}disposeElement(M,N,P){P.toDisposeElement=(0,t.dispose)(P.toDisposeElement),P.actionBar.clear()}disposeTemplate(M){M.toDisposeElement=(0,t.dispose)(M.toDisposeElement),M.toDisposeTemplate=(0,t.dispose)(M.toDisposeTemplate)}}u.ID="listelement";class f{getHeight(M){return M.item?M.saneDetail?44:22:24}getTemplateId(M){return u.ID}}var C;(function(R){R[R.First=1]="First",R[R.Second=2]="Second",R[R.Last=3]="Last",R[R.Next=4]="Next",R[R.Previous=5]="Previous",R[R.NextPage=6]="NextPage",R[R.PreviousPage=7]="PreviousPage"})(C||(e.QuickInputListFocus=C={}));class _{constructor(M,N,P,F){this.parent=M,this.options=P,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnLabelMode="fuzzy",this.sortByLabel=!0,this._onChangedAllVisibleChecked=new n.Emitter,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new n.Emitter,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new n.Emitter,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new n.Emitter,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new n.Emitter,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new n.Emitter,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._onKeyDown=new n.Emitter,this.onKeyDown=this._onKeyDown.event,this._onLeave=new n.Emitter,this.onLeave=this._onLeave.event,this._listElementChecked=new n.Emitter,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=N,this.container=L.append(this.parent,r(".quick-input-list"));const O=new f,B=new A;this.list=P.createList("QuickInput",this.container,O,[new u(F,P.hoverDelegate)],{identityProvider:{getId:V=>{var z,K,j,x,re,ie,J,X;return(X=(ie=(x=(K=(z=V.item)===null||z===void 0?void 0:z.id)!==null&&K!==void 0?K:(j=V.item)===null||j===void 0?void 0:j.label)!==null&&x!==void 0?x:(re=V.separator)===null||re===void 0?void 0:re.id)!==null&&ie!==void 0?ie:(J=V.separator)===null||J===void 0?void 0:J.label)!==null&&X!==void 0?X:""}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:B}),this.list.getHTMLElement().id=N,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown(V=>{const z=new k.StandardKeyboardEvent(V);switch(z.keyCode){case 10:this.toggleCheckbox();break;case 31:(o.isMacintosh?V.metaKey:V.ctrlKey)&&this.list.setFocus((0,p.range)(this.list.length));break;case 16:{const K=this.list.getFocus();K.length===1&&K[0]===0&&this._onLeave.fire();break}case 18:{const K=this.list.getFocus();K.length===1&&K[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(z)})),this.disposables.push(this.list.onMouseDown(V=>{V.browserEvent.button!==2&&V.browserEvent.preventDefault()})),this.disposables.push(L.addDisposableListener(this.container,L.EventType.CLICK,V=>{(V.x||V.y)&&this._onLeave.fire()})),this.disposables.push(this.list.onMouseMiddleClick(V=>{this._onLeave.fire()})),this.disposables.push(this.list.onContextMenu(V=>{typeof V.index=="number"&&(V.browserEvent.preventDefault(),this.list.setSelection([V.index]))}));const W=new w.ThrottledDelayer(P.hoverDelegate.delay);this.disposables.push(this.list.onMouseOver(async V=>{var z;if(V.browserEvent.target instanceof HTMLAnchorElement){W.cancel();return}if(!(!(V.browserEvent.relatedTarget instanceof HTMLAnchorElement)&&L.isAncestor(V.browserEvent.relatedTarget,(z=V.element)===null||z===void 0?void 0:z.element)))try{await W.trigger(async()=>{V.element&&this.showHover(V.element)})}catch(K){if(!(0,a.isCancellationError)(K))throw K}})),this.disposables.push(this.list.onMouseOut(V=>{var z;L.isAncestor(V.browserEvent.relatedTarget,(z=V.element)===null||z===void 0?void 0:z.element)||W.cancel()})),this.disposables.push(W),this.disposables.push(this._listElementChecked.event(V=>this.fireCheckedEvents())),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onSeparatorButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return n.Event.map(this.list.onDidChangeFocus,M=>M.elements.map(N=>N.item))}get onDidChangeSelection(){return n.Event.map(this.list.onDidChangeSelection,M=>({items:M.elements.map(N=>N.item),event:M.browserEvent}))}get scrollTop(){return this.list.scrollTop}set scrollTop(M){this.list.scrollTop=M}get ariaLabel(){return this.list.getHTMLElement().ariaLabel}set ariaLabel(M){this.list.getHTMLElement().ariaLabel=M}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(M,N=!0){for(let P=0,F=M.length;P{N.hidden||(N.checked=M)})}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(M){this.elementDisposables=(0,t.dispose)(this.elementDisposables);const N=B=>this.fireButtonTriggered(B),P=B=>this.fireSeparatorButtonTriggered(B);this.inputElements=M;const F=new Map,O=this.parent.classList.contains("show-checkboxes");this.elements=M.reduce((B,W,V)=>{var z;const K=V>0?M[V-1]:void 0;if(W.type==="separator"&&!W.buttons)return B;const j=new h(W,K,V,O,N,P,this._listElementChecked),x=B.length;return B.push(j),F.set((z=j.item)!==null&&z!==void 0?z:j.separator,x),B},[]),this.elementsToIndexes=F,this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map(M=>M.item)}setFocusedElements(M){if(this.list.setFocus(M.filter(N=>this.elementsToIndexes.has(N)).map(N=>this.elementsToIndexes.get(N))),M.length>0){const N=this.list.getFocus()[0];typeof N=="number"&&this.list.reveal(N)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(M){this.list.setSelection(M.filter(N=>this.elementsToIndexes.has(N)).map(N=>this.elementsToIndexes.get(N)))}getCheckedElements(){return this.elements.filter(M=>M.checked).map(M=>M.item).filter(M=>!!M)}setCheckedElements(M){try{this._fireCheckedEvents=!1;const N=new Set;for(const P of M)N.add(P);for(const P of this.elements)P.checked=N.has(P.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(M){this.list.getHTMLElement().style.pointerEvents=M?"":"none"}focus(M){if(!this.list.length)return;switch(M===C.Second&&this.list.length<2&&(M=C.First),M){case C.First:this.list.scrollTop=0,this.list.focusFirst(void 0,P=>!!P.item);break;case C.Second:this.list.scrollTop=0,this.list.focusNth(1,void 0,P=>!!P.item);break;case C.Last:this.list.scrollTop=this.list.scrollHeight,this.list.focusLast(void 0,P=>!!P.item);break;case C.Next:{this.list.focusNext(void 0,!0,void 0,F=>!!F.item);const P=this.list.getFocus()[0];P!==0&&!this.elements[P-1].item&&this.list.firstVisibleIndex>P-1&&this.list.reveal(P-1);break}case C.Previous:{this.list.focusPrevious(void 0,!0,void 0,F=>!!F.item);const P=this.list.getFocus()[0];P!==0&&!this.elements[P-1].item&&this.list.firstVisibleIndex>P-1&&this.list.reveal(P-1);break}case C.NextPage:this.list.focusNextPage(void 0,P=>!!P.item);break;case C.PreviousPage:this.list.focusPreviousPage(void 0,P=>!!P.item);break}const N=this.list.getFocus()[0];typeof N=="number"&&this.list.reveal(N)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}showHover(M){var N,P,F;this._lastHover&&!this._lastHover.isDisposed&&((P=(N=this.options.hoverDelegate).onDidHideHover)===null||P===void 0||P.call(N),(F=this._lastHover)===null||F===void 0||F.dispose()),!(!M.element||!M.saneTooltip)&&(this._lastHover=this.options.hoverDelegate.showHover({content:M.saneTooltip,target:M.element,linkHandler:O=>{this.options.linkOpenerDelegate(O)},appearance:{showPointer:!0},container:this.container,position:{hoverPosition:1}},!1))}layout(M){this.list.getHTMLElement().style.maxHeight=M?`${Math.floor(M/44)*44+6}px`:"",this.list.layout()}filter(M){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;const N=M;if(M=M.trim(),!M||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this.elements.forEach(F=>{F.labelHighlights=void 0,F.descriptionHighlights=void 0,F.detailHighlights=void 0,F.hidden=!1;const O=F.index&&this.inputElements[F.index-1];F.item&&(F.separator=O&&O.type==="separator"&&!O.buttons?O:void 0)});else{let F;this.elements.forEach(O=>{var B,W,V,z;let K;this.matchOnLabelMode==="fuzzy"?K=this.matchOnLabel&&(B=(0,i.matchesFuzzyIconAware)(M,(0,i.parseLabelWithIcons)(O.saneLabel)))!==null&&B!==void 0?B:void 0:K=this.matchOnLabel&&(W=E(N,(0,i.parseLabelWithIcons)(O.saneLabel)))!==null&&W!==void 0?W:void 0;const j=this.matchOnDescription&&(V=(0,i.matchesFuzzyIconAware)(M,(0,i.parseLabelWithIcons)(O.saneDescription||"")))!==null&&V!==void 0?V:void 0,x=this.matchOnDetail&&(z=(0,i.matchesFuzzyIconAware)(M,(0,i.parseLabelWithIcons)(O.saneDetail||"")))!==null&&z!==void 0?z:void 0;if(K||j||x?(O.labelHighlights=K,O.descriptionHighlights=j,O.detailHighlights=x,O.hidden=!1):(O.labelHighlights=void 0,O.descriptionHighlights=void 0,O.detailHighlights=void 0,O.hidden=O.item?!O.item.alwaysShow:!0),O.item?O.separator=void 0:O.separator&&(O.hidden=!0),!this.sortByLabel){const re=O.index&&this.inputElements[O.index-1];F=re&&re.type==="separator"?re:F,F&&!O.hidden&&(O.separator=F,F=void 0)}})}const P=this.elements.filter(F=>!F.hidden);if(this.sortByLabel&&M){const F=M.toLowerCase();P.sort((O,B)=>T(O,B,F))}return this.elementsToIndexes=P.reduce((F,O,B)=>{var W;return F.set((W=O.item)!==null&&W!==void 0?W:O.separator,B),F},new Map),this.list.splice(0,this.list.length,P),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(P.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const M=this.list.getFocusedElements(),N=this.allVisibleChecked(M);for(const P of M)P.checked=!N}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(M){this.container.style.display=M?"":"none"}isDisplayed(){return this.container.style.display!=="none"}dispose(){this.elementDisposables=(0,t.dispose)(this.elementDisposables),this.disposables=(0,t.dispose)(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(M){this._onButtonTriggered.fire(M)}fireSeparatorButtonTriggered(M){this._onSeparatorButtonTriggered.fire(M)}style(M){this.list.style(M)}toggleHover(){const M=this.list.getFocusedElements()[0];if(!M?.saneTooltip)return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}const N=this.list.getFocusedElements()[0];if(!N)return;this.showHover(N);const P=new t.DisposableStore;P.add(this.list.onDidChangeFocus(F=>{F.indexes.length&&this.showHover(F.elements[0])})),this._lastHover&&P.add(this._lastHover),this._toggleHover=P,this.elementDisposables.push(this._toggleHover)}}e.QuickInputList=_,De([b.memoize],_.prototype,"onDidChangeFocus",null),De([b.memoize],_.prototype,"onDidChangeSelection",null);function E(R,M){const{text:N,iconOffsets:P}=M;if(!P||P.length===0)return I(R,N);const F=(0,g.ltrim)(N," "),O=N.length-F.length,B=I(R,F);if(B)for(const W of B){const V=P[W.start+O]+O;W.start+=V,W.end+=V}return B}function I(R,M){const N=M.toLowerCase().indexOf(R.toLowerCase());return N!==-1?[{start:N,end:N+R.length}]:null}function T(R,M,N){const P=R.labelHighlights||[],F=M.labelHighlights||[];return P.length&&!F.length?-1:!P.length&&F.length?1:P.length===0&&F.length===0?0:(0,v.compareAnything)(R.saneSortLabel,M.saneSortLabel,N)}class A{getWidgetAriaLabel(){return(0,m.localize)(0,null)}getAriaLabel(M){var N;return!((N=M.separator)===null||N===void 0)&&N.label?`${M.saneAriaLabel}, ${M.separator.label}`:M.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(M){return M.hasCheckbox?"checkbox":"option"}isChecked(M){if(M.hasCheckbox)return{value:M.checked,onDidChange:M.onChecked}}}}),define(ne[374],se([1,0,6,46,161,13,15,27,7,2,17,103,29,758,72,373,357,26,249,181]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputHoverDelegate=e.InputBox=e.QuickPick=e.backButton=void 0,e.backButton={iconClass:n.ThemeIcon.asClassName(p.Codicon.quickInputBack),tooltip:(0,i.localize)(0,null),handle:-1};class d extends v.Disposable{constructor(u){super(),this.ui=u,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=d.noPromptMessage,this._severity=a.default.Ignore,this.onDidTriggerButtonEmitter=this._register(new w.Emitter),this.onDidHideEmitter=this._register(new w.Emitter),this.onDisposeEmitter=this._register(new w.Emitter),this.visibleDisposables=this._register(new v.DisposableStore),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(u){this._title=u,this.update()}get description(){return this._description}set description(u){this._description=u,this.update()}get step(){return this._steps}set step(u){this._steps=u,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(u){this._totalSteps=u,this.update()}get enabled(){return this._enabled}set enabled(u){this._enabled=u,this.update()}get contextKey(){return this._contextKey}set contextKey(u){this._contextKey=u,this.update()}get busy(){return this._busy}set busy(u){this._busy=u,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(u){const f=this._ignoreFocusOut!==u&&!b.isIOS;this._ignoreFocusOut=u&&!b.isIOS,f&&this.update()}get buttons(){return this._buttons}set buttons(u){this._buttons=u,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(u){this._toggles=u??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(u){this._validationMessage=u,this.update()}get severity(){return this._severity}set severity(u){this._severity=u,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(u=>{this.buttons.indexOf(u)!==-1&&this.onDidTriggerButtonEmitter.fire(u)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(u=t.QuickInputHideReason.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:u})}update(){var u,f;if(!this.visible)return;const C=this.getTitle();C&&this.ui.title.textContent!==C?this.ui.title.textContent=C:!C&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText="\xA0");const _=this.getDescription();if(this.ui.description1.textContent!==_&&(this.ui.description1.textContent=_),this.ui.description2.textContent!==_&&(this.ui.description2.textContent=_),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?L.reset(this.ui.widget,this._widget):L.reset(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new S.TimeoutTimer,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const I=this.buttons.filter(A=>A===e.backButton).map((A,R)=>(0,g.quickInputButtonToAction)(A,`id-${R}`,async()=>this.onDidTriggerButtonEmitter.fire(A)));this.ui.leftActionBar.push(I,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const T=this.buttons.filter(A=>A!==e.backButton).map((A,R)=>(0,g.quickInputButtonToAction)(A,`id-${R}`,async()=>this.onDidTriggerButtonEmitter.fire(A)));this.ui.rightActionBar.push(T,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const I=(f=(u=this.toggles)===null||u===void 0?void 0:u.filter(T=>T instanceof y.Toggle))!==null&&f!==void 0?f:[];this.ui.inputBox.toggles=I}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const E=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==E&&(this._lastValidationMessage=E,L.reset(this.ui.message),(0,g.renderQuickInputDescription)(E,this.ui.message,{callback:I=>{this.ui.linkOpenerDelegate(I)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?(0,i.localize)(2,null,this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(u){if(this.ui.inputBox.showDecoration(u),u!==a.default.Ignore){const f=this.ui.inputBox.stylesForType(u);this.ui.message.style.color=f.foreground?`${f.foreground}`:"",this.ui.message.style.backgroundColor=f.background?`${f.background}`:"",this.ui.message.style.border=f.border?`1px solid ${f.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}d.noPromptMessage=(0,i.localize)(1,null);class s extends d{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new w.Emitter),this.onWillAcceptEmitter=this._register(new w.Emitter),this.onDidAcceptEmitter=this._register(new w.Emitter),this.onDidCustomEmitter=this._register(new w.Emitter),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=t.ItemActivation.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new w.Emitter),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new w.Emitter),this.onDidTriggerItemButtonEmitter=this._register(new w.Emitter),this.onDidTriggerSeparatorButtonEmitter=this._register(new w.Emitter),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=u=>u,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(u){this._quickNavigate=u,this.update()}get value(){return this._value}set value(u){this.doSetValue(u)}doSetValue(u,f){this._value!==u&&(this._value=u,f||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(u){this._ariaLabel=u,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(u){this._placeholder=u,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(u){this.ui.list.scrollTop=u}set items(u){this._items=u,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(u){this._canSelectMany=u,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(u){this._canAcceptInBackground=u}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(u){this._matchOnDescription=u,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(u){this._matchOnDetail=u,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(u){this._matchOnLabel=u,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(u){this._matchOnLabelMode=u,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(u){this._sortByLabel=u,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(u){this._keepScrollPosition=u}get itemActivation(){return this._itemActivation}set itemActivation(u){this._itemActivation=u}get activeItems(){return this._activeItems}set activeItems(u){this._activeItems=u,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(u){this._selectedItems=u,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?t.NO_KEY_MODS:this.ui.keyMods}set valueSelection(u){this._valueSelection=u,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(u){this._customButton=u,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(u){this._customButtonLabel=u,this.update()}get customHover(){return this._customButtonHover}set customHover(u){this._customButtonHover=u,this.update()}get ok(){return this._ok}set ok(u){this._ok=u,this.update()}get hideInput(){return!!this._hideInput}set hideInput(u){this._hideInput=u,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(o.QuickInputListFocus.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(u=>{this.doSetValue(u,!0)})),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown(u=>{switch(u.keyCode){case 18:this.ui.list.focus(o.QuickInputListFocus.Next),this.canSelectMany&&this.ui.list.domFocus(),L.EventHelper.stop(u,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(o.QuickInputListFocus.Previous):this.ui.list.focus(o.QuickInputListFocus.Last),this.canSelectMany&&this.ui.list.domFocus(),L.EventHelper.stop(u,!0);break;case 12:this.ui.list.focus(o.QuickInputListFocus.NextPage),this.canSelectMany&&this.ui.list.domFocus(),L.EventHelper.stop(u,!0);break;case 11:this.ui.list.focus(o.QuickInputListFocus.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),L.EventHelper.stop(u,!0);break;case 17:if(!this._canAcceptInBackground||!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:(u.ctrlKey||u.metaKey)&&!u.shiftKey&&!u.altKey&&(this.ui.list.focus(o.QuickInputListFocus.First),L.EventHelper.stop(u,!0));break;case 13:(u.ctrlKey||u.metaKey)&&!u.shiftKey&&!u.altKey&&(this.ui.list.focus(o.QuickInputListFocus.Last),L.EventHelper.stop(u,!0));break}})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this.ui.list.onDidChangeFocus(u=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&(0,D.equals)(u,this._activeItems,(f,C)=>f===C)||(this._activeItems=u,this.onDidChangeActiveEmitter.fire(u))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:u,event:f})=>{if(this.canSelectMany){u.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&(0,D.equals)(u,this._selectedItems,(C,_)=>C===_)||(this._selectedItems=u,this.onDidChangeSelectionEmitter.fire(u),u.length&&this.handleAccept(L.isMouseEvent(f)&&f.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(u=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&(0,D.equals)(u,this._selectedItems,(f,C)=>f===C)||(this._selectedItems=u,this.onDidChangeSelectionEmitter.fire(u)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(u=>this.onDidTriggerItemButtonEmitter.fire(u))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(u=>this.onDidTriggerSeparatorButtonEmitter.fire(u))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(u){let f=!1;this.onWillAcceptEmitter.fire({veto:()=>f=!0}),f||this.onDidAcceptEmitter.fire({inBackground:u})}registerQuickNavigation(){return L.addDisposableListener(this.ui.container,L.EventType.KEY_UP,u=>{if(this.canSelectMany||!this._quickNavigate)return;const f=new k.StandardKeyboardEvent(u),C=f.keyCode;this._quickNavigate.keybindings.some(I=>{const T=I.getChords();return T.length>1?!1:T[0].shiftKey&&C===4?!(f.ctrlKey||f.altKey||f.metaKey):!!(T[0].altKey&&C===6||T[0].ctrlKey&&C===5||T[0].metaKey&&C===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const u=this.keepScrollPosition?this.scrollTop:0,f=!!this.description,C={title:!!this.title||!!this.step||!!this.buttons.length,description:f,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||f,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(C),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let _=this.ariaLabel;if(!_&&C.inputBox&&(_=this.placeholder||s.DEFAULT_ARIA_LABEL,this.title&&(_+=` - ${this.title}`)),this.ui.list.ariaLabel!==_&&(this.ui.list.ariaLabel=_??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case t.ItemActivation.NONE:this._itemActivation=t.ItemActivation.FIRST;break;case t.ItemActivation.SECOND:this.ui.list.focus(o.QuickInputListFocus.Second),this._itemActivation=t.ItemActivation.FIRST;break;case t.ItemActivation.LAST:this.ui.list.focus(o.QuickInputListFocus.Last),this._itemActivation=t.ItemActivation.FIRST;break;default:this.trySelectFirst();break}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",C.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(o.QuickInputListFocus.First)),this.keepScrollPosition&&(this.scrollTop=u)}}e.QuickPick=s,s.DEFAULT_ARIA_LABEL=(0,i.localize)(3,null);class l extends d{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new w.Emitter),this.onDidAcceptEmitter=this._register(new w.Emitter),this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(u){this._value=u||"",this.update()}get placeholder(){return this._placeholder}set placeholder(u){this._placeholder=u,this.update()}get password(){return this._password}set password(u){this._password=u,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(u=>{u!==this.value&&(this._value=u,this.onDidValueChangeEmitter.fire(u))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const u={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(u),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}e.InputBox=l;let r=class extends c.WorkbenchHoverDelegate{constructor(u,f){super("element",!1,C=>this.getOverrideOptions(C),u,f)}getOverrideOptions(u){var f;const C=(u.content instanceof HTMLElement?(f=u.content.textContent)!==null&&f!==void 0?f:"":typeof u.content=="string"?u.content:u.content.value).includes(` +`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:C,skipFadeInAnimation:!0}}}};e.QuickInputHoverDelegate=r,e.QuickInputHoverDelegate=r=De([he(0,m.IConfigurationService),he(1,c.IHoverService)],r)}),define(ne[860],se([1,0,6,79,235,326,600,19,7,2,103,759,72,798,373,374,50]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputController=void 0;const m=L.$;class c extends v.Disposable{get container(){return this._container}constructor(s,l,r){super(),this.options=s,this.themeService=l,this.layoutService=r,this.enabled=!0,this.onDidAcceptEmitter=this._register(new w.Emitter),this.onDidCustomEmitter=this._register(new w.Emitter),this.onDidTriggerButtonEmitter=this._register(new w.Emitter),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new w.Emitter),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new w.Emitter),this.onHide=this.onHideEmitter.event,this.idPrefix=s.idPrefix,this._container=s.container,this.styles=s.styles,this._register(w.Event.runAndSubscribe(L.onDidRegisterWindow,({window:h,disposables:u})=>this.registerKeyModsListeners(h,u),{window:g.mainWindow,disposables:this._store})),this._register(L.onWillUnregisterWindow(h=>{this.ui&&L.getWindow(this.ui.container)===h&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(s,l){const r=h=>{this.keyMods.ctrlCmd=h.ctrlKey||h.metaKey,this.keyMods.alt=h.altKey};for(const h of[L.EventType.KEY_DOWN,L.EventType.KEY_UP,L.EventType.MOUSE_DOWN])l.add(L.addDisposableListener(s,h,r,!0))}getUI(s){if(this.ui)return s&&L.getWindow(this._container)!==L.getWindow(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const l=L.append(this._container,m(".quick-input-widget.show-file-icons"));l.tabIndex=-1,l.style.display="none";const r=L.createStyleSheet(l),h=L.append(l,m(".quick-input-titlebar")),u=this._register(new k.ActionBar(h,{hoverDelegate:this.options.hoverDelegate}));u.domNode.classList.add("quick-input-left-action-bar");const f=L.append(h,m(".quick-input-title")),C=this._register(new k.ActionBar(h,{hoverDelegate:this.options.hoverDelegate}));C.domNode.classList.add("quick-input-right-action-bar");const _=L.append(l,m(".quick-input-header")),E=L.append(_,m("input.quick-input-check-all"));E.type="checkbox",E.setAttribute("aria-label",(0,a.localize)(0,null)),this._register(L.addStandardDisposableListener(E,L.EventType.CHANGE,X=>{const Y=E.checked;ie.setAllVisibleChecked(Y)})),this._register(L.addDisposableListener(E,L.EventType.CLICK,X=>{(X.x||X.y)&&R.setFocus()}));const I=L.append(_,m(".quick-input-description")),T=L.append(_,m(".quick-input-and-message")),A=L.append(T,m(".quick-input-filter")),R=this._register(new i.QuickInputBox(A,this.styles.inputBox,this.styles.toggle));R.setAttribute("aria-describedby",`${this.idPrefix}message`);const M=L.append(A,m(".quick-input-visible-count"));M.setAttribute("aria-live","polite"),M.setAttribute("aria-atomic","true");const N=new D.CountBadge(M,{countFormat:(0,a.localize)(1,null)},this.styles.countBadge),P=L.append(A,m(".quick-input-count"));P.setAttribute("aria-live","polite");const F=new D.CountBadge(P,{countFormat:(0,a.localize)(2,null)},this.styles.countBadge),O=L.append(_,m(".quick-input-action")),B=this._register(new y.Button(O,this.styles.button));B.label=(0,a.localize)(3,null),this._register(B.onDidClick(X=>{this.onDidAcceptEmitter.fire()}));const W=L.append(_,m(".quick-input-action")),V=this._register(new y.Button(W,{...this.styles.button,supportIcons:!0}));V.label=(0,a.localize)(4,null),this._register(V.onDidClick(X=>{this.onDidCustomEmitter.fire()}));const z=L.append(T,m(`#${this.idPrefix}message.quick-input-message`)),K=this._register(new S.ProgressBar(l,this.styles.progressBar));K.getContainer().classList.add("quick-input-progress");const j=L.append(l,m(".quick-input-html-widget"));j.tabIndex=-1;const x=L.append(l,m(".quick-input-description")),re=this.idPrefix+"list",ie=this._register(new t.QuickInputList(l,re,this.options,this.themeService));R.setAttribute("aria-controls",re),this._register(ie.onDidChangeFocus(()=>{var X;R.setAttribute("aria-activedescendant",(X=ie.getActiveDescendant())!==null&&X!==void 0?X:"")})),this._register(ie.onChangedAllVisibleChecked(X=>{E.checked=X})),this._register(ie.onChangedVisibleCount(X=>{N.setCount(X)})),this._register(ie.onChangedCheckedCount(X=>{F.setCount(X)})),this._register(ie.onLeave(()=>{setTimeout(()=>{this.controller&&(R.setFocus(),this.controller instanceof o.QuickPick&&this.controller.canSelectMany&&ie.clearFocus())},0)}));const J=L.trackFocus(l);return this._register(J),this._register(L.addDisposableListener(l,L.EventType.FOCUS,X=>{L.isAncestor(X.relatedTarget,l)||(this.previousFocusElement=X.relatedTarget instanceof HTMLElement?X.relatedTarget:void 0)},!0)),this._register(J.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(n.QuickInputHideReason.Blur),this.previousFocusElement=void 0})),this._register(L.addDisposableListener(l,L.EventType.FOCUS,X=>{R.setFocus()})),this._register(L.addStandardDisposableListener(l,L.EventType.KEY_DOWN,X=>{if(!L.isAncestor(X.target,j))switch(X.keyCode){case 3:L.EventHelper.stop(X,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:L.EventHelper.stop(X,!0),this.hide(n.QuickInputHideReason.Gesture);break;case 2:if(!X.altKey&&!X.ctrlKey&&!X.metaKey){const Y=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(l.classList.contains("show-checkboxes")?Y.push("input"):Y.push("input[type=text]"),this.getUI().list.isDisplayed()&&Y.push(".monaco-list"),this.getUI().message&&Y.push(".quick-input-message a"),this.getUI().widget){if(L.isAncestor(X.target,this.getUI().widget))break;Y.push(".quick-input-html-widget")}const le=l.querySelectorAll(Y.join(", "));X.shiftKey&&X.target===le[0]?(L.EventHelper.stop(X,!0),ie.clearFocus()):!X.shiftKey&&L.isAncestor(X.target,le[le.length-1])&&(L.EventHelper.stop(X,!0),le[0].focus())}break;case 10:X.ctrlKey&&(L.EventHelper.stop(X,!0),this.getUI().list.toggleHover());break}})),this.ui={container:l,styleSheet:r,leftActionBar:u,titleBar:h,title:f,description1:x,description2:I,widget:j,rightActionBar:C,checkAll:E,inputContainer:T,filterContainer:A,inputBox:R,visibleCountContainer:M,visibleCount:N,countContainer:P,count:F,okContainer:O,ok:B,message:z,customButtonContainer:W,customButton:V,list:ie,progressBar:K,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:X=>this.show(X),hide:()=>this.hide(),setVisibilities:X=>this.setVisibilities(X),setEnabled:X=>this.setEnabled(X),setContextKey:X=>this.options.setContextKey(X),linkOpenerDelegate:X=>this.options.linkOpenerDelegate(X)},this.updateStyles(),this.ui}reparentUI(s){this.ui&&(this._container=s,L.append(this._container,this.ui.container))}pick(s,l={},r=p.CancellationToken.None){return new Promise((h,u)=>{let f=I=>{var T;f=h,(T=l.onKeyMods)===null||T===void 0||T.call(l,C.keyMods),h(I)};if(r.isCancellationRequested){f(void 0);return}const C=this.createQuickPick();let _;const E=[C,C.onDidAccept(()=>{if(C.canSelectMany)f(C.selectedItems.slice()),C.hide();else{const I=C.activeItems[0];I&&(f(I),C.hide())}}),C.onDidChangeActive(I=>{const T=I[0];T&&l.onDidFocus&&l.onDidFocus(T)}),C.onDidChangeSelection(I=>{if(!C.canSelectMany){const T=I[0];T&&(f(T),C.hide())}}),C.onDidTriggerItemButton(I=>l.onDidTriggerItemButton&&l.onDidTriggerItemButton({...I,removeItem:()=>{const T=C.items.indexOf(I.item);if(T!==-1){const A=C.items.slice(),R=A.splice(T,1),M=C.activeItems.filter(P=>P!==R[0]),N=C.keepScrollPosition;C.keepScrollPosition=!0,C.items=A,M&&(C.activeItems=M),C.keepScrollPosition=N}}})),C.onDidTriggerSeparatorButton(I=>{var T;return(T=l.onDidTriggerSeparatorButton)===null||T===void 0?void 0:T.call(l,I)}),C.onDidChangeValue(I=>{_&&!I&&(C.activeItems.length!==1||C.activeItems[0]!==_)&&(C.activeItems=[_])}),r.onCancellationRequested(()=>{C.hide()}),C.onDidHide(()=>{(0,v.dispose)(E),f(void 0)})];C.title=l.title,C.canSelectMany=!!l.canPickMany,C.placeholder=l.placeHolder,C.ignoreFocusOut=!!l.ignoreFocusLost,C.matchOnDescription=!!l.matchOnDescription,C.matchOnDetail=!!l.matchOnDetail,C.matchOnLabel=l.matchOnLabel===void 0||l.matchOnLabel,C.quickNavigate=l.quickNavigate,C.hideInput=!!l.hideInput,C.contextKey=l.contextKey,C.busy=!0,Promise.all([s,l.activeItem]).then(([I,T])=>{_=T,C.busy=!1,C.items=I,C.canSelectMany&&(C.selectedItems=I.filter(A=>A.type!=="separator"&&A.picked)),_&&(C.activeItems=[_])}),C.show(),Promise.resolve(s).then(void 0,I=>{u(I),C.hide()})})}createQuickPick(){const s=this.getUI(!0);return new o.QuickPick(s)}createInputBox(){const s=this.getUI(!0);return new o.InputBox(s)}show(s){const l=this.getUI(!0);this.onShowEmitter.fire();const r=this.controller;this.controller=s,r?.didHide(),this.setEnabled(!0),l.leftActionBar.clear(),l.title.textContent="",l.description1.textContent="",l.description2.textContent="",L.reset(l.widget),l.rightActionBar.clear(),l.checkAll.checked=!1,l.inputBox.placeholder="",l.inputBox.password=!1,l.inputBox.showDecoration(b.default.Ignore),l.visibleCount.setCount(0),l.count.setCount(0),L.reset(l.message),l.progressBar.stop(),l.list.setElements([]),l.list.matchOnDescription=!1,l.list.matchOnDetail=!1,l.list.matchOnLabel=!0,l.list.sortByLabel=!0,l.ignoreFocusOut=!1,l.inputBox.toggles=void 0;const h=this.options.backKeybindingLabel();o.backButton.tooltip=h?(0,a.localize)(5,null,h):(0,a.localize)(6,null),l.container.style.display="",this.updateLayout(),l.inputBox.setFocus()}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(s){const l=this.getUI();l.title.style.display=s.title?"":"none",l.description1.style.display=s.description&&(s.inputBox||s.checkAll)?"":"none",l.description2.style.display=s.description&&!(s.inputBox||s.checkAll)?"":"none",l.checkAll.style.display=s.checkAll?"":"none",l.inputContainer.style.display=s.inputBox?"":"none",l.filterContainer.style.display=s.inputBox?"":"none",l.visibleCountContainer.style.display=s.visibleCount?"":"none",l.countContainer.style.display=s.count?"":"none",l.okContainer.style.display=s.ok?"":"none",l.customButtonContainer.style.display=s.customButton?"":"none",l.message.style.display=s.message?"":"none",l.progressBar.getContainer().style.display=s.progressBar?"":"none",l.list.display(!!s.list),l.container.classList.toggle("show-checkboxes",!!s.checkBox),l.container.classList.toggle("hidden-input",!s.inputBox&&!s.description),this.updateLayout()}setEnabled(s){if(s!==this.enabled){this.enabled=s;for(const l of this.getUI().leftActionBar.viewItems)l.action.enabled=s;for(const l of this.getUI().rightActionBar.viewItems)l.action.enabled=s;this.getUI().checkAll.disabled=!s,this.getUI().inputBox.enabled=s,this.getUI().ok.enabled=s,this.getUI().list.enabled=s}}hide(s){var l,r;const h=this.controller;if(!h)return;const u=(l=this.ui)===null||l===void 0?void 0:l.container,f=u&&!L.isAncestorOfActiveElement(u);if(this.controller=null,this.onHideEmitter.fire(),u&&(u.style.display="none"),!f){let C=this.previousFocusElement;for(;C&&!C.offsetParent;)C=(r=C.parentElement)!==null&&r!==void 0?r:void 0;C?.offsetParent?(C.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}h.didHide(s)}layout(s,l){this.dimension=s,this.titleBarOffset=l,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const s=this.ui.container.style,l=Math.min(this.dimension.width*.62,c.MAX_WIDTH);s.width=l+"px",s.marginLeft="-"+l/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(s){this.styles=s,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:s,quickInputBackground:l,quickInputForeground:r,widgetBorder:h,widgetShadow:u}=this.styles.widget;this.ui.titleBar.style.backgroundColor=s??"",this.ui.container.style.backgroundColor=l??"",this.ui.container.style.color=r??"",this.ui.container.style.border=h?`1px solid ${h}`:"",this.ui.container.style.boxShadow=u?`0 0 8px 2px ${u}`:"",this.ui.list.style(this.styles.list);const f=[];this.styles.pickerGroup.pickerGroupBorder&&f.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&f.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&f.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(f.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&f.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&f.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&f.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&f.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&f.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),f.push("}"));const C=f.join(` +`);C!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=C)}}}e.QuickInputController=c,c.MAX_WIDTH=600}),define(ne[24],se([1,0,7,2,8,37,89]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Themable=e.registerThemingParticipant=e.Extensions=e.getThemeTypeSelector=e.themeColorFromId=e.IThemeService=void 0,e.IThemeService=(0,y.createDecorator)("themeService");function p(i){return{id:i}}e.themeColorFromId=p;function w(i){switch(i){case S.ColorScheme.DARK:return"vs-dark";case S.ColorScheme.HIGH_CONTRAST_DARK:return"hc-black";case S.ColorScheme.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}e.getThemeTypeSelector=w,e.Extensions={ThemingContribution:"base.contributions.theming"};class v{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new L.Emitter}onColorThemeChange(t){return this.themingParticipants.push(t),this.onThemingParticipantAddedEmitter.fire(t),(0,k.toDisposable)(()=>{const o=this.themingParticipants.indexOf(t);this.themingParticipants.splice(o,1)})}getThemingParticipants(){return this.themingParticipants}}const b=new v;D.Registry.add(e.Extensions.ThemingContribution,b);function a(i){return b.onColorThemeChange(i)}e.registerThemingParticipant=a;class n extends k.Disposable{constructor(t){super(),this.themeService=t,this.theme=t.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(o=>this.onThemeChange(o)))}onThemeChange(t){this.theme=t,this.updateStyles()}updateStyles(){}}e.Themable=n}),define(ne[861],se([1,0,7,2,67,24]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalStyleSheet=e.AbstractCodeEditorService=void 0;let S=class extends k.Disposable{constructor(v){super(),this._themeService=v,this._onWillCreateCodeEditor=this._register(new L.Emitter),this._onCodeEditorAdd=this._register(new L.Emitter),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new L.Emitter),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new L.Emitter),this._onDiffEditorAdd=this._register(new L.Emitter),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new L.Emitter),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new y.LinkedList,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(v){this._codeEditors[v.getId()]=v,this._onCodeEditorAdd.fire(v)}removeCodeEditor(v){delete this._codeEditors[v.getId()]&&this._onCodeEditorRemove.fire(v)}listCodeEditors(){return Object.keys(this._codeEditors).map(v=>this._codeEditors[v])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(v){this._diffEditors[v.getId()]=v,this._onDiffEditorAdd.fire(v)}listDiffEditors(){return Object.keys(this._diffEditors).map(v=>this._diffEditors[v])}getFocusedCodeEditor(){let v=null;const b=this.listCodeEditors();for(const a of b){if(a.hasTextFocus())return a;a.hasWidgetFocus()&&(v=a)}return v}removeDecorationType(v){const b=this._decorationOptionProviders.get(v);b&&(b.refCount--,b.refCount<=0&&(this._decorationOptionProviders.delete(v),b.dispose(),this.listCodeEditors().forEach(a=>a.removeDecorationsByType(v))))}setModelProperty(v,b,a){const n=v.toString();let i;this._modelProperties.has(n)?i=this._modelProperties.get(n):(i=new Map,this._modelProperties.set(n,i)),i.set(b,a)}getModelProperty(v,b){const a=v.toString();if(this._modelProperties.has(a))return this._modelProperties.get(a).get(b)}async openCodeEditor(v,b,a){for(const n of this._codeEditorOpenHandlers){const i=await n(v,b,a);if(i!==null)return i}return null}registerCodeEditorOpenHandler(v){const b=this._codeEditorOpenHandlers.unshift(v);return(0,k.toDisposable)(b)}};e.AbstractCodeEditorService=S,e.AbstractCodeEditorService=S=De([he(0,D.IThemeService)],S);class p{constructor(v){this._styleSheet=v}}e.GlobalStyleSheet=p}),define(ne[862],se([1,0,45,24,31,249,56,8,799,2,6,34,46,71,125,50]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverService=void 0;let g=class{constructor(s,l,r,h,u,f){this._instantiationService=s,this._contextViewService=l,this._keybindingService=h,this._layoutService=u,this._accessibilityService=f,r.onDidShowContextMenu(()=>this.hideHover())}showHover(s,l,r){var h,u,f,C;if(m(this._currentHoverOptions)===m(s)||this._currentHover&&(!((u=(h=this._currentHoverOptions)===null||h===void 0?void 0:h.persistence)===null||u===void 0)&&u.sticky))return;this._currentHoverOptions=s,this._lastHoverOptions=s;const _=s.trapFocus||this._accessibilityService.isScreenReaderOptimized(),E=(0,b.getActiveElement)();r||(_&&E?this._lastFocusedElementBeforeOpen=E:this._lastFocusedElementBeforeOpen=void 0);const I=new v.DisposableStore,T=this._instantiationService.createInstance(w.HoverWidget,s);if(!((f=s.persistence)===null||f===void 0)&&f.sticky&&(T.isLocked=!0),T.onDispose(()=>{var R,M;((R=this._currentHover)===null||R===void 0?void 0:R.domNode)&&(0,b.isAncestorOfActiveElement)(this._currentHover.domNode)&&((M=this._lastFocusedElementBeforeOpen)===null||M===void 0||M.focus()),this._currentHoverOptions===s&&(this._currentHoverOptions=void 0),I.dispose()}),!s.container){const R=s.target instanceof HTMLElement?s.target:s.target.targetElements[0];s.container=this._layoutService.getContainer((0,b.getWindow)(R))}const A=this._contextViewService;if(A.showContextView(new c(T,l),s.container),T.onRequestLayout(()=>A.layout()),!((C=s.persistence)===null||C===void 0)&&C.sticky)I.add((0,b.addDisposableListener)((0,b.getWindow)(s.container).document,b.EventType.MOUSE_DOWN,R=>{(0,b.isAncestor)(R.target,T.domNode)||this.doHideHover()}));else{if("targetElements"in s.target)for(const M of s.target.targetElements)I.add((0,b.addDisposableListener)(M,b.EventType.CLICK,()=>this.hideHover()));else I.add((0,b.addDisposableListener)(s.target,b.EventType.CLICK,()=>this.hideHover()));const R=(0,b.getActiveElement)();if(R){const M=(0,b.getWindow)(R).document;I.add((0,b.addDisposableListener)(R,b.EventType.KEY_DOWN,N=>{var P;return this._keyDown(N,T,!!(!((P=s.persistence)===null||P===void 0)&&P.hideOnKeyDown))})),I.add((0,b.addDisposableListener)(M,b.EventType.KEY_DOWN,N=>{var P;return this._keyDown(N,T,!!(!((P=s.persistence)===null||P===void 0)&&P.hideOnKeyDown))})),I.add((0,b.addDisposableListener)(R,b.EventType.KEY_UP,N=>this._keyUp(N,T))),I.add((0,b.addDisposableListener)(M,b.EventType.KEY_UP,N=>this._keyUp(N,T)))}}if("IntersectionObserver"in o.mainWindow){const R=new IntersectionObserver(N=>this._intersectionChange(N,T),{threshold:0}),M="targetElements"in s.target?s.target.targetElements[0]:s.target;R.observe(M),I.add((0,v.toDisposable)(()=>R.disconnect()))}return this._currentHover=T,T}hideHover(){var s;!((s=this._currentHover)===null||s===void 0)&&s.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewService.hideContextView()}_intersectionChange(s,l){s[s.length-1].isIntersecting||l.dispose()}_keyDown(s,l,r){var h,u;if(s.key==="Alt"){l.isLocked=!0;return}const f=new n.StandardKeyboardEvent(s);this._keybindingService.resolveKeyboardEvent(f).getSingleModifierDispatchChords().some(_=>!!_)||this._keybindingService.softDispatch(f,f.target).kind!==0||r&&(!(!((h=this._currentHoverOptions)===null||h===void 0)&&h.trapFocus)||s.key!=="Tab")&&(this.hideHover(),(u=this._lastFocusedElementBeforeOpen)===null||u===void 0||u.focus())}_keyUp(s,l){var r;s.key==="Alt"&&(l.isLocked=!1,l.isMouseIn||(this.hideHover(),(r=this._lastFocusedElementBeforeOpen)===null||r===void 0||r.focus()))}};e.HoverService=g,e.HoverService=g=De([he(0,p.IInstantiationService),he(1,S.IContextViewService),he(2,S.IContextMenuService),he(3,a.IKeybindingService),he(4,t.ILayoutService),he(5,i.IAccessibilityService)],g);function m(d){var s;if(d!==void 0)return(s=d?.id)!==null&&s!==void 0?s:d}class c{get anchorPosition(){return this._hover.anchor}constructor(s,l=!1){this._hover=s,this._focus=l}render(s){return this._hover.render(s),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}(0,L.registerSingleton)(D.IHoverService,g,1),(0,k.registerThemingParticipant)((d,s)=>{const l=d.getColor(y.editorHoverBorder);l&&(s.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${l.transparent(.5)}; }`),s.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${l.transparent(.5)}; }`))})}),define(ne[863],se([1,0,6,41,78,55,24]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScrollbar=void 0;class p extends D.ViewPart{constructor(v,b,a,n){super(v);const i=this._context.configuration.options,t=i.get(103),o=i.get(75),g=i.get(40),m=i.get(106),c={listenOnDomNode:a.domNode,className:"editor-scrollable "+(0,S.getThemeTypeSelector)(v.theme.type),useShadows:!1,lazyRender:!0,vertical:t.vertical,horizontal:t.horizontal,verticalHasArrows:t.verticalHasArrows,horizontalHasArrows:t.horizontalHasArrows,verticalScrollbarSize:t.verticalScrollbarSize,verticalSliderSize:t.verticalSliderSize,horizontalScrollbarSize:t.horizontalScrollbarSize,horizontalSliderSize:t.horizontalSliderSize,handleMouseWheel:t.handleMouseWheel,alwaysConsumeMouseWheel:t.alwaysConsumeMouseWheel,arrowSize:t.arrowSize,mouseWheelScrollSensitivity:o,fastScrollSensitivity:g,scrollPredominantAxis:m,scrollByPage:t.scrollByPage};this.scrollbar=this._register(new y.SmoothScrollableElement(b.domNode,c,this._context.viewLayout.getScrollable())),D.PartFingerprints.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=(0,k.createFastDomNode)(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const d=(s,l,r)=>{const h={};if(l){const u=s.scrollTop;u&&(h.scrollTop=this._context.viewLayout.getCurrentScrollTop()+u,s.scrollTop=0)}if(r){const u=s.scrollLeft;u&&(h.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+u,s.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(h,1)};this._register(L.addDisposableListener(a.domNode,"scroll",s=>d(a.domNode,!0,!0))),this._register(L.addDisposableListener(b.domNode,"scroll",s=>d(b.domNode,!0,!1))),this._register(L.addDisposableListener(n.domNode,"scroll",s=>d(n.domNode,!0,!1))),this._register(L.addDisposableListener(this.scrollbarDomNode.domNode,"scroll",s=>d(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const v=this._context.configuration.options,b=v.get(144);this.scrollbarDomNode.setLeft(b.contentLeft),v.get(73).side==="right"?this.scrollbarDomNode.setWidth(b.contentWidth+b.minimap.minimapWidth):this.scrollbarDomNode.setWidth(b.contentWidth),this.scrollbarDomNode.setHeight(b.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(v){this.scrollbar.delegateVerticalScrollbarPointerDown(v)}delegateScrollFromMouseWheelEvent(v){this.scrollbar.delegateScrollFromMouseWheelEvent(v)}onConfigurationChanged(v){if(v.hasChanged(103)||v.hasChanged(75)||v.hasChanged(40)){const b=this._context.configuration.options,a=b.get(103),n=b.get(75),i=b.get(40),t=b.get(106),o={vertical:a.vertical,horizontal:a.horizontal,verticalScrollbarSize:a.verticalScrollbarSize,horizontalScrollbarSize:a.horizontalScrollbarSize,scrollByPage:a.scrollByPage,handleMouseWheel:a.handleMouseWheel,mouseWheelScrollSensitivity:n,fastScrollSensitivity:i,scrollPredominantAxis:t};this.scrollbar.updateOptions(o)}return v.hasChanged(144)&&this._setLayout(),!0}onScrollChanged(v){return!0}onThemeChanged(v){return this.scrollbar.updateClassName("editor-scrollable "+(0,S.getThemeTypeSelector)(this._context.theme.type)),!0}prepareRender(v){}render(v){this.scrollbar.renderNow()}}e.EditorScrollbar=p}),define(ne[864],se([1,0,118,31,24,451]),function(ee,e,L,k,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionsOverlay=void 0;class D{constructor(n){this.left=n.left,this.width=n.width,this.startStyle=null,this.endStyle=null}}class S{constructor(n,i){this.lineNumber=n,this.ranges=i}}function p(a){return new D(a)}function w(a){return new S(a.lineNumber,a.ranges.map(p))}class v extends L.DynamicViewOverlay{constructor(n){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=n;const i=this._context.configuration.options;this._lineHeight=i.get(67),this._roundedSelection=i.get(101),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(n){const i=this._context.configuration.options;return this._lineHeight=i.get(67),this._roundedSelection=i.get(101),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(n){return this._selections=n.selections.slice(0),!0}onDecorationsChanged(n){return!0}onFlushed(n){return!0}onLinesChanged(n){return!0}onLinesDeleted(n){return!0}onLinesInserted(n){return!0}onScrollChanged(n){return n.scrollTopChanged}onZonesChanged(n){return!0}_visibleRangesHaveGaps(n){for(let i=0,t=n.length;i1)return!0;return!1}_enrichVisibleRangesWithStyle(n,i,t){const o=this._typicalHalfwidthCharacterWidth/4;let g=null,m=null;if(t&&t.length>0&&i.length>0){const c=i[0].lineNumber;if(c===n.startLineNumber)for(let s=0;!g&&s=0;s--)t[s].lineNumber===d&&(m=t[s].ranges[0]);g&&!g.startStyle&&(g=null),m&&!m.startStyle&&(m=null)}for(let c=0,d=i.length;c0){const f=i[c-1].ranges[0].left,C=i[c-1].ranges[0].left+i[c-1].ranges[0].width;b(l-f)f&&(h.top=1),b(r-C)'}_actualRenderOneSelection(n,i,t,o){if(o.length===0)return;const g=!!o[0].ranges[0].startStyle,m=this._lineHeight.toString(),c=(this._lineHeight-1).toString(),d=o[0].lineNumber,s=o[o.length-1].lineNumber;for(let l=0,r=o.length;l1,s)}this._previousFrameVisibleRangesWithStyle=g,this._renderResult=i.map(([m,c])=>m+c)}render(n,i){if(!this._renderResult)return"";const t=i-n;return t<0||t>=this._renderResult.length?"":this._renderResult[t]}}e.SelectionsOverlay=v,v.SELECTION_CLASS_NAME="selected-text",v.SELECTION_TOP_LEFT="top-left-radius",v.SELECTION_BOTTOM_LEFT="bottom-left-radius",v.SELECTION_TOP_RIGHT="top-right-radius",v.SELECTION_BOTTOM_RIGHT="bottom-right-radius",v.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",v.ROUNDED_PIECE_WIDTH=10,(0,y.registerThemingParticipant)((a,n)=>{const i=a.getColor(k.editorSelectionForeground);i&&!i.isTransparent()&&n.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${i}; }`)});function b(a){return a<0?-a:a}}),define(ne[375],se([1,0,6,41,203,2,32,87,9,308,31,24]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerFeature=void 0;let i=n=class extends D.Disposable{constructor(o,g,m,c,d,s,l){super(),this._editors=o,this._rootElement=g,this._diffModel=m,this._rootWidth=c,this._rootHeight=d,this._modifiedEditorLayoutInfo=s,this._themeService=l,this.width=n.ENTIRE_DIFF_OVERVIEW_WIDTH;const r=(0,S.observableFromEvent)(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),h=(0,S.derived)(C=>{const _=r.read(C),E=_.getColor(b.diffOverviewRulerInserted)||(_.getColor(b.diffInserted)||b.defaultInsertColor).transparent(2),I=_.getColor(b.diffOverviewRulerRemoved)||(_.getColor(b.diffRemoved)||b.defaultRemoveColor).transparent(2);return{insertColor:E,removeColor:I}}),u=(0,k.createFastDomNode)(document.createElement("div"));u.setClassName("diffViewport"),u.setPosition("absolute");const f=(0,L.h)("div.diffOverview",{style:{position:"absolute",top:"0px",width:n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register((0,p.appendRemoveOnDispose)(f,u.domNode)),this._register((0,L.addStandardDisposableListener)(f,L.EventType.POINTER_DOWN,C=>{this._editors.modified.delegateVerticalScrollbarPointerDown(C)})),this._register((0,L.addDisposableListener)(f,L.EventType.MOUSE_WHEEL,C=>{this._editors.modified.delegateScrollFromMouseWheelEvent(C)},{passive:!1})),this._register((0,p.appendRemoveOnDispose)(this._rootElement,f)),this._register((0,S.autorunWithStore)((C,_)=>{const E=this._diffModel.read(C),I=this._editors.original.createOverviewRuler("original diffOverviewRuler");I&&(_.add(I),_.add((0,p.appendRemoveOnDispose)(f,I.getDomNode())));const T=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(T&&(_.add(T),_.add((0,p.appendRemoveOnDispose)(f,T.getDomNode()))),!I||!T)return;const A=(0,S.observableSignalFromEvent)("viewZoneChanged",this._editors.original.onDidChangeViewZones),R=(0,S.observableSignalFromEvent)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),M=(0,S.observableSignalFromEvent)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),N=(0,S.observableSignalFromEvent)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);_.add((0,S.autorun)(P=>{var F;A.read(P),R.read(P),M.read(P),N.read(P);const O=h.read(P),B=(F=E?.diff.read(P))===null||F===void 0?void 0:F.mappings;function W(K,j,x){const re=x._getViewModel();return re?K.filter(ie=>ie.length>0).map(ie=>{const J=re.coordinatesConverter.convertModelPositionToViewPosition(new w.Position(ie.startLineNumber,1)),X=re.coordinatesConverter.convertModelPositionToViewPosition(new w.Position(ie.endLineNumberExclusive,1)),Y=X.lineNumber-J.lineNumber;return new v.OverviewRulerZone(J.lineNumber,X.lineNumber,Y,j.toString())}):[]}const V=W((B||[]).map(K=>K.lineRangeMapping.original),O.removeColor,this._editors.original),z=W((B||[]).map(K=>K.lineRangeMapping.modified),O.insertColor,this._editors.modified);I?.setZones(V),T?.setZones(z)})),_.add((0,S.autorun)(P=>{const F=this._rootHeight.read(P),O=this._rootWidth.read(P),B=this._modifiedEditorLayoutInfo.read(P);if(B){const W=n.ENTIRE_DIFF_OVERVIEW_WIDTH-2*n.ONE_OVERVIEW_WIDTH;I.setLayout({top:0,height:F,right:W+n.ONE_OVERVIEW_WIDTH,width:n.ONE_OVERVIEW_WIDTH}),T.setLayout({top:0,height:F,right:0,width:n.ONE_OVERVIEW_WIDTH});const V=this._editors.modifiedScrollTop.read(P),z=this._editors.modifiedScrollHeight.read(P),K=this._editors.modified.getOption(103),j=new y.ScrollbarState(K.verticalHasArrows?K.arrowSize:0,K.verticalScrollbarSize,0,B.height,z,V);u.setTop(j.getSliderPosition()),u.setHeight(j.getSliderSize())}else u.setTop(0),u.setHeight(0);f.style.height=F+"px",f.style.left=O-n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",u.setWidth(n.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};e.OverviewRulerFeature=i,i.ONE_OVERVIEW_WIDTH=15,i.ENTIRE_DIFF_OVERVIEW_WIDTH=n.ONE_OVERVIEW_WIDTH*2,e.OverviewRulerFeature=i=n=De([he(6,a.IThemeService)],i)}),define(ne[865],se([1,0,7,2,32,375,36,633,8,34,9]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorEditors=void 0;let a=class extends k.Disposable{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(i,t,o,g,m,c,d){super(),this.originalEditorElement=i,this.modifiedEditorElement=t,this._options=o,this._createInnerEditor=m,this._instantiationService=c,this._keybindingService=d,this._onDidContentSizeChange=this._register(new L.Emitter),this.original=this._register(this._createLeftHandSideEditor(o.editorOptions.get(),g.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(o.editorOptions.get(),g.modifiedEditor||{})),this.modifiedModel=(0,y.observableFromEvent)(this.modified.onDidChangeModel,()=>this.modified.getModel()),this.modifiedScrollTop=(0,y.observableFromEvent)(this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=(0,y.observableFromEvent)(this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedSelections=(0,y.observableFromEvent)(this.modified.onDidChangeCursorSelection,()=>{var s;return(s=this.modified.getSelections())!==null&&s!==void 0?s:[]}),this.modifiedCursor=(0,y.derivedOpts)({owner:this,equalityComparer:b.Position.equals},s=>{var l,r;return(r=(l=this.modifiedSelections.read(s)[0])===null||l===void 0?void 0:l.getPosition())!==null&&r!==void 0?r:new b.Position(1,1)}),this.originalCursor=(0,y.observableFromEvent)(this.original.onDidChangeCursorPosition,()=>{var s;return(s=this.original.getPosition())!==null&&s!==void 0?s:new b.Position(1,1)}),this._register((0,y.autorunHandleChanges)({createEmptyChangeSummary:()=>({}),handleChange:(s,l)=>(s.didChange(o.editorOptions)&&Object.assign(l,s.change.changedOptions),!0)},(s,l)=>{o.editorOptions.read(s),this._options.renderSideBySide.read(s),this.modified.updateOptions(this._adjustOptionsForRightHandSide(s,l)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(s,l))}))}_createLeftHandSideEditor(i,t){const o=this._adjustOptionsForLeftHandSide(void 0,i),g=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,o,t);return g.setContextValue("isInDiffLeftEditor",!0),g}_createRightHandSideEditor(i,t){const o=this._adjustOptionsForRightHandSide(void 0,i),g=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,o,t);return g.setContextValue("isInDiffRightEditor",!0),g}_constructInnerEditor(i,t,o,g){const m=this._createInnerEditor(i,t,o,g);return this._register(m.onDidContentSizeChange(c=>{const d=this.original.getContentWidth()+this.modified.getContentWidth()+D.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,s=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:s,contentWidth:d,contentHeightChanged:c.contentHeightChanged,contentWidthChanged:c.contentWidthChanged})})),m}_adjustOptionsForLeftHandSide(i,t){const o=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(o.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},o.wordWrapOverride1=this._options.diffWordWrap.get()):(o.wordWrapOverride1="off",o.wordWrapOverride2="off",o.stickyScroll={enabled:!1},o.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),o.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(o.ariaLabel=t.originalAriaLabel),o.ariaLabel=this._updateAriaLabel(o.ariaLabel),o.readOnly=!this._options.originalEditable.get(),o.dropIntoEditor={enabled:!o.readOnly},o.extraEditorClassName="original-in-monaco-diff-editor",o}_adjustOptionsForRightHandSide(i,t){const o=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(o.ariaLabel=t.modifiedAriaLabel),o.ariaLabel=this._updateAriaLabel(o.ariaLabel),o.wordWrapOverride1=this._options.diffWordWrap.get(),o.revealHorizontalRightPadding=S.EditorOptions.revealHorizontalRightPadding.defaultValue+D.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,o.scrollbar.verticalHasArrows=!1,o.extraEditorClassName="modified-in-monaco-diff-editor",o}_adjustOptionsForSubEditor(i){const t={...i,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(i){var t;i||(i="");const o=(0,p.localize)(0,null,(t=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))===null||t===void 0?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?i+o:i?i.replaceAll(o,""):""}};e.DiffEditorEditors=a,e.DiffEditorEditors=a=De([he(5,w.IInstantiationService),he(6,v.IKeybindingService)],a)}),define(ne[83],se([1,0,648,39,31,24]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorUnicodeHighlightBackground=e.editorUnicodeHighlightBorder=e.editorBracketPairGuideActiveBackground6=e.editorBracketPairGuideActiveBackground5=e.editorBracketPairGuideActiveBackground4=e.editorBracketPairGuideActiveBackground3=e.editorBracketPairGuideActiveBackground2=e.editorBracketPairGuideActiveBackground1=e.editorBracketPairGuideBackground6=e.editorBracketPairGuideBackground5=e.editorBracketPairGuideBackground4=e.editorBracketPairGuideBackground3=e.editorBracketPairGuideBackground2=e.editorBracketPairGuideBackground1=e.editorBracketHighlightingUnexpectedBracketForeground=e.editorBracketHighlightingForeground6=e.editorBracketHighlightingForeground5=e.editorBracketHighlightingForeground4=e.editorBracketHighlightingForeground3=e.editorBracketHighlightingForeground2=e.editorBracketHighlightingForeground1=e.overviewRulerInfo=e.overviewRulerWarning=e.overviewRulerError=e.overviewRulerRangeHighlight=e.ghostTextBackground=e.ghostTextForeground=e.ghostTextBorder=e.editorUnnecessaryCodeOpacity=e.editorUnnecessaryCodeBorder=e.editorGutter=e.editorOverviewRulerBackground=e.editorOverviewRulerBorder=e.editorBracketMatchBorder=e.editorBracketMatchBackground=e.editorCodeLensForeground=e.editorRuler=e.editorDimmedLineNumber=e.editorActiveLineNumber=e.editorActiveIndentGuide6=e.editorActiveIndentGuide5=e.editorActiveIndentGuide4=e.editorActiveIndentGuide3=e.editorActiveIndentGuide2=e.editorActiveIndentGuide1=e.editorIndentGuide6=e.editorIndentGuide5=e.editorIndentGuide4=e.editorIndentGuide3=e.editorIndentGuide2=e.editorIndentGuide1=e.deprecatedEditorActiveIndentGuides=e.deprecatedEditorIndentGuides=e.editorLineNumbers=e.editorWhitespaces=e.editorCursorBackground=e.editorCursorForeground=e.editorSymbolHighlightBorder=e.editorSymbolHighlight=e.editorRangeHighlightBorder=e.editorRangeHighlight=e.editorLineHighlightBorder=e.editorLineHighlight=void 0,e.editorLineHighlight=(0,y.registerColor)("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.localize(0,null)),e.editorLineHighlightBorder=(0,y.registerColor)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:y.contrastBorder},L.localize(1,null)),e.editorRangeHighlight=(0,y.registerColor)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},L.localize(2,null),!0),e.editorRangeHighlightBorder=(0,y.registerColor)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},L.localize(3,null),!0),e.editorSymbolHighlight=(0,y.registerColor)("editor.symbolHighlightBackground",{dark:y.editorFindMatchHighlight,light:y.editorFindMatchHighlight,hcDark:null,hcLight:null},L.localize(4,null),!0),e.editorSymbolHighlightBorder=(0,y.registerColor)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},L.localize(5,null),!0),e.editorCursorForeground=(0,y.registerColor)("editorCursor.foreground",{dark:"#AEAFAD",light:k.Color.black,hcDark:k.Color.white,hcLight:"#0F4A85"},L.localize(6,null)),e.editorCursorBackground=(0,y.registerColor)("editorCursor.background",null,L.localize(7,null)),e.editorWhitespaces=(0,y.registerColor)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},L.localize(8,null)),e.editorLineNumbers=(0,y.registerColor)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:k.Color.white,hcLight:"#292929"},L.localize(9,null)),e.deprecatedEditorIndentGuides=(0,y.registerColor)("editorIndentGuide.background",{dark:e.editorWhitespaces,light:e.editorWhitespaces,hcDark:e.editorWhitespaces,hcLight:e.editorWhitespaces},L.localize(10,null),!1,L.localize(11,null)),e.deprecatedEditorActiveIndentGuides=(0,y.registerColor)("editorIndentGuide.activeBackground",{dark:e.editorWhitespaces,light:e.editorWhitespaces,hcDark:e.editorWhitespaces,hcLight:e.editorWhitespaces},L.localize(12,null),!1,L.localize(13,null)),e.editorIndentGuide1=(0,y.registerColor)("editorIndentGuide.background1",{dark:e.deprecatedEditorIndentGuides,light:e.deprecatedEditorIndentGuides,hcDark:e.deprecatedEditorIndentGuides,hcLight:e.deprecatedEditorIndentGuides},L.localize(14,null)),e.editorIndentGuide2=(0,y.registerColor)("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(15,null)),e.editorIndentGuide3=(0,y.registerColor)("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(16,null)),e.editorIndentGuide4=(0,y.registerColor)("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(17,null)),e.editorIndentGuide5=(0,y.registerColor)("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(18,null)),e.editorIndentGuide6=(0,y.registerColor)("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(19,null)),e.editorActiveIndentGuide1=(0,y.registerColor)("editorIndentGuide.activeBackground1",{dark:e.deprecatedEditorActiveIndentGuides,light:e.deprecatedEditorActiveIndentGuides,hcDark:e.deprecatedEditorActiveIndentGuides,hcLight:e.deprecatedEditorActiveIndentGuides},L.localize(20,null)),e.editorActiveIndentGuide2=(0,y.registerColor)("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(21,null)),e.editorActiveIndentGuide3=(0,y.registerColor)("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(22,null)),e.editorActiveIndentGuide4=(0,y.registerColor)("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(23,null)),e.editorActiveIndentGuide5=(0,y.registerColor)("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(24,null)),e.editorActiveIndentGuide6=(0,y.registerColor)("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(25,null));const S=(0,y.registerColor)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},L.localize(26,null),!1,L.localize(27,null));e.editorActiveLineNumber=(0,y.registerColor)("editorLineNumber.activeForeground",{dark:S,light:S,hcDark:S,hcLight:S},L.localize(28,null)),e.editorDimmedLineNumber=(0,y.registerColor)("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.localize(29,null)),e.editorRuler=(0,y.registerColor)("editorRuler.foreground",{dark:"#5A5A5A",light:k.Color.lightgrey,hcDark:k.Color.white,hcLight:"#292929"},L.localize(30,null)),e.editorCodeLensForeground=(0,y.registerColor)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},L.localize(31,null)),e.editorBracketMatchBackground=(0,y.registerColor)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},L.localize(32,null)),e.editorBracketMatchBorder=(0,y.registerColor)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:y.contrastBorder,hcLight:y.contrastBorder},L.localize(33,null)),e.editorOverviewRulerBorder=(0,y.registerColor)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},L.localize(34,null)),e.editorOverviewRulerBackground=(0,y.registerColor)("editorOverviewRuler.background",null,L.localize(35,null)),e.editorGutter=(0,y.registerColor)("editorGutter.background",{dark:y.editorBackground,light:y.editorBackground,hcDark:y.editorBackground,hcLight:y.editorBackground},L.localize(36,null)),e.editorUnnecessaryCodeBorder=(0,y.registerColor)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:y.contrastBorder},L.localize(37,null)),e.editorUnnecessaryCodeOpacity=(0,y.registerColor)("editorUnnecessaryCode.opacity",{dark:k.Color.fromHex("#000a"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},L.localize(38,null)),e.ghostTextBorder=(0,y.registerColor)("editorGhostText.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:k.Color.fromHex("#292929").transparent(.8)},L.localize(39,null)),e.ghostTextForeground=(0,y.registerColor)("editorGhostText.foreground",{dark:k.Color.fromHex("#ffffff56"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},L.localize(40,null)),e.ghostTextBackground=(0,y.registerColor)("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},L.localize(41,null));const p=new k.Color(new k.RGBA(0,122,204,.6));e.overviewRulerRangeHighlight=(0,y.registerColor)("editorOverviewRuler.rangeHighlightForeground",{dark:p,light:p,hcDark:p,hcLight:p},L.localize(42,null),!0),e.overviewRulerError=(0,y.registerColor)("editorOverviewRuler.errorForeground",{dark:new k.Color(new k.RGBA(255,18,18,.7)),light:new k.Color(new k.RGBA(255,18,18,.7)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:"#B5200D"},L.localize(43,null)),e.overviewRulerWarning=(0,y.registerColor)("editorOverviewRuler.warningForeground",{dark:y.editorWarningForeground,light:y.editorWarningForeground,hcDark:y.editorWarningBorder,hcLight:y.editorWarningBorder},L.localize(44,null)),e.overviewRulerInfo=(0,y.registerColor)("editorOverviewRuler.infoForeground",{dark:y.editorInfoForeground,light:y.editorInfoForeground,hcDark:y.editorInfoBorder,hcLight:y.editorInfoBorder},L.localize(45,null)),e.editorBracketHighlightingForeground1=(0,y.registerColor)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},L.localize(46,null)),e.editorBracketHighlightingForeground2=(0,y.registerColor)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},L.localize(47,null)),e.editorBracketHighlightingForeground3=(0,y.registerColor)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},L.localize(48,null)),e.editorBracketHighlightingForeground4=(0,y.registerColor)("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(49,null)),e.editorBracketHighlightingForeground5=(0,y.registerColor)("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(50,null)),e.editorBracketHighlightingForeground6=(0,y.registerColor)("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(51,null)),e.editorBracketHighlightingUnexpectedBracketForeground=(0,y.registerColor)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new k.Color(new k.RGBA(255,18,18,.8)),light:new k.Color(new k.RGBA(255,18,18,.8)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:""},L.localize(52,null)),e.editorBracketPairGuideBackground1=(0,y.registerColor)("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(53,null)),e.editorBracketPairGuideBackground2=(0,y.registerColor)("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(54,null)),e.editorBracketPairGuideBackground3=(0,y.registerColor)("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(55,null)),e.editorBracketPairGuideBackground4=(0,y.registerColor)("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(56,null)),e.editorBracketPairGuideBackground5=(0,y.registerColor)("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(57,null)),e.editorBracketPairGuideBackground6=(0,y.registerColor)("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(58,null)),e.editorBracketPairGuideActiveBackground1=(0,y.registerColor)("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(59,null)),e.editorBracketPairGuideActiveBackground2=(0,y.registerColor)("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(60,null)),e.editorBracketPairGuideActiveBackground3=(0,y.registerColor)("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(61,null)),e.editorBracketPairGuideActiveBackground4=(0,y.registerColor)("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(62,null)),e.editorBracketPairGuideActiveBackground5=(0,y.registerColor)("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(63,null)),e.editorBracketPairGuideActiveBackground6=(0,y.registerColor)("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},L.localize(64,null)),e.editorUnicodeHighlightBorder=(0,y.registerColor)("editorUnicodeHighlight.border",{dark:y.editorWarningForeground,light:y.editorWarningForeground,hcDark:y.editorWarningForeground,hcLight:y.editorWarningForeground},L.localize(65,null)),e.editorUnicodeHighlightBackground=(0,y.registerColor)("editorUnicodeHighlight.background",{dark:y.editorWarningBackground,light:y.editorWarningBackground,hcDark:y.editorWarningBackground,hcLight:y.editorWarningBackground},L.localize(66,null)),(0,D.registerThemingParticipant)((w,v)=>{const b=w.getColor(y.editorBackground),a=w.getColor(e.editorLineHighlight),n=a&&!a.isTransparent()?a:b;n&&v.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${n}; }`)})}),define(ne[866],se([1,0,118,83,13,24,23,89,9,438]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CurrentLineMarginHighlightOverlay=e.CurrentLineHighlightOverlay=e.AbstractLineHighlightOverlay=void 0;class v extends L.DynamicViewOverlay{constructor(i){super(),this._context=i;const t=this._context.configuration.options,o=t.get(144);this._lineHeight=t.get(67),this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=o.isViewportWrapping,this._contentLeft=o.contentLeft,this._contentWidth=o.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new S.Selection(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let i=!1;const t=new Set;for(const m of this._selections)t.add(m.positionLineNumber);const o=Array.from(t);o.sort((m,c)=>m-c),y.equals(this._cursorLineNumbers,o)||(this._cursorLineNumbers=o,i=!0);const g=this._selections.every(m=>m.isEmpty());return this._selectionIsEmpty!==g&&(this._selectionIsEmpty=g,i=!0),i}onThemeChanged(i){return this._readFromSelections()}onConfigurationChanged(i){const t=this._context.configuration.options,o=t.get(144);return this._lineHeight=t.get(67),this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=o.isViewportWrapping,this._contentLeft=o.contentLeft,this._contentWidth=o.contentWidth,!0}onCursorStateChanged(i){return this._selections=i.selections,this._readFromSelections()}onFlushed(i){return!0}onLinesDeleted(i){return!0}onLinesInserted(i){return!0}onScrollChanged(i){return i.scrollWidthChanged||i.scrollTopChanged}onZonesChanged(i){return!0}onFocusChanged(i){return this._renderLineHighlightOnlyWhenFocus?(this._focused=i.isFocused,!0):!1}prepareRender(i){if(!this._shouldRenderThis()){this._renderData=null;return}const t=i.visibleRange.startLineNumber,o=i.visibleRange.endLineNumber,g=[];for(let c=t;c<=o;c++){const d=c-t;g[d]=""}if(this._wordWrap){const c=this._renderOne(i,!1);for(const d of this._cursorLineNumbers){const s=this._context.viewModel.coordinatesConverter,l=s.convertViewPositionToModelPosition(new w.Position(d,1)).lineNumber,r=s.convertModelPositionToViewPosition(new w.Position(l,1)).lineNumber,h=s.convertModelPositionToViewPosition(new w.Position(l,this._context.viewModel.model.getLineMaxColumn(l))).lineNumber,u=Math.max(r,t),f=Math.min(h,o);for(let C=u;C<=f;C++){const _=C-t;g[_]=c}}}const m=this._renderOne(i,!0);for(const c of this._cursorLineNumbers){if(co)continue;const d=c-t;g[d]=m}this._renderData=g}render(i,t){if(!this._renderData)return"";const o=t-i;return o>=this._renderData.length?"":this._renderData[o]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}e.AbstractLineHighlightOverlay=v;class b extends v{_renderOne(i,t){return`
    `}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}e.CurrentLineHighlightOverlay=b;class a extends v{_renderOne(i,t){return`
    `}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}e.CurrentLineMarginHighlightOverlay=a,(0,D.registerThemingParticipant)((n,i)=>{const t=n.getColor(k.editorLineHighlight);if(t&&(i.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),i.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||n.defines(k.editorLineHighlightBorder)){const o=n.getColor(k.editorLineHighlightBorder);o&&(i.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${o}; }`),i.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${o}; }`),(0,p.isHighContrast)(n.type)&&(i.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),i.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}})}),define(ne[867],se([1,0,118,83,24,9,13,20,305,218,441]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentGuidesOverlay=void 0;class b extends L.DynamicViewOverlay{constructor(i){super(),this._context=i,this._primaryPosition=null;const t=this._context.configuration.options,o=t.get(145),g=t.get(50);this._lineHeight=t.get(67),this._spaceWidth=g.spaceWidth,this._maxIndentLeft=o.wrappingColumn===-1?-1:o.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(i){const t=this._context.configuration.options,o=t.get(145),g=t.get(50);return this._lineHeight=t.get(67),this._spaceWidth=g.spaceWidth,this._maxIndentLeft=o.wrappingColumn===-1?-1:o.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(i){var t;const g=i.selections[0].getPosition();return!((t=this._primaryPosition)===null||t===void 0)&&t.equals(g)?!1:(this._primaryPosition=g,!0)}onDecorationsChanged(i){return!0}onFlushed(i){return!0}onLinesChanged(i){return!0}onLinesDeleted(i){return!0}onLinesInserted(i){return!0}onScrollChanged(i){return i.scrollTopChanged}onZonesChanged(i){return!0}onLanguageConfigurationChanged(i){return!0}prepareRender(i){var t,o,g,m;if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const c=i.visibleRange.startLineNumber,d=i.visibleRange.endLineNumber,s=i.scrollWidth,l=this._lineHeight,r=this._primaryPosition,h=this.getGuidesByLine(c,Math.min(d+1,this._context.viewModel.getLineCount()),r),u=[];for(let f=c;f<=d;f++){const C=f-c,_=h[C];let E="";const I=(o=(t=i.visibleRangeForPosition(new D.Position(f,1)))===null||t===void 0?void 0:t.left)!==null&&o!==void 0?o:0;for(const T of _){const A=T.column===-1?I+(T.visibleColumn-1)*this._spaceWidth:i.visibleRangeForPosition(new D.Position(f,T.column)).left;if(A>s||this._maxIndentLeft>0&&A>this._maxIndentLeft)break;const R=T.horizontalLine?T.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",M=T.horizontalLine?((m=(g=i.visibleRangeForPosition(new D.Position(f,T.horizontalLine.endColumn)))===null||g===void 0?void 0:g.left)!==null&&m!==void 0?m:A+this._spaceWidth)-A:this._spaceWidth;E+=`
    `}u[C]=E}this._renderResult=u}getGuidesByLine(i,t,o){const g=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(i,t,o,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?v.HorizontalGuidesState.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?v.HorizontalGuidesState.EnabledForActive:v.HorizontalGuidesState.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,m=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(i,t):null;let c=0,d=0,s=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&o){const h=this._context.viewModel.getActiveIndentGuide(o.lineNumber,i,t);c=h.startLineNumber,d=h.endLineNumber,s=h.indent}const{indentSize:l}=this._context.viewModel.model.getOptions(),r=[];for(let h=i;h<=t;h++){const u=new Array;r.push(u);const f=g?g[h-i]:[],C=new S.ArrayQueue(f),_=m?m[h-i]:0;for(let E=1;E<=_;E++){const I=(E-1)*l+1,T=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||f.length===0)&&c<=h&&h<=d&&E===s;u.push(...C.takeWhile(R=>R.visibleColumn!0)||[])}return r}render(i,t){if(!this._renderResult)return"";const o=t-i;return o<0||o>=this._renderResult.length?"":this._renderResult[o]}}e.IndentGuidesOverlay=b;function a(n){if(!(n&&n.isTransparent()))return n}(0,y.registerThemingParticipant)((n,i)=>{const t=[{bracketColor:k.editorBracketHighlightingForeground1,guideColor:k.editorBracketPairGuideBackground1,guideColorActive:k.editorBracketPairGuideActiveBackground1},{bracketColor:k.editorBracketHighlightingForeground2,guideColor:k.editorBracketPairGuideBackground2,guideColorActive:k.editorBracketPairGuideActiveBackground2},{bracketColor:k.editorBracketHighlightingForeground3,guideColor:k.editorBracketPairGuideBackground3,guideColorActive:k.editorBracketPairGuideActiveBackground3},{bracketColor:k.editorBracketHighlightingForeground4,guideColor:k.editorBracketPairGuideBackground4,guideColorActive:k.editorBracketPairGuideActiveBackground4},{bracketColor:k.editorBracketHighlightingForeground5,guideColor:k.editorBracketPairGuideBackground5,guideColorActive:k.editorBracketPairGuideActiveBackground5},{bracketColor:k.editorBracketHighlightingForeground6,guideColor:k.editorBracketPairGuideBackground6,guideColorActive:k.editorBracketPairGuideActiveBackground6}],o=new w.BracketPairGuidesClassNames,g=[{indentColor:k.editorIndentGuide1,indentColorActive:k.editorActiveIndentGuide1},{indentColor:k.editorIndentGuide2,indentColorActive:k.editorActiveIndentGuide2},{indentColor:k.editorIndentGuide3,indentColorActive:k.editorActiveIndentGuide3},{indentColor:k.editorIndentGuide4,indentColorActive:k.editorActiveIndentGuide4},{indentColor:k.editorIndentGuide5,indentColorActive:k.editorActiveIndentGuide5},{indentColor:k.editorIndentGuide6,indentColorActive:k.editorActiveIndentGuide6}],m=t.map(d=>{var s,l;const r=n.getColor(d.bracketColor),h=n.getColor(d.guideColor),u=n.getColor(d.guideColorActive),f=a((s=a(h))!==null&&s!==void 0?s:r?.transparent(.3)),C=a((l=a(u))!==null&&l!==void 0?l:r);if(!(!f||!C))return{guideColor:f,guideColorActive:C}}).filter(p.isDefined),c=g.map(d=>{const s=n.getColor(d.indentColor),l=n.getColor(d.indentColorActive),r=a(s),h=a(l);if(!(!r||!h))return{indentColor:r,indentColorActive:h}}).filter(p.isDefined);if(m.length>0){for(let d=0;d<30;d++){const s=m[d%m.length];i.addRule(`.monaco-editor .${o.getInlineClassNameOfLevel(d).replace(/ /g,".")} { --guide-color: ${s.guideColor}; --guide-color-active: ${s.guideColorActive}; }`)}i.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),i.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),i.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),i.addRule(`.monaco-editor .vertical.${o.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),i.addRule(`.monaco-editor .horizontal-top.${o.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),i.addRule(`.monaco-editor .horizontal-bottom.${o.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(c.length>0){for(let d=0;d<30;d++){const s=c[d%c.length];i.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${d} { --indent-color: ${s.indentColor}; --indent-color-active: ${s.indentColorActive}; }`)}i.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),i.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}})}),define(ne[376],se([1,0,17,118,9,5,24,83,442]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineNumbersOverlay=void 0;class w extends k.DynamicViewOverlay{constructor(b){super(),this._context=b,this._readConfig(),this._lastCursorModelPosition=new y.Position(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const b=this._context.configuration.options;this._lineHeight=b.get(67);const a=b.get(68);this._renderLineNumbers=a.renderType,this._renderCustomLineNumbers=a.renderFn,this._renderFinalNewline=b.get(95);const n=b.get(144);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(b){return this._readConfig(),!0}onCursorStateChanged(b){const a=b.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(a);let n=!1;return this._activeLineNumber!==a.lineNumber&&(this._activeLineNumber=a.lineNumber,n=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(n=!0),n}onFlushed(b){return!0}onLinesChanged(b){return!0}onLinesDeleted(b){return!0}onLinesInserted(b){return!0}onScrollChanged(b){return b.scrollTopChanged}onZonesChanged(b){return!0}onDecorationsChanged(b){return b.affectsLineNumber}_getLineRenderLineNumber(b){const a=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new y.Position(b,1));if(a.column!==1)return"";const n=a.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(this._renderLineNumbers===2){const i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return i===0?''+n+"":String(i)}return this._renderLineNumbers===3?this._lastCursorModelPosition.lineNumber===n||n%10===0?String(n):"":String(n)}prepareRender(b){if(this._renderLineNumbers===0){this._renderResult=null;return}const a=L.isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"",n=b.visibleRange.startLineNumber,i=b.visibleRange.endLineNumber,t=this._context.viewModel.getDecorationsInViewport(b.visibleRange).filter(c=>!!c.options.lineNumberClassName);t.sort((c,d)=>D.Range.compareRangesUsingEnds(c.range,d.range));let o=0;const g=this._context.viewModel.getLineCount(),m=[];for(let c=n;c<=i;c++){const d=c-n;let s=this._getLineRenderLineNumber(c),l="";for(;o${s}`}this._renderResult=m}render(b,a){if(!this._renderResult)return"";const n=a-b;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}e.LineNumbersOverlay=w,w.CLASS_NAME="line-numbers",(0,S.registerThemingParticipant)((v,b)=>{const a=v.getColor(p.editorLineNumbers),n=v.getColor(p.editorDimmedLineNumber);n?b.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${n}; }`):a&&b.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${a.transparent(.4)}; }`)})}),define(ne[868],se([1,0,628,59,41,17,11,74,196,288,55,376,307,36,154,9,5,23,206,30,39,278,34,8,436]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaHandler=void 0;class u{constructor(I,T,A,R,M){this._context=I,this.modelLineNumber=T,this.distanceToModelLineStart=A,this.widthOfHiddenLineTextBefore=R,this.distanceToModelLineEnd=M,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(I){const T=new o.Position(this.modelLineNumber,this.distanceToModelLineStart+1),A=new o.Position(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(T),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(A),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=I.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=I.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(I){return this._previousPresentation||(I?this._previousPresentation=I:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const f=k.isFirefox;let C=class extends b.ViewPart{constructor(I,T,A,R,M){super(I),this._keybindingService=R,this._instantiationService=M,this._primaryCursorPosition=new o.Position(1,1),this._primaryCursorVisibleRange=null,this._viewController=T,this._visibleRangeProvider=A,this._scrollLeft=0,this._scrollTop=0;const N=this._context.configuration.options,P=N.get(144);this._setAccessibilityOptions(N),this._contentLeft=P.contentLeft,this._contentWidth=P.contentWidth,this._contentHeight=P.height,this._fontInfo=N.get(50),this._lineHeight=N.get(67),this._emptySelectionClipboard=N.get(37),this._copyWithSyntaxHighlighting=N.get(25),this._visibleTextArea=null,this._selections=[new m.Selection(1,1,1,1)],this._modelSelections=[new m.Selection(1,1,1,1)],this._lastRenderPosition=null,this.textArea=(0,y.createFastDomNode)(document.createElement("textarea")),b.PartFingerprints.write(this.textArea,7),this.textArea.setClassName(`inputarea ${c.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:F}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${F*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(N)),this.textArea.setAttribute("aria-required",N.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(N.get(124))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",L.localize(0,null)),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",N.get(91)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=(0,y.createFastDomNode)(document.createElement("div")),this.textAreaCover.setPosition("absolute");const O={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:V=>this._context.viewModel.getLineMaxColumn(V),getValueInRange:(V,z)=>this._context.viewModel.getValueInRange(V,z),getValueLengthInRange:(V,z)=>this._context.viewModel.getValueLengthInRange(V,z),modifyPosition:(V,z)=>this._context.viewModel.modifyPosition(V,z)},B={getDataToCopy:()=>{const V=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,D.isWindows),z=this._context.viewModel.model.getEOL(),K=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),j=Array.isArray(V)?V:null,x=Array.isArray(V)?V.join(z):V;let re,ie=null;if(w.CopyOptions.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&x.length<65536){const J=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);J&&(re=J.html,ie=J.mode)}return{isFromEmptySelection:K,multicursorText:j,text:x,html:re,mode:ie}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const V=this._selections[0];if(D.isMacintosh&&V.isEmpty()){const K=V.getStartPosition();let j=this._getWordBeforePosition(K);if(j.length===0&&(j=this._getCharacterBeforePosition(K)),j.length>0)return new v.TextAreaState(j,j.length,j.length,g.Range.fromPositions(K),0)}if(D.isMacintosh&&!V.isEmpty()&&O.getValueLengthInRange(V,0)<500){const K=O.getValueInRange(V,0);return new v.TextAreaState(K,0,K.length,V,0)}if(k.isSafari&&!V.isEmpty()){const K="vscode-placeholder";return new v.TextAreaState(K,0,K.length,null,void 0)}return v.TextAreaState.EMPTY}if(k.isAndroid){const V=this._selections[0];if(V.isEmpty()){const z=V.getStartPosition(),[K,j]=this._getAndroidWordAtPosition(z);if(K.length>0)return new v.TextAreaState(K,j,j,g.Range.fromPositions(z),0)}return v.TextAreaState.EMPTY}return v.PagedScreenReaderStrategy.fromEditorSelection(O,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(V,z,K)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(V,z,K)},W=this._register(new w.TextAreaWrapper(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(w.TextAreaInput,B,W,D.OS,{isAndroid:k.isAndroid,isChrome:k.isChrome,isFirefox:k.isFirefox,isSafari:k.isSafari})),this._register(this._textAreaInput.onKeyDown(V=>{this._viewController.emitKeyDown(V)})),this._register(this._textAreaInput.onKeyUp(V=>{this._viewController.emitKeyUp(V)})),this._register(this._textAreaInput.onPaste(V=>{let z=!1,K=null,j=null;V.metadata&&(z=this._emptySelectionClipboard&&!!V.metadata.isFromEmptySelection,K=typeof V.metadata.multicursorText<"u"?V.metadata.multicursorText:null,j=V.metadata.mode),this._viewController.paste(V.text,z,K,j)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(V=>{V.replacePrevCharCnt||V.replaceNextCharCnt||V.positionDelta?(v._debugComposition&&console.log(` => compositionType: <<${V.text}>>, ${V.replacePrevCharCnt}, ${V.replaceNextCharCnt}, ${V.positionDelta}`),this._viewController.compositionType(V.text,V.replacePrevCharCnt,V.replaceNextCharCnt,V.positionDelta)):(v._debugComposition&&console.log(` => type: <<${V.text}>>`),this._viewController.type(V.text))})),this._register(this._textAreaInput.onSelectionChangeRequest(V=>{this._viewController.setSelection(V)})),this._register(this._textAreaInput.onCompositionStart(V=>{const z=this.textArea.domNode,K=this._modelSelections[0],{distanceToModelLineStart:j,widthOfHiddenTextBefore:x}=(()=>{const ie=z.value.substring(0,Math.min(z.selectionStart,z.selectionEnd)),J=ie.lastIndexOf(` +`),X=ie.substring(J+1),Y=X.lastIndexOf(" "),le=X.length-Y-1,de=K.getStartPosition(),ge=Math.min(de.column-1,le),pe=de.column-1-ge,Q=X.substring(0,X.length-ge),{tabSize:U}=this._context.viewModel.model.getOptions(),Z=_(this.textArea.domNode.ownerDocument,Q,this._fontInfo,U);return{distanceToModelLineStart:pe,widthOfHiddenTextBefore:Z}})(),{distanceToModelLineEnd:re}=(()=>{const ie=z.value.substring(Math.max(z.selectionStart,z.selectionEnd)),J=ie.indexOf(` +`),X=J===-1?ie:ie.substring(0,J),Y=X.indexOf(" "),le=Y===-1?X.length:X.length-Y-1,de=K.getEndPosition(),ge=Math.min(this._context.viewModel.model.getLineMaxColumn(de.lineNumber)-de.column,le);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(de.lineNumber)-de.column-ge}})();this._context.viewModel.revealRange("keyboard",!0,g.Range.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new u(this._context,K.startLineNumber,j,x,re),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${c.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(V=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${c.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(l.IME.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(I){this._textAreaInput.writeNativeTextAreaContent(I)}dispose(){super.dispose()}_getAndroidWordAtPosition(I){const T='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',A=this._context.viewModel.getLineContent(I.lineNumber),R=(0,t.getMapForWordSeparators)(T);let M=!0,N=I.column,P=!0,F=I.column,O=0;for(;O<50&&(M||P);){if(M&&N<=1&&(M=!1),M){const B=A.charCodeAt(N-2);R.get(B)!==0?M=!1:N--}if(P&&F>A.length&&(P=!1),P){const B=A.charCodeAt(F-1);R.get(B)!==0?P=!1:F++}O++}return[A.substring(N-1,F-1),I.column-N]}_getWordBeforePosition(I){const T=this._context.viewModel.getLineContent(I.lineNumber),A=(0,t.getMapForWordSeparators)(this._context.configuration.options.get(130));let R=I.column,M=0;for(;R>1;){const N=T.charCodeAt(R-2);if(A.get(N)!==0||M>50)return T.substring(R-1,I.column-1);M++,R--}return T.substring(0,I.column-1)}_getCharacterBeforePosition(I){if(I.column>1){const A=this._context.viewModel.getLineContent(I.lineNumber).charAt(I.column-2);if(!S.isHighSurrogate(A.charCodeAt(0)))return A}return""}_getAriaLabel(I){var T,A,R;if(I.get(2)===1){const N=(T=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))===null||T===void 0?void 0:T.getAriaLabel(),P=(A=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))===null||A===void 0?void 0:A.getAriaLabel(),F=(R=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))===null||R===void 0?void 0:R.getAriaLabel(),O=L.localize(1,null);return N?L.localize(2,null,O,N):P?L.localize(3,null,O,P):F?L.localize(4,null,O,F):O}return I.get(4)}_setAccessibilityOptions(I){this._accessibilitySupport=I.get(2);const T=I.get(3);this._accessibilitySupport===2&&T===i.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=T;const R=I.get(144).wrappingColumn;if(R!==-1&&this._accessibilitySupport!==1){const M=I.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(R*M.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=f?0:1}onConfigurationChanged(I){const T=this._context.configuration.options,A=T.get(144);this._setAccessibilityOptions(T),this._contentLeft=A.contentLeft,this._contentWidth=A.contentWidth,this._contentHeight=A.height,this._fontInfo=T.get(50),this._lineHeight=T.get(67),this._emptySelectionClipboard=T.get(37),this._copyWithSyntaxHighlighting=T.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:R}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${R*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(T)),this.textArea.setAttribute("aria-required",T.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(T.get(124))),(I.hasChanged(34)||I.hasChanged(91))&&this._ensureReadOnlyAttribute(),I.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(I){return this._selections=I.selections.slice(0),this._modelSelections=I.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(I){return!0}onFlushed(I){return!0}onLinesChanged(I){return!0}onLinesDeleted(I){return!0}onLinesInserted(I){return!0}onScrollChanged(I){return this._scrollLeft=I.scrollLeft,this._scrollTop=I.scrollTop,!0}onZonesChanged(I){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(I){I.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",I.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),I.role&&this.textArea.setAttribute("role",I.role)}_ensureReadOnlyAttribute(){const I=this._context.configuration.options;!l.IME.enabled||I.get(34)&&I.get(91)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(I){var T;this._primaryCursorPosition=new o.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=I.visibleRangeForPosition(this._primaryCursorPosition),(T=this._visibleTextArea)===null||T===void 0||T.prepareRender(I)}render(I){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var I;if(this._visibleTextArea){const R=this._visibleTextArea.visibleTextareaStart,M=this._visibleTextArea.visibleTextareaEnd,N=this._visibleTextArea.startPosition,P=this._visibleTextArea.endPosition;if(N&&P&&R&&M&&M.left>=this._scrollLeft&&R.left<=this._scrollLeft+this._contentWidth){const F=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,O=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let B=this._visibleTextArea.widthOfHiddenLineTextBefore,W=this._contentLeft+R.left-this._scrollLeft,V=M.left-R.left+1;if(Wthis._contentWidth&&(V=this._contentWidth);const z=this._context.viewModel.getViewLineData(N.lineNumber),K=z.tokens.findTokenIndexAtOffset(N.column-1),j=z.tokens.findTokenIndexAtOffset(P.column-1),x=K===j,re=this._visibleTextArea.definePresentation(x?z.tokens.getPresentation(K):null);this.textArea.domNode.scrollTop=O*this._lineHeight,this.textArea.domNode.scrollLeft=B,this._doRender({lastRenderPosition:null,top:F,left:W,width:V,height:this._lineHeight,useCover:!1,color:(d.TokenizationRegistry.getColorMap()||[])[re.foreground],italic:re.italic,bold:re.bold,underline:re.underline,strikethrough:re.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const T=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(Tthis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const A=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(A<0||A>this._contentHeight){this._renderAtTopLeft();return}if(D.isMacintosh||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:A,left:this._textAreaWrapping?this._contentLeft:T,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const R=(I=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!==null&&I!==void 0?I:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=R*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:A,left:this._textAreaWrapping?this._contentLeft:T,width:this._textAreaWidth,height:f?0:1,useCover:!1})}_newlinecount(I){let T=0,A=-1;do{if(A=I.indexOf(` +`,A+1),A===-1)break;T++}while(!0);return T}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:f?0:1,useCover:!0})}_doRender(I){this._lastRenderPosition=I.lastRenderPosition;const T=this.textArea,A=this.textAreaCover;(0,p.applyFontInfo)(T,this._fontInfo),T.setTop(I.top),T.setLeft(I.left),T.setWidth(I.width),T.setHeight(I.height),T.setColor(I.color?s.Color.Format.CSS.formatHex(I.color):""),T.setFontStyle(I.italic?"italic":""),I.bold&&T.setFontWeight("bold"),T.setTextDecoration(`${I.underline?" underline":""}${I.strikethrough?" line-through":""}`),A.setTop(I.useCover?I.top:0),A.setLeft(I.useCover?I.left:0),A.setWidth(I.useCover?I.width:0),A.setHeight(I.useCover?I.height:0);const R=this._context.configuration.options;R.get(57)?A.setClassName("monaco-editor-background textAreaCover "+n.Margin.OUTER_CLASS_NAME):R.get(68).renderType!==0?A.setClassName("monaco-editor-background textAreaCover "+a.LineNumbersOverlay.CLASS_NAME):A.setClassName("monaco-editor-background textAreaCover")}};e.TextAreaHandler=C,e.TextAreaHandler=C=De([he(3,r.IKeybindingService),he(4,h.IInstantiationService)],C);function _(E,I,T,A){if(I.length===0)return 0;const R=E.createElement("div");R.style.position="absolute",R.style.top="-50000px",R.style.width="50000px";const M=E.createElement("span");(0,p.applyFontInfo)(M,T),M.style.whiteSpace="pre",M.style.tabSize=`${A*T.spaceWidth}px`,M.append(I),R.appendChild(M),E.body.appendChild(R);const N=M.offsetWidth;return E.body.removeChild(R),N}}),define(ne[869],se([1,0,41,39,55,9,30,83,86,13]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DecorationsOverviewRuler=void 0;class b{constructor(i,t){const o=i.options;this.lineHeight=o.get(67),this.pixelRatio=o.get(142),this.overviewRulerLanes=o.get(83),this.renderBorder=o.get(82);const g=t.getColor(p.editorOverviewRulerBorder);this.borderColor=g?g.toString():null,this.hideCursor=o.get(59);const m=t.getColor(p.editorCursorForeground);this.cursorColor=m?m.transparent(.7).toString():null,this.themeType=t.type;const c=o.get(73),d=c.enabled,s=c.side,l=t.getColor(p.editorOverviewRulerBackground),r=S.TokenizationRegistry.getDefaultBackground();l?this.backgroundColor=l:d&&s==="right"?this.backgroundColor=r:this.backgroundColor=null;const u=o.get(144).overviewRuler;this.top=u.top,this.right=u.right,this.domWidth=u.width,this.domHeight=u.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[f,C]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=f,this.w=C}_initLanes(i,t,o){const g=t-i;if(o>=3){const m=Math.floor(g/3),c=Math.floor(g/3),d=g-m-c,s=i,l=s+m,r=s+m+d;return[[0,s,l,s,r,s,l,s],[0,m,d,m+d,c,m+d+c,d+c,m+d+c]]}else if(o===2){const m=Math.floor(g/2),c=g-m,d=i,s=d+m;return[[0,d,d,d,s,d,d,d],[0,m,m,m,c,m+c,m+c,m+c]]}else{const m=i,c=g;return[[0,m,m,m,m,m,m,m],[0,c,c,c,c,c,c,c]]}}equals(i){return this.lineHeight===i.lineHeight&&this.pixelRatio===i.pixelRatio&&this.overviewRulerLanes===i.overviewRulerLanes&&this.renderBorder===i.renderBorder&&this.borderColor===i.borderColor&&this.hideCursor===i.hideCursor&&this.cursorColor===i.cursorColor&&this.themeType===i.themeType&&k.Color.equals(this.backgroundColor,i.backgroundColor)&&this.top===i.top&&this.right===i.right&&this.domWidth===i.domWidth&&this.domHeight===i.domHeight&&this.canvasWidth===i.canvasWidth&&this.canvasHeight===i.canvasHeight}}class a extends y.ViewPart{constructor(i){super(i),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=(0,L.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=S.TokenizationRegistry.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[new D.Position(1,1)]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(i){const t=new b(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,i&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(i){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(i){this._cursorPositions=[];for(let t=0,o=i.selections.length;tC.lineNumber===_.lineNumber)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const o=this._settings.canvasWidth,g=this._settings.canvasHeight,m=this._settings.lineHeight,c=this._context.viewLayout,d=this._context.viewLayout.getScrollHeight(),s=g/d,l=6*this._settings.pixelRatio|0,r=l/2|0,h=this._domNode.domNode.getContext("2d");i?i.isOpaque()?(h.fillStyle=k.Color.Format.CSS.formatHexA(i),h.fillRect(0,0,o,g)):(h.clearRect(0,0,o,g),h.fillStyle=k.Color.Format.CSS.formatHexA(i),h.fillRect(0,0,o,g)):h.clearRect(0,0,o,g);const u=this._settings.x,f=this._settings.w;for(const C of t){const _=C.color,E=C.data;h.fillStyle=_;let I=0,T=0,A=0;for(let R=0,M=E.length/3;Rg&&(V=g-r),O=V-r,B=V+r}O>A+1||N!==I?(R!==0&&h.fillRect(u[I],T,f[I],A-T),I=N,T=O,A=B):B>A&&(A=B)}h.fillRect(u[I],T,f[I],A-T)}if(!this._settings.hideCursor&&this._settings.cursorColor){const C=2*this._settings.pixelRatio|0,_=C/2|0,E=this._settings.x[7],I=this._settings.w[7];h.fillStyle=this._settings.cursorColor;let T=-100,A=-100;for(let R=0,M=this._cursorPositions.length;Rg&&(P=g-_);const F=P-_,O=F+C;F>A+1?(R!==0&&h.fillRect(E,T,I,A-T),T=F,A=O):O>A&&(A=O)}h.fillRect(E,T,I,A-T)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(h.beginPath(),h.lineWidth=1,h.strokeStyle=this._settings.borderColor,h.moveTo(0,0),h.lineTo(0,g),h.stroke(),h.moveTo(0,0),h.lineTo(o,0),h.stroke())}}e.DecorationsOverviewRuler=a}),define(ne[870],se([1,0,41,15,55,646,36,83,24,89,6,452]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursors=void 0;class a extends y.ViewPart{constructor(i){super(i);const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new D.ViewCursor(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=(0,L.createFastDomNode)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new k.TimeoutTimer,this._cursorFlatBlinkInterval=new b.WindowIntervalTimer,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(i){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(i){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(i){const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(i);for(let o=0,g=this._secondaryCursors.length;ot.length){const m=this._secondaryCursors.length-t.length;for(let c=0;c{for(let g=0,m=i.ranges.length;g{this._isVisible?this._hide():this._show()},a.BLINK_INTERVAL,(0,b.getWindow)(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},a.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let i="cursors-layer";switch(this._selectionIsEmpty||(i+=" has-selection"),this._cursorStyle){case S.TextEditorCursorStyle.Line:i+=" cursor-line-style";break;case S.TextEditorCursorStyle.Block:i+=" cursor-block-style";break;case S.TextEditorCursorStyle.Underline:i+=" cursor-underline-style";break;case S.TextEditorCursorStyle.LineThin:i+=" cursor-line-thin-style";break;case S.TextEditorCursorStyle.BlockOutline:i+=" cursor-block-outline-style";break;case S.TextEditorCursorStyle.UnderlineThin:i+=" cursor-underline-thin-style";break;default:i+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:i+=" cursor-blink";break;case 2:i+=" cursor-smooth";break;case 3:i+=" cursor-phase";break;case 4:i+=" cursor-expand";break;case 5:i+=" cursor-solid";break;default:i+=" cursor-solid"}else i+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(i+=" cursor-smooth-caret-animation"),i}_show(){this._primaryCursor.show();for(let i=0,t=this._secondaryCursors.length;i{const t=n.getColor(p.editorCursorForeground);if(t){let o=n.getColor(p.editorCursorBackground);o||(o=t.opposite()),i.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${t}; border-color: ${t}; color: ${o}; }`),(0,v.isHighContrast)(n.type)&&i.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${o}; border-right: 1px solid ${o}; }`)}})}),define(ne[871],se([1,0,118,11,122,9,83,453]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WhitespaceOverlay=void 0;class p extends L.DynamicViewOverlay{constructor(b){super(),this._context=b,this._options=new w(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(b){const a=new w(this._context.configuration);return this._options.equals(a)?b.hasChanged(144):(this._options=a,!0)}onCursorStateChanged(b){return this._selection=b.selections,this._options.renderWhitespace==="selection"}onDecorationsChanged(b){return!0}onFlushed(b){return!0}onLinesChanged(b){return!0}onLinesDeleted(b){return!0}onLinesInserted(b){return!0}onScrollChanged(b){return b.scrollTopChanged}onZonesChanged(b){return!0}prepareRender(b){if(this._options.renderWhitespace==="none"){this._renderResult=null;return}const a=b.visibleRange.startLineNumber,i=b.visibleRange.endLineNumber-a+1,t=new Array(i);for(let g=0;gg)continue;const r=l.startLineNumber===g?l.startColumn:c.minColumn,h=l.endLineNumber===g?l.endColumn:c.maxColumn;r=P.endOffset&&(N++,P=n&&n[N]),B!==9&&B!==32||l&&!A&&O<=M)continue;if(s&&O>=R&&O<=M&&B===32){const V=O-1>=0?g.charCodeAt(O-1):0,z=O+1=0?g.charCodeAt(O-1):0;if(B===32&&V!==32&&V!==9)continue}if(n&&(!P||P.startOffset>O||P.endOffset<=O))continue;const W=b.visibleRangeForPosition(new D.Position(a,O+1));W&&(o?(F=Math.max(F,W.left),B===9?T+=this._renderArrow(r,f,W.left):T+=``):B===9?T+=`
    ${I?"\uFFEB":"\u2192"}
    `:T+=`
    ${String.fromCharCode(E)}
    `)}return o?(F=Math.round(F+f),``+T+""):T}_renderArrow(b,a,n){const i=a/7,t=a,o=b/2,g=n,m={x:0,y:i/2},c={x:100/125*t,y:m.y},d={x:c.x-.2*c.x,y:c.y+.2*c.x},s={x:d.x+.1*c.x,y:d.y+.1*c.x},l={x:s.x+.35*c.x,y:s.y-.35*c.x},r={x:l.x,y:-l.y},h={x:s.x,y:-s.y},u={x:d.x,y:-d.y},f={x:c.x,y:-c.y},C={x:m.x,y:-m.y};return``}render(b,a){if(!this._renderResult)return"";const n=a-b;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}e.WhitespaceOverlay=p;class w{constructor(b){const a=b.options,n=a.get(50),i=a.get(38);i==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):i==="svg"?(this.renderWhitespace=a.get(99),this.renderWithSVG=!0):(this.renderWhitespace=a.get(99),this.renderWithSVG=!1),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=a.get(67),this.stopRenderingLineAfter=a.get(117)}equals(b){return this.renderWhitespace===b.renderWhitespace&&this.renderWithSVG===b.renderWithSVG&&this.spaceWidth===b.spaceWidth&&this.middotWidth===b.middotWidth&&this.wsmiddotWidth===b.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===b.canUseHalfwidthRightwardsArrow&&this.lineHeight===b.lineHeight&&this.stopRenderingLineAfter===b.stopRenderingLineAfter}}}),define(ne[872],se([1,0,6,41,273,12,372,858,868,152,818,620,55,287,545,615,866,546,863,219,867,376,859,547,307,548,844,616,869,558,549,550,864,870,551,871,9,5,23,40,158,554,559,8,24]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R,M,N,P,F,O,B,W,V,z,K,j,x){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.View=void 0;let re=class extends V.ViewEventHandler{constructor(Y,le,de,ge,pe,Q,U){super(),this._instantiationService=U,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new B.Selection(1,1,1,1)],this._renderAnimationFrame=null;const Z=new b.ViewController(le,ge,pe,Y);this._context=new K.ViewContext(le,de,ge),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(w.TextAreaHandler,this._context,Z,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=(0,k.createFastDomNode)(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=(0,k.createFastDomNode)(document.createElement("div")),n.PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new c.EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new r.ViewLines(this._context,this._linesContent),this._viewZones=new N.ViewZones(this._context),this._viewParts.push(this._viewZones);const H=new E.DecorationsOverviewRuler(this._context);this._viewParts.push(H);const q=new A.ScrollDecorationViewPart(this._context);this._viewParts.push(q);const te=new a.ContentViewOverlays(this._context);this._viewParts.push(te),te.addDynamicOverlay(new g.CurrentLineHighlightOverlay(this._context)),te.addDynamicOverlay(new R.SelectionsOverlay(this._context)),te.addDynamicOverlay(new s.IndentGuidesOverlay(this._context)),te.addDynamicOverlay(new m.DecorationsOverlay(this._context)),te.addDynamicOverlay(new P.WhitespaceOverlay(this._context));const G=new a.MarginViewOverlays(this._context);this._viewParts.push(G),G.addDynamicOverlay(new g.CurrentLineMarginHighlightOverlay(this._context)),G.addDynamicOverlay(new f.MarginViewLineDecorationsOverlay(this._context)),G.addDynamicOverlay(new h.LinesDecorationsOverlay(this._context)),G.addDynamicOverlay(new l.LineNumbersOverlay(this._context)),this._glyphMarginWidgets=new d.GlyphMarginWidgets(this._context),this._viewParts.push(this._glyphMarginWidgets);const $=new u.Margin(this._context);$.getDomNode().appendChild(this._viewZones.marginDomNode),$.getDomNode().appendChild(G.getDomNode()),$.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push($),this._contentWidgets=new o.ViewContentWidgets(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new M.ViewCursors(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new _.ViewOverlayWidgets(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const oe=new T.Rulers(this._context);this._viewParts.push(oe);const ae=new t.BlockDecorations(this._context);this._viewParts.push(ae);const ue=new C.Minimap(this._context);if(this._viewParts.push(ue),H){const ce=this._scrollbar.getOverviewRulerLayoutInfo();ce.parent.insertBefore(H.getDomNode(),ce.insertBefore)}this._linesContent.appendChild(te.getDomNode()),this._linesContent.appendChild(oe.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild($.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(q.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(ue.getDomNode()),this._overflowGuardContainer.appendChild(ae.domNode),this.domNode.appendChild(this._overflowGuardContainer),Q?(Q.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),Q.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new p.PointerHandler(this._context,Z,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const Y=this._context.viewModel.model,le=this._context.viewModel.glyphLanes;let de=[],ge=0;de=de.concat(Y.getAllMarginDecorations().map(pe=>{var Q,U,Z;const H=(U=(Q=pe.options.glyphMargin)===null||Q===void 0?void 0:Q.position)!==null&&U!==void 0?U:W.GlyphMarginLane.Center;return ge=Math.max(ge,pe.range.endLineNumber),{range:pe.range,lane:H,persist:(Z=pe.options.glyphMargin)===null||Z===void 0?void 0:Z.persistLane}})),de=de.concat(this._glyphMarginWidgets.getWidgets().map(pe=>{const Q=Y.validateRange(pe.preference.range);return ge=Math.max(ge,Q.endLineNumber),{range:Q,lane:pe.preference.lane}})),de.sort((pe,Q)=>O.Range.compareRangesUsingStarts(pe.range,Q.range)),le.reset(ge);for(const pe of de)le.push(pe.lane,pe.range,pe.persist);return le}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:Y=>{this._textAreaHandler.textArea.domNode.dispatchEvent(Y)},getLastRenderData:()=>{const Y=this._viewCursors.getLastRenderData()||[],le=this._textAreaHandler.getLastRenderData();return new S.PointerHandlerLastRenderData(Y,le)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:Y=>this._viewZones.shouldSuppressMouseDownOnViewZone(Y),shouldSuppressMouseDownOnWidget:Y=>this._contentWidgets.shouldSuppressMouseDownOnWidget(Y),getPositionFromDOMInfo:(Y,le)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(Y,le)),visibleRangeForPosition:(Y,le)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new F.Position(Y,le))),getLineWidth:Y=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(Y))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:Y=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(Y))}}_applyLayout(){const le=this._context.configuration.options.get(144);this.domNode.setWidth(le.width),this.domNode.setHeight(le.height),this._overflowGuardContainer.setWidth(le.width),this._overflowGuardContainer.setHeight(le.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const Y=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(141)+" "+(0,x.getThemeTypeSelector)(this._context.theme.type)+Y}handleEvents(Y){super.handleEvents(Y),this._scheduleRender()}onConfigurationChanged(Y){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(Y){return this._selections=Y.selections,!1}onDecorationsChanged(Y){return Y.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(Y){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(Y){return this._context.theme.update(Y.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const Y of this._viewParts)Y.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new D.BugIndicatingError;if(this._renderAnimationFrame===null){const Y=this._createCoordinatedRendering();this._renderAnimationFrame=J.INSTANCE.scheduleCoordinatedRendering({window:L.getWindow(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new D.BugIndicatingError;try{return Y.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new D.BugIndicatingError;return Y.renderText()},prepareRender:(le,de)=>{if(this._store.isDisposed)throw new D.BugIndicatingError;return Y.prepareRender(le,de)},render:(le,de)=>{if(this._store.isDisposed)throw new D.BugIndicatingError;return Y.render(le,de)}})}}_flushAccumulatedAndRenderNow(){const Y=this._createCoordinatedRendering();ie(()=>Y.prepareRenderText());const le=ie(()=>Y.renderText());if(le){const[de,ge]=le;ie(()=>Y.prepareRender(de,ge)),ie(()=>Y.render(de,ge))}}_getViewPartsToRender(){const Y=[];let le=0;for(const de of this._viewParts)de.shouldRender()&&(Y[le++]=de);return Y}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const Y=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(Y.requiredLanes)}y.inputLatency.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let Y=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&Y.length===0)return null;const le=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(le.startLineNumber,le.endLineNumber,le.centeredLineNumber);const de=new z.ViewportData(this._selections,le,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(de),this._viewLines.shouldRender()&&(this._viewLines.renderText(de),this._viewLines.onDidRender(),Y=this._getViewPartsToRender()),[Y,new v.RenderingContext(this._context.viewLayout,de,this._viewLines)]},prepareRender:(Y,le)=>{for(const de of Y)de.prepareRender(le)},render:(Y,le)=>{for(const de of Y)de.render(le),de.onDidRender()}}}delegateVerticalScrollbarPointerDown(Y){this._scrollbar.delegateVerticalScrollbarPointerDown(Y)}delegateScrollFromMouseWheelEvent(Y){this._scrollbar.delegateScrollFromMouseWheelEvent(Y)}restoreState(Y){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:Y.scrollTop,scrollLeft:Y.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(Y,le){const de=this._context.viewModel.model.validatePosition({lineNumber:Y,column:le}),ge=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(de);this._flushAccumulatedAndRenderNow();const pe=this._viewLines.visibleRangeForPosition(new F.Position(ge.lineNumber,ge.column));return pe?pe.left:-1}getTargetAtClientPoint(Y,le){const de=this._pointerHandler.getTargetAtClientPoint(Y,le);return de?i.ViewUserInputEvents.convertViewToModelMouseTarget(de,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(Y){return new I.OverviewRuler(this._context,Y)}change(Y){this._viewZones.changeViewZones(Y),this._scheduleRender()}render(Y,le){if(le){this._viewLines.forceShouldRender();for(const de of this._viewParts)de.forceShouldRender()}Y?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(Y){this._textAreaHandler.writeScreenReaderContent(Y)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(Y){this._textAreaHandler.setAriaOptions(Y)}addContentWidget(Y){this._contentWidgets.addWidget(Y.widget),this.layoutContentWidget(Y),this._scheduleRender()}layoutContentWidget(Y){var le,de,ge,pe,Q,U,Z,H;this._contentWidgets.setWidgetPosition(Y.widget,(de=(le=Y.position)===null||le===void 0?void 0:le.position)!==null&&de!==void 0?de:null,(pe=(ge=Y.position)===null||ge===void 0?void 0:ge.secondaryPosition)!==null&&pe!==void 0?pe:null,(U=(Q=Y.position)===null||Q===void 0?void 0:Q.preference)!==null&&U!==void 0?U:null,(H=(Z=Y.position)===null||Z===void 0?void 0:Z.positionAffinity)!==null&&H!==void 0?H:null),this._scheduleRender()}removeContentWidget(Y){this._contentWidgets.removeWidget(Y.widget),this._scheduleRender()}addOverlayWidget(Y){this._overlayWidgets.addWidget(Y.widget),this.layoutOverlayWidget(Y),this._scheduleRender()}layoutOverlayWidget(Y){const le=Y.position?Y.position.preference:null;this._overlayWidgets.setWidgetPosition(Y.widget,le)&&this._scheduleRender()}removeOverlayWidget(Y){this._overlayWidgets.removeWidget(Y.widget),this._scheduleRender()}addGlyphMarginWidget(Y){this._glyphMarginWidgets.addWidget(Y.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(Y){const le=Y.position;this._glyphMarginWidgets.setWidgetPosition(Y.widget,le)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(Y){this._glyphMarginWidgets.removeWidget(Y.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};e.View=re,e.View=re=De([he(6,j.IInstantiationService)],re);function ie(X){try{return X()}catch(Y){return(0,D.onUnexpectedError)(Y),null}}class J{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(Y){return this._coordinatedRenderings.push(Y),this._scheduleRender(Y.window),{dispose:()=>{const le=this._coordinatedRenderings.indexOf(Y);if(le!==-1&&(this._coordinatedRenderings.splice(le,1),this._coordinatedRenderings.length===0)){for(const[de,ge]of this._animationFrameRunners)ge.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(Y){if(!this._animationFrameRunners.has(Y)){const le=()=>{this._animationFrameRunners.delete(Y),this._onRenderScheduled()};this._animationFrameRunners.set(Y,L.runAtThisOrScheduleAtNextAnimationFrame(Y,le,100))}}_onRenderScheduled(){const Y=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const de of Y)ie(()=>de.prepareRenderText());const le=[];for(let de=0,ge=Y.length;depe.renderText())}for(let de=0,ge=Y.length;depe.prepareRender(U,Z))}for(let de=0,ge=Y.length;depe.render(U,Z))}}}J.INSTANCE=new J}),define(ne[873],se([1,0,7,2,5,83,24]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorizedBracketPairsDecorationProvider=void 0;class p extends k.Disposable{constructor(b){super(),this.textModel=b,this.colorProvider=new w,this.onDidChangeEmitter=new L.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=b.getOptions().bracketPairColorizationOptions,this._register(b.bracketPairs.onDidChange(a=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(b){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(b,a,n,i){return i?[]:a===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(b,!0).map(o=>({id:`bracket${o.range.toString()}-${o.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(o,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:o.range})).toArray():[]}getAllDecorations(b,a){return b===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new y.Range(1,1,this.textModel.getLineCount(),1),b,a):[]}}e.ColorizedBracketPairsDecorationProvider=p;class w{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(b,a){return b.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(a?b.nestingLevelOfEqualBracketType:b.nestingLevel)}getInlineClassNameOfLevel(b){return`bracket-highlighting-${b%30}`}}(0,S.registerThemingParticipant)((v,b)=>{const a=[D.editorBracketHighlightingForeground1,D.editorBracketHighlightingForeground2,D.editorBracketHighlightingForeground3,D.editorBracketHighlightingForeground4,D.editorBracketHighlightingForeground5,D.editorBracketHighlightingForeground6],n=new w;b.addRule(`.monaco-editor .${n.unexpectedClosingBracketClassName} { color: ${v.getColor(D.editorBracketHighlightingUnexpectedBracketForeground)}; }`);const i=a.map(t=>v.getColor(t)).filter(t=>!!t).filter(t=>!t.isTransparent());for(let t=0;t<30;t++){const o=i[t%i.length];b.addRule(`.monaco-editor .${n.getInlineClassNameOfLevel(t)} { color: ${o}; }`)}})}),define(ne[874],se([1,0,100,2,40,24,83,51,5,47,7,31,53,275]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsService=void 0;let t=class extends k.Disposable{constructor(m,c){super(),this._markerService=c,this._onDidChangeMarker=this._register(new b.Emitter),this._markerDecorations=new n.ResourceMap,m.getModels().forEach(d=>this._onModelAdded(d)),this._register(m.onModelAdded(this._onModelAdded,this)),this._register(m.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(m=>m.dispose()),this._markerDecorations.clear()}getMarker(m,c){const d=this._markerDecorations.get(m);return d&&d.getMarker(c)||null}_handleMarkerChange(m){m.forEach(c=>{const d=this._markerDecorations.get(c);d&&this._updateDecorations(d)})}_onModelAdded(m){const c=new o(m);this._markerDecorations.set(m.uri,c),this._updateDecorations(c)}_onModelRemoved(m){var c;const d=this._markerDecorations.get(m.uri);d&&(d.dispose(),this._markerDecorations.delete(m.uri)),(m.uri.scheme===v.Schemas.inMemory||m.uri.scheme===v.Schemas.internal||m.uri.scheme===v.Schemas.vscode)&&((c=this._markerService)===null||c===void 0||c.read({resource:m.uri}).map(s=>s.owner).forEach(s=>this._markerService.remove(s,[m.uri])))}_updateDecorations(m){const c=this._markerService.read({resource:m.model.uri,take:500});m.update(c)&&this._onDidChangeMarker.fire(m.model)}};e.MarkerDecorationsService=t,e.MarkerDecorationsService=t=De([he(0,p.IModelService),he(1,L.IMarkerService)],t);class o extends k.Disposable{constructor(m){super(),this.model=m,this._map=new n.BidirectionalMap,this._register((0,k.toDisposable)(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(m){const{added:c,removed:d}=(0,i.diffSets)(new Set(this._map.keys()),new Set(m));if(c.length===0&&d.length===0)return!1;const s=d.map(h=>this._map.get(h)),l=c.map(h=>({range:this._createDecorationRange(this.model,h),options:this._createDecorationOption(h)})),r=this.model.deltaDecorations(s,l);for(const h of d)this._map.delete(h);for(let h=0;h=s)return d;const l=m.getWordAtPosition(d.getStartPosition());l&&(d=new w.Range(d.startLineNumber,l.startColumn,d.endLineNumber,l.endColumn))}else if(c.endColumn===Number.MAX_VALUE&&c.startColumn===1&&d.startLineNumber===d.endLineNumber){const s=m.getLineFirstNonWhitespaceColumn(c.startLineNumber);s=0:!1}}}),define(ne[261],se([1,0,136,24,60,543,43]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toMultilineTokens2=e.SemanticTokensProviderStyling=void 0;let p=class{constructor(n,i,t,o){this._legend=n,this._themeService=i,this._languageService=t,this._logService=o,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new b}getMetadata(n,i,t){const o=this._languageService.languageIdCodec.encodeLanguageId(t),g=this._hashTable.get(n,i,o);let m;if(g)m=g.metadata,this._logService.getLevel()===y.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${n} / ${i}: foreground ${L.TokenMetadata.getForeground(m)}, fontStyle ${L.TokenMetadata.getFontStyle(m).toString(2)}`);else{let c=this._legend.tokenTypes[n];const d=[];if(c){let s=i;for(let r=0;s>0&&r>1;s>0&&this._logService.getLevel()===y.LogLevel.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${i.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),d.push("not-in-legend"));const l=this._themeService.getColorTheme().getTokenStyleMetadata(c,d,t);if(typeof l>"u")m=2147483647;else{if(m=0,typeof l.italic<"u"){const r=(l.italic?1:0)<<11;m|=r|1}if(typeof l.bold<"u"){const r=(l.bold?2:0)<<11;m|=r|2}if(typeof l.underline<"u"){const r=(l.underline?4:0)<<11;m|=r|4}if(typeof l.strikethrough<"u"){const r=(l.strikethrough?8:0)<<11;m|=r|8}if(l.foreground){const r=l.foreground<<15;m|=r|16}m===0&&(m=2147483647)}}else this._logService.getLevel()===y.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${n} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),m=2147483647,c="not-in-legend";this._hashTable.add(n,i,o,m),this._logService.getLevel()===y.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${n} (${c}) / ${i} (${d.join(" ")}): foreground ${L.TokenMetadata.getForeground(m)}, fontStyle ${L.TokenMetadata.getFontStyle(m).toString(2)}`)}return m}warnOverlappingSemanticTokens(n,i){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${n}, column ${i}`))}warnInvalidLengthSemanticTokens(n,i){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${n}, column ${i}`))}warnInvalidEditStart(n,i,t,o,g){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${n}, resultId: ${i}) at edit #${t}: The provided start offset ${o} is outside the previous data (length ${g}).`))}};e.SemanticTokensProviderStyling=p,e.SemanticTokensProviderStyling=p=De([he(1,k.IThemeService),he(2,S.ILanguageService),he(3,y.ILogService)],p);function w(a,n,i){const t=a.data,o=a.data.length/5|0,g=Math.max(Math.ceil(o/1024),400),m=[];let c=0,d=1,s=0;for(;cl&&t[5*I]===0;)I--;if(I-1===l){let T=r;for(;T+1M)n.warnOverlappingSemanticTokens(R,M+1);else{const B=n.getMetadata(F,O,i);B!==2147483647&&(f===0&&(f=R),h[u]=R-f,h[u+1]=M,h[u+2]=P,h[u+3]=B,u+=4,C=R,_=P)}d=R,s=M,c++}u!==h.length&&(h=h.subarray(0,u));const E=D.SparseMultilineTokens.create(f,h);m.push(E)}return m}e.toMultilineTokens2=w;class v{constructor(n,i,t,o){this.tokenTypeIndex=n,this.tokenModifierSet=i,this.languageId=t,this.metadata=o,this.next=null}}class b{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=b._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const g=this._elements;this._currentLengthIndex++,this._currentLength=b._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{this._caches=new WeakMap}))}getStyling(a){return this._caches.has(a)||this._caches.set(a,new S.SemanticTokensProviderStyling(a.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(a)}};e.SemanticTokensStylingService=v,e.SemanticTokensStylingService=v=De([he(0,y.IThemeService),he(1,D.ILogService),he(2,k.ILanguageService)],v),(0,w.registerSingleton)(p.ISemanticTokensStylingService,v,1)}),define(ne[377],se([1,0,112,2,157,40,83,24,44]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorNavigationQuickAccessProvider=void 0;class v{constructor(a){this.options=a,this.rangeHighlightDecorationId=void 0}provide(a,n){var i;const t=new k.DisposableStore;a.canAcceptInBackground=!!(!((i=this.options)===null||i===void 0)&&i.canAcceptInBackground),a.matchOnLabel=a.matchOnDescription=a.matchOnDetail=a.sortByLabel=!1;const o=t.add(new k.MutableDisposable);return o.value=this.doProvide(a,n),t.add(this.onDidActiveTextEditorControlChange(()=>{o.value=void 0,o.value=this.doProvide(a,n)})),t}doProvide(a,n){var i;const t=new k.DisposableStore,o=this.activeTextEditorControl;if(o&&this.canProvideWithTextEditor(o)){const g={editor:o},m=(0,y.getCodeEditor)(o);if(m){let c=(i=o.saveViewState())!==null&&i!==void 0?i:void 0;t.add(m.onDidChangeCursorPosition(()=>{var d;c=(d=o.saveViewState())!==null&&d!==void 0?d:void 0})),g.restoreViewState=()=>{c&&o===this.activeTextEditorControl&&o.restoreViewState(c)},t.add((0,L.createSingleCallFunction)(n.onCancellationRequested)(()=>{var d;return(d=g.restoreViewState)===null||d===void 0?void 0:d.call(g)}))}t.add((0,k.toDisposable)(()=>this.clearDecorations(o))),t.add(this.provideWithTextEditor(g,a,n))}else t.add(this.provideWithoutTextEditor(a,n));return t}canProvideWithTextEditor(a){return!0}gotoLocation({editor:a},n){a.setSelection(n.range),a.revealRangeInCenter(n.range,0),n.preserveFocus||a.focus();const i=a.getModel();i&&"getLineContent"in i&&(0,w.status)(`${i.getLineContent(n.range.startLineNumber)}`)}getModel(a){var n;return(0,y.isDiffEditor)(a)?(n=a.getModel())===null||n===void 0?void 0:n.modified:a.getModel()}addDecorations(a,n){a.changeDecorations(i=>{const t=[];this.rangeHighlightDecorationId&&(t.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),t.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const o=[{range:n,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,p.themeColorFromId)(S.overviewRulerRangeHighlight),position:D.OverviewRulerLane.Full}}}],[g,m]=i.deltaDecorations(t,o);this.rangeHighlightDecorationId={rangeHighlightId:g,overviewRulerDecorationId:m}})}clearDecorations(a){const n=this.rangeHighlightDecorationId;n&&(a.changeDecorations(i=>{i.deltaDecorations([n.overviewRulerDecorationId,n.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}e.AbstractEditorNavigationQuickAccessProvider=v}),define(ne[876],se([1,0,2,157,377,717]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoLineQuickAccessProvider=void 0;class S extends y.AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(w){const v=(0,D.localize)(0,null);return w.items=[{label:v}],w.ariaLabel=v,L.Disposable.None}provideWithTextEditor(w,v,b){const a=w.editor,n=new L.DisposableStore;n.add(v.onDidAccept(o=>{const[g]=v.selectedItems;if(g){if(!this.isValidLineNumber(a,g.lineNumber))return;this.gotoLocation(w,{range:this.toRange(g.lineNumber,g.column),keyMods:v.keyMods,preserveFocus:o.inBackground}),o.inBackground||v.hide()}}));const i=()=>{const o=this.parsePosition(a,v.value.trim().substr(S.PREFIX.length)),g=this.getPickLabel(a,o.lineNumber,o.column);if(v.items=[{lineNumber:o.lineNumber,column:o.column,label:g}],v.ariaLabel=g,!this.isValidLineNumber(a,o.lineNumber)){this.clearDecorations(a);return}const m=this.toRange(o.lineNumber,o.column);a.revealRangeInCenter(m,0),this.addDecorations(a,m)};i(),n.add(v.onDidChangeValue(()=>i()));const t=(0,k.getCodeEditor)(a);return t&&t.getOptions().get(68).renderType===2&&(t.updateOptions({lineNumbers:"on"}),n.add((0,L.toDisposable)(()=>t.updateOptions({lineNumbers:"relative"})))),n}toRange(w=1,v=1){return{startLineNumber:w,startColumn:v,endLineNumber:w,endColumn:v}}parsePosition(w,v){const b=v.split(/,|:|#/).map(n=>parseInt(n,10)).filter(n=>!isNaN(n)),a=this.lineCount(w)+1;return{lineNumber:b[0]>0?b[0]:a+b[0],column:b[1]}}getPickLabel(w,v,b){if(this.isValidLineNumber(w,v))return this.isValidColumn(w,v,b)?(0,D.localize)(1,null,v,b):(0,D.localize)(2,null,v);const a=w.getPosition()||{lineNumber:1,column:1},n=this.lineCount(w);return n>1?(0,D.localize)(3,null,a.lineNumber,a.column,n):(0,D.localize)(4,null,a.lineNumber,a.column)}isValidLineNumber(w,v){return!v||typeof v!="number"?!1:v>0&&v<=this.lineCount(w)}isValidColumn(w,v,b){if(!b||typeof b!="number")return!1;const a=this.getModel(w);if(!a)return!1;const n={lineNumber:v,column:b};return a.validatePosition(n).equals(n)}lineCount(w){var v,b;return(b=(v=this.getModel(w))===null||v===void 0?void 0:v.getLineCount())!==null&&b!==void 0?b:0}}e.AbstractGotoLineQuickAccessProvider=S,S.PREFIX=":"}),define(ne[877],se([1,0,15,19,27,29,596,2,11,5,30,167,377,718,18,62]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoSymbolQuickAccessProvider=void 0;let m=g=class extends n.AbstractEditorNavigationQuickAccessProvider{constructor(l,r,h=Object.create(null)){super(h),this._languageFeaturesService=l,this._outlineModelService=r,this.options=h,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(l){return this.provideLabelPick(l,(0,i.localize)(0,null)),p.Disposable.None}provideWithTextEditor(l,r,h){const u=l.editor,f=this.getModel(u);return f?this._languageFeaturesService.documentSymbolProvider.has(f)?this.doProvideWithEditorSymbols(l,f,r,h):this.doProvideWithoutEditorSymbols(l,f,r,h):p.Disposable.None}doProvideWithoutEditorSymbols(l,r,h,u){const f=new p.DisposableStore;return this.provideLabelPick(h,(0,i.localize)(1,null)),(async()=>!await this.waitForLanguageSymbolRegistry(r,f)||u.isCancellationRequested||f.add(this.doProvideWithEditorSymbols(l,r,h,u)))(),f}provideLabelPick(l,r){l.items=[{label:r,index:0,kind:14}],l.ariaLabel=r}async waitForLanguageSymbolRegistry(l,r){if(this._languageFeaturesService.documentSymbolProvider.has(l))return!0;const h=new L.DeferredPromise,u=r.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(l)&&(u.dispose(),h.complete(!0))}));return r.add((0,p.toDisposable)(()=>h.complete(!1))),h.p}doProvideWithEditorSymbols(l,r,h,u){var f;const C=l.editor,_=new p.DisposableStore;_.add(h.onDidAccept(A=>{const[R]=h.selectedItems;R&&R.range&&(this.gotoLocation(l,{range:R.range.selection,keyMods:h.keyMods,preserveFocus:A.inBackground}),A.inBackground||h.hide())})),_.add(h.onDidTriggerItemButton(({item:A})=>{A&&A.range&&(this.gotoLocation(l,{range:A.range.selection,keyMods:h.keyMods,forceSideBySide:!0}),h.hide())}));const E=this.getDocumentSymbols(r,u);let I;const T=async A=>{I?.dispose(!0),h.busy=!1,I=new k.CancellationTokenSource(u),h.busy=!0;try{const R=(0,S.prepareQuery)(h.value.substr(g.PREFIX.length).trim()),M=await this.doGetSymbolPicks(E,R,void 0,I.token);if(u.isCancellationRequested)return;if(M.length>0){if(h.items=M,A&&R.original.length===0){const N=(0,o.findLast)(M,P=>!!(P.type!=="separator"&&P.range&&v.Range.containsPosition(P.range.decoration,A)));N&&(h.activeItems=[N])}}else R.original.length>0?this.provideLabelPick(h,(0,i.localize)(2,null)):this.provideLabelPick(h,(0,i.localize)(3,null))}finally{u.isCancellationRequested||(h.busy=!1)}};return _.add(h.onDidChangeValue(()=>T(void 0))),T((f=C.getSelection())===null||f===void 0?void 0:f.getPosition()),_.add(h.onDidChangeActive(()=>{const[A]=h.activeItems;A&&A.range&&(C.revealRangeInCenter(A.range.selection,0),this.addDecorations(C,A.range.decoration))})),_}async doGetSymbolPicks(l,r,h,u){var f,C;const _=await l;if(u.isCancellationRequested)return[];const E=r.original.indexOf(g.SCOPE_PREFIX)===0,I=E?1:0;let T,A;r.values&&r.values.length>1?(T=(0,S.pieceToQuery)(r.values[0]),A=(0,S.pieceToQuery)(r.values.slice(1))):T=r;let R;const M=(C=(f=this.options)===null||f===void 0?void 0:f.openSideBySideDirection)===null||C===void 0?void 0:C.call(f);M&&(R=[{iconClass:M==="right"?D.ThemeIcon.asClassName(y.Codicon.splitHorizontal):D.ThemeIcon.asClassName(y.Codicon.splitVertical),tooltip:M==="right"?(0,i.localize)(4,null):(0,i.localize)(5,null)}]);const N=[];for(let O=0;O<_.length;O++){const B=_[O],W=(0,w.trim)(B.name),V=`$(${b.SymbolKinds.toIcon(B.kind).id}) ${W}`,z=V.length-W.length;let K=B.containerName;h?.extraContainerLabel&&(K?K=`${h.extraContainerLabel} \u2022 ${K}`:K=h.extraContainerLabel);let j,x,re,ie;if(r.original.length>I){let X=!1;if(T!==r&&([j,x]=(0,S.scoreFuzzy2)(V,{...r,values:void 0},I,z),typeof j=="number"&&(X=!0)),typeof j!="number"&&([j,x]=(0,S.scoreFuzzy2)(V,T,I,z),typeof j!="number"))continue;if(!X&&A){if(K&&A.original.length>0&&([re,ie]=(0,S.scoreFuzzy2)(K,A)),typeof re!="number")continue;typeof j=="number"&&(j+=re)}}const J=B.tags&&B.tags.indexOf(1)>=0;N.push({index:O,kind:B.kind,score:j,label:V,ariaLabel:(0,b.getAriaLabelForSymbol)(B.name,B.kind),description:K,highlights:J?void 0:{label:x,description:ie},range:{selection:v.Range.collapseToStart(B.selectionRange),decoration:B.range},strikethrough:J,buttons:R})}const P=N.sort((O,B)=>E?this.compareByKindAndScore(O,B):this.compareByScore(O,B));let F=[];if(E){let V=function(){B&&typeof O=="number"&&W>0&&(B.label=(0,w.format)(d[O]||c,W))},O,B,W=0;for(const z of P)O!==z.kind?(V(),O=z.kind,W=1,B={type:"separator"},F.push(B)):W++,F.push(z);V()}else P.length>0&&(F=[{label:(0,i.localize)(6,null,N.length),type:"separator"},...P]);return F}compareByScore(l,r){if(typeof l.score!="number"&&typeof r.score=="number")return 1;if(typeof l.score=="number"&&typeof r.score!="number")return-1;if(typeof l.score=="number"&&typeof r.score=="number"){if(l.score>r.score)return-1;if(l.scorer.index?1:0}compareByKindAndScore(l,r){const h=d[l.kind]||c,u=d[r.kind]||c,f=h.localeCompare(u);return f===0?this.compareByScore(l,r):f}async getDocumentSymbols(l,r){const h=await this._outlineModelService.getOrCreate(l,r);return r.isCancellationRequested?[]:h.asListOfDocumentSymbols()}};e.AbstractGotoSymbolQuickAccessProvider=m,m.PREFIX="@",m.SCOPE_PREFIX=":",m.PREFIX_BY_CATEGORY=`${g.PREFIX}${g.SCOPE_PREFIX}`,e.AbstractGotoSymbolQuickAccessProvider=m=g=De([he(0,t.ILanguageFeaturesService),he(1,a.IOutlineModelService)],m);const c=(0,i.localize)(7,null),d={5:(0,i.localize)(8,null),11:(0,i.localize)(9,null),8:(0,i.localize)(10,null),12:(0,i.localize)(11,null),4:(0,i.localize)(12,null),22:(0,i.localize)(13,null),23:(0,i.localize)(14,null),24:(0,i.localize)(15,null),10:(0,i.localize)(16,null),2:(0,i.localize)(17,null),3:(0,i.localize)(18,null),25:(0,i.localize)(19,null),1:(0,i.localize)(20,null),6:(0,i.localize)(21,null),9:(0,i.localize)(22,null),21:(0,i.localize)(23,null),14:(0,i.localize)(24,null),0:(0,i.localize)(25,null),17:(0,i.localize)(26,null),15:(0,i.localize)(27,null),16:(0,i.localize)(28,null),18:(0,i.localize)(29,null),19:(0,i.localize)(30,null),7:(0,i.localize)(31,null),13:(0,i.localize)(32,null)}}),define(ne[878],se([1,0,6,44,104,105,13,15,27,2,20,9,30,721,14,34,60,102,31,24,484]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenameInputField=e.CONTEXT_RENAME_INPUT_FOCUSED=e.CONTEXT_RENAME_INPUT_VISIBLE=void 0;const s=!1;e.CONTEXT_RENAME_INPUT_VISIBLE=new t.RawContextKey("renameInputVisible",!1,(0,i.localize)(0,null)),e.CONTEXT_RENAME_INPUT_FOCUSED=new t.RawContextKey("renameInputFocused",!1,(0,i.localize)(1,null));let l=class{constructor(f,C,_,E,I,T){this._editor=f,this._acceptKeybindings=C,this._themeService=_,this._keybindingService=E,this._logService=T,this._disposables=new v.DisposableStore,this.allowEditorOverflow=!0,this._visibleContextKey=e.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(I),this._focusedContextKey=e.CONTEXT_RENAME_INPUT_FOCUSED.bindTo(I),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(A=>{A.hasChanged(50)&&this._updateFont()})),this._disposables.add(_.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",(0,i.localize)(2,null)),this._disposables.add((0,L.addDisposableListener)(this._input,"focus",()=>{this._focusedContextKey.set(!0)})),this._disposables.add((0,L.addDisposableListener)(this._input,"blur",()=>{this._focusedContextKey.reset()})),this._domNode.appendChild(this._input),this._candidatesView=this._disposables.add(new r(this._domNode,{fontInfo:this._editor.getOption(50),onSelectionChange:()=>this.acceptInput(!1)})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(f){var C,_,E,I;if(!this._input||!this._domNode)return;const T=f.getColor(c.widgetShadow),A=f.getColor(c.widgetBorder);this._domNode.style.backgroundColor=String((C=f.getColor(c.editorWidgetBackground))!==null&&C!==void 0?C:""),this._domNode.style.boxShadow=T?` 0 0 8px 2px ${T}`:"",this._domNode.style.border=A?`1px solid ${A}`:"",this._domNode.style.color=String((_=f.getColor(c.inputForeground))!==null&&_!==void 0?_:""),this._input.style.backgroundColor=String((E=f.getColor(c.inputBackground))!==null&&E!==void 0?E:"");const R=f.getColor(c.inputBorder);this._input.style.borderWidth=R?"1px":"0px",this._input.style.borderStyle=R?"solid":"none",this._input.style.borderColor=(I=R?.toString())!==null&&I!==void 0?I:"none"}_updateFont(){if(!this._input||!this._label||!this._candidatesView)return;const f=this._editor.getOption(50);this._input.style.fontFamily=f.fontFamily,this._input.style.fontWeight=f.fontWeight,this._input.style.fontSize=`${f.fontSize}px`,this._candidatesView.updateFont(f),this._label.style.fontSize=`${this._computeLabelFontSize(f.fontSize)}px`}_computeLabelFontSize(f){return f*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const f=(0,L.getClientArea)(this.getDomNode().ownerDocument.body),C=(0,L.getDomNodePagePosition)(this._editor.getDomNode()),_=this._getTopForPosition();this._nPxAvailableAbove=_+C.top,this._nPxAvailableBelow=f.height-this._nPxAvailableAbove;const E=this._editor.getOption(67),{totalHeight:I}=h.getLayoutInfo({lineHeight:E}),T=this._nPxAvailableBelow>I*6?[2,1]:[1,2];return{position:this._position,preference:T}}beforeRender(){var f,C;const[_,E]=this._acceptKeybindings;return this._label.innerText=(0,i.localize)(3,null,(f=this._keybindingService.lookupKeybinding(_))===null||f===void 0?void 0:f.getLabel(),(C=this._keybindingService.lookupKeybinding(E))===null||C===void 0?void 0:C.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(f){if(this._trace("invoking afterRender, position: ",f?"not null":"null"),f===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;(0,b.assertType)(this._candidatesView),(0,b.assertType)(this._nPxAvailableAbove!==void 0),(0,b.assertType)(this._nPxAvailableBelow!==void 0);const C=(0,L.getTotalHeight)(this._input),_=(0,L.getTotalHeight)(this._label);let E;f===2?E=this._nPxAvailableBelow:E=this._nPxAvailableAbove,this._candidatesView.layout({height:E-_-C,width:(0,L.getTotalWidth)(this._input)})}acceptInput(f){var C;this._trace("invoking acceptInput"),(C=this._currentAcceptInput)===null||C===void 0||C.call(this,f)}cancelInput(f,C){var _;this._trace(`invoking cancelInput, caller: ${C}, _currentCancelInput: ${this._currentAcceptInput?"not undefined":"undefined"}`),(_=this._currentCancelInput)===null||_===void 0||_.call(this,f)}focusNextRenameSuggestion(){var f;(f=this._candidatesView)===null||f===void 0||f.focusNext()}focusPreviousRenameSuggestion(){var f;!((f=this._candidatesView)===null||f===void 0)&&f.focusPrevious()||this._input.focus()}getInput(f,C,_,E,I,T,A){this._domNode.classList.toggle("preview",I),this._position=new a.Position(f.startLineNumber,f.startColumn),this._input.value=C,this._input.setAttribute("selectionStart",_.toString()),this._input.setAttribute("selectionEnd",E.toString()),this._input.size=Math.max((f.endColumn-f.startColumn)*1.1,20);const R=new v.DisposableStore;return R.add((0,v.toDisposable)(()=>A.dispose(!0))),this._updateRenameCandidates(T,C,A.token),new Promise(M=>{this._currentCancelInput=N=>{var P;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(P=this._candidatesView)===null||P===void 0||P.clearCandidates(),M(N),!0},this._currentAcceptInput=N=>{this._trace("invoking _currentAcceptInput"),(0,b.assertType)(this._input!==void 0),(0,b.assertType)(this._candidatesView!==void 0);const P=this._candidatesView.nCandidates;let F,O;const B=this._candidatesView.focusedCandidate;if(B!==void 0?(this._trace("using new name from renameSuggestion"),F=B,O="renameSuggestion"):(this._trace("using new name from inputField"),F=this._input.value,O="inputField"),F===C||F.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._candidatesView.clearCandidates(),M({newName:F,wantsPreview:I&&N,source:O,nRenameSuggestions:P})},R.add(A.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),s||R.add(this._editor.onDidBlurEditorWidget(()=>{var N;return this.cancelInput(!(!((N=this._domNode)===null||N===void 0)&&N.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show()}).finally(()=>{R.dispose(),this._hide()})}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(f,C,_){const E=(...M)=>this._trace("_updateRenameCandidates",...M);E("start");const I=await(0,p.raceCancellation)(Promise.allSettled(f),_);if(I===void 0){E("returning early - received updateRenameCandidates results - undefined");return}const T=I.flatMap(M=>M.status==="fulfilled"&&(0,b.isDefined)(M.value)?M.value:[]);E(`received updateRenameCandidates results - total (unfiltered) ${T.length} candidates.`);const A=S.distinct(T,M=>M.newSymbolName);E(`distinct candidates - ${A.length} candidates.`);const R=A.filter(({newSymbolName:M})=>{var N;return M.trim().length>0&&M!==((N=this._input)===null||N===void 0?void 0:N.value)&&M!==C});if(E(`valid distinct candidates - ${T.length} candidates.`),R.length<1){E("returning early - no valid distinct candidates");return}E("setting candidates"),this._candidatesView.setCandidates(R),E("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const f=this._editor.getVisibleRanges();let C;return f.length>0?C=f[0].startLineNumber:(this._logService.warn("RenameInputField#_getTopForPosition: this should not happen - visibleRanges is empty"),C=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(C)}_trace(...f){this._logService.trace("RenameInputField",...f)}};e.RenameInputField=l,e.RenameInputField=l=De([he(2,d.IThemeService),he(3,o.IKeybindingService),he(4,t.IContextKeyService),he(5,g.ILogService)],l);class r{constructor(f,C){this._disposables=new v.DisposableStore,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=C.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=C.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.style.fontFamily=C.fontInfo.fontFamily,this._listContainer.style.fontWeight=C.fontInfo.fontWeight,this._listContainer.style.fontSize=`${C.fontInfo.fontSize}px`,f.appendChild(this._listContainer);const _=this,E=new class{getTemplateId(T){return"candidate"}getHeight(T){return _._candidateViewHeight}},I=new class{constructor(){this.templateId="candidate"}renderTemplate(T){return new h(T,{lineHeight:_._lineHeight})}renderElement(T,A,R){R.model=T}disposeTemplate(T){T.dispose()}};this._listWidget=new D.List("NewSymbolNameCandidates",this._listContainer,E,[I],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1}),this._disposables.add(this._listWidget.onDidChangeSelection(T=>{T.elements.length>0&&C.onSelectionChange()})),this._disposables.add(this._listWidget.onDidBlur(T=>{this._listWidget.setFocus([])})),this._listWidget.style(m.defaultListStyles)}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:f,width:C}){this._availableHeight=f,this._minimumWidth=C}setCandidates(f){this._listWidget.splice(0,0,f);const C=this._pickListHeight(f.length),_=this._pickListWidth(f);this._listWidget.layout(C,_),this._listContainer.style.height=`${C}px`,this._listContainer.style.width=`${_}px`,k.status((0,i.localize)(4,null,f.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const f=this._listWidget.getSelectedElements()[0];if(f!==void 0)return f.newSymbolName;const C=this._listWidget.getFocusedElements()[0];if(C!==void 0)return C.newSymbolName}updateFont(f){this._listContainer.style.fontFamily=f.fontFamily,this._listContainer.style.fontWeight=f.fontWeight,this._listContainer.style.fontSize=`${f.fontSize}px`,this._lineHeight=f.lineHeight,this._listWidget.rerender()}focusNext(){this._listWidget.length!==0&&(this._listWidget.isDOMFocused()?this._listWidget.focusNext():(this._listWidget.domFocus(),this._listWidget.focusFirst()),this._listWidget.reveal(this._listWidget.getFocus()[0]))}focusPrevious(){if(this._listWidget.length===0)return!1;this._listWidget.domFocus();const f=this._listWidget.getFocus()[0];return f!==0&&(this._listWidget.focusPrevious(),this._listWidget.reveal(this._listWidget.getFocus()[0])),f>0}get _candidateViewHeight(){const{totalHeight:f}=h.getLayoutInfo({lineHeight:this._lineHeight});return f}_pickListHeight(f){const C=this._candidateViewHeight*f;return Math.min(C,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(f){const C=Math.ceil(Math.max(...f.map(E=>E.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+C+10)}}class h{constructor(f,{lineHeight:C}){this.domNode=document.createElement("div"),this.domNode.style.display="flex",this.domNode.style.alignItems="center",this.domNode.style.height=`${C}px`,this.domNode.style.padding=`${h._PADDING}px`,this._icon=document.createElement("div"),this._icon.style.display="flex",this._icon.style.alignItems="center",this._icon.style.width=this._icon.style.height=`${C*.8}px`,this.domNode.appendChild(this._icon),this._label=document.createElement("div"),this._icon.style.display="flex",this._icon.style.alignItems="center",this._label.style.marginLeft="5px",this.domNode.appendChild(this._label),f.appendChild(this.domNode)}set model(f){var C;this._icon.children.length===0&&this._icon.appendChild((0,y.renderIcon)(w.Codicon.sparkle)),this._label.innerText=f.newSymbolName}static getLayoutInfo({lineHeight:f}){return{totalHeight:f+h._PADDING*2}}dispose(){}}h._PADDING=2}),define(ne[879],se([1,0,44,15,19,12,2,20,22,16,142,35,9,5,21,18,194,109,168,720,28,101,14,8,60,49,88,37,61,878]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.RenameAction=e.rename=void 0;class A{constructor(O,B,W){this.model=O,this.position=B,this._providerRenameIdx=0,this._providers=W.ordered(O)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(O){const B=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?B.join(` +`):void 0}:{range:i.Range.fromPositions(this.position),text:"",rejectReason:B.length>0?B.join(` +`):void 0}}async provideRenameEdits(O,B){return this._provideRenameEdits(O,this._providerRenameIdx,[],B)}async _provideRenameEdits(O,B,W,V){const z=this._providers[B];if(!z)return{edits:[],rejectReason:W.join(` +`)};const K=await z.provideRenameEdits(this.model,this.position,O,V);if(K){if(K.rejectReason)return this._provideRenameEdits(O,B+1,W.concat(K.rejectReason),V)}else return this._provideRenameEdits(O,B+1,W.concat(d.localize(0,null)),V);return K}}async function R(F,O,B,W){const V=new A(O,B,F),z=await V.resolveRenameLocation(y.CancellationToken.None);return z?.rejectReason?{edits:[],rejectReason:z.rejectReason}:V.provideRenameEdits(W,y.CancellationToken.None)}e.rename=R;let M=T=class{static get(O){return O.getContribution(T.ID)}constructor(O,B,W,V,z,K,j,x,re){this.editor=O,this._instaService=B,this._notificationService=W,this._bulkEditService=V,this._progressService=z,this._logService=K,this._configService=j,this._languageFeaturesService=x,this._telemetryService=re,this._disposableStore=new S.DisposableStore,this._cts=new y.CancellationTokenSource,this._renameInputField=this._disposableStore.add(this._instaService.createInstance(I.RenameInputField,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var O,B;const W=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new y.CancellationTokenSource,!this.editor.hasModel()){W("editor has no model");return}const V=this.editor.getPosition(),z=new A(this.editor.getModel(),V,this._languageFeaturesService.renameProvider);if(!z.hasProvider()){W("skeleton has no provider");return}const K=new m.EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let j;try{W("resolving rename location");const U=z.resolveRenameLocation(K.token);this._progressService.showWhile(U,250),j=await U,W("resolved rename location")}catch(U){W("resolve rename location failed",JSON.stringify(U,null," ")),(O=c.MessageController.get(this.editor))===null||O===void 0||O.showMessage(U||d.localize(1,null),V);return}finally{K.dispose()}if(!j){W("returning early - no loc");return}if(j.rejectReason){W(`returning early - rejected with reason: ${j.rejectReason}`,j.rejectReason),(B=c.MessageController.get(this.editor))===null||B===void 0||B.showMessage(j.rejectReason,V);return}if(K.token.isCancellationRequested){W("returning early - cts1 cancelled");return}const x=new m.EditorStateCancellationTokenSource(this.editor,5,j.range,this._cts.token),re=this.editor.getModel(),ie=new y.CancellationTokenSource(x.token),J=this._languageFeaturesService.newSymbolNamesProvider.all(re),X=J.map(U=>U.provideNewSymbolNames(re,j.range,ie.token));W(`requested new symbol names from ${J.length} providers`);const Y=this.editor.getSelection();let le=0,de=j.text.length;!i.Range.isEmpty(Y)&&!i.Range.spansMultipleLines(Y)&&i.Range.containsRange(j.range,Y)&&(le=Math.max(0,Y.startColumn-j.range.startColumn),de=Math.min(j.range.endColumn,Y.endColumn)-j.range.startColumn),W("creating rename input field and awaiting its result");const ge=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),pe=await this._renameInputField.getInput(j.range,j.text,le,de,ge,X,ie);if(W("received response from rename input field"),J.length>0&&this._reportTelemetry(J.length,re.getLanguageId(),pe),typeof pe=="boolean"){W(`returning early - rename input field response - ${pe}`),pe&&this.editor.focus(),x.dispose();return}this.editor.focus(),W("requesting rename edits");const Q=(0,k.raceCancellation)(z.provideRenameEdits(pe.newName,x.token),x.token).then(async U=>{if(!U){W("returning early - no rename edits result");return}if(!this.editor.hasModel()){W("returning early - no model after rename edits are provided");return}if(U.rejectReason){W(`returning early - rejected with reason: ${U.rejectReason}`),this._notificationService.info(U.rejectReason);return}this.editor.setSelection(i.Range.fromPositions(this.editor.getSelection().getPosition())),W("applying edits"),this._bulkEditService.apply(U,{editor:this.editor,showPreview:pe.wantsPreview,label:d.localize(2,null,j?.text,pe.newName),code:"undoredo.rename",quotableLabel:d.localize(3,null,j?.text,pe.newName),respectAutoSaveConfig:!0}).then(Z=>{W("edits applied"),Z.ariaSummary&&(0,L.alert)(d.localize(4,null,j.text,pe.newName,Z.ariaSummary))}).catch(Z=>{W(`error when applying edits ${JSON.stringify(Z,null," ")}`),this._notificationService.error(d.localize(5,null)),this._logService.error(Z)})},U=>{W("error when providing rename edits",JSON.stringify(U,null," ")),this._notificationService.error(d.localize(6,null)),this._logService.error(U)}).finally(()=>{x.dispose()});return W("returning rename operation"),this._progressService.showWhile(Q,250),Q}acceptRenameInput(O){this._renameInputField.acceptInput(O)}cancelRenameInput(){this._renameInputField.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameInputField.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameInputField.focusPreviousRenameSuggestion()}_reportTelemetry(O,B,W){const V=typeof W=="boolean"?{kind:"cancelled",languageId:B,nRenameSuggestionProviders:O}:{kind:"accepted",languageId:B,nRenameSuggestionProviders:O,source:W.source,nRenameSuggestions:W.nRenameSuggestions,wantsPreview:W.wantsPreview};this._telemetryService.publicLog2("renameInvokedEvent",V)}};M.ID="editor.contrib.renameController",M=T=De([he(1,h.IInstantiationService),he(2,f.INotificationService),he(3,b.IBulkEditService),he(4,C.IEditorProgressService),he(5,u.ILogService),he(6,g.ITextResourceConfigurationService),he(7,o.ILanguageFeaturesService),he(8,E.ITelemetryService)],M);class N extends v.EditorAction{constructor(){super({id:"editor.action.rename",label:d.localize(7,null),alias:"Rename Symbol",precondition:r.ContextKeyExpr.and(t.EditorContextKeys.writable,t.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(O,B){const W=O.get(a.ICodeEditorService),[V,z]=Array.isArray(B)&&B||[void 0,void 0];return w.URI.isUri(V)&&n.Position.isIPosition(z)?W.openCodeEditor({resource:V},W.getActiveCodeEditor()).then(K=>{K&&(K.setPosition(z),K.invokeWithinContext(j=>(this.reportTelemetry(j,K),this.run(j,K))))},D.onUnexpectedError):super.runCommand(O,B)}run(O,B){const W=O.get(u.ILogService),V=M.get(B);return V?(W.trace("[RenameAction] got controller, running..."),V.run()):(W.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}e.RenameAction=N,(0,v.registerEditorContribution)(M.ID,M,4),(0,v.registerEditorAction)(N);const P=v.EditorCommand.bindToContribution(M.get);(0,v.registerEditorCommand)(new P({id:"acceptRenameInput",precondition:I.CONTEXT_RENAME_INPUT_VISIBLE,handler:F=>F.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:r.ContextKeyExpr.and(t.EditorContextKeys.focus,r.ContextKeyExpr.not("isComposing")),primary:3}})),(0,v.registerEditorCommand)(new P({id:"acceptRenameInputWithPreview",precondition:r.ContextKeyExpr.and(I.CONTEXT_RENAME_INPUT_VISIBLE,r.ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:F=>F.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:r.ContextKeyExpr.and(t.EditorContextKeys.focus,r.ContextKeyExpr.not("isComposing")),primary:1027}})),(0,v.registerEditorCommand)(new P({id:"cancelRenameInput",precondition:I.CONTEXT_RENAME_INPUT_VISIBLE,handler:F=>F.cancelRenameInput(),kbOpts:{weight:199,kbExpr:t.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,s.registerAction2)(class extends s.Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...d.localize2(9,"Focus Next Rename Suggestion")},precondition:I.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:2,secondary:[18],weight:199}]})}run(O){const B=O.get(a.ICodeEditorService).getFocusedCodeEditor();if(!B)return;const W=M.get(B);W&&W.focusNextRenameSuggestion()}}),(0,s.registerAction2)(class extends s.Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...d.localize2(10,"Focus Previous Rename Suggestion")},precondition:I.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{when:I.CONTEXT_RENAME_INPUT_FOCUSED,primary:6,weight:199},{when:I.CONTEXT_RENAME_INPUT_FOCUSED.toNegated(),primary:1026,secondary:[16],weight:199}]})}run(O){const B=O.get(a.ICodeEditorService).getFocusedCodeEditor();if(!B)return;const W=M.get(B);W&&W.focusPreviousRenameSuggestion()}}),(0,v.registerModelAndPositionCommand)("_executeDocumentRenameProvider",function(F,O,B,...W){const[V]=W;(0,p.assertType)(typeof V=="string");const{renameProvider:z}=F.get(o.ILanguageFeaturesService);return R(z,O,B,V)}),(0,v.registerModelAndPositionCommand)("_executePrepareRename",async function(F,O,B){const{renameProvider:W}=F.get(o.ILanguageFeaturesService),z=await new A(O,B,W).resolveRenameLocation(y.CancellationToken.None);if(z?.rejectReason)throw new Error(z.rejectReason);return z}),_.Registry.as(l.Extensions.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:d.localize(8,null),default:!0,type:"boolean"}}})}),define(ne[880],se([1,0,2,12,51,26,15,19,24,261,351,80,63,18,244,135,315]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.DocumentSemanticTokensFeature=void 0;let c=class extends L.Disposable{constructor(r,h,u,f,C,_){super(),this._watchers=Object.create(null);const E=A=>{this._watchers[A.uri.toString()]=new d(A,r,u,C,_)},I=(A,R)=>{R.dispose(),delete this._watchers[A.uri.toString()]},T=()=>{for(const A of h.getModels()){const R=this._watchers[A.uri.toString()];(0,g.isSemanticColoringEnabled)(A,u,f)?R||E(A):R&&I(A,R)}};h.getModels().forEach(A=>{(0,g.isSemanticColoringEnabled)(A,u,f)&&E(A)}),this._register(h.onModelAdded(A=>{(0,g.isSemanticColoringEnabled)(A,u,f)&&E(A)})),this._register(h.onModelRemoved(A=>{const R=this._watchers[A.uri.toString()];R&&I(A,R)})),this._register(f.onDidChangeConfiguration(A=>{A.affectsConfiguration(g.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&T()})),this._register(u.onDidColorThemeChange(T))}dispose(){for(const r of Object.values(this._watchers))r.dispose();super.dispose()}};e.DocumentSemanticTokensFeature=c,e.DocumentSemanticTokensFeature=c=De([he(0,t.ISemanticTokensStylingService),he(1,y.IModelService),he(2,w.IThemeService),he(3,D.IConfigurationService),he(4,a.ILanguageFeatureDebounceService),he(5,i.ILanguageFeaturesService)],c);let d=m=class extends L.Disposable{constructor(r,h,u,f,C){super(),this._semanticTokensStylingService=h,this._isDisposed=!1,this._model=r,this._provider=C.documentSemanticTokensProvider,this._debounceInformation=f.for(this._provider,"DocumentSemanticTokens",{min:m.REQUEST_MIN_DELAY,max:m.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new S.RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),m.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const _=()=>{(0,L.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const E of this._provider.all(r))typeof E.onDidChange=="function"&&this._documentProvidersChangeListeners.push(E.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};_(),this._register(this._provider.onDidChange(()=>{_(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(u.onDidColorThemeChange(E=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),(0,L.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!(0,b.hasDocumentSemanticTokensProvider)(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const r=new p.CancellationTokenSource,h=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,u=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,f=(0,b.getDocumentSemanticTokens)(this._provider,this._model,h,u,r.token);this._currentDocumentRequestCancellationTokenSource=r,this._providersChangedDuringRequest=!1;const C=[],_=this._model.onDidChangeContent(I=>{C.push(I)}),E=new n.StopWatch(!1);f.then(I=>{if(this._debounceInformation.update(this._model,E.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,_.dispose(),!I)this._setDocumentSemanticTokens(null,null,null,C);else{const{provider:T,tokens:A}=I,R=this._semanticTokensStylingService.getStyling(T);this._setDocumentSemanticTokens(T,A||null,R,C)}},I=>{I&&(k.isCancellationError(I)||typeof I.message=="string"&&I.message.indexOf("busy")!==-1)||k.onUnexpectedError(I),this._currentDocumentRequestCancellationTokenSource=null,_.dispose(),(C.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(r,h,u,f,C){C=Math.min(C,u.length-f,r.length-h);for(let _=0;_{(f.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){r&&h&&r.releaseDocumentSemanticTokens(h.resultId);return}if(!r||!u){this._model.tokenization.setSemanticTokens(null,!1);return}if(!h){this._model.tokenization.setSemanticTokens(null,!0),_();return}if((0,b.isSemanticTokensEdits)(h)){if(!C){this._model.tokenization.setSemanticTokens(null,!0);return}if(h.edits.length===0)h={resultId:h.resultId,data:C.data};else{let E=0;for(const M of h.edits)E+=(M.data?M.data.length:0)-M.deleteCount;const I=C.data,T=new Uint32Array(I.length+E);let A=I.length,R=T.length;for(let M=h.edits.length-1;M>=0;M--){const N=h.edits[M];if(N.start>I.length){u.warnInvalidEditStart(C.resultId,h.resultId,M,N.start,I.length),this._model.tokenization.setSemanticTokens(null,!0);return}const P=A-(N.start+N.deleteCount);P>0&&(m._copy(I,A-P,T,R-P,P),R-=P),N.data&&(m._copy(N.data,0,T,R-N.data.length,N.data.length),R-=N.data.length),A=N.start}A>0&&m._copy(I,0,T,0,A),h={resultId:h.resultId,data:T}}}if((0,b.isSemanticTokens)(h)){this._currentDocumentResponse=new s(r,h.resultId,h.data);const E=(0,v.toMultilineTokens2)(h,u,this._model.getLanguageId());if(f.length>0)for(const I of f)for(const T of E)for(const A of I.changes)T.applyEdit(A.range,A.text);this._model.tokenization.setSemanticTokens(E,!0)}else this._model.tokenization.setSemanticTokens(null,!0);_()}};d.REQUEST_MIN_DELAY=300,d.REQUEST_MAX_DELAY=2e3,d=m=De([he(1,t.ISemanticTokensStylingService),he(2,w.IThemeService),he(3,a.ILanguageFeatureDebounceService),he(4,i.ILanguageFeaturesService)],d);class s{constructor(r,h,u){this.provider=r,this.resultId=h,this.data=u}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}(0,o.registerEditorFeature)(c)}),define(ne[881],se([1,0,15,2,16,351,315,261,26,24,80,63,18,244]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportSemanticTokensContribution=void 0;let t=class extends k.Disposable{constructor(g,m,c,d,s,l){super(),this._semanticTokensStylingService=m,this._themeService=c,this._configurationService=d,this._editor=g,this._provider=l.documentRangeSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new L.RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const r=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{r()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),r()})),this._register(this._editor.onDidChangeModelContent(h=>{this._cancelAll(),r()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),r()})),this._register(this._configurationService.onDidChangeConfiguration(h=>{h.affectsConfiguration(S.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),r())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),r()})),r()}_cancelAll(){for(const g of this._outstandingRequests)g.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(g){for(let m=0,c=this._outstandingRequests.length;mthis._requestRange(g,c)))}_requestRange(g,m){const c=g.getVersionId(),d=(0,L.createCancelablePromise)(l=>Promise.resolve((0,D.getDocumentRangeSemanticTokens)(this._provider,g,m,l))),s=new a.StopWatch(!1);return d.then(l=>{if(this._debounceInformation.update(g,s.elapsed()),!l||!l.tokens||g.isDisposed()||g.getVersionId()!==c)return;const{provider:r,tokens:h}=l,u=this._semanticTokensStylingService.getStyling(r);g.tokenization.setPartialSemanticTokens(m,(0,p.toMultilineTokens2)(h,u,g.getLanguageId()))}).then(()=>this._removeOutstandingRequest(d),()=>this._removeOutstandingRequest(d)),d}};e.ViewportSemanticTokensContribution=t,t.ID="editor.contrib.viewportSemanticTokens",e.ViewportSemanticTokensContribution=t=De([he(1,i.ISemanticTokensStylingService),he(2,v.IThemeService),he(3,w.IConfigurationService),he(4,b.ILanguageFeatureDebounceService),he(5,n.ILanguageFeaturesService)],t),(0,y.registerEditorContribution)(t.ID,t,1)}),define(ne[882],se([1,0,6,236,27,29,7,73,2,22,30,802,51,43,730,347,82,24,362]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";var d;Object.defineProperty(e,"__esModule",{value:!0}),e.ItemRenderer=e.getAriaId=void 0;function s(f){return`suggest-aria-id:${f}`}e.getAriaId=s;const l=(0,g.registerIcon)("suggest-more-info",y.Codicon.chevronRight,t.localize(0,null)),r=new(d=class{extract(C,_){if(C.textLabel.match(d._regexStrict))return _[0]=C.textLabel,!0;if(C.completion.detail&&C.completion.detail.match(d._regexStrict))return _[0]=C.completion.detail,!0;if(C.completion.documentation){const E=typeof C.completion.documentation=="string"?C.completion.documentation:C.completion.documentation.value,I=d._regexRelaxed.exec(E);if(I&&(I.index===0||I.index+I[0].length===E.length))return _[0]=I[0],!0}return!1}},d._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,d._regexStrict=new RegExp(`^${d._regexRelaxed.source}$`,"i"),d);let h=class{constructor(C,_,E,I){this._editor=C,this._modelService=_,this._languageService=E,this._themeService=I,this._onDidToggleDetails=new S.Emitter,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(C){const _=new w.DisposableStore,E=C;E.classList.add("show-file-icons");const I=(0,L.append)(C,(0,L.$)(".icon")),T=(0,L.append)(I,(0,L.$)("span.colorspan")),A=(0,L.append)(C,(0,L.$)(".contents")),R=(0,L.append)(A,(0,L.$)(".main")),M=(0,L.append)(R,(0,L.$)(".icon-label.codicon")),N=(0,L.append)(R,(0,L.$)("span.left")),P=(0,L.append)(R,(0,L.$)("span.right")),F=new k.IconLabel(N,{supportHighlights:!0,supportIcons:!0});_.add(F);const O=(0,L.append)(N,(0,L.$)("span.signature-label")),B=(0,L.append)(N,(0,L.$)("span.qualifier-label")),W=(0,L.append)(P,(0,L.$)("span.details-label")),V=(0,L.append)(P,(0,L.$)("span.readMore"+D.ThemeIcon.asCSSSelector(l)));return V.title=t.localize(1,null),{root:E,left:N,right:P,icon:I,colorspan:T,iconLabel:F,iconContainer:M,parametersLabel:O,qualifierLabel:B,detailsLabel:W,readMore:V,disposables:_,configureFont:()=>{const K=this._editor.getOptions(),j=K.get(50),x=j.getMassagedFontFamily(),re=j.fontFeatureSettings,ie=K.get(119)||j.fontSize,J=K.get(120)||j.lineHeight,X=j.fontWeight,Y=j.letterSpacing,le=`${ie}px`,de=`${J}px`,ge=`${Y}px`;E.style.fontSize=le,E.style.fontWeight=X,E.style.letterSpacing=ge,R.style.fontFamily=x,R.style.fontFeatureSettings=re,R.style.lineHeight=de,I.style.height=de,I.style.width=de,V.style.height=de,V.style.width=de}}}renderElement(C,_,E){E.configureFont();const{completion:I}=C;E.root.id=s(_),E.colorspan.style.backgroundColor="";const T={labelEscapeNewLines:!0,matches:(0,p.createMatches)(C.score)},A=[];if(I.kind===19&&r.extract(C,A))E.icon.className="icon customcolor",E.iconContainer.className="icon hide",E.colorspan.style.backgroundColor=A[0];else if(I.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){E.icon.className="icon hide",E.iconContainer.className="icon hide";const R=(0,a.getIconClasses)(this._modelService,this._languageService,v.URI.from({scheme:"fake",path:C.textLabel}),o.FileKind.FILE),M=(0,a.getIconClasses)(this._modelService,this._languageService,v.URI.from({scheme:"fake",path:I.detail}),o.FileKind.FILE);T.extraClasses=R.length>M.length?R:M}else I.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(E.icon.className="icon hide",E.iconContainer.className="icon hide",T.extraClasses=[(0,a.getIconClasses)(this._modelService,this._languageService,v.URI.from({scheme:"fake",path:C.textLabel}),o.FileKind.FOLDER),(0,a.getIconClasses)(this._modelService,this._languageService,v.URI.from({scheme:"fake",path:I.detail}),o.FileKind.FOLDER)].flat()):(E.icon.className="icon hide",E.iconContainer.className="",E.iconContainer.classList.add("suggest-icon",...D.ThemeIcon.asClassNameArray(b.CompletionItemKinds.toIcon(I.kind))));I.tags&&I.tags.indexOf(1)>=0&&(T.extraClasses=(T.extraClasses||[]).concat(["deprecated"]),T.matches=[]),E.iconLabel.setLabel(C.textLabel,void 0,T),typeof I.label=="string"?(E.parametersLabel.textContent="",E.detailsLabel.textContent=u(I.detail||""),E.root.classList.add("string-label")):(E.parametersLabel.textContent=u(I.label.detail||""),E.detailsLabel.textContent=u(I.label.description||""),E.root.classList.remove("string-label")),this._editor.getOption(118).showInlineDetails?(0,L.show)(E.detailsLabel):(0,L.hide)(E.detailsLabel),(0,c.canExpandCompletionItem)(C)?(E.right.classList.add("can-expand-details"),(0,L.show)(E.readMore),E.readMore.onmousedown=R=>{R.stopPropagation(),R.preventDefault()},E.readMore.onclick=R=>{R.stopPropagation(),R.preventDefault(),this._onDidToggleDetails.fire()}):(E.right.classList.remove("can-expand-details"),(0,L.hide)(E.readMore),E.readMore.onmousedown=null,E.readMore.onclick=null)}disposeTemplate(C){C.disposables.dispose()}};e.ItemRenderer=h,e.ItemRenderer=h=De([he(1,n.IModelService),he(2,i.ILanguageService),he(3,m.IThemeService)],h);function u(f){return f.replace(/\r\n|\r|\n/g,"")}}),define(ne[883],se([1,0,876,37,145,35,99,7,16,21,72]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneGotoLineQuickAccessProvider=void 0;let a=class extends L.AbstractGotoLineQuickAccessProvider{constructor(t){super(),this.editorService=t,this.onDidActiveTextEditorControlChange=p.Event.None}get activeTextEditorControl(){var t;return(t=this.editorService.getFocusedCodeEditor())!==null&&t!==void 0?t:void 0}};e.StandaloneGotoLineQuickAccessProvider=a,e.StandaloneGotoLineQuickAccessProvider=a=De([he(0,D.ICodeEditorService)],a);class n extends w.EditorAction{constructor(){super({id:n.ID,label:S.GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:v.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(b.IQuickInputService).quickAccess.show(a.PREFIX)}}e.GotoLineAction=n,n.ID="editor.action.gotoLine",(0,w.registerEditorAction)(n),k.Registry.as(y.Extensions.Quickaccess).registerQuickAccessProvider({ctor:a,prefix:a.PREFIX,helpEntries:[{description:S.GoToLineNLS.gotoLineActionLabel,commandId:n.ID}]})}),define(ne[884],se([1,0,877,37,145,35,99,7,16,21,72,167,18,180,259]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoSymbolAction=e.StandaloneGotoSymbolQuickAccessProvider=void 0;let i=class extends L.AbstractGotoSymbolQuickAccessProvider{constructor(g,m,c){super(m,c),this.editorService=g,this.onDidActiveTextEditorControlChange=p.Event.None}get activeTextEditorControl(){var g;return(g=this.editorService.getFocusedCodeEditor())!==null&&g!==void 0?g:void 0}};e.StandaloneGotoSymbolQuickAccessProvider=i,e.StandaloneGotoSymbolQuickAccessProvider=i=De([he(0,D.ICodeEditorService),he(1,n.ILanguageFeaturesService),he(2,a.IOutlineModelService)],i);class t extends w.EditorAction{constructor(){super({id:t.ID,label:S.QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:v.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:v.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(g){g.get(b.IQuickInputService).quickAccess.show(L.AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:b.ItemActivation.NONE})}}e.GotoSymbolAction=t,t.ID="editor.action.quickOutline",(0,w.registerEditorAction)(t),k.Registry.as(y.Extensions.Quickaccess).registerQuickAccessProvider({ctor:i,prefix:L.AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:S.QuickOutlineNLS.quickOutlineActionLabel,prefix:L.AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:t.ID},{description:S.QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:L.AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]})}),define(ne[378],se([1,0,6,47,861,35,14,45,24]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneCodeEditorService=void 0;let v=class extends y.AbstractCodeEditorService{constructor(a,n){super(n),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=a.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(i,t,o)=>t?this.doOpenEditor(t,i):null))}_checkContextKey(){let a=!1;for(const n of this.listCodeEditors())if(!n.isSimpleWidget){a=!0;break}this._editorIsOpen.set(a)}setActiveCodeEditor(a){this._activeCodeEditor=a}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(a,n){if(!this.findModel(a,n.resource)){if(n.resource){const o=n.resource.scheme;if(o===k.Schemas.http||o===k.Schemas.https)return(0,L.windowOpenNoOpener)(n.resource.toString()),a}return null}const t=n.options?n.options.selection:null;if(t)if(typeof t.endLineNumber=="number"&&typeof t.endColumn=="number")a.setSelection(t),a.revealRangeInCenter(t,1);else{const o={lineNumber:t.startLineNumber,column:t.startColumn};a.setPosition(o),a.revealPositionInCenter(o,1)}return a}findModel(a,n){const i=a.getModel();return i&&i.uri.toString()!==n.toString()?null:i}};e.StandaloneCodeEditorService=v,e.StandaloneCodeEditorService=v=De([he(0,S.IContextKeyService),he(1,w.IThemeService)],v),(0,p.registerSingleton)(D.ICodeEditorService,v,0)}),define(ne[885],se([1,0,83,31]),function(ee,e,L,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hc_light=e.hc_black=e.vs_dark=e.vs=void 0,e.vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFE",[k.editorForeground]:"#000000",[k.editorInactiveSelection]:"#E5EBF1",[L.editorIndentGuide1]:"#D3D3D3",[L.editorActiveIndentGuide1]:"#939393",[k.editorSelectionHighlight]:"#ADD6FF4D"}},e.vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#1E1E1E",[k.editorForeground]:"#D4D4D4",[k.editorInactiveSelection]:"#3A3D41",[L.editorIndentGuide1]:"#404040",[L.editorActiveIndentGuide1]:"#707070",[k.editorSelectionHighlight]:"#ADD6FF26"}},e.hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#000000",[k.editorForeground]:"#FFFFFF",[L.editorIndentGuide1]:"#FFFFFF",[L.editorActiveIndentGuide1]:"#FFFFFF"}},e.hc_light={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFF",[k.editorForeground]:"#292929",[L.editorIndentGuide1]:"#292929",[L.editorActiveIndentGuide1]:"#292929"}}}),define(ne[379],se([1,0,6,59,39,7,30,136,528,885,37,31,24,2,89,856,50]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneThemeService=e.HC_LIGHT_THEME_NAME=e.HC_BLACK_THEME_NAME=e.VS_DARK_THEME_NAME=e.VS_LIGHT_THEME_NAME=void 0,e.VS_LIGHT_THEME_NAME="vs",e.VS_DARK_THEME_NAME="vs-dark",e.HC_BLACK_THEME_NAME="hc-black",e.HC_LIGHT_THEME_NAME="hc-light";const m=b.Registry.as(a.Extensions.ColorContribution),c=b.Registry.as(n.Extensions.ThemingContribution);class d{constructor(f,C){this.semanticHighlighting=!1,this.themeData=C;const _=C.base;f.length>0?(s(f)?this.id=f:this.id=_+" "+f,this.themeName=f):(this.id=_,this.themeName=_),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const f=new Map;for(const C in this.themeData.colors)f.set(C,y.Color.fromHex(this.themeData.colors[C]));if(this.themeData.inherit){const C=l(this.themeData.base);for(const _ in C.colors)f.has(_)||f.set(_,y.Color.fromHex(C.colors[_]))}this.colors=f}return this.colors}getColor(f,C){const _=this.getColors().get(f);if(_)return _;if(C!==!1)return this.getDefault(f)}getDefault(f){let C=this.defaultColors[f];return C||(C=m.resolveDefaultColor(f,this),this.defaultColors[f]=C,C)}defines(f){return this.getColors().has(f)}get type(){switch(this.base){case e.VS_LIGHT_THEME_NAME:return t.ColorScheme.LIGHT;case e.HC_BLACK_THEME_NAME:return t.ColorScheme.HIGH_CONTRAST_DARK;case e.HC_LIGHT_THEME_NAME:return t.ColorScheme.HIGH_CONTRAST_LIGHT;default:return t.ColorScheme.DARK}}get tokenTheme(){if(!this._tokenTheme){let f=[],C=[];if(this.themeData.inherit){const I=l(this.themeData.base);f=I.rules,I.encodedTokensColors&&(C=I.encodedTokensColors)}const _=this.themeData.colors["editor.foreground"],E=this.themeData.colors["editor.background"];if(_||E){const I={token:""};_&&(I.foreground=_),E&&(I.background=E),f.push(I)}f=f.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(C=this.themeData.encodedTokensColors),this._tokenTheme=w.TokenTheme.createFromRawTokenTheme(f,C)}return this._tokenTheme}getTokenStyleMetadata(f,C,_){const I=this.tokenTheme._match([f].concat(C).join(".")).metadata,T=p.TokenMetadata.getForeground(I),A=p.TokenMetadata.getFontStyle(I);return{foreground:T,italic:!!(A&1),bold:!!(A&2),underline:!!(A&4),strikethrough:!!(A&8)}}}function s(u){return u===e.VS_LIGHT_THEME_NAME||u===e.VS_DARK_THEME_NAME||u===e.HC_BLACK_THEME_NAME||u===e.HC_LIGHT_THEME_NAME}function l(u){switch(u){case e.VS_LIGHT_THEME_NAME:return v.vs;case e.VS_DARK_THEME_NAME:return v.vs_dark;case e.HC_BLACK_THEME_NAME:return v.hc_black;case e.HC_LIGHT_THEME_NAME:return v.hc_light}}function r(u){const f=l(u);return new d(u,f)}class h extends i.Disposable{constructor(){super(),this._onColorThemeChange=this._register(new D.Emitter),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new D.Emitter),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new o.UnthemedProductIconTheme,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(e.VS_LIGHT_THEME_NAME,r(e.VS_LIGHT_THEME_NAME)),this._knownThemes.set(e.VS_DARK_THEME_NAME,r(e.VS_DARK_THEME_NAME)),this._knownThemes.set(e.HC_BLACK_THEME_NAME,r(e.HC_BLACK_THEME_NAME)),this._knownThemes.set(e.HC_LIGHT_THEME_NAME,r(e.HC_LIGHT_THEME_NAME));const f=this._register((0,o.getIconsStyleSheet)(this));this._codiconCSS=f.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(e.VS_LIGHT_THEME_NAME),this._onOSSchemeChanged(),this._register(f.onDidChange(()=>{this._codiconCSS=f.getCSS(),this._updateCSS()})),(0,k.addMatchMediaChangeListener)(g.mainWindow,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(f){return L.isInShadowDOM(f)?this._registerShadowDomContainer(f):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=L.createStyleSheet(void 0,f=>{f.className="monaco-colors",f.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),i.Disposable.None}_registerShadowDomContainer(f){const C=L.createStyleSheet(f,_=>{_.className="monaco-colors",_.textContent=this._allCSS});return this._styleElements.push(C),{dispose:()=>{for(let _=0;_{_.base===f&&_.notifyBaseUpdated()}),this._theme.themeName===f&&this.setTheme(f)}getColorTheme(){return this._theme}setColorMapOverride(f){this._colorMapOverride=f,this._updateThemeOrColorMap()}setTheme(f){let C;this._knownThemes.has(f)?C=this._knownThemes.get(f):C=this._knownThemes.get(e.VS_LIGHT_THEME_NAME),this._updateActualTheme(C)}_updateActualTheme(f){!f||this._theme===f||(this._theme=f,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const f=g.mainWindow.matchMedia("(forced-colors: active)").matches;if(f!==(0,t.isHighContrast)(this._theme.type)){let C;(0,t.isDark)(this._theme.type)?C=f?e.HC_BLACK_THEME_NAME:e.VS_DARK_THEME_NAME:C=f?e.HC_LIGHT_THEME_NAME:e.VS_LIGHT_THEME_NAME,this._updateActualTheme(this._knownThemes.get(C))}}}setAutoDetectHighContrast(f){this._autoDetectHighContrast=f,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const f=[],C={},_={addRule:T=>{C[T]||(f.push(T),C[T]=!0)}};c.getThemingParticipants().forEach(T=>T(this._theme,_,this._environment));const E=[];for(const T of m.getColors()){const A=this._theme.getColor(T.id,!0);A&&E.push(`${(0,a.asCssVariableName)(T.id)}: ${A.toString()};`)}_.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${E.join(` +`)} }`);const I=this._colorMapOverride||this._theme.tokenTheme.getColorMap();_.addRule((0,w.generateTokensCSSForColorMap)(I)),this._themeCSS=f.join(` +`),this._updateCSS(),S.TokenizationRegistry.setColorMap(I),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._styleElements.forEach(f=>f.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}e.StandaloneThemeService=h}),define(ne[886],se([1,0,16,143,99,89,379]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class p extends L.EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:y.ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(v,b){const a=v.get(k.IStandaloneThemeService),n=a.getColorTheme();(0,D.isHighContrast)(n.type)?(a.setTheme(this._originalThemeName||((0,D.isDark)(n.type)?S.VS_DARK_THEME_NAME:S.VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(a.setTheme((0,D.isDark)(n.type)?S.HC_BLACK_THEME_NAME:S.HC_LIGHT_THEME_NAME),this._originalThemeName=n.themeName)}}(0,L.registerEditorAction)(p)}),define(ne[110],se([1,0,6,46,141,330,42,224,2,17,744,28,766,14,56,8,34,49,94,24,29,89,20,31,102,71,497]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createActionViewItem=e.DropdownWithDefaultActionViewItem=e.SubmenuEntryActionViewItem=e.MenuEntryActionViewItem=e.createAndFillInActionBarActions=e.createAndFillInContextMenuActions=void 0;function C(N,P,F,O){const B=N.getActions(P),W=L.ModifierKeyEmitter.getInstance(),V=W.keyStatus.altKey||(v.isWindows||v.isLinux)&&W.keyStatus.shiftKey;E(B,F,V,O?z=>z===O:z=>z==="navigation")}e.createAndFillInContextMenuActions=C;function _(N,P,F,O,B,W){const V=N.getActions(P);E(V,F,!1,typeof O=="string"?K=>K===O:O,B,W)}e.createAndFillInActionBarActions=_;function E(N,P,F,O=V=>V==="navigation",B=()=>!1,W=!1){let V,z;Array.isArray(P)?(V=P,z=P):(V=P.primary,z=P.secondary);const K=new Set;for(const[j,x]of N){let re;O(j)?(re=V,re.length>0&&W&&re.push(new S.Separator)):(re=z,re.length>0&&re.push(new S.Separator));for(let ie of x){F&&(ie=ie instanceof a.MenuItemAction&&ie.alt?ie.alt:ie);const J=re.push(ie);ie instanceof S.SubmenuAction&&K.add({group:j,action:ie,index:J-1})}}for(const{group:j,action:x,index:re}of K){const ie=O(j)?V:z,J=x.actions;B(x,j,ie.length)&&ie.splice(re,1,...J)}}let I=class extends y.ActionViewItem{constructor(P,F,O,B,W,V,z,K){super(void 0,P,{icon:!!(P.class||P.item.icon),label:!P.class&&!P.item.icon,draggable:F?.draggable,keybinding:F?.keybinding,hoverDelegate:F?.hoverDelegate}),this._keybindingService=O,this._notificationService=B,this._contextKeyService=W,this._themeService=V,this._contextMenuService=z,this._accessibilityService=K,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new w.MutableDisposable),this._altKey=L.ModifierKeyEmitter.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(P){P.preventDefault(),P.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(F){this._notificationService.error(F)}}render(P){if(super.render(P),P.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let F=!1;const O=()=>{var B;const W=!!(!((B=this._menuItemAction.alt)===null||B===void 0)&&B.enabled)&&(!this._accessibilityService.isMotionReduced()||F)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&F);W!==this._wantsAltCommand&&(this._wantsAltCommand=W,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(O)),this._register((0,L.addDisposableListener)(P,"mouseleave",B=>{F=!1,O()})),this._register((0,L.addDisposableListener)(P,"mouseenter",B=>{F=!0,O()})),O()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var P;const F=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),O=F&&F.getLabel(),B=this._commandAction.tooltip||this._commandAction.label;let W=O?(0,b.localize)(0,null,B,O):B;if(!this._wantsAltCommand&&(!((P=this._menuItemAction.alt)===null||P===void 0)&&P.enabled)){const V=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,z=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),K=z&&z.getLabel(),j=K?(0,b.localize)(1,null,V,K):V;W=(0,b.localize)(2,null,W,p.UILabelProvider.modifierLabels[v.OS].altKey,j)}return W}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(P){this._itemClassDispose.value=void 0;const{element:F,label:O}=this;if(!F||!O)return;const B=this._commandAction.checked&&(0,n.isICommandActionToggleInfo)(P.toggled)&&P.toggled.icon?P.toggled.icon:P.icon;if(B)if(s.ThemeIcon.isThemeIcon(B)){const W=s.ThemeIcon.asClassNameArray(B);O.classList.add(...W),this._itemClassDispose.value=(0,w.toDisposable)(()=>{O.classList.remove(...W)})}else O.style.backgroundImage=(0,l.isDark)(this._themeService.getColorTheme().type)?(0,L.asCSSUrl)(B.dark):(0,L.asCSSUrl)(B.light),O.classList.add("icon"),this._itemClassDispose.value=(0,w.combinedDisposable)((0,w.toDisposable)(()=>{O.style.backgroundImage="",O.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};e.MenuEntryActionViewItem=I,e.MenuEntryActionViewItem=I=De([he(2,g.IKeybindingService),he(3,m.INotificationService),he(4,i.IContextKeyService),he(5,d.IThemeService),he(6,t.IContextMenuService),he(7,f.IAccessibilityService)],I);let T=class extends D.DropdownMenuActionViewItem{constructor(P,F,O,B,W){var V,z,K;const j={...F,menuAsChild:(V=F?.menuAsChild)!==null&&V!==void 0?V:!1,classNames:(z=F?.classNames)!==null&&z!==void 0?z:s.ThemeIcon.isThemeIcon(P.item.icon)?s.ThemeIcon.asClassName(P.item.icon):void 0,keybindingProvider:(K=F?.keybindingProvider)!==null&&K!==void 0?K:x=>O.lookupKeybinding(x.id)};super(P,{getActions:()=>P.actions},B,j),this._keybindingService=O,this._contextMenuService=B,this._themeService=W}render(P){super.render(P),(0,r.assertType)(this.element),P.classList.add("menu-entry");const F=this._action,{icon:O}=F.item;if(O&&!s.ThemeIcon.isThemeIcon(O)){this.element.classList.add("icon");const B=()=>{this.element&&(this.element.style.backgroundImage=(0,l.isDark)(this._themeService.getColorTheme().type)?(0,L.asCSSUrl)(O.dark):(0,L.asCSSUrl)(O.light))};B(),this._register(this._themeService.onDidColorThemeChange(()=>{B()}))}}};e.SubmenuEntryActionViewItem=T,e.SubmenuEntryActionViewItem=T=De([he(2,g.IKeybindingService),he(3,t.IContextMenuService),he(4,d.IThemeService)],T);let A=class extends y.BaseActionViewItem{constructor(P,F,O,B,W,V,z,K){var j,x,re;super(null,P),this._keybindingService=O,this._notificationService=B,this._contextMenuService=W,this._menuService=V,this._instaService=z,this._storageService=K,this._container=null,this._options=F,this._storageKey=`${P.item.submenu.id}_lastActionId`;let ie;const J=F?.persistLastActionId?K.get(this._storageKey,1):void 0;J&&(ie=P.actions.find(Y=>J===Y.id)),ie||(ie=P.actions[0]),this._defaultAction=this._instaService.createInstance(I,ie,{keybinding:this._getDefaultActionKeybindingLabel(ie)});const X={keybindingProvider:Y=>this._keybindingService.lookupKeybinding(Y.id),...F,menuAsChild:(j=F?.menuAsChild)!==null&&j!==void 0?j:!0,classNames:(x=F?.classNames)!==null&&x!==void 0?x:["codicon","codicon-chevron-down"],actionRunner:(re=F?.actionRunner)!==null&&re!==void 0?re:new S.ActionRunner};this._dropdown=new D.DropdownMenuActionViewItem(P,P.actions,this._contextMenuService,X),this._register(this._dropdown.actionRunner.onDidRun(Y=>{Y.action instanceof a.MenuItemAction&&this.update(Y.action)}))}update(P){var F;!((F=this._options)===null||F===void 0)&&F.persistLastActionId&&this._storageService.store(this._storageKey,P.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(I,P,{keybinding:this._getDefaultActionKeybindingLabel(P)}),this._defaultAction.actionRunner=new class extends S.ActionRunner{async runAction(O,B){await O.run(void 0)}},this._container&&this._defaultAction.render((0,L.prepend)(this._container,(0,L.$)(".action-container")))}_getDefaultActionKeybindingLabel(P){var F;let O;if(!((F=this._options)===null||F===void 0)&&F.renderKeybindingWithDefaultActionLabel){const B=this._keybindingService.lookupKeybinding(P.id);B&&(O=`(${B.getLabel()})`)}return O}setActionContext(P){super.setActionContext(P),this._defaultAction.setActionContext(P),this._dropdown.setActionContext(P)}render(P){this._container=P,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const F=(0,L.$)(".action-container");this._defaultAction.render((0,L.append)(this._container,F)),this._register((0,L.addDisposableListener)(F,L.EventType.KEY_DOWN,B=>{const W=new k.StandardKeyboardEvent(B);W.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),W.stopPropagation())}));const O=(0,L.$)(".dropdown-action-container");this._dropdown.render((0,L.append)(this._container,O)),this._register((0,L.addDisposableListener)(O,L.EventType.KEY_DOWN,B=>{var W;const V=new k.StandardKeyboardEvent(B);V.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(W=this._defaultAction.element)===null||W===void 0||W.focus(),V.stopPropagation())}))}focus(P){P?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(P){P?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};e.DropdownWithDefaultActionViewItem=A,e.DropdownWithDefaultActionViewItem=A=De([he(2,g.IKeybindingService),he(3,m.INotificationService),he(4,t.IContextMenuService),he(5,a.IMenuService),he(6,o.IInstantiationService),he(7,c.IStorageService)],A);let R=class extends y.SelectActionViewItem{constructor(P,F){super(null,P,P.actions.map(O=>({text:O.id===S.Separator.ID?"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500":O.label,isDisabled:!O.enabled})),0,F,u.defaultSelectBoxStyles,{ariaLabel:P.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,P.actions.findIndex(O=>O.checked)))}render(P){super.render(P),P.style.borderColor=(0,h.asCssVariable)(h.selectBorder)}runAction(P,F){const O=this.action.actions[F];O&&this.actionRunner.run(O)}};R=De([he(1,t.IContextViewService)],R);function M(N,P,F){return P instanceof a.MenuItemAction?N.createInstance(I,P,F):P instanceof a.SubmenuItemAction?P.item.isSelection?N.createInstance(R,P):P.item.rememberDefaultAction?N.createInstance(A,P,{...F,persistLastActionId:!0}):N.createInstance(T,P,F):void 0}e.createActionViewItem=M}),define(ne[887],se([1,0,6,79,2,731,110,28,14,8]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestWidgetStatus=void 0;class b extends S.MenuEntryActionViewItem{updateLabel(){const i=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!i)return super.updateLabel();this.label&&(this.label.textContent=(0,D.localize)(0,null,this._action.label,b.symbolPrintEnter(i)))}static symbolPrintEnter(i){var t;return(t=i.getLabel())===null||t===void 0?void 0:t.replace(/\benter\b/gi,"\u23CE")}}let a=class{constructor(i,t,o,g,m){this._menuId=t,this._menuService=g,this._contextKeyService=m,this._menuDisposables=new y.DisposableStore,this.element=L.append(i,L.$(".suggest-status-bar"));const c=d=>d instanceof p.MenuItemAction?o.createInstance(b,d,void 0):void 0;this._leftActions=new k.ActionBar(this.element,{actionViewItemProvider:c}),this._rightActions=new k.ActionBar(this.element,{actionViewItemProvider:c}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const i=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const o=[],g=[];for(const[m,c]of i.getActions())m==="left"?o.push(...c):g.push(...c);this._leftActions.clear(),this._leftActions.push(o),this._rightActions.clear(),this._rightActions.push(g)};this._menuDisposables.add(i.onDidChange(()=>t())),this._menuDisposables.add(i)}hide(){this._menuDisposables.clear()}};e.SuggestWidgetStatus=a,e.SuggestWidgetStatus=a=De([he(2,v.IInstantiationService),he(3,p.IMenuService),he(4,w.IContextKeyService)],a)}),define(ne[262],se([1,0,6,69,610,42,13,275,12,7,52,2,745,110,28,14,56,34,61]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MenuWorkbenchToolBar=e.WorkbenchToolBar=void 0;let d=class extends y.ToolBar{constructor(r,h,u,f,C,_,E){super(r,C,{getKeyBinding:T=>{var A;return(A=_.lookupKeybinding(T.id))!==null&&A!==void 0?A:void 0},...h,allowContextMenu:!0,skipTelemetry:typeof h?.telemetrySource=="string"}),this._options=h,this._menuService=u,this._contextKeyService=f,this._contextMenuService=C,this._sessionDisposables=this._store.add(new a.DisposableStore);const I=h?.telemetrySource;I&&this._store.add(this.actionBar.onDidRun(T=>E.publicLog2("workbenchActionExecuted",{id:T.action.id,from:I})))}setActions(r,h=[],u){var f,C,_;this._sessionDisposables.clear();const E=r.slice(),I=h.slice(),T=[];let A=0;const R=[];let M=!1;if(((f=this._options)===null||f===void 0?void 0:f.hiddenItemStrategy)!==-1)for(let N=0;NO?.id)),P=this._options.overflowBehavior.maxItems-N.size;let F=0;for(let O=0;O=P&&(E[O]=void 0,R[O]=B))}}(0,S.coalesceInPlace)(E),(0,S.coalesceInPlace)(R),super.setActions(E,D.Separator.join(R,I)),T.length>0&&this._sessionDisposables.add((0,L.addDisposableListener)(this.getElement(),"contextmenu",N=>{var P,F,O,B,W;const V=new k.StandardMouseEvent((0,L.getWindow)(this.getElement()),N),z=this.getItemAction(V.target);if(!z)return;V.preventDefault(),V.stopPropagation();let K=!1;if(A===1&&((P=this._options)===null||P===void 0?void 0:P.hiddenItemStrategy)===0){K=!0;for(let re=0;rethis._menuService.resetHiddenStates(u)}))),this._contextMenuService.showContextMenu({getAnchor:()=>V,getActions:()=>x,menuId:(O=this._options)===null||O===void 0?void 0:O.contextMenu,menuActionOptions:{renderShortTitle:!0,...(B=this._options)===null||B===void 0?void 0:B.menuOptions},skipTelemetry:typeof((W=this._options)===null||W===void 0?void 0:W.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};e.WorkbenchToolBar=d,e.WorkbenchToolBar=d=De([he(2,t.IMenuService),he(3,o.IContextKeyService),he(4,g.IContextMenuService),he(5,m.IKeybindingService),he(6,c.ITelemetryService)],d);let s=class extends d{constructor(r,h,u,f,C,_,E,I){super(r,{resetMenu:h,...u},f,C,_,E,I),this._onDidChangeMenuItems=this._store.add(new v.Emitter);const T=this._store.add(f.createMenu(h,C,{emitEventsForSubmenuChanges:!0})),A=()=>{var R,M,N;const P=[],F=[];(0,i.createAndFillInActionBarActions)(T,u?.menuOptions,{primary:P,secondary:F},(R=u?.toolbarOptions)===null||R===void 0?void 0:R.primaryGroup,(M=u?.toolbarOptions)===null||M===void 0?void 0:M.shouldInlineSubmenu,(N=u?.toolbarOptions)===null||N===void 0?void 0:N.useSeparatorsInPrimaryActions),r.classList.toggle("has-no-actions",P.length===0&&F.length===0),super.setActions(P,F)};this._store.add(T.onDidChange(()=>{A(),this._onDidChangeMenuItems.fire(this)})),A()}setActions(){throw new w.BugIndicatingError("This toolbar is populated from a menu.")}};e.MenuWorkbenchToolBar=s,e.MenuWorkbenchToolBar=s=De([he(3,t.IMenuService),he(4,o.IContextKeyService),he(5,g.IContextMenuService),he(6,m.IKeybindingService),he(7,c.ITelemetryService)],s)}),define(ne[263],se([1,0,6,141,190,42,13,15,27,2,32,17,29,9,30,222,707,110,262,28,25,14,56,8,34,61,82,475]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C){"use strict";var _;Object.defineProperty(e,"__esModule",{value:!0}),e.CustomizedMenuWorkbenchToolBar=e.InlineSuggestionHintsContentWidget=e.InlineCompletionsHintsWidget=void 0;let E=class extends v.Disposable{constructor(F,O,B){super(),this.editor=F,this.model=O,this.instantiationService=B,this.alwaysShowToolbar=(0,b.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,b.derived)(this,W=>{var V,z,K;const j=(V=this.model.read(W))===null||V===void 0?void 0:V.primaryGhostText.read(W);if(!this.alwaysShowToolbar.read(W)||!j||j.parts.length===0)return this.sessionPosition=void 0,null;const x=j.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==j.lineNumber&&(this.sessionPosition=void 0);const re=new i.Position(j.lineNumber,Math.min(x,(K=(z=this.sessionPosition)===null||z===void 0?void 0:z.column)!==null&&K!==void 0?K:Number.MAX_SAFE_INTEGER));return this.sessionPosition=re,re}),this._register((0,b.autorunWithStore)((W,V)=>{const z=this.model.read(W);if(!z||!this.alwaysShowToolbar.read(W))return;const K=V.add(this.instantiationService.createInstance(A,this.editor,!0,this.position,z.selectedInlineCompletionIndex,z.inlineCompletionsCount,z.selectedInlineCompletion.map(j=>{var x;return(x=j?.inlineCompletion.source.inlineCompletions.commands)!==null&&x!==void 0?x:[]})));F.addContentWidget(K),V.add((0,v.toDisposable)(()=>F.removeContentWidget(K))),V.add((0,b.autorun)(j=>{this.position.read(j)&&z.lastTriggerKind.read(j)!==t.InlineCompletionTriggerKind.Explicit&&z.triggerExplicitly()}))}))}};e.InlineCompletionsHintsWidget=E,e.InlineCompletionsHintsWidget=E=De([he(2,h.IInstantiationService)],E);const I=(0,C.registerIcon)("inline-suggestion-hints-next",w.Codicon.chevronRight,(0,g.localize)(0,null)),T=(0,C.registerIcon)("inline-suggestion-hints-previous",w.Codicon.chevronLeft,(0,g.localize)(1,null));let A=_=class extends v.Disposable{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(F,O,B){const W=new D.Action(F,O,B,!0,()=>this._commandService.executeCommand(F)),V=this.keybindingService.lookupKeybinding(F,this._contextKeyService);let z=O;return V&&(z=(0,g.localize)(2,null,O,V.getLabel())),W.tooltip=z,W}constructor(F,O,B,W,V,z,K,j,x,re,ie){super(),this.editor=F,this.withBorder=O,this._position=B,this._currentSuggestionIdx=W,this._suggestionCount=V,this._extraCommands=z,this._commandService=K,this.keybindingService=x,this._contextKeyService=re,this._menuService=ie,this.id=`InlineSuggestionHintsContentWidget${_.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,L.h)("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[(0,L.h)("div@toolBar")]),this.previousAction=this.createCommandAction(o.showPreviousInlineSuggestionActionId,(0,g.localize)(3,null),n.ThemeIcon.asClassName(T)),this.availableSuggestionCountAction=new D.Action("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(o.showNextInlineSuggestionActionId,(0,g.localize)(4,null),n.ThemeIcon.asClassName(I)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(d.MenuId.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new p.RunOnceScheduler(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new p.RunOnceScheduler(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.lastCommands=[],this.toolBar=this._register(j.createInstance(N,this.nodes.toolBar,d.MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:J=>J.startsWith("primary")},actionViewItemProvider:(J,X)=>{if(J instanceof d.MenuItemAction)return j.createInstance(M,J,void 0);if(J===this.availableSuggestionCountAction){const Y=new R(void 0,J,{label:!0,icon:!1});return Y.setClass("availableSuggestionCount"),Y}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(J=>{_._dropDownVisible=J})),this._register((0,b.autorun)(J=>{this._position.read(J),this.editor.layoutContentWidget(this)})),this._register((0,b.autorun)(J=>{const X=this._suggestionCount.read(J),Y=this._currentSuggestionIdx.read(J);X!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${Y+1}/${X}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),X!==void 0&&X>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register((0,b.autorun)(J=>{const X=this._extraCommands.read(J);if((0,S.equals)(this.lastCommands,X))return;this.lastCommands=X;const Y=X.map(le=>({class:void 0,id:le.id,enabled:!0,tooltip:le.tooltip||"",label:le.title,run:de=>this._commandService.executeCommand(le.id)}));for(const[le,de]of this.inlineCompletionsActionsMenus.getActions())for(const ge of de)ge instanceof d.MenuItemAction&&Y.push(ge);Y.length>0&&Y.unshift(new D.Separator),this.toolBar.setAdditionalSecondaryActions(Y)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineSuggestionHintsContentWidget=A,A._dropDownVisible=!1,A.id=0,e.InlineSuggestionHintsContentWidget=A=_=De([he(6,s.ICommandService),he(7,h.IInstantiationService),he(8,u.IKeybindingService),he(9,l.IContextKeyService),he(10,d.IMenuService)],A);class R extends k.ActionViewItem{constructor(){super(...arguments),this._className=void 0}setClass(F){this._className=F}render(F){super.render(F),this._className&&F.classList.add(this._className)}updateTooltip(){}}class M extends m.MenuEntryActionViewItem{updateLabel(){const F=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!F)return super.updateLabel();if(this.label){const O=(0,L.h)("div.keybinding").root;new y.KeybindingLabel(O,a.OS,{disableTitle:!0,...y.unthemedKeybindingLabelOptions}).set(F),this.label.textContent=this._action.label,this.label.appendChild(O),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let N=class extends c.WorkbenchToolBar{constructor(F,O,B,W,V,z,K,j){super(F,{resetMenu:O,...B},W,V,z,K,j),this.menuId=O,this.options2=B,this.menuService=W,this.contextKeyService=V,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var F,O,B,W,V,z,K;const j=[],x=[];(0,m.createAndFillInActionBarActions)(this.menu,(F=this.options2)===null||F===void 0?void 0:F.menuOptions,{primary:j,secondary:x},(B=(O=this.options2)===null||O===void 0?void 0:O.toolbarOptions)===null||B===void 0?void 0:B.primaryGroup,(V=(W=this.options2)===null||W===void 0?void 0:W.toolbarOptions)===null||V===void 0?void 0:V.shouldInlineSubmenu,(K=(z=this.options2)===null||z===void 0?void 0:z.toolbarOptions)===null||K===void 0?void 0:K.useSeparatorsInPrimaryActions),x.push(...this.additionalActions),j.unshift(...this.prependedPrimaryActions),this.setActions(j,x)}setPrependedPrimaryActions(F){(0,S.equals)(this.prependedPrimaryActions,F,(O,B)=>O===B)||(this.prependedPrimaryActions=F,this.updateToolbar())}setAdditionalSecondaryActions(F){(0,S.equals)(this.additionalActions,F,(O,B)=>O===B)||(this.additionalActions=F,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=N,e.CustomizedMenuWorkbenchToolBar=N=De([he(3,d.IMenuService),he(4,l.IContextKeyService),he(5,r.IContextMenuService),he(6,u.IKeybindingService),he(7,f.ITelemetryService)],N)}),define(ne[380],se([1,0,6,190,42,13,2,32,17,9,110,262,28,14,56,8,34,61,477]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.CustomizedMenuWorkbenchToolBar=e.InlineEditHintsContentWidget=e.InlineEditHintsWidget=void 0;let d=class extends S.Disposable{constructor(u,f,C){super(),this.editor=u,this.model=f,this.instantiationService=C,this.alwaysShowToolbar=(0,p.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,p.derived)(this,_=>{var E,I,T;const A=(E=this.model.read(_))===null||E===void 0?void 0:E.widget.model.ghostText.read(_);if(!this.alwaysShowToolbar.read(_)||!A||A.parts.length===0)return this.sessionPosition=void 0,null;const R=A.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==A.lineNumber&&(this.sessionPosition=void 0);const M=new v.Position(A.lineNumber,Math.min(R,(T=(I=this.sessionPosition)===null||I===void 0?void 0:I.column)!==null&&T!==void 0?T:Number.MAX_SAFE_INTEGER));return this.sessionPosition=M,M}),this._register((0,p.autorunWithStore)((_,E)=>{if(!this.model.read(_)||!this.alwaysShowToolbar.read(_))return;const T=E.add(this.instantiationService.createInstance(s,this.editor,!0,this.position));u.addContentWidget(T),E.add((0,S.toDisposable)(()=>u.removeContentWidget(T)))}))}};e.InlineEditHintsWidget=d,e.InlineEditHintsWidget=d=De([he(2,o.IInstantiationService)],d);let s=c=class extends S.Disposable{constructor(u,f,C,_,E,I){super(),this.editor=u,this.withBorder=f,this._position=C,this._contextKeyService=E,this._menuService=I,this.id=`InlineEditHintsContentWidget${c.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,L.h)("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[(0,L.h)("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(n.MenuId.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(_.createInstance(r,this.nodes.toolBar,this.editor,n.MenuId.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:T=>T.startsWith("primary")},actionViewItemProvider:(T,A)=>{if(T instanceof n.MenuItemAction)return _.createInstance(l,T,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(T=>{c._dropDownVisible=T})),this._register((0,p.autorun)(T=>{this._position.read(T),this.editor.layoutContentWidget(this)})),this._register((0,p.autorun)(T=>{const A=[];for(const[R,M]of this.inlineCompletionsActionsMenus.getActions())for(const N of M)N instanceof n.MenuItemAction&&A.push(N);A.length>0&&A.unshift(new y.Separator),this.toolBar.setAdditionalSecondaryActions(A)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineEditHintsContentWidget=s,s._dropDownVisible=!1,s.id=0,e.InlineEditHintsContentWidget=s=c=De([he(3,o.IInstantiationService),he(4,i.IContextKeyService),he(5,n.IMenuService)],s);class l extends b.MenuEntryActionViewItem{updateLabel(){const u=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!u)return super.updateLabel();if(this.label){const f=(0,L.h)("div.keybinding").root;new k.KeybindingLabel(f,w.OS,{disableTitle:!0,...k.unthemedKeybindingLabelOptions}).set(u),this.label.textContent=this._action.label,this.label.appendChild(f),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let r=class extends a.WorkbenchToolBar{constructor(u,f,C,_,E,I,T,A,R){super(u,{resetMenu:C,..._},E,I,T,A,R),this.editor=f,this.menuId=C,this.options2=_,this.menuService=E,this.contextKeyService=I,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var u,f,C,_,E,I,T;const A=[],R=[];(0,b.createAndFillInActionBarActions)(this.menu,(u=this.options2)===null||u===void 0?void 0:u.menuOptions,{primary:A,secondary:R},(C=(f=this.options2)===null||f===void 0?void 0:f.toolbarOptions)===null||C===void 0?void 0:C.primaryGroup,(E=(_=this.options2)===null||_===void 0?void 0:_.toolbarOptions)===null||E===void 0?void 0:E.shouldInlineSubmenu,(T=(I=this.options2)===null||I===void 0?void 0:I.toolbarOptions)===null||T===void 0?void 0:T.useSeparatorsInPrimaryActions),R.push(...this.additionalActions),A.unshift(...this.prependedPrimaryActions),this.setActions(A,R)}setAdditionalSecondaryActions(u){(0,D.equals)(this.additionalActions,u,(f,C)=>f===C)||(this.additionalActions=u,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=r,e.CustomizedMenuWorkbenchToolBar=r=De([he(4,n.IMenuService),he(5,i.IContextKeyService),he(6,t.IContextMenuService),he(7,g.IKeybindingService),he(8,m.ITelemetryService)],r)}),define(ne[264],se([1,0,2,32,68,9,5,775,14,8,30,18,19,189,25,380,6,26]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditController=e.InlineEditWidget=void 0;class d{constructor(h,u){this.widget=h,this.edit=u}dispose(){this.widget.dispose()}}e.InlineEditWidget=d;let s=c=class extends L.Disposable{static get(h){return h.getContribution(c.ID)}constructor(h,u,f,C,_,E){super(),this.editor=h,this.instantiationService=u,this.contextKeyService=f,this.languageFeaturesService=C,this._commandService=_,this._configurationService=E,this._isVisibleContext=c.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=c.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=this._register((0,k.disposableObservableValue)(this,void 0)),this._isAccepting=!1,this._enabled=(0,k.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=(0,k.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily),this._backgroundColoring=(0,k.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).backgroundColoring);const I=(0,k.observableSignalFromEvent)("InlineEditController.modelContentChangedSignal",h.onDidChangeModelContent);this._register((0,k.autorun)(N=>{this._enabled.read(N)&&(I.read(N),this.getInlineEdit(h,!0))}));const T=(0,k.observableFromEvent)(h.onDidChangeCursorPosition,()=>h.getPosition());this._register((0,k.autorun)(N=>{if(!this._enabled.read(N))return;const P=T.read(N);P&&this.checkCursorPosition(P)})),this._register((0,k.autorun)(N=>{const P=this._currentEdit.read(N);if(this._isCursorAtInlineEditContext.set(!1),!P){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const F=h.getPosition();F&&this.checkCursorPosition(F)}));const A=(0,k.observableSignalFromEvent)("InlineEditController.editorBlurSignal",h.onDidBlurEditorWidget);this._register((0,k.autorun)(N=>{var P;this._enabled.read(N)&&(A.read(N),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||h.getOption(63).keepOnBlur)&&((P=this._currentRequestCts)===null||P===void 0||P.dispose(),this._currentRequestCts=void 0,this.clear(!1)))}));const R=(0,k.observableSignalFromEvent)("InlineEditController.editorFocusSignal",h.onDidFocusEditorText);this._register((0,k.autorun)(N=>{this._enabled.read(N)&&(R.read(N),this.getInlineEdit(h,!0))}));const M=this._register((0,g.createStyleSheet2)());this._register((0,k.autorun)(N=>{const P=this._fontFamily.read(N);M.setStyle(P===""||P==="default"?"":` +.monaco-editor .inline-edit-decoration, +.monaco-editor .inline-edit-decoration-preview, +.monaco-editor .inline-edit { + font-family: ${P}; +}`)})),this._register(new o.InlineEditHintsWidget(this.editor,this._currentEdit,this.instantiationService))}checkCursorPosition(h){var u;if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const f=(u=this._currentEdit.get())===null||u===void 0?void 0:u.edit;if(!f){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(S.Range.containsPosition(f.range,h))}validateInlineEdit(h,u){var f,C;if(u.text.includes(` +`)&&u.range.startLineNumber!==u.range.endLineNumber&&u.range.startColumn!==u.range.endColumn){if(u.range.startColumn!==1)return!1;const E=u.range.endLineNumber,I=u.range.endColumn,T=(C=(f=h.getModel())===null||f===void 0?void 0:f.getLineLength(E))!==null&&C!==void 0?C:0;if(I!==T+1)return!1}return!0}async fetchInlineEdit(h,u){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const f=h.getModel();if(!f)return;const C=f.getVersionId(),_=this.languageFeaturesService.inlineEditProvider.all(f);if(_.length===0)return;const E=_[0];this._currentRequestCts=new n.CancellationTokenSource;const I=this._currentRequestCts.token,T=u?b.InlineEditTriggerKind.Automatic:b.InlineEditTriggerKind.Invoke;if(u&&await l(50,I),I.isCancellationRequested||f.isDisposed()||f.getVersionId()!==C)return;const R=await E.provideInlineEdit(f,{triggerKind:T},I);if(R&&!(I.isCancellationRequested||f.isDisposed()||f.getVersionId()!==C)&&this.validateInlineEdit(h,R))return R}async getInlineEdit(h,u){var f;this._isCursorAtInlineEditContext.set(!1),this.clear(),this._isAccepting=!1;const C=await this.fetchInlineEdit(h,u);if(!C)return;const _=C.range.endLineNumber,E=C.range.endColumn,I=new i.GhostText(_,[new i.GhostTextPart(E,C.text,!1)]),T=this.instantiationService.createInstance(p.GhostTextWidget,this.editor,{ghostText:(0,k.constObservable)(I),minReservedLineCount:(0,k.constObservable)(0),targetTextModel:(0,k.constObservable)((f=this.editor.getModel())!==null&&f!==void 0?f:void 0),range:(0,k.constObservable)(C.range),backgroundColoring:this._backgroundColoring});this._currentEdit.set(new d(T,C),void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}accept(){var h;this._isAccepting=!0;const u=(h=this._currentEdit.get())===null||h===void 0?void 0:h.edit;if(!u)return;let f=u.text;u.text.startsWith(` +`)&&(f=u.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[y.EditOperation.replace(S.Range.lift(u.range),f)]),u.accepted&&this._commandService.executeCommand(u.accepted.id,...u.accepted.arguments||[]),this.freeEdit(u),this._currentEdit.set(void 0,void 0)}jumpToCurrent(){var h,u;this._jumpBackPosition=(h=this.editor.getSelection())===null||h===void 0?void 0:h.getStartPosition();const f=(u=this._currentEdit.get())===null||u===void 0?void 0:u.edit;if(!f)return;const C=D.Position.lift({lineNumber:f.range.startLineNumber,column:f.range.startColumn});this.editor.setPosition(C),this.editor.revealPositionInCenterIfOutsideViewport(C)}clear(h=!0){var u;const f=(u=this._currentEdit.get())===null||u===void 0?void 0:u.edit;f&&f?.rejected&&!this._isAccepting&&h&&this._commandService.executeCommand(f.rejected.id,...f.rejected.arguments||[]),f&&this.freeEdit(f),this._currentEdit.set(void 0,void 0)}freeEdit(h){const u=this.editor.getModel();if(!u)return;const f=this.languageFeaturesService.inlineEditProvider.all(u);f.length!==0&&f[0].freeInlineEdit(h)}shouldShowHoverAt(h){const u=this._currentEdit.get();if(!u)return!1;const f=u.edit,C=u.widget.model;if(S.Range.containsPosition(f.range,h.getStartPosition())||S.Range.containsPosition(f.range,h.getEndPosition()))return!0;const E=C.ghostText.get();return E?E.parts.some(I=>h.containsPosition(new D.Position(E.lineNumber,I.column))):!1}shouldShowHoverAtViewZone(h){var u,f;return(f=(u=this._currentEdit.get())===null||u===void 0?void 0:u.widget.ownsViewZone(h))!==null&&f!==void 0?f:!1}};e.InlineEditController=s,s.ID="editor.contrib.inlineEditController",s.inlineEditVisibleKey="inlineEditVisible",s.inlineEditVisibleContext=new w.RawContextKey(c.inlineEditVisibleKey,!1),s.cursorAtInlineEditKey="cursorAtInlineEdit",s.cursorAtInlineEditContext=new w.RawContextKey(c.cursorAtInlineEditKey,!1),e.InlineEditController=s=c=De([he(1,v.IInstantiationService),he(2,w.IContextKeyService),he(3,a.ILanguageFeaturesService),he(4,t.ICommandService),he(5,m.IConfigurationService)],s);function l(r,h){return new Promise(u=>{let f;const C=setTimeout(()=>{f&&f.dispose(),u()},r);h&&(f=h.onCancellationRequested(()=>{clearTimeout(C),f&&f.dispose(),u()}))})}}),define(ne[888],se([1,0,16,21,569,264,28,14]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RejectInlineEdit=e.JumpBackInlineEdit=e.JumpToInlineEdit=e.TriggerInlineEdit=e.AcceptInlineEdit=void 0;class w extends L.EditorAction{constructor(){super({id:y.inlineEditAcceptId,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:p.ContextKeyExpr.and(k.EditorContextKeys.writable,D.InlineEditController.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:p.ContextKeyExpr.and(k.EditorContextKeys.writable,D.InlineEditController.inlineEditVisibleContext,D.InlineEditController.cursorAtInlineEditContext)}],menuOpts:[{menuId:S.MenuId.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(t,o){const g=D.InlineEditController.get(o);g?.accept()}}e.AcceptInlineEdit=w;class v extends L.EditorAction{constructor(){const t=p.ContextKeyExpr.and(k.EditorContextKeys.writable,p.ContextKeyExpr.not(D.InlineEditController.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:t,kbOpts:{weight:101,primary:2646,kbExpr:t}})}async run(t,o){const g=D.InlineEditController.get(o);g?.trigger()}}e.TriggerInlineEdit=v;class b extends L.EditorAction{constructor(){const t=p.ContextKeyExpr.and(k.EditorContextKeys.writable,D.InlineEditController.inlineEditVisibleContext,p.ContextKeyExpr.not(D.InlineEditController.cursorAtInlineEditKey));super({id:y.inlineEditJumpToId,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:t,kbOpts:{weight:101,primary:2646,kbExpr:t},menuOpts:[{menuId:S.MenuId.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:t}]})}async run(t,o){const g=D.InlineEditController.get(o);g?.jumpToCurrent()}}e.JumpToInlineEdit=b;class a extends L.EditorAction{constructor(){const t=p.ContextKeyExpr.and(k.EditorContextKeys.writable,D.InlineEditController.cursorAtInlineEditContext);super({id:y.inlineEditJumpBackId,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:t,kbOpts:{weight:110,primary:2646,kbExpr:t},menuOpts:[{menuId:S.MenuId.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:t}]})}async run(t,o){const g=D.InlineEditController.get(o);g?.jumpBack()}}e.JumpBackInlineEdit=a;class n extends L.EditorAction{constructor(){const t=p.ContextKeyExpr.and(k.EditorContextKeys.writable,D.InlineEditController.inlineEditVisibleContext);super({id:y.inlineEditRejectId,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:t,kbOpts:{weight:100,primary:9,kbExpr:t},menuOpts:[{menuId:S.MenuId.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(t,o){const g=D.InlineEditController.get(o);g?.clear()}}e.RejectInlineEdit=n}),define(ne[889],se([1,0,2,32,93,8,61,264,380]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditHoverParticipant=e.InlineEditHover=void 0;class v{constructor(n,i,t){this.owner=n,this.range=i,this.controller=t}isValidForHoverAnchor(n){return n.type===1&&this.range.startColumn<=n.range.startColumn&&this.range.endColumn>=n.range.endColumn}}e.InlineEditHover=v;let b=class{constructor(n,i,t){this._editor=n,this._instantiationService=i,this._telemetryService=t,this.hoverOrdinal=5}suggestHoverAnchor(n){const i=p.InlineEditController.get(this._editor);if(!i)return null;const t=n.target;if(t.type===8){const o=t.detail;if(i.shouldShowHoverAtViewZone(o.viewZoneId)){const g=t.range;return new y.HoverForeignElementAnchor(1e3,this,g,n.event.posx,n.event.posy,!1)}}return t.type===7&&i.shouldShowHoverAt(t.range)?new y.HoverForeignElementAnchor(1e3,this,t.range,n.event.posx,n.event.posy,!1):t.type===6&&t.detail.mightBeForeignElement&&i.shouldShowHoverAt(t.range)?new y.HoverForeignElementAnchor(1e3,this,t.range,n.event.posx,n.event.posy,!1):null}computeSync(n,i){if(this._editor.getOption(63).showToolbar!=="onHover")return[];const t=p.InlineEditController.get(this._editor);return t&&t.shouldShowHoverAt(n.range)?[new v(this,n.range,t)]:[]}renderHoverParts(n,i){const t=new L.DisposableStore;this._telemetryService.publicLog2("inlineEditHover.shown");const o=this._instantiationService.createInstance(w.InlineEditHintsContentWidget,this._editor,!1,(0,k.constObservable)(null));return n.fragment.appendChild(o.getDomNode()),t.add(o),t}};e.InlineEditHoverParticipant=b,e.InlineEditHoverParticipant=b=De([he(1,D.IInstantiationService),he(2,S.ITelemetryService)],b)}),define(ne[890],se([1,0,16,93,888,889,264]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorAction)(y.AcceptInlineEdit),(0,L.registerEditorAction)(y.RejectInlineEdit),(0,L.registerEditorAction)(y.JumpToInlineEdit),(0,L.registerEditorAction)(y.JumpBackInlineEdit),(0,L.registerEditorAction)(y.TriggerInlineEdit),(0,L.registerEditorContribution)(S.InlineEditController.ID,S.InlineEditController,3),k.HoverParticipantRegistry.register(D.InlineEditHoverParticipant)}),define(ne[891],se([1,0,6,42,7,2,110,28,14,34,49,61,850,56]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuMenuDelegate=e.ContextMenuService=void 0;let t=class extends D.Disposable{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new n.ContextMenuHandler(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(m,c,d,s,l,r){super(),this.telemetryService=m,this.notificationService=c,this.contextViewService=d,this.keybindingService=s,this.menuService=l,this.contextKeyService=r,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new y.Emitter),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new y.Emitter)}configure(m){this.contextMenuHandler.configure(m)}showContextMenu(m){m=o.transform(m,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...m,onHide:c=>{var d;(d=m.onHide)===null||d===void 0||d.call(m,c),this._onDidHideContextMenu.fire()}}),L.ModifierKeyEmitter.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};e.ContextMenuService=t,e.ContextMenuService=t=De([he(0,a.ITelemetryService),he(1,b.INotificationService),he(2,i.IContextViewService),he(3,v.IKeybindingService),he(4,p.IMenuService),he(5,w.IContextKeyService)],t);var o;(function(g){function m(d){return d&&d.menuId instanceof p.MenuId}function c(d,s,l){if(!m(d))return d;const{menuId:r,menuActionOptions:h,contextKeyService:u}=d;return{...d,getActions:()=>{const f=[];if(r){const C=s.createMenu(r,u??l);(0,S.createAndFillInContextMenuActions)(C,h,f),C.dispose()}return d.getActions?k.Separator.join(d.getActions(),f):f}}}g.transform=c})(o||(e.ContextMenuMenuDelegate=o={}))}),define(ne[892],se([1,0,19,7,14,8,125,198,57,813,102,31,24,374,860,26,6]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputService=void 0;let m=class extends n.Themable{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(v.QuickAccessController))),this._quickAccess}constructor(d,s,l,r,h){super(l),this.instantiationService=d,this.contextKeyService=s,this.layoutService=r,this.configurationService=h,this._onShow=this._register(new k.Emitter),this._onHide=this._register(new k.Emitter),this.contexts=new Map}createController(d=this.layoutService,s){const l={idPrefix:"quickInput_",container:d.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:h=>this.setContextKey(h),linkOpenerDelegate:h=>{this.instantiationService.invokeFunction(u=>{u.get(w.IOpenerService).open(h,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>d.focus(),createList:(h,u,f,C,_)=>this.instantiationService.createInstance(p.WorkbenchList,h,u,f,C,_),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(i.QuickInputHoverDelegate))},r=this._register(new t.QuickInputController({...l,...s},this.themeService,this.layoutService));return r.layout(d.activeContainerDimension,d.activeContainerOffset.quickPickTop),this._register(d.onDidLayoutActiveContainer(h=>{(0,g.getWindow)(d.activeContainer)===(0,g.getWindow)(r.container)&&r.layout(h,d.activeContainerOffset.quickPickTop)})),this._register(d.onDidChangeActiveContainer(()=>{r.isVisible()||r.layout(d.activeContainerDimension,d.activeContainerOffset.quickPickTop)})),this._register(r.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(r.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),r}setContextKey(d){let s;d&&(s=this.contexts.get(d),s||(s=new y.RawContextKey(d,!1).bindTo(this.contextKeyService),this.contexts.set(d,s))),!(s&&s.get())&&(this.resetContextKeys(),s?.set(!0))}resetContextKeys(){this.contexts.forEach(d=>{d.get()&&d.reset()})}pick(d,s={},l=L.CancellationToken.None){return this.controller.pick(d,s,l)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:(0,a.asCssVariable)(a.quickInputBackground),quickInputForeground:(0,a.asCssVariable)(a.quickInputForeground),quickInputTitleBackground:(0,a.asCssVariable)(a.quickInputTitleBackground),widgetBorder:(0,a.asCssVariable)(a.widgetBorder),widgetShadow:(0,a.asCssVariable)(a.widgetShadow)},inputBox:b.defaultInputBoxStyles,toggle:b.defaultToggleStyles,countBadge:b.defaultCountBadgeStyles,button:b.defaultButtonStyles,progressBar:b.defaultProgressBarStyles,keybindingLabel:b.defaultKeybindingLabelStyles,list:(0,b.getListStyles)({listBackground:a.quickInputBackground,listFocusBackground:a.quickInputListFocusBackground,listFocusForeground:a.quickInputListFocusForeground,listInactiveFocusForeground:a.quickInputListFocusForeground,listInactiveSelectionIconForeground:a.quickInputListFocusIconForeground,listInactiveFocusBackground:a.quickInputListFocusBackground,listFocusOutline:a.activeContrastBorder,listInactiveFocusOutline:a.activeContrastBorder}),pickerGroup:{pickerGroupBorder:(0,a.asCssVariable)(a.pickerGroupBorder),pickerGroupForeground:(0,a.asCssVariable)(a.pickerGroupForeground)}}}};e.QuickInputService=m,e.QuickInputService=m=De([he(0,D.IInstantiationService),he(1,y.IContextKeyService),he(2,n.IThemeService),he(3,S.ILayoutService),he(4,o.IConfigurationService)],m)}),define(ne[893],se([1,0,7,16,24,19,8,14,356,35,892,112,26,495]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputEditorWidget=e.QuickInputEditorContribution=e.StandaloneQuickInputService=void 0;let i=class extends b.QuickInputService{constructor(c,d,s,l,r,h){super(d,s,l,new w.EditorScopedLayoutService(c.getContainerDomNode(),r),h),this.host=void 0;const u=o.get(c);if(u){const f=u.widget;this.host={_serviceBrand:void 0,get mainContainer(){return f.getDomNode()},getContainer(){return f.getDomNode()},get containers(){return[f.getDomNode()]},get activeContainer(){return f.getDomNode()},get mainContainerDimension(){return c.getLayoutInfo()},get activeContainerDimension(){return c.getLayoutInfo()},get onDidLayoutMainContainer(){return c.onDidLayoutChange},get onDidLayoutActiveContainer(){return c.onDidLayoutChange},get onDidLayoutContainer(){return L.Event.map(c.onDidLayoutChange,C=>({container:f.getDomNode(),dimension:C}))},get onDidChangeActiveContainer(){return L.Event.None},get onDidAddContainer(){return L.Event.None},get whenActiveContainerStylesLoaded(){return Promise.resolve()},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>c.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};i=De([he(1,S.IInstantiationService),he(2,p.IContextKeyService),he(3,y.IThemeService),he(4,v.ICodeEditorService),he(5,n.IConfigurationService)],i);let t=class{get activeService(){const c=this.codeEditorService.getFocusedCodeEditor();if(!c)throw new Error("Quick input service needs a focused editor to work.");let d=this.mapEditorToService.get(c);if(!d){const s=d=this.instantiationService.createInstance(i,c);this.mapEditorToService.set(c,d),(0,a.createSingleCallFunction)(c.onDidDispose)(()=>{s.dispose(),this.mapEditorToService.delete(c)})}return d}get quickAccess(){return this.activeService.quickAccess}constructor(c,d){this.instantiationService=c,this.codeEditorService=d,this.mapEditorToService=new Map}pick(c,d={},s=D.CancellationToken.None){return this.activeService.pick(c,d,s)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};e.StandaloneQuickInputService=t,e.StandaloneQuickInputService=t=De([he(0,S.IInstantiationService),he(1,v.ICodeEditorService)],t);class o{static get(c){return c.getContribution(o.ID)}constructor(c){this.editor=c,this.widget=new g(this.editor)}dispose(){this.widget.dispose()}}e.QuickInputEditorContribution=o,o.ID="editor.controller.quickInput";class g{constructor(c){this.codeEditor=c,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return g.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}e.QuickInputEditorWidget=g,g.ID="editor.contrib.quickInputWidget",(0,k.registerEditorContribution)(o.ID,o,4)}),define(ne[199],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoSource=e.UndoRedoGroup=e.ResourceEditStackSnapshot=e.IUndoRedoService=void 0,e.IUndoRedoService=(0,L.createDecorator)("undoRedoService");class k{constructor(p,w){this.resource=p,this.elements=w}}e.ResourceEditStackSnapshot=k;class y{constructor(){this.id=y._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}e.UndoRedoGroup=y,y._ID=0,y.None=new y;class D{constructor(){this.id=D._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}e.UndoRedoSource=D,D._ID=0,D.None=new D}),define(ne[38],se([1,0,13,39,12,7,2,11,22,133,209,64,9,5,23,182,43,33,40,623,873,346,305,533,534,337,624,187,652,117,199]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.AttachedViews=e.ModelDecorationOptions=e.ModelDecorationInjectedTextOptions=e.ModelDecorationMinimapOptions=e.ModelDecorationGlyphMarginOptions=e.ModelDecorationOverviewRulerOptions=e.TextModel=e.createTextBuffer=e.createTextBufferFactoryFromSnapshot=e.createTextBufferFactory=void 0;function R(te){const G=new C.PieceTreeTextBufferBuilder;return G.acceptChunk(te),G.finish()}e.createTextBufferFactory=R;function M(te){const G=new C.PieceTreeTextBufferBuilder;let $;for(;typeof($=te.read())=="string";)G.acceptChunk($);return G.finish()}e.createTextBufferFactoryFromSnapshot=M;function N(te,G){let $;return typeof te=="string"?$=R(te):c.isITextSnapshot(te)?$=M(te):$=te,$.create(G)}e.createTextBuffer=N;let P=0;const F=999,O=1e4;class B{constructor(G){this._source=G,this._eos=!1}read(){if(this._eos)return null;const G=[];let $=0,oe=0;do{const ae=this._source.read();if(ae===null)return this._eos=!0,$===0?null:G.join("");if(ae.length>0&&(G[$++]=ae,oe+=ae.length),oe>=64*1024)return G.join("")}while(!0)}}const W=()=>{throw new Error("Invalid change accessor")};let V=A=class extends S.Disposable{static resolveOptions(G,$){if($.detectIndentation){const oe=(0,h.guessIndentation)(G,$.tabSize,$.insertSpaces);return new c.TextModelResolvedOptions({tabSize:oe.tabSize,indentSize:"tabSize",insertSpaces:oe.insertSpaces,trimAutoWhitespace:$.trimAutoWhitespace,defaultEOL:$.defaultEOL,bracketPairColorizationOptions:$.bracketPairColorizationOptions})}return new c.TextModelResolvedOptions($)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(G){return this._eventEmitter.slowEvent($=>G($.contentChangedEvent))}onDidChangeContentOrInjectedText(G){return(0,S.combinedDisposable)(this._eventEmitter.fastEvent($=>G($)),this._onDidChangeInjectedText.event($=>G($)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(G,$,oe,ae=null,ue,ce,fe){super(),this._undoRedoService=ue,this._languageService=ce,this._languageConfigurationService=fe,this._onWillDispose=this._register(new D.Emitter),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new U(Ne=>this.handleBeforeFireDecorationsChangedEvent(Ne))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new D.Emitter),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new D.Emitter),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new D.Emitter),this._eventEmitter=this._register(new Z),this._languageSelectionListener=this._register(new S.MutableDisposable),this._deltaDecorationCallCnt=0,this._attachedViews=new H,P++,this.id="$model"+P,this.isForSimpleWidget=oe.isForSimpleWidget,typeof ae>"u"||ae===null?this._associatedResource=w.URI.parse("inmemory://model/"+P):this._associatedResource=ae,this._attachedEditorCount=0;const{textBuffer:ve,disposable:Ce}=N(G,oe.defaultEOL);this._buffer=ve,this._bufferDisposable=Ce,this._options=A.resolveOptions(this._buffer,oe);const Se=typeof $=="string"?$:$.languageId;typeof $!="string"&&(this._languageSelectionListener.value=$.onDidChange(()=>this._setLanguage($.languageId))),this._bracketPairs=this._register(new d.BracketPairsTextModelPart(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new r.GuidesTextModelPart(this,this._languageConfigurationService)),this._decorationProvider=this._register(new s.ColorizedBracketPairsDecorationProvider(this)),this._tokenizationTextModelPart=new E.TokenizationTextModelPart(this._languageService,this._languageConfigurationService,this,this._bracketPairs,Se,this._attachedViews);const _e=this._buffer.getLineCount(),Ie=this._buffer.getValueLengthInRange(new i.Range(1,1,_e,this._buffer.getLineLength(_e)+1),0);oe.largeFileOptimizations?(this._isTooLargeForTokenization=Ie>A.LARGE_FILE_SIZE_THRESHOLD||_e>A.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=Ie>A.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=Ie>A._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=p.singleLetterHash(P),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new re,this._commandManager=new l.EditStack(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(Se)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const G=new f.PieceTreeTextBuffer([],"",` +`,!1,!1,!0,!0);G.dispose(),this._buffer=G,this._bufferDisposable=S.Disposable.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(G,$){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent($),this._bracketPairs.handleDidChangeContent($),this._eventEmitter.fire(new I.InternalModelContentChangeEvent(G,$)))}setValue(G){if(this._assertNotDisposed(),G==null)throw(0,y.illegalArgument)();const{textBuffer:$,disposable:oe}=N(G,this._options.defaultEOL);this._setValueFromTextBuffer($,oe)}_createContentChanged2(G,$,oe,ae,ue,ce,fe,ve){return{changes:[{range:G,rangeOffset:$,rangeLength:oe,text:ae}],eol:this._buffer.getEOL(),isEolChange:ve,versionId:this.getVersionId(),isUndoing:ue,isRedoing:ce,isFlush:fe}}_setValueFromTextBuffer(G,$){this._assertNotDisposed();const oe=this.getFullModelRange(),ae=this.getValueLengthInRange(oe),ue=this.getLineCount(),ce=this.getLineMaxColumn(ue);this._buffer=G,this._bufferDisposable.dispose(),this._bufferDisposable=$,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new re,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new I.ModelRawContentChangedEvent([new I.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new i.Range(1,1,ue,ce),0,ae,this.getValue(),!1,!1,!0,!1))}setEOL(G){this._assertNotDisposed();const $=G===1?`\r +`:` +`;if(this._buffer.getEOL()===$)return;const oe=this.getFullModelRange(),ae=this.getValueLengthInRange(oe),ue=this.getLineCount(),ce=this.getLineMaxColumn(ue);this._onBeforeEOLChange(),this._buffer.setEOL($),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new I.ModelRawContentChangedEvent([new I.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new i.Range(1,1,ue,ce),0,ae,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const G=this.getVersionId(),$=this._decorationsTree.collectNodesPostOrder();for(let oe=0,ae=$.length;oe0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let G=0,$=0;const oe=this._buffer.getLineCount();for(let ae=1;ae<=oe;ae++){const ue=this._buffer.getLineLength(ae);ue>=O?$+=ue:G+=ue}return $>G}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(G){this._assertNotDisposed();const $=typeof G.tabSize<"u"?G.tabSize:this._options.tabSize,oe=typeof G.indentSize<"u"?G.indentSize:this._options.originalIndentSize,ae=typeof G.insertSpaces<"u"?G.insertSpaces:this._options.insertSpaces,ue=typeof G.trimAutoWhitespace<"u"?G.trimAutoWhitespace:this._options.trimAutoWhitespace,ce=typeof G.bracketColorizationOptions<"u"?G.bracketColorizationOptions:this._options.bracketPairColorizationOptions,fe=new c.TextModelResolvedOptions({tabSize:$,indentSize:oe,insertSpaces:ae,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:ue,bracketPairColorizationOptions:ce});if(this._options.equals(fe))return;const ve=this._options.createChangeEvent(fe);this._options=fe,this._bracketPairs.handleDidChangeOptions(ve),this._decorationProvider.handleDidChangeOptions(ve),this._onDidChangeOptions.fire(ve)}detectIndentation(G,$){this._assertNotDisposed();const oe=(0,h.guessIndentation)(this._buffer,$,G);this.updateOptions({insertSpaces:oe.insertSpaces,tabSize:oe.tabSize,indentSize:oe.tabSize})}normalizeIndentation(G){return this._assertNotDisposed(),(0,b.normalizeIndentation)(G,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(G=null){const $=this.findMatches(p.UNUSUAL_LINE_TERMINATORS.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(G,$.map(oe=>({range:oe.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(G){this._assertNotDisposed();const $=this._validatePosition(G.lineNumber,G.column,0);return this._buffer.getOffsetAt($.lineNumber,$.column)}getPositionAt(G){this._assertNotDisposed();const $=Math.min(this._buffer.getLength(),Math.max(0,G));return this._buffer.getPositionAt($)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(G){this._versionId=G}_overwriteAlternativeVersionId(G){this._alternativeVersionId=G}_overwriteInitialUndoRedoSnapshot(G){this._initialUndoRedoSnapshot=G}getValue(G,$=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new y.BugIndicatingError("Operation would exceed heap memory limits");const oe=this.getFullModelRange(),ae=this.getValueInRange(oe,G);return $?this._buffer.getBOM()+ae:ae}createSnapshot(G=!1){return new B(this._buffer.createSnapshot(G))}getValueLength(G,$=!1){this._assertNotDisposed();const oe=this.getFullModelRange(),ae=this.getValueLengthInRange(oe,G);return $?this._buffer.getBOM().length+ae:ae}getValueInRange(G,$=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(G),$)}getValueLengthInRange(G,$=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(G),$)}getCharacterCountInRange(G,$=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(G),$)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(G){if(this._assertNotDisposed(),G<1||G>this.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineContent(G)}getLineLength(G){if(this._assertNotDisposed(),G<1||G>this.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(G)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new y.BugIndicatingError("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` +`?0:1}getLineMinColumn(G){return this._assertNotDisposed(),1}getLineMaxColumn(G){if(this._assertNotDisposed(),G<1||G>this.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(G)+1}getLineFirstNonWhitespaceColumn(G){if(this._assertNotDisposed(),G<1||G>this.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(G)}getLineLastNonWhitespaceColumn(G){if(this._assertNotDisposed(),G<1||G>this.getLineCount())throw new y.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(G)}_validateRangeRelaxedNoAllocations(G){const $=this._buffer.getLineCount(),oe=G.startLineNumber,ae=G.startColumn;let ue=Math.floor(typeof oe=="number"&&!isNaN(oe)?oe:1),ce=Math.floor(typeof ae=="number"&&!isNaN(ae)?ae:1);if(ue<1)ue=1,ce=1;else if(ue>$)ue=$,ce=this.getLineMaxColumn(ue);else if(ce<=1)ce=1;else{const _e=this.getLineMaxColumn(ue);ce>=_e&&(ce=_e)}const fe=G.endLineNumber,ve=G.endColumn;let Ce=Math.floor(typeof fe=="number"&&!isNaN(fe)?fe:1),Se=Math.floor(typeof ve=="number"&&!isNaN(ve)?ve:1);if(Ce<1)Ce=1,Se=1;else if(Ce>$)Ce=$,Se=this.getLineMaxColumn(Ce);else if(Se<=1)Se=1;else{const _e=this.getLineMaxColumn(Ce);Se>=_e&&(Se=_e)}return oe===ue&&ae===ce&&fe===Ce&&ve===Se&&G instanceof i.Range&&!(G instanceof t.Selection)?G:new i.Range(ue,ce,Ce,Se)}_isValidPosition(G,$,oe){if(typeof G!="number"||typeof $!="number"||isNaN(G)||isNaN($)||G<1||$<1||(G|0)!==G||($|0)!==$)return!1;const ae=this._buffer.getLineCount();if(G>ae)return!1;if($===1)return!0;const ue=this.getLineMaxColumn(G);if($>ue)return!1;if(oe===1){const ce=this._buffer.getLineCharCode(G,$-2);if(p.isHighSurrogate(ce))return!1}return!0}_validatePosition(G,$,oe){const ae=Math.floor(typeof G=="number"&&!isNaN(G)?G:1),ue=Math.floor(typeof $=="number"&&!isNaN($)?$:1),ce=this._buffer.getLineCount();if(ae<1)return new n.Position(1,1);if(ae>ce)return new n.Position(ce,this.getLineMaxColumn(ce));if(ue<=1)return new n.Position(ae,1);const fe=this.getLineMaxColumn(ae);if(ue>=fe)return new n.Position(ae,fe);if(oe===1){const ve=this._buffer.getLineCharCode(ae,ue-2);if(p.isHighSurrogate(ve))return new n.Position(ae,ue-1)}return new n.Position(ae,ue)}validatePosition(G){return this._assertNotDisposed(),G instanceof n.Position&&this._isValidPosition(G.lineNumber,G.column,1)?G:this._validatePosition(G.lineNumber,G.column,1)}_isValidRange(G,$){const oe=G.startLineNumber,ae=G.startColumn,ue=G.endLineNumber,ce=G.endColumn;if(!this._isValidPosition(oe,ae,0)||!this._isValidPosition(ue,ce,0))return!1;if($===1){const fe=ae>1?this._buffer.getLineCharCode(oe,ae-2):0,ve=ce>1&&ce<=this._buffer.getLineLength(ue)?this._buffer.getLineCharCode(ue,ce-2):0,Ce=p.isHighSurrogate(fe),Se=p.isHighSurrogate(ve);return!Ce&&!Se}return!0}validateRange(G){if(this._assertNotDisposed(),G instanceof i.Range&&!(G instanceof t.Selection)&&this._isValidRange(G,1))return G;const oe=this._validatePosition(G.startLineNumber,G.startColumn,0),ae=this._validatePosition(G.endLineNumber,G.endColumn,0),ue=oe.lineNumber,ce=oe.column,fe=ae.lineNumber,ve=ae.column;{const Ce=ce>1?this._buffer.getLineCharCode(ue,ce-2):0,Se=ve>1&&ve<=this._buffer.getLineLength(fe)?this._buffer.getLineCharCode(fe,ve-2):0,_e=p.isHighSurrogate(Ce),Ie=p.isHighSurrogate(Se);return!_e&&!Ie?new i.Range(ue,ce,fe,ve):ue===fe&&ce===ve?new i.Range(ue,ce-1,fe,ve-1):_e&&Ie?new i.Range(ue,ce-1,fe,ve+1):_e?new i.Range(ue,ce-1,fe,ve):new i.Range(ue,ce,fe,ve+1)}return new i.Range(ue,ce,fe,ve)}modifyPosition(G,$){this._assertNotDisposed();const oe=this.getOffsetAt(G)+$;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,oe)))}getFullModelRange(){this._assertNotDisposed();const G=this.getLineCount();return new i.Range(1,1,G,this.getLineMaxColumn(G))}findMatchesLineByLine(G,$,oe,ae){return this._buffer.findMatchesLineByLine(G,$,oe,ae)}findMatches(G,$,oe,ae,ue,ce,fe=F){this._assertNotDisposed();let ve=null;$!==null&&(Array.isArray($)||($=[$]),$.every(_e=>i.Range.isIRange(_e))&&(ve=$.map(_e=>this.validateRange(_e)))),ve===null&&(ve=[this.getFullModelRange()]),ve=ve.sort((_e,Ie)=>_e.startLineNumber-Ie.startLineNumber||_e.startColumn-Ie.startColumn);const Ce=[];Ce.push(ve.reduce((_e,Ie)=>i.Range.areIntersecting(_e,Ie)?_e.plusRange(Ie):(Ce.push(_e),Ie)));let Se;if(!oe&&G.indexOf(` +`)<0){const Ie=new _.SearchParams(G,oe,ae,ue).parseSearchRequest();if(!Ie)return[];Se=Ne=>this.findMatchesLineByLine(Ne,Ie,ce,fe)}else Se=_e=>_.TextModelSearch.findMatches(this,new _.SearchParams(G,oe,ae,ue),_e,ce,fe);return Ce.map(Se).reduce((_e,Ie)=>_e.concat(Ie),[])}findNextMatch(G,$,oe,ae,ue,ce){this._assertNotDisposed();const fe=this.validatePosition($);if(!oe&&G.indexOf(` +`)<0){const Ce=new _.SearchParams(G,oe,ae,ue).parseSearchRequest();if(!Ce)return null;const Se=this.getLineCount();let _e=new i.Range(fe.lineNumber,fe.column,Se,this.getLineMaxColumn(Se)),Ie=this.findMatchesLineByLine(_e,Ce,ce,1);return _.TextModelSearch.findNextMatch(this,new _.SearchParams(G,oe,ae,ue),fe,ce),Ie.length>0||(_e=new i.Range(1,1,fe.lineNumber,this.getLineMaxColumn(fe.lineNumber)),Ie=this.findMatchesLineByLine(_e,Ce,ce,1),Ie.length>0)?Ie[0]:null}return _.TextModelSearch.findNextMatch(this,new _.SearchParams(G,oe,ae,ue),fe,ce)}findPreviousMatch(G,$,oe,ae,ue,ce){this._assertNotDisposed();const fe=this.validatePosition($);return _.TextModelSearch.findPreviousMatch(this,new _.SearchParams(G,oe,ae,ue),fe,ce)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(G){if((this.getEOL()===` +`?0:1)!==G)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(G)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(G){return G instanceof c.ValidAnnotatedEditOperation?G:new c.ValidAnnotatedEditOperation(G.identifier||null,this.validateRange(G.range),G.text,G.forceMoveMarkers||!1,G.isAutoWhitespaceEdit||!1,G._isTracked||!1)}_validateEditOperations(G){const $=[];for(let oe=0,ae=G.length;oe({range:this.validateRange(fe.range),text:fe.text}));let ce=!0;if(G)for(let fe=0,ve=G.length;feCe.endLineNumber,xe=Ce.startLineNumber>Ne.endLineNumber;if(!Oe&&!xe){Se=!0;break}}if(!Se){ce=!1;break}}if(ce)for(let fe=0,ve=this._trimAutoWhitespaceLines.length;feOe.endLineNumber)&&!(Ce===Oe.startLineNumber&&Oe.startColumn===Se&&Oe.isEmpty()&&xe&&xe.length>0&&xe.charAt(0)===` +`)&&!(Ce===Oe.startLineNumber&&Oe.startColumn===1&&Oe.isEmpty()&&xe&&xe.length>0&&xe.charAt(xe.length-1)===` +`)){_e=!1;break}}if(_e){const Ie=new i.Range(Ce,1,Ce,Se);$.push(new c.ValidAnnotatedEditOperation(null,Ie,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(G,$,oe,ae)}_applyUndo(G,$,oe,ae){const ue=G.map(ce=>{const fe=this.getPositionAt(ce.newPosition),ve=this.getPositionAt(ce.newEnd);return{range:new i.Range(fe.lineNumber,fe.column,ve.lineNumber,ve.column),text:ce.oldText}});this._applyUndoRedoEdits(ue,$,!0,!1,oe,ae)}_applyRedo(G,$,oe,ae){const ue=G.map(ce=>{const fe=this.getPositionAt(ce.oldPosition),ve=this.getPositionAt(ce.oldEnd);return{range:new i.Range(fe.lineNumber,fe.column,ve.lineNumber,ve.column),text:ce.newText}});this._applyUndoRedoEdits(ue,$,!1,!0,oe,ae)}_applyUndoRedoEdits(G,$,oe,ae,ue,ce){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=oe,this._isRedoing=ae,this.applyEdits(G,!1),this.setEOL($),this._overwriteAlternativeVersionId(ue)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(ce),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(G,$=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const oe=this._validateEditOperations(G);return this._doApplyEdits(oe,$)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(G,$){const oe=this._buffer.getLineCount(),ae=this._buffer.applyEdits(G,this._options.trimAutoWhitespace,$),ue=this._buffer.getLineCount(),ce=ae.changes;if(this._trimAutoWhitespaceLines=ae.trimAutoWhitespaceLineNumbers,ce.length!==0){for(let Ce=0,Se=ce.length;Ce=0;Ge--){const st=Ne+Ge,Xe=me+Ge;qe.takeFromEndWhile(nt=>nt.lineNumber>Xe);const ot=qe.takeFromEndWhile(nt=>nt.lineNumber===Xe);fe.push(new I.ModelRawLineChanged(st,this.getLineContent(Xe),ot))}if(yedt.lineNumberdt.lineNumber===ut)}fe.push(new I.ModelRawLinesInserted(st+1,Ne+We,rt,nt))}ve+=Me}this._emitContentChangedEvent(new I.ModelRawContentChangedEvent(fe,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:ce,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return ae.reverseEdits===null?void 0:ae.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(G){if(G===null||G.size===0)return;const oe=Array.from(G).map(ae=>new I.ModelRawLineChanged(ae,this.getLineContent(ae),this._getInjectedTextInLine(ae)));this._onDidChangeInjectedText.fire(new I.ModelInjectedTextChangedEvent(oe))}changeDecorations(G,$=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations($,G)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(G,$){const oe={addDecoration:(ue,ce)=>this._deltaDecorationsImpl(G,[],[{range:ue,options:ce}])[0],changeDecoration:(ue,ce)=>{this._changeDecorationImpl(ue,ce)},changeDecorationOptions:(ue,ce)=>{this._changeDecorationOptionsImpl(ue,Q(ce))},removeDecoration:ue=>{this._deltaDecorationsImpl(G,[ue],[])},deltaDecorations:(ue,ce)=>ue.length===0&&ce.length===0?[]:this._deltaDecorationsImpl(G,ue,ce)};let ae=null;try{ae=$(oe)}catch(ue){(0,y.onUnexpectedError)(ue)}return oe.addDecoration=W,oe.changeDecoration=W,oe.changeDecorationOptions=W,oe.removeDecoration=W,oe.deltaDecorations=W,ae}deltaDecorations(G,$,oe=0){if(this._assertNotDisposed(),G||(G=[]),G.length===0&&$.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,y.onUnexpectedError)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(oe,G,$)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(G){return this.getDecorationRange(G)}_setTrackedRange(G,$,oe){const ae=G?this._decorations[G]:null;if(!ae)return $?this._deltaDecorationsImpl(0,[],[{range:$,options:pe[oe]}],!0)[0]:null;if(!$)return this._decorationsTree.delete(ae),delete this._decorations[ae.id],null;const ue=this._validateRangeRelaxedNoAllocations($),ce=this._buffer.getOffsetAt(ue.startLineNumber,ue.startColumn),fe=this._buffer.getOffsetAt(ue.endLineNumber,ue.endColumn);return this._decorationsTree.delete(ae),ae.reset(this.getVersionId(),ce,fe,ue),ae.setOptions(pe[oe]),this._decorationsTree.insert(ae),ae.id}removeAllDecorationsWithOwnerId(G){if(this._isDisposed)return;const $=this._decorationsTree.collectNodesFromOwner(G);for(let oe=0,ae=$.length;oethis.getLineCount()?[]:this.getLinesDecorations(G,G,$,oe)}getLinesDecorations(G,$,oe=0,ae=!1,ue=!1){const ce=this.getLineCount(),fe=Math.min(ce,Math.max(1,G)),ve=Math.min(ce,Math.max(1,$)),Ce=this.getLineMaxColumn(ve),Se=new i.Range(fe,1,ve,Ce),_e=this._getDecorationsInRange(Se,oe,ae,ue);return(0,L.pushMany)(_e,this._decorationProvider.getDecorationsInRange(Se,oe,ae)),_e}getDecorationsInRange(G,$=0,oe=!1,ae=!1,ue=!1){const ce=this.validateRange(G),fe=this._getDecorationsInRange(ce,$,oe,ue);return(0,L.pushMany)(fe,this._decorationProvider.getDecorationsInRange(ce,$,oe,ae)),fe}getOverviewRulerDecorations(G=0,$=!1){return this._decorationsTree.getAll(this,G,$,!0,!1)}getInjectedTextDecorations(G=0){return this._decorationsTree.getAllInjectedText(this,G)}_getInjectedTextInLine(G){const $=this._buffer.getOffsetAt(G,1),oe=$+this._buffer.getLineLength(G),ae=this._decorationsTree.getInjectedTextInInterval(this,$,oe,0);return I.LineInjectedText.fromDecorations(ae).filter(ue=>ue.lineNumber===G)}getAllDecorations(G=0,$=!1){let oe=this._decorationsTree.getAll(this,G,$,!1,!1);return oe=oe.concat(this._decorationProvider.getAllDecorations(G,$)),oe}getAllMarginDecorations(G=0){return this._decorationsTree.getAll(this,G,!1,!1,!0)}_getDecorationsInRange(G,$,oe,ae){const ue=this._buffer.getOffsetAt(G.startLineNumber,G.startColumn),ce=this._buffer.getOffsetAt(G.endLineNumber,G.endColumn);return this._decorationsTree.getAllInInterval(this,ue,ce,$,oe,ae)}getRangeAt(G,$){return this._buffer.getRangeAt(G,$-G)}_changeDecorationImpl(G,$){const oe=this._decorations[G];if(!oe)return;if(oe.options.after){const fe=this.getDecorationRange(G);this._onDidChangeDecorations.recordLineAffectedByInjectedText(fe.endLineNumber)}if(oe.options.before){const fe=this.getDecorationRange(G);this._onDidChangeDecorations.recordLineAffectedByInjectedText(fe.startLineNumber)}const ae=this._validateRangeRelaxedNoAllocations($),ue=this._buffer.getOffsetAt(ae.startLineNumber,ae.startColumn),ce=this._buffer.getOffsetAt(ae.endLineNumber,ae.endColumn);this._decorationsTree.delete(oe),oe.reset(this.getVersionId(),ue,ce,ae),this._decorationsTree.insert(oe),this._onDidChangeDecorations.checkAffectedAndFire(oe.options),oe.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(ae.endLineNumber),oe.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(ae.startLineNumber)}_changeDecorationOptionsImpl(G,$){const oe=this._decorations[G];if(!oe)return;const ae=!!(oe.options.overviewRuler&&oe.options.overviewRuler.color),ue=!!($.overviewRuler&&$.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(oe.options),this._onDidChangeDecorations.checkAffectedAndFire($),oe.options.after||$.after){const ve=this._decorationsTree.getNodeRange(this,oe);this._onDidChangeDecorations.recordLineAffectedByInjectedText(ve.endLineNumber)}if(oe.options.before||$.before){const ve=this._decorationsTree.getNodeRange(this,oe);this._onDidChangeDecorations.recordLineAffectedByInjectedText(ve.startLineNumber)}const ce=ae!==ue,fe=j($)!==x(oe);ce||fe?(this._decorationsTree.delete(oe),oe.setOptions($),this._decorationsTree.insert(oe)):oe.setOptions($)}_deltaDecorationsImpl(G,$,oe,ae=!1){const ue=this.getVersionId(),ce=$.length;let fe=0;const ve=oe.length;let Ce=0;this._onDidChangeDecorations.beginDeferredEmit();try{const Se=new Array(ve);for(;fethis._setLanguage(G.languageId,$)),this._setLanguage(G.languageId,$))}_setLanguage(G,$){this.tokenization.setLanguageId(G,$),this._languageService.requestRichLanguageFeatures(G)}getLanguageIdAtPosition(G,$){return this.tokenization.getLanguageIdAtPosition(G,$)}getWordAtPosition(G){return this._tokenizationTextModelPart.getWordAtPosition(G)}getWordUntilPosition(G){return this._tokenizationTextModelPart.getWordUntilPosition(G)}normalizePosition(G,$){return G}getLineIndentColumn(G){return z(this.getLineContent(G))+1}};e.TextModel=V,V._MODEL_SYNC_LIMIT=50*1024*1024,V.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024,V.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3,V.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024,V.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:o.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:o.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:o.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:o.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:o.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,bracketPairColorizationOptions:o.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions},e.TextModel=V=A=De([he(4,T.IUndoRedoService),he(5,g.ILanguageService),he(6,m.ILanguageConfigurationService)],V);function z(te){let G=0;for(const $ of te)if($===" "||$===" ")G++;else break;return G}function K(te){return!!(te.options.overviewRuler&&te.options.overviewRuler.color)}function j(te){return!!te.after||!!te.before}function x(te){return!!te.options.after||!!te.options.before}class re{constructor(){this._decorationsTree0=new u.IntervalTree,this._decorationsTree1=new u.IntervalTree,this._injectedTextDecorationsTree=new u.IntervalTree}ensureAllNodesHaveRanges(G){this.getAll(G,0,!1,!1,!1)}_ensureNodesHaveRanges(G,$){for(const oe of $)oe.range===null&&(oe.range=G.getRangeAt(oe.cachedAbsoluteStart,oe.cachedAbsoluteEnd));return $}getAllInInterval(G,$,oe,ae,ue,ce){const fe=G.getVersionId(),ve=this._intervalSearch($,oe,ae,ue,fe,ce);return this._ensureNodesHaveRanges(G,ve)}_intervalSearch(G,$,oe,ae,ue,ce){const fe=this._decorationsTree0.intervalSearch(G,$,oe,ae,ue,ce),ve=this._decorationsTree1.intervalSearch(G,$,oe,ae,ue,ce),Ce=this._injectedTextDecorationsTree.intervalSearch(G,$,oe,ae,ue,ce);return fe.concat(ve).concat(Ce)}getInjectedTextInInterval(G,$,oe,ae){const ue=G.getVersionId(),ce=this._injectedTextDecorationsTree.intervalSearch($,oe,ae,!1,ue,!1);return this._ensureNodesHaveRanges(G,ce).filter(fe=>fe.options.showIfCollapsed||!fe.range.isEmpty())}getAllInjectedText(G,$){const oe=G.getVersionId(),ae=this._injectedTextDecorationsTree.search($,!1,oe,!1);return this._ensureNodesHaveRanges(G,ae).filter(ue=>ue.options.showIfCollapsed||!ue.range.isEmpty())}getAll(G,$,oe,ae,ue){const ce=G.getVersionId(),fe=this._search($,oe,ae,ce,ue);return this._ensureNodesHaveRanges(G,fe)}_search(G,$,oe,ae,ue){if(oe)return this._decorationsTree1.search(G,$,ae,ue);{const ce=this._decorationsTree0.search(G,$,ae,ue),fe=this._decorationsTree1.search(G,$,ae,ue),ve=this._injectedTextDecorationsTree.search(G,$,ae,ue);return ce.concat(fe).concat(ve)}}collectNodesFromOwner(G){const $=this._decorationsTree0.collectNodesFromOwner(G),oe=this._decorationsTree1.collectNodesFromOwner(G),ae=this._injectedTextDecorationsTree.collectNodesFromOwner(G);return $.concat(oe).concat(ae)}collectNodesPostOrder(){const G=this._decorationsTree0.collectNodesPostOrder(),$=this._decorationsTree1.collectNodesPostOrder(),oe=this._injectedTextDecorationsTree.collectNodesPostOrder();return G.concat($).concat(oe)}insert(G){x(G)?this._injectedTextDecorationsTree.insert(G):K(G)?this._decorationsTree1.insert(G):this._decorationsTree0.insert(G)}delete(G){x(G)?this._injectedTextDecorationsTree.delete(G):K(G)?this._decorationsTree1.delete(G):this._decorationsTree0.delete(G)}getNodeRange(G,$){const oe=G.getVersionId();return $.cachedVersionId!==oe&&this._resolveNode($,oe),$.range===null&&($.range=G.getRangeAt($.cachedAbsoluteStart,$.cachedAbsoluteEnd)),$.range}_resolveNode(G,$){x(G)?this._injectedTextDecorationsTree.resolveNode(G,$):K(G)?this._decorationsTree1.resolveNode(G,$):this._decorationsTree0.resolveNode(G,$)}acceptReplace(G,$,oe,ae){this._decorationsTree0.acceptReplace(G,$,oe,ae),this._decorationsTree1.acceptReplace(G,$,oe,ae),this._injectedTextDecorationsTree.acceptReplace(G,$,oe,ae)}}function ie(te){return te.replace(/[^a-z0-9\-_]/gi," ")}class J{constructor(G){this.color=G.color||"",this.darkColor=G.darkColor||""}}class X extends J{constructor(G){super(G),this._resolvedColor=null,this.position=typeof G.position=="number"?G.position:c.OverviewRulerLane.Center}getColor(G){return this._resolvedColor||(G.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,G):this._resolvedColor=this._resolveColor(this.color,G)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(G,$){if(typeof G=="string")return G;const oe=G?$.getColor(G.id):null;return oe?oe.toString():""}}e.ModelDecorationOverviewRulerOptions=X;class Y{constructor(G){var $;this.position=($=G?.position)!==null&&$!==void 0?$:c.GlyphMarginLane.Center,this.persistLane=G?.persistLane}}e.ModelDecorationGlyphMarginOptions=Y;class le extends J{constructor(G){super(G),this.position=G.position}getColor(G){return this._resolvedColor||(G.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,G):this._resolvedColor=this._resolveColor(this.color,G)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(G,$){return typeof G=="string"?k.Color.fromHex(G):$.getColor(G.id)}}e.ModelDecorationMinimapOptions=le;class de{static from(G){return G instanceof de?G:new de(G)}constructor(G){this.content=G.content||"",this.inlineClassName=G.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=G.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=G.attachedData||null,this.cursorStops=G.cursorStops||null}}e.ModelDecorationInjectedTextOptions=de;class ge{static register(G){return new ge(G)}static createDynamic(G){return new ge(G)}constructor(G){var $,oe,ae,ue,ce,fe;this.description=G.description,this.blockClassName=G.blockClassName?ie(G.blockClassName):null,this.blockDoesNotCollapse=($=G.blockDoesNotCollapse)!==null&&$!==void 0?$:null,this.blockIsAfterEnd=(oe=G.blockIsAfterEnd)!==null&&oe!==void 0?oe:null,this.blockPadding=(ae=G.blockPadding)!==null&&ae!==void 0?ae:null,this.stickiness=G.stickiness||0,this.zIndex=G.zIndex||0,this.className=G.className?ie(G.className):null,this.shouldFillLineOnLineBreak=(ue=G.shouldFillLineOnLineBreak)!==null&&ue!==void 0?ue:null,this.hoverMessage=G.hoverMessage||null,this.glyphMarginHoverMessage=G.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=G.lineNumberHoverMessage||null,this.isWholeLine=G.isWholeLine||!1,this.showIfCollapsed=G.showIfCollapsed||!1,this.collapseOnReplaceEdit=G.collapseOnReplaceEdit||!1,this.overviewRuler=G.overviewRuler?new X(G.overviewRuler):null,this.minimap=G.minimap?new le(G.minimap):null,this.glyphMargin=G.glyphMarginClassName?new Y(G.glyphMargin):null,this.glyphMarginClassName=G.glyphMarginClassName?ie(G.glyphMarginClassName):null,this.linesDecorationsClassName=G.linesDecorationsClassName?ie(G.linesDecorationsClassName):null,this.lineNumberClassName=G.lineNumberClassName?ie(G.lineNumberClassName):null,this.linesDecorationsTooltip=G.linesDecorationsTooltip?p.htmlAttributeEncodeValue(G.linesDecorationsTooltip):null,this.firstLineDecorationClassName=G.firstLineDecorationClassName?ie(G.firstLineDecorationClassName):null,this.marginClassName=G.marginClassName?ie(G.marginClassName):null,this.inlineClassName=G.inlineClassName?ie(G.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=G.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=G.beforeContentClassName?ie(G.beforeContentClassName):null,this.afterContentClassName=G.afterContentClassName?ie(G.afterContentClassName):null,this.after=G.after?de.from(G.after):null,this.before=G.before?de.from(G.before):null,this.hideInCommentTokens=(ce=G.hideInCommentTokens)!==null&&ce!==void 0?ce:!1,this.hideInStringTokens=(fe=G.hideInStringTokens)!==null&&fe!==void 0?fe:!1}}e.ModelDecorationOptions=ge,ge.EMPTY=ge.register({description:"empty"});const pe=[ge.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),ge.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),ge.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),ge.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Q(te){return te instanceof ge?te:ge.createDynamic(te)}class U extends S.Disposable{constructor(G){super(),this.handleBeforeFire=G,this._actual=this._register(new D.Emitter),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var G;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(G=this._affectedInjectedTextLines)===null||G===void 0||G.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(G){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(G)}checkAffectedAndFire(G){var $,oe;this._affectsMinimap||(this._affectsMinimap=!!(!(($=G.minimap)===null||$===void 0)&&$.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(!((oe=G.overviewRuler)===null||oe===void 0)&&oe.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!G.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!G.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const G={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(G)}}class Z extends S.Disposable{constructor(){super(),this._fastEmitter=this._register(new D.Emitter),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new D.Emitter),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(G=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=G;const $=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire($),this._slowEmitter.fire($)}}fire(G){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(G):this._deferredEvent=G;return}this._fastEmitter.fire(G),this._slowEmitter.fire(G)}}class H{constructor(){this._onDidChangeVisibleRanges=new D.Emitter,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const G=new q($=>{this._onDidChangeVisibleRanges.fire({view:G,state:$})});return this._views.add(G),G}detachView(G){this._views.delete(G),this._onDidChangeVisibleRanges.fire({view:G,state:void 0})}}e.AttachedViews=H;class q{constructor(G){this.handleStateChange=G}setVisibleLines(G,$){const oe=G.map(ae=>new a.LineRange(ae.startLineNumber,ae.endLineNumber+1));this.handleStateChange({visibleLineRanges:oe,stabilized:$})}}}),define(ne[265],se([1,0,27,29,38,641,31,82]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffDeleteDecorationEmpty=e.diffWholeLineDeleteDecoration=e.diffDeleteDecoration=e.diffAddDecorationEmpty=e.diffWholeLineAddDecoration=e.diffAddDecoration=e.diffLineDeleteDecorationBackground=e.diffLineAddDecorationBackground=e.diffLineDeleteDecorationBackgroundWithIndicator=e.diffLineAddDecorationBackgroundWithIndicator=e.diffRemoveIcon=e.diffInsertIcon=e.diffEditorUnchangedRegionShadow=e.diffMoveBorderActive=e.diffMoveBorder=void 0,e.diffMoveBorder=(0,S.registerColor)("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},(0,D.localize)(0,null)),e.diffMoveBorderActive=(0,S.registerColor)("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},(0,D.localize)(1,null)),e.diffEditorUnchangedRegionShadow=(0,S.registerColor)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,D.localize)(2,null)),e.diffInsertIcon=(0,p.registerIcon)("diff-insert",L.Codicon.add,(0,D.localize)(3,null)),e.diffRemoveIcon=(0,p.registerIcon)("diff-remove",L.Codicon.remove,(0,D.localize)(4,null)),e.diffLineAddDecorationBackgroundWithIndicator=y.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+k.ThemeIcon.asClassName(e.diffInsertIcon),marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackgroundWithIndicator=y.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+k.ThemeIcon.asClassName(e.diffRemoveIcon),marginClassName:"gutter-delete"}),e.diffLineAddDecorationBackground=y.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackground=y.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),e.diffAddDecoration=y.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),e.diffWholeLineAddDecoration=y.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),e.diffAddDecorationEmpty=y.ModelDecorationOptions.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),e.diffDeleteDecoration=y.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),e.diffWholeLineDeleteDecoration=y.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),e.diffDeleteDecorationEmpty=y.ModelDecorationOptions.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"})}),define(ne[894],se([1,0,2,32,340,265,87]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorDecorations=void 0;class p extends L.Disposable{constructor(v,b,a,n){super(),this._editors=v,this._diffModel=b,this._options=a,this._decorations=(0,k.derived)(this,i=>{var t;const o=(t=this._diffModel.read(i))===null||t===void 0?void 0:t.diff.read(i);if(!o)return null;const g=this._diffModel.read(i).movedTextToCompare.read(i),m=this._options.renderIndicators.read(i),c=this._options.showEmptyDecorations.read(i),d=[],s=[];if(!g)for(const r of o.mappings)if(r.lineRangeMapping.original.isEmpty||d.push({range:r.lineRangeMapping.original.toInclusiveRange(),options:m?D.diffLineDeleteDecorationBackgroundWithIndicator:D.diffLineDeleteDecorationBackground}),r.lineRangeMapping.modified.isEmpty||s.push({range:r.lineRangeMapping.modified.toInclusiveRange(),options:m?D.diffLineAddDecorationBackgroundWithIndicator:D.diffLineAddDecorationBackground}),r.lineRangeMapping.modified.isEmpty||r.lineRangeMapping.original.isEmpty)r.lineRangeMapping.original.isEmpty||d.push({range:r.lineRangeMapping.original.toInclusiveRange(),options:D.diffWholeLineDeleteDecoration}),r.lineRangeMapping.modified.isEmpty||s.push({range:r.lineRangeMapping.modified.toInclusiveRange(),options:D.diffWholeLineAddDecoration});else for(const h of r.lineRangeMapping.innerChanges||[])r.lineRangeMapping.original.contains(h.originalRange.startLineNumber)&&d.push({range:h.originalRange,options:h.originalRange.isEmpty()&&c?D.diffDeleteDecorationEmpty:D.diffDeleteDecoration}),r.lineRangeMapping.modified.contains(h.modifiedRange.startLineNumber)&&s.push({range:h.modifiedRange,options:h.modifiedRange.isEmpty()&&c?D.diffAddDecorationEmpty:D.diffAddDecoration});if(g)for(const r of g.changes){const h=r.original.toInclusiveRange();h&&d.push({range:h,options:m?D.diffLineDeleteDecorationBackgroundWithIndicator:D.diffLineDeleteDecorationBackground});const u=r.modified.toInclusiveRange();u&&s.push({range:u,options:m?D.diffLineAddDecorationBackgroundWithIndicator:D.diffLineAddDecorationBackground});for(const f of r.innerChanges||[])d.push({range:f.originalRange,options:D.diffDeleteDecoration}),s.push({range:f.modifiedRange,options:D.diffAddDecoration})}const l=this._diffModel.read(i).activeMovedText.read(i);for(const r of o.movedTexts)d.push({range:r.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(r===l?" currentMove":""),blockPadding:[y.MovedBlocksLinesFeature.movedCodeBlockPadding,0,y.MovedBlocksLinesFeature.movedCodeBlockPadding,y.MovedBlocksLinesFeature.movedCodeBlockPadding]}}),s.push({range:r.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(r===l?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:d,modifiedDecorations:s}}),this._register((0,S.applyObservableDecorations)(this._editors.original,this._decorations.map(i=>i?.originalDecorations||[]))),this._register((0,S.applyObservableDecorations)(this._editors.modified,this._decorations.map(i=>i?.modifiedDecorations||[])))}}e.DiffEditorDecorations=p}),define(ne[895],se([1,0,6,13,15,27,2,32,29,20,74,265,366,635,658,87,64,9,86,107,56]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorViewZones=void 0;let l=class extends S.Disposable{constructor(f,C,_,E,I,T,A,R,M,N){super(),this._targetWindow=f,this._editors=C,this._diffModel=_,this._options=E,this._diffEditorWidget=I,this._canIgnoreViewZoneUpdateEvent=T,this._origViewZonesToIgnore=A,this._modViewZonesToIgnore=R,this._clipboardService=M,this._contextMenuService=N,this._originalTopPadding=(0,p.observableValue)(this,0),this._originalScrollOffset=(0,p.observableValue)(this,0),this._originalScrollOffsetAnimated=(0,o.animatedObservable)(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,p.observableValue)(this,0),this._modifiedScrollOffset=(0,p.observableValue)(this,0),this._modifiedScrollOffsetAnimated=(0,o.animatedObservable)(this._targetWindow,this._modifiedScrollOffset,this._store);const P=(0,p.observableValue)("invalidateAlignmentsState",0),F=this._register(new y.RunOnceScheduler(()=>{P.set(P.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(j=>{this._canIgnoreViewZoneUpdateEvent()||F.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(j=>{this._canIgnoreViewZoneUpdateEvent()||F.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(j=>{(j.hasChanged(145)||j.hasChanged(67))&&F.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(j=>{(j.hasChanged(145)||j.hasChanged(67))&&F.schedule()}));const O=this._diffModel.map(j=>j?(0,p.observableFromEvent)(j.model.original.onDidChangeTokens,()=>j.model.original.tokenization.backgroundTokenizationState===2):void 0).map((j,x)=>j?.read(x)),B=(0,p.derived)(j=>{const x=this._diffModel.read(j),re=x?.diff.read(j);if(!x||!re)return null;P.read(j);const J=this._options.renderSideBySide.read(j);return r(this._editors.original,this._editors.modified,re.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,J)}),W=(0,p.derived)(j=>{var x;const re=(x=this._diffModel.read(j))===null||x===void 0?void 0:x.movedTextToCompare.read(j);if(!re)return null;P.read(j);const ie=re.changes.map(J=>new n.DiffMapping(J));return r(this._editors.original,this._editors.modified,ie,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function V(){const j=document.createElement("div");return j.className="diagonal-fill",j}const z=this._register(new S.DisposableStore);this.viewZones=(0,p.derivedWithStore)(this,(j,x)=>{var re,ie,J,X,Y,le,de,ge;z.clear();const pe=B.read(j)||[],Q=[],U=[],Z=this._modifiedTopPadding.read(j);Z>0&&U.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:Z,showInHiddenAreas:!0,suppressMouseDown:!0});const H=this._originalTopPadding.read(j);H>0&&Q.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:H,showInHiddenAreas:!0,suppressMouseDown:!0});const q=this._options.renderSideBySide.read(j),te=q||(re=this._editors.modified._getViewModel())===null||re===void 0?void 0:re.createLineBreaksComputer();if(te){const ve=this._editors.original.getModel();for(const Ce of pe)if(Ce.diff)for(let Se=Ce.originalRange.startLineNumber;Seve.getLineCount())return{orig:Q,mod:U};te?.addRequest(ve.getLineContent(Se),null,null)}}const G=(ie=te?.finalize())!==null&&ie!==void 0?ie:[];let $=0;const oe=this._editors.modified.getOption(67),ae=(J=this._diffModel.read(j))===null||J===void 0?void 0:J.movedTextToCompare.read(j),ue=(Y=(X=this._editors.original.getModel())===null||X===void 0?void 0:X.mightContainNonBasicASCII())!==null&&Y!==void 0?Y:!1,ce=(de=(le=this._editors.original.getModel())===null||le===void 0?void 0:le.mightContainRTL())!==null&&de!==void 0?de:!1,fe=t.RenderOptions.fromEditor(this._editors.modified);for(const ve of pe)if(ve.diff&&!q){if(!ve.originalRange.isEmpty){O.read(j);const Se=document.createElement("div");Se.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const _e=this._editors.original.getModel();if(ve.originalRange.endLineNumberExclusive-1>_e.getLineCount())return{orig:Q,mod:U};const Ie=new t.LineSource(ve.originalRange.mapToLineArray(ye=>_e.tokenization.getLineTokens(ye)),ve.originalRange.mapToLineArray(ye=>G[$++]),ue,ce),Ne=[];for(const ye of ve.diff.innerChanges||[])Ne.push(new c.InlineDecoration(ye.originalRange.delta(-(ve.diff.original.startLineNumber-1)),a.diffDeleteDecoration.className,0));const Oe=(0,t.renderLines)(Ie,fe,Ne,Se),xe=document.createElement("div");if(xe.className="inline-deleted-margin-view-zone",(0,b.applyFontInfo)(xe,fe.fontInfo),this._options.renderIndicators.read(j))for(let ye=0;ye(0,v.assertIsDefined)(We),xe,this._editors.modified,ve.diff,this._diffEditorWidget,Oe.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ye=0;ye1&&Q.push({afterLineNumber:ve.originalRange.startLineNumber+ye,domNode:V(),heightInPx:(Me-1)*oe,showInHiddenAreas:!0,suppressMouseDown:!0})}U.push({afterLineNumber:ve.modifiedRange.startLineNumber-1,domNode:Se,heightInPx:Oe.heightInLines*oe,minWidthInPx:Oe.minWidthInPx,marginDomNode:xe,setZoneId(ye){We=ye},showInHiddenAreas:!0,suppressMouseDown:!0})}const Ce=document.createElement("div");Ce.className="gutter-delete",Q.push({afterLineNumber:ve.originalRange.endLineNumberExclusive-1,domNode:V(),heightInPx:ve.modifiedHeightInPx,marginDomNode:Ce,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const Ce=ve.modifiedHeightInPx-ve.originalHeightInPx;if(Ce>0){if(ae?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(ve.originalRange.endLineNumberExclusive-1))continue;Q.push({afterLineNumber:ve.originalRange.endLineNumberExclusive-1,domNode:V(),heightInPx:Ce,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let Se=function(){const Ie=document.createElement("div");return Ie.className="arrow-revert-change "+w.ThemeIcon.asClassName(D.Codicon.arrowRight),x.add((0,L.addDisposableListener)(Ie,"mousedown",Ne=>Ne.stopPropagation())),x.add((0,L.addDisposableListener)(Ie,"click",Ne=>{Ne.stopPropagation(),I.revert(ve.diff)})),(0,L.$)("div",{},Ie)};if(ae?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(ve.modifiedRange.endLineNumberExclusive-1))continue;let _e;ve.diff&&ve.diff.modified.isEmpty&&this._options.shouldRenderRevertArrows.read(j)&&(_e=Se()),U.push({afterLineNumber:ve.modifiedRange.endLineNumberExclusive-1,domNode:V(),heightInPx:-Ce,marginDomNode:_e,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const ve of(ge=W.read(j))!==null&&ge!==void 0?ge:[]){if(!ae?.lineRangeMapping.original.intersect(ve.originalRange)||!ae?.lineRangeMapping.modified.intersect(ve.modifiedRange))continue;const Ce=ve.modifiedHeightInPx-ve.originalHeightInPx;Ce>0?Q.push({afterLineNumber:ve.originalRange.endLineNumberExclusive-1,domNode:V(),heightInPx:Ce,showInHiddenAreas:!0,suppressMouseDown:!0}):U.push({afterLineNumber:ve.modifiedRange.endLineNumberExclusive-1,domNode:V(),heightInPx:-Ce,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:Q,mod:U}});let K=!1;this._register(this._editors.original.onDidScrollChange(j=>{j.scrollLeftChanged&&!K&&(K=!0,this._editors.modified.setScrollLeft(j.scrollLeft),K=!1)})),this._register(this._editors.modified.onDidScrollChange(j=>{j.scrollLeftChanged&&!K&&(K=!0,this._editors.original.setScrollLeft(j.scrollLeft),K=!1)})),this._originalScrollTop=(0,p.observableFromEvent)(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,p.observableFromEvent)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register((0,p.autorun)(j=>{const x=this._originalScrollTop.read(j)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(j))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(j));x!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(x,1)})),this._register((0,p.autorun)(j=>{const x=this._modifiedScrollTop.read(j)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(j))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(j));x!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(x,1)})),this._register((0,p.autorun)(j=>{var x;const re=(x=this._diffModel.read(j))===null||x===void 0?void 0:x.movedTextToCompare.read(j);let ie=0;if(re){const J=this._editors.original.getTopForLineNumber(re.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();ie=this._editors.modified.getTopForLineNumber(re.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-J}ie>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(ie,void 0)):ie<0?(this._modifiedTopPadding.set(-ie,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-ie,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+ie,void 0,!0)}))}};e.DiffEditorViewZones=l,e.DiffEditorViewZones=l=De([he(8,d.IClipboardService),he(9,s.IContextMenuService)],l);function r(u,f,C,_,E,I){const T=new k.ArrayQueue(h(u,_)),A=new k.ArrayQueue(h(f,E)),R=u.getOption(67),M=f.getOption(67),N=[];let P=0,F=0;function O(B,W){for(;;){let V=T.peek(),z=A.peek();if(V&&V.lineNumber>=B&&(V=void 0),z&&z.lineNumber>=W&&(z=void 0),!V&&!z)break;const K=V?V.lineNumber-P:Number.MAX_VALUE,j=z?z.lineNumber-F:Number.MAX_VALUE;Kj?(A.dequeue(),V={lineNumber:z.lineNumber-F+P,heightInPx:0}):(T.dequeue(),A.dequeue()),N.push({originalRange:g.LineRange.ofLength(V.lineNumber,1),modifiedRange:g.LineRange.ofLength(z.lineNumber,1),originalHeightInPx:R+V.heightInPx,modifiedHeightInPx:M+z.heightInPx,diff:void 0})}}for(const B of C){let j=function(x,re){var ie,J,X,Y;if(xQ.lineNumberQ+U.heightInPx,0))!==null&&J!==void 0?J:0,pe=(Y=(X=A.takeWhile(Q=>Q.lineNumberQ+U.heightInPx,0))!==null&&Y!==void 0?Y:0;N.push({originalRange:le,modifiedRange:de,originalHeightInPx:le.length*R+ge,modifiedHeightInPx:de.length*M+pe,diff:B.lineRangeMapping}),K=x,z=re};const W=B.lineRangeMapping;O(W.original.startLineNumber,W.modified.startLineNumber);let V=!0,z=W.modified.startLineNumber,K=W.original.startLineNumber;if(I)for(const x of W.innerChanges||[]){x.originalRange.startColumn>1&&x.modifiedRange.startColumn>1&&j(x.originalRange.startLineNumber,x.modifiedRange.startLineNumber);const re=u.getModel(),ie=x.originalRange.endLineNumber<=re.getLineCount()?re.getLineMaxColumn(x.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;x.originalRange.endColumn1&&_.push({lineNumber:R,heightInPx:T*(M-1)})}for(const R of u.getWhitespaces()){if(f.has(R.id))continue;const M=R.afterLineNumber===0?0:I.convertViewPositionToModelPosition(new m.Position(R.afterLineNumber,1)).lineNumber;C.push({lineNumber:M,heightInPx:R.height})}return(0,o.joinCombine)(C,_,R=>R.lineNumber,(R,M)=>({lineNumber:R.lineNumber,heightInPx:R.heightInPx+M.heightInPx}))}}),define(ne[896],se([1,0,7,2,17,38,182,81,43,194,26,199,114,346,47,54,33]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultModelSHA1Computer=e.ModelService=void 0;function c(u){return u.toString()}class d{constructor(f,C,_){this.model=f,this._modelEventListeners=new k.DisposableStore,this.model=f,this._modelEventListeners.add(f.onWillDispose(()=>C(f))),this._modelEventListeners.add(f.onDidChangeLanguage(E=>_(f,E)))}dispose(){this._modelEventListeners.dispose()}}const s=y.isLinux||y.isMacintosh?1:2;class l{constructor(f,C,_,E,I,T,A,R){this.uri=f,this.initialUndoRedoSnapshot=C,this.time=_,this.sharesUndoRedoStack=E,this.heapSize=I,this.sha1=T,this.versionId=A,this.alternativeVersionId=R}}let r=m=class extends k.Disposable{constructor(f,C,_,E,I){super(),this._configurationService=f,this._resourcePropertiesService=C,this._undoRedoService=_,this._languageService=E,this._languageConfigurationService=I,this._onModelAdded=this._register(new L.Emitter),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new L.Emitter),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new L.Emitter),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(T=>this._updateModelOptions(T))),this._updateModelOptions(void 0)}static _readModelOptions(f,C){var _;let E=S.EDITOR_MODEL_DEFAULTS.tabSize;if(f.editor&&typeof f.editor.tabSize<"u"){const O=parseInt(f.editor.tabSize,10);isNaN(O)||(E=O),E<1&&(E=1)}let I="tabSize";if(f.editor&&typeof f.editor.indentSize<"u"&&f.editor.indentSize!=="tabSize"){const O=parseInt(f.editor.indentSize,10);isNaN(O)||(I=Math.max(O,1))}let T=S.EDITOR_MODEL_DEFAULTS.insertSpaces;f.editor&&typeof f.editor.insertSpaces<"u"&&(T=f.editor.insertSpaces==="false"?!1:!!f.editor.insertSpaces);let A=s;const R=f.eol;R===`\r +`?A=2:R===` +`&&(A=1);let M=S.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;f.editor&&typeof f.editor.trimAutoWhitespace<"u"&&(M=f.editor.trimAutoWhitespace==="false"?!1:!!f.editor.trimAutoWhitespace);let N=S.EDITOR_MODEL_DEFAULTS.detectIndentation;f.editor&&typeof f.editor.detectIndentation<"u"&&(N=f.editor.detectIndentation==="false"?!1:!!f.editor.detectIndentation);let P=S.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;f.editor&&typeof f.editor.largeFileOptimizations<"u"&&(P=f.editor.largeFileOptimizations==="false"?!1:!!f.editor.largeFileOptimizations);let F=S.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;return!((_=f.editor)===null||_===void 0)&&_.bracketPairColorization&&typeof f.editor.bracketPairColorization=="object"&&(F={enabled:!!f.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!f.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:C,tabSize:E,indentSize:I,insertSpaces:T,detectIndentation:N,defaultEOL:A,trimAutoWhitespace:M,largeFileOptimizations:P,bracketPairColorizationOptions:F}}_getEOL(f,C){if(f)return this._resourcePropertiesService.getEOL(f,C);const _=this._configurationService.getValue("files.eol",{overrideIdentifier:C});return _&&typeof _=="string"&&_!=="auto"?_:y.OS===3||y.OS===2?` +`:`\r +`}_shouldRestoreUndoStack(){const f=this._configurationService.getValue("files.restoreUndoStack");return typeof f=="boolean"?f:!0}getCreationOptions(f,C,_){const E=typeof f=="string"?f:f.languageId;let I=this._modelCreationOptionsByLanguageAndResource[E+C];if(!I){const T=this._configurationService.getValue("editor",{overrideIdentifier:E,resource:C}),A=this._getEOL(C,E);I=m._readModelOptions({editor:T,eol:A},_),this._modelCreationOptionsByLanguageAndResource[E+C]=I}return I}_updateModelOptions(f){const C=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const _=Object.keys(this._models);for(let E=0,I=_.length;Ef){const C=[];for(this._disposedModels.forEach(_=>{_.sharesUndoRedoStack||C.push(_)}),C.sort((_,E)=>_.time-E.time);C.length>0&&this._disposedModelsHeapSize>f;){const _=C.shift();this._removeDisposedModel(_.uri),_.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(_.initialUndoRedoSnapshot)}}}_createModelData(f,C,_,E){const I=this.getCreationOptions(C,_,E),T=new D.TextModel(f,C,I,_,this._undoRedoService,this._languageService,this._languageConfigurationService);if(_&&this._disposedModels.has(c(_))){const M=this._removeDisposedModel(_),N=this._undoRedoService.getElements(_),P=this._getSHA1Computer(),F=P.canComputeSHA1(T)?P.computeSHA1(T)===M.sha1:!1;if(F||M.sharesUndoRedoStack){for(const O of N.past)(0,i.isEditStackElement)(O)&&O.matchesResource(_)&&O.setModel(T);for(const O of N.future)(0,i.isEditStackElement)(O)&&O.matchesResource(_)&&O.setModel(T);this._undoRedoService.setElementsValidFlag(_,!0,O=>(0,i.isEditStackElement)(O)&&O.matchesResource(_)),F&&(T._overwriteVersionId(M.versionId),T._overwriteAlternativeVersionId(M.alternativeVersionId),T._overwriteInitialUndoRedoSnapshot(M.initialUndoRedoSnapshot))}else M.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(M.initialUndoRedoSnapshot)}const A=c(T.uri);if(this._models[A])throw new Error("ModelService: Cannot add model because it already exists!");const R=new d(T,M=>this._onWillDispose(M),(M,N)=>this._onDidChangeLanguage(M,N));return this._models[A]=R,R}createModel(f,C,_,E=!1){let I;return C?I=this._createModelData(f,C,_,E):I=this._createModelData(f,p.PLAINTEXT_LANGUAGE_ID,_,E),this._onModelAdded.fire(I.model),I.model}getModels(){const f=[],C=Object.keys(this._models);for(let _=0,E=C.length;_0||M.future.length>0){for(const N of M.past)(0,i.isEditStackElement)(N)&&N.matchesResource(f.uri)&&(I=!0,T+=N.heapSize(f.uri),N.setModel(f.uri));for(const N of M.future)(0,i.isEditStackElement)(N)&&N.matchesResource(f.uri)&&(I=!0,T+=N.heapSize(f.uri),N.setModel(f.uri))}}const A=m.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,R=this._getSHA1Computer();if(I)if(!E&&(T>A||!R.canComputeSHA1(f))){const M=_.model.getInitialUndoRedoSnapshot();M!==null&&this._undoRedoService.restoreSnapshot(M)}else this._ensureDisposedModelsHeapSize(A-T),this._undoRedoService.setElementsValidFlag(f.uri,!1,M=>(0,i.isEditStackElement)(M)&&M.matchesResource(f.uri)),this._insertDisposedModel(new l(f.uri,_.model.getInitialUndoRedoSnapshot(),Date.now(),E,T,R.computeSHA1(f),f.getVersionId(),f.getAlternativeVersionId()));else if(!E){const M=_.model.getInitialUndoRedoSnapshot();M!==null&&this._undoRedoService.restoreSnapshot(M)}delete this._models[C],_.dispose(),delete this._modelCreationOptionsByLanguageAndResource[f.getLanguageId()+f.uri],this._onModelRemoved.fire(f)}_onDidChangeLanguage(f,C){const _=C.oldLanguage,E=f.getLanguageId(),I=this.getCreationOptions(_,f.uri,f.isForSimpleWidget),T=this.getCreationOptions(E,f.uri,f.isForSimpleWidget);m._setModelOptionsForModel(f,T,I),this._onModelModeChanged.fire({model:f,oldLanguageId:_})}_getSHA1Computer(){return new h}};e.ModelService=r,r.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024,e.ModelService=r=m=De([he(0,b.IConfigurationService),he(1,v.ITextResourcePropertiesService),he(2,a.IUndoRedoService),he(3,w.ILanguageService),he(4,g.ILanguageConfigurationService)],r);class h{canComputeSHA1(f){return f.getValueLength()<=h.MAX_MODEL_SIZE}computeSHA1(f){const C=new n.StringSHA1,_=f.createSnapshot();let E;for(;E=_.read();)C.update(E);return C.digest()}}e.DefaultModelSHA1Computer=h,h.MAX_MODEL_SIZE=10*1024*1024}),define(ne[897],se([1,0,13,9,5,218,38,117,220,556,299,86]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModelLinesFromModelAsIs=e.ViewModelLinesFromProjectedModel=void 0;class n{constructor(s,l,r,h,u,f,C,_,E,I){this._editorId=s,this.model=l,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=r,this._monospaceLineBreaksComputerFactory=h,this.fontInfo=u,this.tabSize=f,this.wrappingStrategy=C,this.wrappingColumn=_,this.wrappingIndent=E,this.wordBreak=I,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new g(this)}_constructLines(s,l){this.modelLineProjections=[],s&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const r=this.model.getLinesContent(),h=this.model.getInjectedTextDecorations(this._editorId),u=r.length,f=this.createLineBreaksComputer(),C=new L.ArrayQueue(p.LineInjectedText.fromDecorations(h));for(let N=0;NF.lineNumber===N+1);f.addRequest(r[N],P,l?l[N]:null)}const _=f.finalize(),E=[],I=this.hiddenAreasDecorationIds.map(N=>this.model.getDecorationRange(N)).sort(y.Range.compareRangesUsingStarts);let T=1,A=0,R=-1,M=R+1=T&&P<=A,O=(0,v.createModelLineProjection)(_[N],!F);E[N]=O.getViewLineCount(),this.modelLineProjections[N]=O}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new b.ConstantTimePrefixSumComputer(E)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(s=>this.model.getDecorationRange(s))}setHiddenAreas(s){const l=s.map(A=>this.model.validateRange(A)),r=i(l),h=this.hiddenAreasDecorationIds.map(A=>this.model.getDecorationRange(A)).sort(y.Range.compareRangesUsingStarts);if(r.length===h.length){let A=!1;for(let R=0;R({range:A,options:S.ModelDecorationOptions.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,u);const f=r;let C=1,_=0,E=-1,I=E+1=C&&R<=_?this.modelLineProjections[A].isVisible()&&(this.modelLineProjections[A]=this.modelLineProjections[A].setVisible(!1),M=!0):(T=!0,this.modelLineProjections[A].isVisible()||(this.modelLineProjections[A]=this.modelLineProjections[A].setVisible(!0),M=!0)),M){const N=this.modelLineProjections[A].getViewLineCount();this.projectedModelLineLineCounts.setValue(A,N)}}return T||this.setHiddenAreas([]),!0}modelPositionIsVisible(s,l){return s<1||s>this.modelLineProjections.length?!1:this.modelLineProjections[s-1].isVisible()}getModelLineViewLineCount(s){return s<1||s>this.modelLineProjections.length?1:this.modelLineProjections[s-1].getViewLineCount()}setTabSize(s){return this.tabSize===s?!1:(this.tabSize=s,this._constructLines(!1,null),!0)}setWrappingSettings(s,l,r,h,u){const f=this.fontInfo.equals(s),C=this.wrappingStrategy===l,_=this.wrappingColumn===r,E=this.wrappingIndent===h,I=this.wordBreak===u;if(f&&C&&_&&E&&I)return!1;const T=f&&C&&!_&&E&&I;this.fontInfo=s,this.wrappingStrategy=l,this.wrappingColumn=r,this.wrappingIndent=h,this.wordBreak=u;let A=null;if(T){A=[];for(let R=0,M=this.modelLineProjections.length;R2&&!this.modelLineProjections[l-2].isVisible(),f=l===1?1:this.projectedModelLineLineCounts.getPrefixSum(l-1)+1;let C=0;const _=[],E=[];for(let I=0,T=h.length;I_?(I=this.projectedModelLineLineCounts.getPrefixSum(l-1)+1,T=I+_-1,M=T+1,N=M+(u-_)-1,E=!0):u<_?(I=this.projectedModelLineLineCounts.getPrefixSum(l-1)+1,T=I+u-1,A=T+1,R=A+(_-u)-1,E=!0):(I=this.projectedModelLineLineCounts.getPrefixSum(l-1)+1,T=I+_-1),this.projectedModelLineLineCounts.setValue(h,_);const P=I<=T?new w.ViewLinesChangedEvent(I,T-I+1):null,F=A<=R?new w.ViewLinesInsertedEvent(A,R):null,O=M<=N?new w.ViewLinesDeletedEvent(M,N):null;return[E,P,F,O]}acceptVersionId(s){this._validModelVersionId=s,this.modelLineProjections.length===1&&!this.modelLineProjections[0].isVisible()&&this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(s){if(s<1)return 1;const l=this.getViewLineCount();return s>l?l:s|0}getActiveIndentGuide(s,l,r){s=this._toValidViewLineNumber(s),l=this._toValidViewLineNumber(l),r=this._toValidViewLineNumber(r);const h=this.convertViewPositionToModelPosition(s,this.getViewLineMinColumn(s)),u=this.convertViewPositionToModelPosition(l,this.getViewLineMinColumn(l)),f=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),C=this.model.guides.getActiveIndentGuide(h.lineNumber,u.lineNumber,f.lineNumber),_=this.convertModelPositionToViewPosition(C.startLineNumber,1),E=this.convertModelPositionToViewPosition(C.endLineNumber,this.model.getLineMaxColumn(C.endLineNumber));return{startLineNumber:_.lineNumber,endLineNumber:E.lineNumber,indent:C.indent}}getViewLineInfo(s){s=this._toValidViewLineNumber(s);const l=this.projectedModelLineLineCounts.getIndexOf(s-1),r=l.index,h=l.remainder;return new t(r+1,h)}getMinColumnOfViewLine(s){return this.modelLineProjections[s.modelLineNumber-1].getViewLineMinColumn(this.model,s.modelLineNumber,s.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(s){return this.modelLineProjections[s.modelLineNumber-1].getViewLineMaxColumn(this.model,s.modelLineNumber,s.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(s){const l=this.modelLineProjections[s.modelLineNumber-1],r=l.getViewLineMinColumn(this.model,s.modelLineNumber,s.modelLineWrappedLineIdx),h=l.getModelColumnOfViewPosition(s.modelLineWrappedLineIdx,r);return new k.Position(s.modelLineNumber,h)}getModelEndPositionOfViewLine(s){const l=this.modelLineProjections[s.modelLineNumber-1],r=l.getViewLineMaxColumn(this.model,s.modelLineNumber,s.modelLineWrappedLineIdx),h=l.getModelColumnOfViewPosition(s.modelLineWrappedLineIdx,r);return new k.Position(s.modelLineNumber,h)}getViewLineInfosGroupedByModelRanges(s,l){const r=this.getViewLineInfo(s),h=this.getViewLineInfo(l),u=new Array;let f=this.getModelStartPositionOfViewLine(r),C=new Array;for(let _=r.modelLineNumber;_<=h.modelLineNumber;_++){const E=this.modelLineProjections[_-1];if(E.isVisible()){const I=_===r.modelLineNumber?r.modelLineWrappedLineIdx:0,T=_===h.modelLineNumber?h.modelLineWrappedLineIdx+1:E.getViewLineCount();for(let A=I;A{if(R.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[I.modelLineNumber-1].getViewPositionOfModelPosition(0,R.forWrappedLinesAfterColumn).lineNumber>=I.modelLineWrappedLineIdx||R.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[I.modelLineNumber-1].getViewPositionOfModelPosition(0,R.forWrappedLinesBeforeOrAtColumn).lineNumberI.modelLineWrappedLineIdx)return}const N=this.convertModelPositionToViewPosition(I.modelLineNumber,R.horizontalLine.endColumn),P=this.modelLineProjections[I.modelLineNumber-1].getViewPositionOfModelPosition(0,R.horizontalLine.endColumn);return P.lineNumber===I.modelLineWrappedLineIdx?new D.IndentGuide(R.visibleColumn,M,R.className,new D.IndentGuideHorizontalLine(R.horizontalLine.top,N.column),-1,-1):P.lineNumber!!R))}}return f}getViewLinesIndentGuides(s,l){s=this._toValidViewLineNumber(s),l=this._toValidViewLineNumber(l);const r=this.convertViewPositionToModelPosition(s,this.getViewLineMinColumn(s)),h=this.convertViewPositionToModelPosition(l,this.getViewLineMaxColumn(l));let u=[];const f=[],C=[],_=r.lineNumber-1,E=h.lineNumber-1;let I=null;for(let M=_;M<=E;M++){const N=this.modelLineProjections[M];if(N.isVisible()){const P=N.getViewLineNumberOfModelPosition(0,M===_?r.column:1),F=N.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(M+1)),O=F-P+1;let B=0;O>1&&N.getViewLineMinColumn(this.model,M+1,F)===1&&(B=P===0?1:2),f.push(O),C.push(B),I===null&&(I=new k.Position(M+1,0))}else I!==null&&(u=u.concat(this.model.guides.getLinesIndentGuides(I.lineNumber,M)),I=null)}I!==null&&(u=u.concat(this.model.guides.getLinesIndentGuides(I.lineNumber,h.lineNumber)),I=null);const T=l-s+1,A=new Array(T);let R=0;for(let M=0,N=u.length;Ml&&(M=!0,R=l-u+1),T.getViewLinesData(this.model,E+1,A,R,u-s,r,_),u+=R,M)break}return _}validateViewPosition(s,l,r){s=this._toValidViewLineNumber(s);const h=this.projectedModelLineLineCounts.getIndexOf(s-1),u=h.index,f=h.remainder,C=this.modelLineProjections[u],_=C.getViewLineMinColumn(this.model,u+1,f),E=C.getViewLineMaxColumn(this.model,u+1,f);l<_&&(l=_),l>E&&(l=E);const I=C.getModelColumnOfViewPosition(f,l);return this.model.validatePosition(new k.Position(u+1,I)).equals(r)?new k.Position(s,l):this.convertModelPositionToViewPosition(r.lineNumber,r.column)}validateViewRange(s,l){const r=this.validateViewPosition(s.startLineNumber,s.startColumn,l.getStartPosition()),h=this.validateViewPosition(s.endLineNumber,s.endColumn,l.getEndPosition());return new y.Range(r.lineNumber,r.column,h.lineNumber,h.column)}convertViewPositionToModelPosition(s,l){const r=this.getViewLineInfo(s),h=this.modelLineProjections[r.modelLineNumber-1].getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,l);return this.model.validatePosition(new k.Position(r.modelLineNumber,h))}convertViewRangeToModelRange(s){const l=this.convertViewPositionToModelPosition(s.startLineNumber,s.startColumn),r=this.convertViewPositionToModelPosition(s.endLineNumber,s.endColumn);return new y.Range(l.lineNumber,l.column,r.lineNumber,r.column)}convertModelPositionToViewPosition(s,l,r=2,h=!1,u=!1){const f=this.model.validatePosition(new k.Position(s,l)),C=f.lineNumber,_=f.column;let E=C-1,I=!1;if(u)for(;E0&&!this.modelLineProjections[E].isVisible();)E--,I=!0;if(E===0&&!this.modelLineProjections[E].isVisible())return new k.Position(h?0:1,1);const T=1+this.projectedModelLineLineCounts.getPrefixSum(E);let A;return I?u?A=this.modelLineProjections[E].getViewPositionOfModelPosition(T,1,r):A=this.modelLineProjections[E].getViewPositionOfModelPosition(T,this.model.getLineMaxColumn(E+1),r):A=this.modelLineProjections[C-1].getViewPositionOfModelPosition(T,_,r),A}convertModelRangeToViewRange(s,l=0){if(s.isEmpty()){const r=this.convertModelPositionToViewPosition(s.startLineNumber,s.startColumn,l);return y.Range.fromPositions(r)}else{const r=this.convertModelPositionToViewPosition(s.startLineNumber,s.startColumn,1),h=this.convertModelPositionToViewPosition(s.endLineNumber,s.endColumn,0);return new y.Range(r.lineNumber,r.column,h.lineNumber,h.column)}}getViewLineNumberOfModelPosition(s,l){let r=s-1;if(this.modelLineProjections[r].isVisible()){const u=1+this.projectedModelLineLineCounts.getPrefixSum(r);return this.modelLineProjections[r].getViewLineNumberOfModelPosition(u,l)}for(;r>0&&!this.modelLineProjections[r].isVisible();)r--;if(r===0&&!this.modelLineProjections[r].isVisible())return 1;const h=1+this.projectedModelLineLineCounts.getPrefixSum(r);return this.modelLineProjections[r].getViewLineNumberOfModelPosition(h,this.model.getLineMaxColumn(r+1))}getDecorationsInRange(s,l,r,h,u){const f=this.convertViewPositionToModelPosition(s.startLineNumber,s.startColumn),C=this.convertViewPositionToModelPosition(s.endLineNumber,s.endColumn);if(C.lineNumber-f.lineNumber<=s.endLineNumber-s.startLineNumber)return this.model.getDecorationsInRange(new y.Range(f.lineNumber,1,C.lineNumber,C.column),l,r,h,u);let _=[];const E=f.lineNumber-1,I=C.lineNumber-1;let T=null;for(let N=E;N<=I;N++)if(this.modelLineProjections[N].isVisible())T===null&&(T=new k.Position(N+1,N===E?f.column:1));else if(T!==null){const F=this.model.getLineMaxColumn(N);_=_.concat(this.model.getDecorationsInRange(new y.Range(T.lineNumber,T.column,N,F),l,r,h)),T=null}T!==null&&(_=_.concat(this.model.getDecorationsInRange(new y.Range(T.lineNumber,T.column,C.lineNumber,C.column),l,r,h)),T=null),_.sort((N,P)=>{const F=y.Range.compareRangesUsingStarts(N.range,P.range);return F===0?N.idP.id?1:0:F});const A=[];let R=0,M=null;for(const N of _){const P=N.id;M!==P&&(M=P,A[R++]=N)}return A}getInjectedTextAt(s){const l=this.getViewLineInfo(s.lineNumber);return this.modelLineProjections[l.modelLineNumber-1].getInjectedTextAt(l.modelLineWrappedLineIdx,s.column)}normalizePosition(s,l){const r=this.getViewLineInfo(s.lineNumber);return this.modelLineProjections[r.modelLineNumber-1].normalizePosition(r.modelLineWrappedLineIdx,s,l)}getLineIndentColumn(s){const l=this.getViewLineInfo(s);return l.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(l.modelLineNumber):0}}e.ViewModelLinesFromProjectedModel=n;function i(d){if(d.length===0)return[];const s=d.slice();s.sort(y.Range.compareRangesUsingStarts);const l=[];let r=s[0].startLineNumber,h=s[0].endLineNumber;for(let u=1,f=s.length;uh+1?(l.push(new y.Range(r,1,h,1)),r=C.startLineNumber,h=C.endLineNumber):C.endLineNumber>h&&(h=C.endLineNumber)}return l.push(new y.Range(r,1,h,1)),l}class t{constructor(s,l){this.modelLineNumber=s,this.modelLineWrappedLineIdx=l}}class o{constructor(s,l){this.modelRange=s,this.viewLines=l}}class g{constructor(s){this._lines=s}convertViewPositionToModelPosition(s){return this._lines.convertViewPositionToModelPosition(s.lineNumber,s.column)}convertViewRangeToModelRange(s){return this._lines.convertViewRangeToModelRange(s)}validateViewPosition(s,l){return this._lines.validateViewPosition(s.lineNumber,s.column,l)}validateViewRange(s,l){return this._lines.validateViewRange(s,l)}convertModelPositionToViewPosition(s,l,r,h){return this._lines.convertModelPositionToViewPosition(s.lineNumber,s.column,l,r,h)}convertModelRangeToViewRange(s,l){return this._lines.convertModelRangeToViewRange(s,l)}modelPositionIsVisible(s){return this._lines.modelPositionIsVisible(s.lineNumber,s.column)}getModelLineViewLineCount(s){return this._lines.getModelLineViewLineCount(s)}getViewLineNumberOfModelPosition(s,l){return this._lines.getViewLineNumberOfModelPosition(s,l)}}class m{constructor(s){this.model=s}dispose(){}createCoordinatesConverter(){return new c(this)}getHiddenAreas(){return[]}setHiddenAreas(s){return!1}setTabSize(s){return!1}setWrappingSettings(s,l,r,h){return!1}createLineBreaksComputer(){const s=[];return{addRequest:(l,r,h)=>{s.push(null)},finalize:()=>s}}onModelFlushed(){}onModelLinesDeleted(s,l,r){return new w.ViewLinesDeletedEvent(l,r)}onModelLinesInserted(s,l,r,h){return new w.ViewLinesInsertedEvent(l,r)}onModelLineChanged(s,l,r){return[!1,new w.ViewLinesChangedEvent(l,1),null,null]}acceptVersionId(s){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(s,l,r){return{startLineNumber:s,endLineNumber:s,indent:0}}getViewLinesBracketGuides(s,l,r){return new Array(l-s+1).fill([])}getViewLinesIndentGuides(s,l){const r=l-s+1,h=new Array(r);for(let u=0;ul)}getModelLineViewLineCount(s){return 1}getViewLineNumberOfModelPosition(s,l){return s}}}),define(ne[898],se([1,0,13,15,39,2,17,11,36,801,76,9,5,117,30,81,343,220,560,345,86,342,221,897,555]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModel=void 0;const f=!0;class C extends D.Disposable{constructor(N,P,F,O,B,W,V,z,K){if(super(),this.languageConfigurationService=V,this._themeService=z,this._attachedView=K,this.hiddenAreasModel=new I,this.previousHiddenAreas=[],this._editorId=N,this._configuration=P,this.model=F,this._eventDispatcher=new r.ViewModelEventDispatcher,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new b.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new k.RunOnceScheduler(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=_.create(this.model),this.glyphLanes=new u.GlyphMarginLanesModel(0),f&&this.model.isTooLargeForTokenization())this._lines=new h.ViewModelLinesFromModelAsIs(this.model);else{const j=this._configuration.options,x=j.get(50),re=j.get(138),ie=j.get(145),J=j.get(137),X=j.get(129);this._lines=new h.ViewModelLinesFromProjectedModel(this._editorId,this.model,O,B,x,this.model.getOptions().tabSize,re,ie.wrappingColumn,J,X)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new v.CursorsController(F,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new c.ViewLayout(this._configuration,this.getLineCount(),W)),this._register(this.viewLayout.onDidScroll(j=>{j.scrollTopChanged&&this._handleVisibleLinesChanged(),j.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new m.ViewScrollChangedEvent(j)),this._eventDispatcher.emitOutgoingEvent(new r.ScrollChangedEvent(j.oldScrollWidth,j.oldScrollLeft,j.oldScrollHeight,j.oldScrollTop,j.scrollWidth,j.scrollLeft,j.scrollHeight,j.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(j=>{this._eventDispatcher.emitOutgoingEvent(j)})),this._decorations=new l.ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(j=>{try{const x=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(x,j)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(d.MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new m.ViewTokensColorsChangedEvent)})),this._register(this._themeService.onDidColorThemeChange(j=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new m.ViewThemeChangedEvent(j))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(N){this._eventDispatcher.addViewEventHandler(N)}removeViewEventHandler(N){this._eventDispatcher.removeViewEventHandler(N)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const N=this.viewLayout.getLinesViewportData(),P=new n.Range(N.startLineNumber,this.getLineMinColumn(N.startLineNumber),N.endLineNumber,this.getLineMaxColumn(N.endLineNumber));return this._toModelVisibleRanges(P)}visibleLinesStabilized(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!0)}_handleVisibleLinesChanged(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!1)}setHasFocus(N){this._hasFocus=N,this._cursor.setHasFocus(N),this._eventDispatcher.emitSingleViewEvent(new m.ViewFocusChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new r.FocusChangedEvent(!N,N))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new m.ViewCompositionStartEvent)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new m.ViewCompositionEndEvent)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const N=new a.Position(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),P=this.coordinatesConverter.convertViewPositionToModelPosition(N);return new R(P,this._viewportStart.startLineDelta)}return new R(null,0)}_onConfigurationChanged(N,P){const F=this._captureStableViewport(),O=this._configuration.options,B=O.get(50),W=O.get(138),V=O.get(145),z=O.get(137),K=O.get(129);this._lines.setWrappingSettings(B,W,V.wrappingColumn,z,K)&&(N.emitViewEvent(new m.ViewFlushedEvent),N.emitViewEvent(new m.ViewLineMappingChangedEvent),N.emitViewEvent(new m.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(N),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),P.hasChanged(91)&&(this._decorations.reset(),N.emitViewEvent(new m.ViewDecorationsChangedEvent(null))),P.hasChanged(98)&&(this._decorations.reset(),N.emitViewEvent(new m.ViewDecorationsChangedEvent(null))),N.emitViewEvent(new m.ViewConfigurationChangedEvent(P)),this.viewLayout.onConfigurationChanged(P),F.recoverViewportStart(this.coordinatesConverter,this.viewLayout),b.CursorConfiguration.shouldRecreate(P)&&(this.cursorConfig=new b.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(N=>{try{const F=this._eventDispatcher.beginEmitViewEvents();let O=!1,B=!1;const W=N instanceof i.InternalModelContentChangeEvent?N.rawContentChangedEvent.changes:N.changes,V=N instanceof i.InternalModelContentChangeEvent?N.rawContentChangedEvent.versionId:null,z=this._lines.createLineBreaksComputer();for(const x of W)switch(x.changeType){case 4:{for(let re=0;re!X.ownerId||X.ownerId===this._editorId)),z.addRequest(ie,J,null)}break}case 2:{let re=null;x.injectedText&&(re=x.injectedText.filter(ie=>!ie.ownerId||ie.ownerId===this._editorId)),z.addRequest(x.detail,re,null);break}}const K=z.finalize(),j=new L.ArrayQueue(K);for(const x of W)switch(x.changeType){case 1:{this._lines.onModelFlushed(),F.emitViewEvent(new m.ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),O=!0;break}case 3:{const re=this._lines.onModelLinesDeleted(V,x.fromLineNumber,x.toLineNumber);re!==null&&(F.emitViewEvent(re),this.viewLayout.onLinesDeleted(re.fromLineNumber,re.toLineNumber)),O=!0;break}case 4:{const re=j.takeCount(x.detail.length),ie=this._lines.onModelLinesInserted(V,x.fromLineNumber,x.toLineNumber,re);ie!==null&&(F.emitViewEvent(ie),this.viewLayout.onLinesInserted(ie.fromLineNumber,ie.toLineNumber)),O=!0;break}case 2:{const re=j.dequeue(),[ie,J,X,Y]=this._lines.onModelLineChanged(V,x.lineNumber,re);B=ie,J&&F.emitViewEvent(J),X&&(F.emitViewEvent(X),this.viewLayout.onLinesInserted(X.fromLineNumber,X.toLineNumber)),Y&&(F.emitViewEvent(Y),this.viewLayout.onLinesDeleted(Y.fromLineNumber,Y.toLineNumber));break}case 5:break}V!==null&&this._lines.acceptVersionId(V),this.viewLayout.onHeightMaybeChanged(),!O&&B&&(F.emitViewEvent(new m.ViewLineMappingChangedEvent),F.emitViewEvent(new m.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(F),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const P=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&P){const F=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(F){const O=this.coordinatesConverter.convertModelPositionToViewPosition(F.getStartPosition()),B=this.viewLayout.getVerticalOffsetForLineNumber(O.lineNumber);this.viewLayout.setScrollPosition({scrollTop:B+this._viewportStart.startLineDelta},1)}}try{const F=this._eventDispatcher.beginEmitViewEvents();N instanceof i.InternalModelContentChangeEvent&&F.emitOutgoingEvent(new r.ModelContentChangedEvent(N.contentChangedEvent)),this._cursor.onModelContentChanged(F,N)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(N=>{const P=[];for(let F=0,O=N.ranges.length;F{this._eventDispatcher.emitSingleViewEvent(new m.ViewLanguageConfigurationEvent),this.cursorConfig=new b.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new r.ModelLanguageConfigurationChangedEvent(N))})),this._register(this.model.onDidChangeLanguage(N=>{this.cursorConfig=new b.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new r.ModelLanguageChangedEvent(N))})),this._register(this.model.onDidChangeOptions(N=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const P=this._eventDispatcher.beginEmitViewEvents();P.emitViewEvent(new m.ViewFlushedEvent),P.emitViewEvent(new m.ViewLineMappingChangedEvent),P.emitViewEvent(new m.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(P),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new b.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new r.ModelOptionsChangedEvent(N))})),this._register(this.model.onDidChangeDecorations(N=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new m.ViewDecorationsChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new r.ModelDecorationsChangedEvent(N))}))}setHiddenAreas(N,P){var F;this.hiddenAreasModel.setHiddenAreas(P,N);const O=this.hiddenAreasModel.getMergedRanges();if(O===this.previousHiddenAreas)return;this.previousHiddenAreas=O;const B=this._captureStableViewport();let W=!1;try{const V=this._eventDispatcher.beginEmitViewEvents();W=this._lines.setHiddenAreas(O),W&&(V.emitViewEvent(new m.ViewFlushedEvent),V.emitViewEvent(new m.ViewLineMappingChangedEvent),V.emitViewEvent(new m.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(V),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const z=(F=B.viewportStartModelPosition)===null||F===void 0?void 0:F.lineNumber;z&&O.some(j=>j.startLineNumber<=z&&z<=j.endLineNumber)||B.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),W&&this._eventDispatcher.emitOutgoingEvent(new r.HiddenAreasChangedEvent)}getVisibleRangesPlusViewportAboveBelow(){const N=this._configuration.options.get(144),P=this._configuration.options.get(67),F=Math.max(20,Math.round(N.height/P)),O=this.viewLayout.getLinesViewportData(),B=Math.max(1,O.completelyVisibleStartLineNumber-F),W=Math.min(this.getLineCount(),O.completelyVisibleEndLineNumber+F);return this._toModelVisibleRanges(new n.Range(B,this.getLineMinColumn(B),W,this.getLineMaxColumn(W)))}getVisibleRanges(){const N=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(N)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(N){const P=this.coordinatesConverter.convertViewRangeToModelRange(N),F=this._lines.getHiddenAreas();if(F.length===0)return[P];const O=[];let B=0,W=P.startLineNumber,V=P.startColumn;const z=P.endLineNumber,K=P.endColumn;for(let j=0,x=F.length;jz||(W"u")return this._reduceRestoreStateCompatibility(N);const P=this.model.validatePosition(N.firstPosition),F=this.coordinatesConverter.convertModelPositionToViewPosition(P),O=this.viewLayout.getVerticalOffsetForLineNumber(F.lineNumber)-N.firstPositionDeltaTop;return{scrollLeft:N.scrollLeft,scrollTop:O}}_reduceRestoreStateCompatibility(N){return{scrollLeft:N.scrollLeft,scrollTop:N.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(N,P,F){this._viewportStart.update(this,N)}getActiveIndentGuide(N,P,F){return this._lines.getActiveIndentGuide(N,P,F)}getLinesIndentGuides(N,P){return this._lines.getViewLinesIndentGuides(N,P)}getBracketGuidesInRangeByLine(N,P,F,O){return this._lines.getViewLinesBracketGuides(N,P,F,O)}getLineContent(N){return this._lines.getViewLineContent(N)}getLineLength(N){return this._lines.getViewLineLength(N)}getLineMinColumn(N){return this._lines.getViewLineMinColumn(N)}getLineMaxColumn(N){return this._lines.getViewLineMaxColumn(N)}getLineFirstNonWhitespaceColumn(N){const P=p.firstNonWhitespaceIndex(this.getLineContent(N));return P===-1?0:P+1}getLineLastNonWhitespaceColumn(N){const P=p.lastNonWhitespaceIndex(this.getLineContent(N));return P===-1?0:P+2}getMinimapDecorationsInRange(N){return this._decorations.getMinimapDecorationsInRange(N)}getDecorationsInViewport(N){return this._decorations.getDecorationsViewportData(N).decorations}getInjectedTextAt(N){return this._lines.getInjectedTextAt(N)}getViewportViewLineRenderingData(N,P){const O=this._decorations.getDecorationsViewportData(N).inlineDecorations[P-N.startLineNumber];return this._getViewLineRenderingData(P,O)}getViewLineRenderingData(N){const P=this._decorations.getInlineDecorationsOnLine(N);return this._getViewLineRenderingData(N,P)}_getViewLineRenderingData(N,P){const F=this.model.mightContainRTL(),O=this.model.mightContainNonBasicASCII(),B=this.getTabSize(),W=this._lines.getViewLineData(N);return W.inlineDecorations&&(P=[...P,...W.inlineDecorations.map(V=>V.toInlineDecoration(N))]),new s.ViewLineRenderingData(W.minColumn,W.maxColumn,W.content,W.continuesWithWrappedLine,F,O,W.tokens,P,B,W.startVisibleColumn)}getViewLineData(N){return this._lines.getViewLineData(N)}getMinimapLinesRenderingData(N,P,F){const O=this._lines.getViewLinesData(N,P,F);return new s.MinimapLinesRenderingData(this.getTabSize(),O)}getAllOverviewRulerDecorations(N){const P=this.model.getOverviewRulerDecorations(this._editorId,(0,w.filterValidationDecorations)(this._configuration.options)),F=new E;for(const O of P){const B=O.options,W=B.overviewRuler;if(!W)continue;const V=W.position;if(V===0)continue;const z=W.getColor(N.value),K=this.coordinatesConverter.getViewLineNumberOfModelPosition(O.range.startLineNumber,O.range.startColumn),j=this.coordinatesConverter.getViewLineNumberOfModelPosition(O.range.endLineNumber,O.range.endColumn);F.accept(z,B.zIndex,K,j,V)}return F.asArray}_invalidateDecorationsColorCache(){const N=this.model.getOverviewRulerDecorations();for(const P of N){const F=P.options.overviewRuler;F?.invalidateCachedColor();const O=P.options.minimap;O?.invalidateCachedColor()}}getValueInRange(N,P){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueInRange(F,P)}getValueLengthInRange(N,P){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueLengthInRange(F,P)}modifyPosition(N,P){const F=this.coordinatesConverter.convertViewPositionToModelPosition(N),O=this.model.modifyPosition(F,P);return this.coordinatesConverter.convertModelPositionToViewPosition(O)}deduceModelPositionRelativeToViewPosition(N,P,F){const O=this.coordinatesConverter.convertViewPositionToModelPosition(N);this.model.getEOL().length===2&&(P<0?P-=F:P+=F);const W=this.model.getOffsetAt(O)+P;return this.model.getPositionAt(W)}getPlainTextToCopy(N,P,F){const O=F?`\r +`:this.model.getEOL();N=N.slice(0),N.sort(n.Range.compareRangesUsingStarts);let B=!1,W=!1;for(const z of N)z.isEmpty()?B=!0:W=!0;if(!W){if(!P)return"";const z=N.map(j=>j.startLineNumber);let K="";for(let j=0;j0&&z[j-1]===z[j]||(K+=this.model.getLineContent(z[j])+O);return K}if(B&&P){const z=[];let K=0;for(const j of N){const x=j.startLineNumber;j.isEmpty()?x!==K&&z.push(this.model.getLineContent(x)):z.push(this.model.getValueInRange(j,F?2:0)),K=x}return z.length===1?z[0]:z}const V=[];for(const z of N)z.isEmpty()||V.push(this.model.getValueInRange(z,F?2:0));return V.length===1?V[0]:V}getRichTextToCopy(N,P){const F=this.model.getLanguageId();if(F===o.PLAINTEXT_LANGUAGE_ID||N.length!==1)return null;let O=N[0];if(O.isEmpty()){if(!P)return null;const j=O.startLineNumber;O=new n.Range(j,this.model.getLineMinColumn(j),j,this.model.getLineMaxColumn(j))}const B=this._configuration.options.get(50),W=this._getColorMap(),z=/[:;\\\/<>]/.test(B.fontFamily)||B.fontFamily===w.EDITOR_FONT_DEFAULTS.fontFamily;let K;return z?K=w.EDITOR_FONT_DEFAULTS.fontFamily:(K=B.fontFamily,K=K.replace(/"/g,"'"),/[,']/.test(K)||/[+ ]/.test(K)&&(K=`'${K}'`),K=`${K}, ${w.EDITOR_FONT_DEFAULTS.fontFamily}`),{mode:F,html:`
    `+this._getHTMLToCopy(O,W)+"
    "}}_getHTMLToCopy(N,P){const F=N.startLineNumber,O=N.startColumn,B=N.endLineNumber,W=N.endColumn,V=this.getTabSize();let z="";for(let K=F;K<=B;K++){const j=this.model.tokenization.getLineTokens(K),x=j.getLineContent(),re=K===F?O-1:0,ie=K===B?W-1:x.length;x===""?z+="
    ":z+=(0,g.tokenizeLineToHTML)(x,j.inflate(),P,re,ie,V,S.isWindows)}return z}_getColorMap(){const N=t.TokenizationRegistry.getColorMap(),P=["#000000"];if(N)for(let F=1,O=N.length;Fthis._cursor.setStates(O,N,P,F))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(N){this._cursor.setCursorColumnSelectData(N)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(N){this._cursor.setPrevEditOperationType(N)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(N,P,F=0){this._withViewEventsCollector(O=>this._cursor.setSelections(O,N,P,F))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(N){this._withViewEventsCollector(P=>this._cursor.restoreState(P,N))}_executeCursorEdit(N){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new r.ReadOnlyEditAttemptEvent);return}this._withViewEventsCollector(N)}executeEdits(N,P,F){this._executeCursorEdit(O=>this._cursor.executeEdits(O,N,P,F))}startComposition(){this._executeCursorEdit(N=>this._cursor.startComposition(N))}endComposition(N){this._executeCursorEdit(P=>this._cursor.endComposition(P,N))}type(N,P){this._executeCursorEdit(F=>this._cursor.type(F,N,P))}compositionType(N,P,F,O,B){this._executeCursorEdit(W=>this._cursor.compositionType(W,N,P,F,O,B))}paste(N,P,F,O){this._executeCursorEdit(B=>this._cursor.paste(B,N,P,F,O))}cut(N){this._executeCursorEdit(P=>this._cursor.cut(P,N))}executeCommand(N,P){this._executeCursorEdit(F=>this._cursor.executeCommand(F,N,P))}executeCommands(N,P){this._executeCursorEdit(F=>this._cursor.executeCommands(F,N,P))}revealPrimaryCursor(N,P,F=!1){this._withViewEventsCollector(O=>this._cursor.revealPrimary(O,N,F,0,P,0))}revealTopMostCursor(N){const P=this._cursor.getTopMostViewPosition(),F=new n.Range(P.lineNumber,P.column,P.lineNumber,P.column);this._withViewEventsCollector(O=>O.emitViewEvent(new m.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealBottomMostCursor(N){const P=this._cursor.getBottomMostViewPosition(),F=new n.Range(P.lineNumber,P.column,P.lineNumber,P.column);this._withViewEventsCollector(O=>O.emitViewEvent(new m.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealRange(N,P,F,O,B){this._withViewEventsCollector(W=>W.emitViewEvent(new m.ViewRevealRangeRequestEvent(N,!1,F,null,O,P,B)))}changeWhitespace(N){this.viewLayout.changeWhitespace(N)&&(this._eventDispatcher.emitSingleViewEvent(new m.ViewZonesChangedEvent),this._eventDispatcher.emitOutgoingEvent(new r.ViewZonesChangedEvent))}_withViewEventsCollector(N){try{const P=this._eventDispatcher.beginEmitViewEvents();return N(P)}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(N,P){return this._lines.normalizePosition(N,P)}getLineIndentColumn(N){return this._lines.getLineIndentColumn(N)}}e.ViewModel=C;class _{static create(N){const P=N._setTrackedRange(null,new n.Range(1,1,1,1),1);return new _(N,1,!1,P,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(N,P,F,O,B){this._model=N,this._viewLineNumber=P,this._isValid=F,this._modelTrackedRange=O,this._startLineDelta=B}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(N,P){const F=N.coordinatesConverter.convertViewPositionToModelPosition(new a.Position(P,N.getLineMinColumn(P))),O=N.model._setTrackedRange(this._modelTrackedRange,new n.Range(F.lineNumber,F.column,F.lineNumber,F.column),1),B=N.viewLayout.getVerticalOffsetForLineNumber(P),W=N.viewLayout.getCurrentScrollTop();this._viewLineNumber=P,this._isValid=!0,this._modelTrackedRange=O,this._startLineDelta=W-B}invalidate(){this._isValid=!1}}class E{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(N,P,F,O,B){const W=this._asMap[N];if(W){const V=W.data,z=V[V.length-3],K=V[V.length-1];if(z===B&&K+1>=F){O>K&&(V[V.length-1]=O);return}V.push(B,F,O)}else{const V=new s.OverviewRulerDecorationsGroup(N,P,[B,F,O]);this._asMap[N]=V,this.asArray.push(V)}}}class I{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(N,P){const F=this.hiddenAreas.get(N);F&&A(F,P)||(this.hiddenAreas.set(N,P),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const N=Array.from(this.hiddenAreas.values()).reduce((P,F)=>T(P,F),[]);return A(this.ranges,N)?this.ranges:(this.ranges=N,this.ranges)}}function T(M,N){const P=[];let F=0,O=0;for(;F{this._onDidChangeConfiguration.fire(Oe);const xe=this._configuration.options;if(Oe.hasChanged(144)){const We=xe.get(144);this._onDidLayoutChange.fire(We)}})),this._contextKeyService=this._register(ae.createScoped(this._domElement)),this._notificationService=ce,this._codeEditorService=$,this._commandService=oe,this._themeService=ue,this._register(new ie(this,this._contextKeyService)),this._register(new J(this,this._contextKeyService,Ce)),this._instantiationService=G.createChild(new F.ServiceCollection([N.IContextKeyService,this._contextKeyService])),this._modelData=null,this._focusTracker=new X(H,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let Ie;Array.isArray(te.contributions)?Ie=te.contributions:Ie=b.EditorExtensionsRegistry.getEditorContributions(),this._contributions.initialize(this,Ie,this._instantiationService);for(const Oe of b.EditorExtensionsRegistry.getEditorActions()){if(this._actions.has(Oe.id)){(0,k.onUnexpectedError)(new Error(`Cannot have two actions with the same id ${Oe.id}`));continue}const xe=new h.InternalEditorAction(Oe.id,Oe.label,Oe.alias,Oe.metadata,(Se=Oe.precondition)!==null&&Se!==void 0?Se:void 0,We=>this._instantiationService.invokeFunction(ye=>Promise.resolve(Oe.runEditorCommand(ye,this,We))),this._contextKeyService);this._actions.set(xe.id,xe)}const Ne=()=>!this._configuration.options.get(91)&&this._configuration.options.get(36).enabled;this._register(new L.DragAndDropObserver(this._domElement,{onDragOver:Oe=>{if(!Ne())return;const xe=this.getTargetAtClientPoint(Oe.clientX,Oe.clientY);xe?.position&&this.showDropIndicatorAt(xe.position)},onDrop:async Oe=>{if(!Ne()||(this.removeDropIndicator(),!Oe.dataTransfer))return;const xe=this.getTargetAtClientPoint(Oe.clientX,Oe.clientY);xe?.position&&this._onDropIntoEditor.fire({position:xe.position,event:Oe})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(H){var q;(q=this._modelData)===null||q===void 0||q.view.writeScreenReaderContent(H)}_createConfiguration(H,q,te){return new w.EditorConfiguration(H,q,this._domElement,te)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return u.EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(H){return this._instantiationService.invokeFunction(H)}updateOptions(H){this._configuration.updateOptions(H||{})}getOptions(){return this._configuration.options}getOption(H){return this._configuration.options.get(H)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(H){return this._modelData?r.WordOperations.getWordAtPosition(this._modelData.model,this._configuration.options.get(130),H):null}getValue(H=null){if(!this._modelData)return"";const q=!!(H&&H.preserveBOM);let te=0;return H&&H.lineEnding&&H.lineEnding===` +`?te=1:H&&H.lineEnding&&H.lineEnding===`\r +`&&(te=2),this._modelData.model.getValue(te,q)}setValue(H){this._modelData&&this._modelData.model.setValue(H)}getModel(){return this._modelData?this._modelData.model:null}setModel(H=null){var q;const te=H;if(this._modelData===null&&te===null||this._modelData&&this._modelData.model===te)return;const G={oldModelUrl:((q=this._modelData)===null||q===void 0?void 0:q.model.uri)||null,newModelUrl:te?.uri||null};this._onWillChangeModel.fire(G);const $=this.hasTextFocus(),oe=this._detachModel();this._attachModel(te),$&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(G),this._postDetachModelCleanup(oe),this._contributionsDisposable=this._contributions.onAfterModelAttached()}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const H in this._decorationTypeSubtypes){const q=this._decorationTypeSubtypes[H];for(const te in q)this._removeDecorationType(H+"-"+te)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(H,q,te,G){const $=H.model.validatePosition({lineNumber:q,column:te}),oe=H.viewModel.coordinatesConverter.convertModelPositionToViewPosition($);return H.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(oe.lineNumber,G)}getTopForLineNumber(H,q=!1){return this._modelData?V._getVerticalOffsetForPosition(this._modelData,H,1,q):-1}getTopForPosition(H,q){return this._modelData?V._getVerticalOffsetForPosition(this._modelData,H,q,!1):-1}static _getVerticalOffsetForPosition(H,q,te,G=!1){const $=H.model.validatePosition({lineNumber:q,column:te}),oe=H.viewModel.coordinatesConverter.convertModelPositionToViewPosition($);return H.viewModel.viewLayout.getVerticalOffsetForLineNumber(oe.lineNumber,G)}getBottomForLineNumber(H,q=!1){return this._modelData?V._getVerticalOffsetAfterPosition(this._modelData,H,1,q):-1}setHiddenAreas(H,q){var te;(te=this._modelData)===null||te===void 0||te.viewModel.setHiddenAreas(H.map(G=>s.Range.lift(G)),q)}getVisibleColumnFromPosition(H){if(!this._modelData)return H.column;const q=this._modelData.model.validatePosition(H),te=this._modelData.model.getOptions().tabSize;return m.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(q.lineNumber),q.column,te)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(H,q="api"){if(this._modelData){if(!d.Position.isIPosition(H))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(q,[{selectionStartLineNumber:H.lineNumber,selectionStartColumn:H.column,positionLineNumber:H.lineNumber,positionColumn:H.column}])}}_sendRevealRange(H,q,te,G){if(!this._modelData)return;if(!s.Range.isIRange(H))throw new Error("Invalid arguments");const $=this._modelData.model.validateRange(H),oe=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange($);this._modelData.viewModel.revealRange("api",te,oe,q,G)}revealLine(H,q=0){this._revealLine(H,0,q)}revealLineInCenter(H,q=0){this._revealLine(H,1,q)}revealLineInCenterIfOutsideViewport(H,q=0){this._revealLine(H,2,q)}revealLineNearTop(H,q=0){this._revealLine(H,5,q)}_revealLine(H,q,te){if(typeof H!="number")throw new Error("Invalid arguments");this._sendRevealRange(new s.Range(H,1,H,1),q,!1,te)}revealPosition(H,q=0){this._revealPosition(H,0,!0,q)}revealPositionInCenter(H,q=0){this._revealPosition(H,1,!0,q)}revealPositionInCenterIfOutsideViewport(H,q=0){this._revealPosition(H,2,!0,q)}revealPositionNearTop(H,q=0){this._revealPosition(H,5,!0,q)}_revealPosition(H,q,te,G){if(!d.Position.isIPosition(H))throw new Error("Invalid arguments");this._sendRevealRange(new s.Range(H.lineNumber,H.column,H.lineNumber,H.column),q,te,G)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(H,q="api"){const te=l.Selection.isISelection(H),G=s.Range.isIRange(H);if(!te&&!G)throw new Error("Invalid arguments");if(te)this._setSelectionImpl(H,q);else if(G){const $={selectionStartLineNumber:H.startLineNumber,selectionStartColumn:H.startColumn,positionLineNumber:H.endLineNumber,positionColumn:H.endColumn};this._setSelectionImpl($,q)}}_setSelectionImpl(H,q){if(!this._modelData)return;const te=new l.Selection(H.selectionStartLineNumber,H.selectionStartColumn,H.positionLineNumber,H.positionColumn);this._modelData.viewModel.setSelections(q,[te])}revealLines(H,q,te=0){this._revealLines(H,q,0,te)}revealLinesInCenter(H,q,te=0){this._revealLines(H,q,1,te)}revealLinesInCenterIfOutsideViewport(H,q,te=0){this._revealLines(H,q,2,te)}revealLinesNearTop(H,q,te=0){this._revealLines(H,q,5,te)}_revealLines(H,q,te,G){if(typeof H!="number"||typeof q!="number")throw new Error("Invalid arguments");this._sendRevealRange(new s.Range(H,1,q,1),te,!1,G)}revealRange(H,q=0,te=!1,G=!0){this._revealRange(H,te?1:0,G,q)}revealRangeInCenter(H,q=0){this._revealRange(H,1,!0,q)}revealRangeInCenterIfOutsideViewport(H,q=0){this._revealRange(H,2,!0,q)}revealRangeNearTop(H,q=0){this._revealRange(H,5,!0,q)}revealRangeNearTopIfOutsideViewport(H,q=0){this._revealRange(H,6,!0,q)}revealRangeAtTop(H,q=0){this._revealRange(H,3,!0,q)}_revealRange(H,q,te,G){if(!s.Range.isIRange(H))throw new Error("Invalid arguments");this._sendRevealRange(s.Range.lift(H),q,te,G)}setSelections(H,q="api",te=0){if(this._modelData){if(!H||H.length===0)throw new Error("Invalid arguments");for(let G=0,$=H.length;G<$;G++)if(!l.Selection.isISelection(H[G]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(q,H,te)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(H,q=1){if(this._modelData){if(typeof H!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:H},q)}}setScrollTop(H,q=1){if(this._modelData){if(typeof H!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:H},q)}}setScrollPosition(H,q=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(H,q)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;const H=this._contributions.saveViewState(),q=this._modelData.viewModel.saveCursorState(),te=this._modelData.viewModel.saveState();return{cursorState:q,viewState:te,contributionsState:H}}restoreViewState(H){if(!this._modelData||!this._modelData.hasRealView)return;const q=H;if(q&&q.cursorState&&q.viewState){const te=q.cursorState;Array.isArray(te)?te.length>0&&this._modelData.viewModel.restoreCursorState(te):this._modelData.viewModel.restoreCursorState([te]),this._contributions.restoreViewState(q.contributionsState||{});const G=this._modelData.viewModel.reduceRestoreState(q.viewState);this._modelData.view.restoreState(G)}}handleInitialized(){var H;(H=this._getViewModel())===null||H===void 0||H.visibleLinesStabilized()}getContribution(H){return this._contributions.get(H)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let H=this.getActions();return H=H.filter(q=>q.isSupported()),H}getAction(H){return this._actions.get(H)||null}trigger(H,q,te){switch(te=te||{},q){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(H);return;case"type":{const $=te;this._type(H,$.text||"");return}case"replacePreviousChar":{const $=te;this._compositionType(H,$.text||"",$.replaceCharCnt||0,0,0);return}case"compositionType":{const $=te;this._compositionType(H,$.text||"",$.replacePrevCharCnt||0,$.replaceNextCharCnt||0,$.positionDelta||0);return}case"paste":{const $=te;this._paste(H,$.text||"",$.pasteOnNewLine||!1,$.multicursorText||null,$.mode||null);return}case"cut":this._cut(H);return}const G=this.getAction(q);if(G){Promise.resolve(G.run(te)).then(void 0,k.onUnexpectedError);return}this._modelData&&(this._triggerEditorCommand(H,q,te)||this._triggerCommand(q,te))}_triggerCommand(H,q){this._commandService.executeCommand(H,q)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(H){this._modelData&&(this._modelData.viewModel.endComposition(H),this._onDidCompositionEnd.fire())}_type(H,q){!this._modelData||q.length===0||(H==="keyboard"&&this._onWillType.fire(q),this._modelData.viewModel.type(q,H),H==="keyboard"&&this._onDidType.fire(q))}_compositionType(H,q,te,G,$){this._modelData&&this._modelData.viewModel.compositionType(q,te,G,$,H)}_paste(H,q,te,G,$){if(!this._modelData||q.length===0)return;const oe=this._modelData.viewModel,ae=oe.getSelection().getStartPosition();oe.paste(q,te,G,H);const ue=oe.getSelection().getStartPosition();H==="keyboard"&&this._onDidPaste.fire({range:new s.Range(ae.lineNumber,ae.column,ue.lineNumber,ue.column),languageId:$})}_cut(H){this._modelData&&this._modelData.viewModel.cut(H)}_triggerEditorCommand(H,q,te){const G=b.EditorExtensionsRegistry.getEditorCommand(q);return G?(te=te||{},te.source=H,this._instantiationService.invokeFunction($=>{Promise.resolve(G.runEditorCommand($,this,te)).then(void 0,k.onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(H,q,te){if(!this._modelData||this._configuration.options.get(91))return!1;let G;return te?Array.isArray(te)?G=()=>te:G=te:G=()=>null,this._modelData.viewModel.executeEdits(H,q,G),!0}executeCommand(H,q){this._modelData&&this._modelData.viewModel.executeCommand(q,H)}executeCommands(H,q){this._modelData&&this._modelData.viewModel.executeCommands(q,H)}createDecorationsCollection(H){return new Y(this,H)}changeDecorations(H){return this._modelData?this._modelData.model.changeDecorations(H,this._id):null}getLineDecorations(H){return this._modelData?this._modelData.model.getLineDecorations(H,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}getDecorationsInRange(H){return this._modelData?this._modelData.model.getDecorationsInRange(H,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}deltaDecorations(H,q){return this._modelData?H.length===0&&q.length===0?H:this._modelData.model.deltaDecorations(H,q,this._id):[]}removeDecorations(H){!this._modelData||H.length===0||this._modelData.model.changeDecorations(q=>{q.deltaDecorations(H,[])})}removeDecorationsByType(H){const q=this._decorationTypeKeysToIds[H];q&&this.changeDecorations(te=>te.deltaDecorations(q,[])),this._decorationTypeKeysToIds.hasOwnProperty(H)&&delete this._decorationTypeKeysToIds[H],this._decorationTypeSubtypes.hasOwnProperty(H)&&delete this._decorationTypeSubtypes[H]}getLayoutInfo(){return this._configuration.options.get(144)}createOverviewRuler(H){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(H)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(H){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(H)}delegateScrollFromMouseWheelEvent(H){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(H)}layout(H,q=!1){this._configuration.observeContainer(H),q||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(H){const q={widget:H,position:H.getPosition()};this._contentWidgets.hasOwnProperty(H.getId())&&console.warn("Overwriting a content widget with the same id:"+H.getId()),this._contentWidgets[H.getId()]=q,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(q)}layoutContentWidget(H){const q=H.getId();if(this._contentWidgets.hasOwnProperty(q)){const te=this._contentWidgets[q];te.position=H.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(te)}}removeContentWidget(H){const q=H.getId();if(this._contentWidgets.hasOwnProperty(q)){const te=this._contentWidgets[q];delete this._contentWidgets[q],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(te)}}addOverlayWidget(H){const q={widget:H,position:H.getPosition()};this._overlayWidgets.hasOwnProperty(H.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[H.getId()]=q,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(q)}layoutOverlayWidget(H){const q=H.getId();if(this._overlayWidgets.hasOwnProperty(q)){const te=this._overlayWidgets[q];te.position=H.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(te)}}removeOverlayWidget(H){const q=H.getId();if(this._overlayWidgets.hasOwnProperty(q)){const te=this._overlayWidgets[q];delete this._overlayWidgets[q],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(te)}}addGlyphMarginWidget(H){const q={widget:H,position:H.getPosition()};this._glyphMarginWidgets.hasOwnProperty(H.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[H.getId()]=q,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(q)}layoutGlyphMarginWidget(H){const q=H.getId();if(this._glyphMarginWidgets.hasOwnProperty(q)){const te=this._glyphMarginWidgets[q];te.position=H.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(te)}}removeGlyphMarginWidget(H){const q=H.getId();if(this._glyphMarginWidgets.hasOwnProperty(q)){const te=this._glyphMarginWidgets[q];delete this._glyphMarginWidgets[q],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(te)}}changeViewZones(H){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(H)}getTargetAtClientPoint(H,q){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(H,q)}getScrolledVisiblePosition(H){if(!this._modelData||!this._modelData.hasRealView)return null;const q=this._modelData.model.validatePosition(H),te=this._configuration.options,G=te.get(144),$=V._getVerticalOffsetForPosition(this._modelData,q.lineNumber,q.column)-this.getScrollTop(),oe=this._modelData.view.getOffsetForColumn(q.lineNumber,q.column)+G.glyphMarginWidth+G.lineNumbersWidth+G.decorationsWidth-this.getScrollLeft();return{top:$,left:oe,height:te.get(67)}}getOffsetForColumn(H,q){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(H,q)}render(H=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.view.render(!0,H)}setAriaOptions(H){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(H)}applyFontInfo(H){(0,p.applyFontInfo)(H,this._configuration.options.get(50))}setBanner(H,q){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=H,this._configuration.setReservedHeight(H?q:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(H){if(!H){this._modelData=null;return}const q=[];this._domElement.setAttribute("data-mode-id",H.getLanguageId()),this._configuration.setIsDominatedByLongLines(H.isDominatedByLongLines()),this._configuration.setModelLineCount(H.getLineCount());const te=H.onBeforeAttached(),G=new T.ViewModel(this._id,this._configuration,H,i.DOMLineBreaksComputerFactory.create(L.getWindow(this._domElement)),I.MonospaceLineBreaksComputerFactory.create(this._configuration.options),ae=>L.scheduleAtNextAnimationFrame(L.getWindow(this._domElement),ae),this.languageConfigurationService,this._themeService,te);q.push(H.onWillDispose(()=>this.setModel(null))),q.push(G.onEvent(ae=>{switch(ae.kind){case 0:this._onDidContentSizeChange.fire(ae);break;case 1:this._editorTextFocus.setValue(ae.hasFocus);break;case 2:this._onDidScrollChange.fire(ae);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(ae.reachedMaxCursorCount){const ve=this.getOption(80),Ce=A.localize(0,null,ve);this._notificationService.prompt(O.Severity.Warning,Ce,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:A.localize(1,null),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const ue=[];for(let ve=0,Ce=ae.selections.length;ve{this._paste("keyboard",$,oe,ae,ue)},type:$=>{this._type("keyboard",$)},compositionType:($,oe,ae,ue)=>{this._compositionType("keyboard",$,oe,ae,ue)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:q={paste:($,oe,ae,ue)=>{const ce={text:$,pasteOnNewLine:oe,multicursorText:ae,mode:ue};this._commandService.executeCommand("paste",ce)},type:$=>{const oe={text:$};this._commandService.executeCommand("type",oe)},compositionType:($,oe,ae,ue)=>{if(ae||ue){const ce={text:$,replacePrevCharCnt:oe,replaceNextCharCnt:ae,positionDelta:ue};this._commandService.executeCommand("compositionType",ce)}else{const ce={text:$,replaceCharCnt:oe};this._commandService.executeCommand("replacePreviousChar",ce)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const te=new t.ViewUserInputEvents(H.coordinatesConverter);return te.onKeyDown=$=>this._onKeyDown.fire($),te.onKeyUp=$=>this._onKeyUp.fire($),te.onContextMenu=$=>this._onContextMenu.fire($),te.onMouseMove=$=>this._onMouseMove.fire($),te.onMouseLeave=$=>this._onMouseLeave.fire($),te.onMouseDown=$=>this._onMouseDown.fire($),te.onMouseUp=$=>this._onMouseUp.fire($),te.onMouseDrag=$=>this._onMouseDrag.fire($),te.onMouseDrop=$=>this._onMouseDrop.fire($),te.onMouseDropCanceled=$=>this._onMouseDropCanceled.fire($),te.onMouseWheel=$=>this._onMouseWheel.fire($),[new n.View(q,this._configuration,this._themeService.getColorTheme(),H,te,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(H){H?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var H;if((H=this._contributionsDisposable)===null||H===void 0||H.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const q=this._modelData.model,te=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),te&&this._domElement.contains(te)&&this._domElement.removeChild(te),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),q}_removeDecorationType(H){this._codeEditorService.removeDecorationType(H)}hasModel(){return this._modelData!==null}showDropIndicatorAt(H){const q=[{range:new s.Range(H.lineNumber,H.column,H.lineNumber,H.column),options:V.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(q),this.revealPosition(H,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(H,q){this._contextKeyService.createKey(H,q)}};e.CodeEditorWidget=j,j.dropIntoEditorDecorationOptions=_.ModelDecorationOptions.register({description:"workbench-dnd-target",className:"dnd-target"}),e.CodeEditorWidget=j=V=De([he(3,P.IInstantiationService),he(4,a.ICodeEditorService),he(5,M.ICommandService),he(6,N.IContextKeyService),he(7,W.IThemeService),he(8,O.INotificationService),he(9,R.IAccessibilityService),he(10,C.ILanguageConfigurationService),he(11,E.ILanguageFeaturesService)],j);class x extends D.Disposable{constructor(H){super(),this._emitterOptions=H,this._onDidChangeToTrue=this._register(new y.Emitter(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new y.Emitter(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(H){const q=H?2:1;this._value!==q&&(this._value=q,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}e.BooleanEventEmitter=x;class re extends y.Emitter{constructor(H,q){super({deliveryQueue:q}),this._contributions=H}fire(H){this._contributions.onBeforeInteractionEvent(),super.fire(H)}}class ie extends D.Disposable{constructor(H,q){super(),this._editor=H,q.createKey("editorId",H.getId()),this._editorSimpleInput=f.EditorContextKeys.editorSimpleInput.bindTo(q),this._editorFocus=f.EditorContextKeys.focus.bindTo(q),this._textInputFocus=f.EditorContextKeys.textInputFocus.bindTo(q),this._editorTextFocus=f.EditorContextKeys.editorTextFocus.bindTo(q),this._tabMovesFocus=f.EditorContextKeys.tabMovesFocus.bindTo(q),this._editorReadonly=f.EditorContextKeys.readOnly.bindTo(q),this._inDiffEditor=f.EditorContextKeys.inDiffEditor.bindTo(q),this._editorColumnSelection=f.EditorContextKeys.columnSelection.bindTo(q),this._hasMultipleSelections=f.EditorContextKeys.hasMultipleSelections.bindTo(q),this._hasNonEmptySelection=f.EditorContextKeys.hasNonEmptySelection.bindTo(q),this._canUndo=f.EditorContextKeys.canUndo.bindTo(q),this._canRedo=f.EditorContextKeys.canRedo.bindTo(q),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(v.TabFocus.onDidChangeTabFocus(te=>this._tabMovesFocus.set(te))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const H=this._editor.getOptions();this._tabMovesFocus.set(v.TabFocus.getTabFocusMode()),this._editorReadonly.set(H.get(91)),this._inDiffEditor.set(H.get(61)),this._editorColumnSelection.set(H.get(22))}_updateFromSelection(){const H=this._editor.getSelections();H?(this._hasMultipleSelections.set(H.length>1),this._hasNonEmptySelection.set(H.some(q=>!q.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const H=this._editor.getModel();this._canUndo.set(!!(H&&H.canUndo())),this._canRedo.set(!!(H&&H.canRedo()))}}class J extends D.Disposable{constructor(H,q,te){super(),this._editor=H,this._contextKeyService=q,this._languageFeaturesService=te,this._langId=f.EditorContextKeys.languageId.bindTo(q),this._hasCompletionItemProvider=f.EditorContextKeys.hasCompletionItemProvider.bindTo(q),this._hasCodeActionsProvider=f.EditorContextKeys.hasCodeActionsProvider.bindTo(q),this._hasCodeLensProvider=f.EditorContextKeys.hasCodeLensProvider.bindTo(q),this._hasDefinitionProvider=f.EditorContextKeys.hasDefinitionProvider.bindTo(q),this._hasDeclarationProvider=f.EditorContextKeys.hasDeclarationProvider.bindTo(q),this._hasImplementationProvider=f.EditorContextKeys.hasImplementationProvider.bindTo(q),this._hasTypeDefinitionProvider=f.EditorContextKeys.hasTypeDefinitionProvider.bindTo(q),this._hasHoverProvider=f.EditorContextKeys.hasHoverProvider.bindTo(q),this._hasDocumentHighlightProvider=f.EditorContextKeys.hasDocumentHighlightProvider.bindTo(q),this._hasDocumentSymbolProvider=f.EditorContextKeys.hasDocumentSymbolProvider.bindTo(q),this._hasReferenceProvider=f.EditorContextKeys.hasReferenceProvider.bindTo(q),this._hasRenameProvider=f.EditorContextKeys.hasRenameProvider.bindTo(q),this._hasSignatureHelpProvider=f.EditorContextKeys.hasSignatureHelpProvider.bindTo(q),this._hasInlayHintsProvider=f.EditorContextKeys.hasInlayHintsProvider.bindTo(q),this._hasDocumentFormattingProvider=f.EditorContextKeys.hasDocumentFormattingProvider.bindTo(q),this._hasDocumentSelectionFormattingProvider=f.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(q),this._hasMultipleDocumentFormattingProvider=f.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(q),this._hasMultipleDocumentSelectionFormattingProvider=f.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(q),this._isInEmbeddedEditor=f.EditorContextKeys.isInEmbeddedEditor.bindTo(q);const G=()=>this._update();this._register(H.onDidChangeModel(G)),this._register(H.onDidChangeModelLanguage(G)),this._register(te.completionProvider.onDidChange(G)),this._register(te.codeActionProvider.onDidChange(G)),this._register(te.codeLensProvider.onDidChange(G)),this._register(te.definitionProvider.onDidChange(G)),this._register(te.declarationProvider.onDidChange(G)),this._register(te.implementationProvider.onDidChange(G)),this._register(te.typeDefinitionProvider.onDidChange(G)),this._register(te.hoverProvider.onDidChange(G)),this._register(te.documentHighlightProvider.onDidChange(G)),this._register(te.documentSymbolProvider.onDidChange(G)),this._register(te.referenceProvider.onDidChange(G)),this._register(te.renameProvider.onDidChange(G)),this._register(te.documentFormattingEditProvider.onDidChange(G)),this._register(te.documentRangeFormattingEditProvider.onDidChange(G)),this._register(te.signatureHelpProvider.onDidChange(G)),this._register(te.inlayHintsProvider.onDidChange(G)),G()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const H=this._editor.getModel();if(!H){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(H.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(H)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(H)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(H)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(H)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(H)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(H)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(H)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(H)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(H)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(H)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(H)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(H)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(H)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(H)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(H)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(H)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(H)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(H).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(H).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(H).length>1),this._isInEmbeddedEditor.set(H.uri.scheme===S.Schemas.walkThroughSnippet||H.uri.scheme===S.Schemas.vscodeChatCodeBlock)})}}e.EditorModeContext=J;class X extends D.Disposable{constructor(H,q){super(),this._onChange=this._register(new y.Emitter),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(L.trackFocus(H)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),q&&(this._overflowWidgetsDomNode=this._register(L.trackFocus(q)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const H=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==H&&(this._hadFocus=H,this._onChange.fire(void 0))}hasFocus(){var H;return(H=this._hadFocus)!==null&&H!==void 0?H:!1}}class Y{get length(){return this._decorationIds.length}constructor(H,q){this._editor=H,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(q)&&q.length>0&&this.set(q)}onDidChange(H,q,te){return this._editor.onDidChangeModelDecorations(G=>{this._isChangingDecorations||H.call(q,G)},te)}getRange(H){return!this._editor.hasModel()||H>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[H])}getRanges(){if(!this._editor.hasModel())return[];const H=this._editor.getModel(),q=[];for(const te of this._decorationIds){const G=H.getDecorationRange(te);G&&q.push(G)}return q}has(H){return this._decorationIds.includes(H.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(H){try{this._isChangingDecorations=!0,this._editor.changeDecorations(q=>{this._decorationIds=q.deltaDecorations(this._decorationIds,H)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(H){let q=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(te=>{q=te.deltaDecorations([],H),this._decorationIds=this._decorationIds.concat(q)})}finally{this._isChangingDecorations=!1}return q}}const le=encodeURIComponent("");function ge(Z){return le+encodeURIComponent(Z.toString())+de}const pe=encodeURIComponent('');function U(Z){return pe+encodeURIComponent(Z.toString())+Q}(0,W.registerThemingParticipant)((Z,H)=>{const q=Z.getColor(B.editorErrorForeground);q&&H.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${ge(q)}") repeat-x bottom left; }`);const te=Z.getColor(B.editorWarningForeground);te&&H.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${ge(te)}") repeat-x bottom left; }`);const G=Z.getColor(B.editorInfoForeground);G&&H.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${ge(G)}") repeat-x bottom left; }`);const $=Z.getColor(B.editorHintForeground);$&&H.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${U($)}") no-repeat bottom left; }`);const oe=Z.getColor(c.editorUnnecessaryCodeOpacity);oe&&H.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${oe.rgba.a}; }`)})}),define(ne[266],se([1,0,6,62,12,7,2,32,174,16,35,131,200,851,894,618,348,895,340,375,87,9,5,183,21,124,14,8,165,88,507,865,647,366,640,455]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R,M,N){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorWidget=void 0;let P=class extends T.DelegatingEditor{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(B,W,V,z,K,j,x,re){var ie;super(),this._domElement=B,this._parentContextKeyService=z,this._parentInstantiationService=K,this._accessibilitySignalService=x,this._editorProgressService=re,this.elements=(0,L.h)("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[(0,L.h)("div.noModificationsOverlay@overlay",{style:{position:"absolute",height:"100%",visibility:"hidden"}},[(0,L.$)("span",{},"No Changes")]),(0,L.h)("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),(0,L.h)("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),(0,L.h)("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=(0,p.observableValue)(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=D.Event.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._parentInstantiationService.createChild(new E.ServiceCollection([C.IContextKeyService,this._contextKeyService])),this._boundarySashes=(0,p.observableValue)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,p.observableValue)(this,!1),this._accessibleDiffViewerVisible=(0,p.derived)(this,H=>this._options.onlyShowAccessibleDiffViewer.read(H)?!0:this._accessibleDiffViewerShouldBeVisible.read(H)),this._movedBlocksLinesPart=(0,p.observableValue)(this,void 0),this._layoutInfo=(0,p.derived)(this,H=>{var q,te,G,$,oe;const ae=this._rootSizeObserver.width.read(H),ue=this._rootSizeObserver.height.read(H),ce=(q=this._sash.read(H))===null||q===void 0?void 0:q.sashLeft.read(H),fe=ce??Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),ve=ae-fe-((G=(te=this._overviewRulerPart.read(H))===null||te===void 0?void 0:te.width)!==null&&G!==void 0?G:0),Ce=(oe=($=this._movedBlocksLinesPart.read(H))===null||$===void 0?void 0:$.width.read(H))!==null&&oe!==void 0?oe:0,Se=fe-Ce;return this.elements.original.style.width=Se+"px",this.elements.original.style.left="0px",this.elements.modified.style.width=ve+"px",this.elements.modified.style.left=fe+"px",this._editors.original.layout({width:Se,height:ue},!0),this._editors.modified.layout({width:ve,height:ue},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((H,q)=>H?.diff.read(q)),this.onDidUpdateDiff=D.Event.fromObservableLight(this._diffValue),j.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,S.toDisposable)(()=>this._domElement.removeChild(this.elements.root))),this._rootSizeObserver=this._register(new s.ObservableElementSizeObserver(this.elements.root,W.dimension)),this._rootSizeObserver.setAutomaticLayout((ie=W.automaticLayout)!==null&&ie!==void 0?ie:!1),this._options=new R.DiffEditorOptions(W),this._register((0,p.autorun)(H=>{this._options.setWidth(this._rootSizeObserver.width.read(H))})),this._contextKeyService.createKey(u.EditorContextKeys.isEmbeddedDiffEditor.key,!1),this._register((0,s.bindContextKey)(u.EditorContextKeys.isEmbeddedDiffEditor,this._contextKeyService,H=>this._options.isInEmbeddedEditor.read(H))),this._register((0,s.bindContextKey)(u.EditorContextKeys.comparingMovedCode,this._contextKeyService,H=>{var q;return!!(!((q=this._diffModel.read(H))===null||q===void 0)&&q.movedTextToCompare.read(H))})),this._register((0,s.bindContextKey)(u.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,H=>this._options.couldShowInlineViewBecauseOfSize.read(H))),this._register((0,s.bindContextKey)(u.EditorContextKeys.hasChanges,this._contextKeyService,H=>{var q,te,G;return((G=(te=(q=this._diffModel.read(H))===null||q===void 0?void 0:q.diff.read(H))===null||te===void 0?void 0:te.mappings.length)!==null&&G!==void 0?G:0)>0})),this._editors=this._register(this._instantiationService.createInstance(A.DiffEditorEditors,this.elements.original,this.elements.modified,this._options,V,(H,q,te,G)=>this._createInnerEditor(H,q,te,G))),this._overviewRulerPart=(0,w.derivedDisposable)(this,H=>this._options.renderOverviewRuler.read(H)?this._instantiationService.createInstance((0,s.readHotReloadableExport)(d.OverviewRulerFeature,H),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(q=>q.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store),this._sash=(0,w.derivedDisposable)(this,H=>{const q=this._options.renderSideBySide.read(H);return this.elements.root.classList.toggle("side-by-side",q),q?new o.DiffEditorSash(this._options,this.elements.root,{height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((te,G)=>{var $,oe;return te-((oe=($=this._overviewRulerPart.read(G))===null||$===void 0?void 0:$.width)!==null&&oe!==void 0?oe:0)})},this._boundarySashes):void 0}).recomputeInitiallyAndOnChange(this._store);const J=(0,w.derivedDisposable)(this,H=>this._instantiationService.createInstance((0,s.readHotReloadableExport)(g.HideUnchangedRegionsFeature,H),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,w.derivedDisposable)(this,H=>this._instantiationService.createInstance((0,s.readHotReloadableExport)(t.DiffEditorDecorations,H),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const X=new Set,Y=new Set;let le=!1;const de=(0,w.derivedDisposable)(this,H=>this._instantiationService.createInstance((0,s.readHotReloadableExport)(m.DiffEditorViewZones,H),(0,L.getWindow)(this._domElement),this._editors,this._diffModel,this._options,this,()=>le||J.get().isUpdatingHiddenAreas,X,Y)).recomputeInitiallyAndOnChange(this._store),ge=(0,p.derived)(this,H=>{const q=de.read(H).viewZones.read(H).orig,te=J.read(H).viewZones.read(H).origViewZones;return q.concat(te)}),pe=(0,p.derived)(this,H=>{const q=de.read(H).viewZones.read(H).mod,te=J.read(H).viewZones.read(H).modViewZones;return q.concat(te)});this._register((0,s.applyViewZones)(this._editors.original,ge,H=>{le=H},X));let Q;this._register((0,s.applyViewZones)(this._editors.modified,pe,H=>{le=H,le?Q=a.StableEditorScrollState.capture(this._editors.modified):(Q?.restore(this._editors.modified),Q=void 0)},Y)),this._accessibleDiffViewer=(0,w.derivedDisposable)(this,H=>this._instantiationService.createInstance((0,s.readHotReloadableExport)(i.AccessibleDiffViewer,H),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(q,te)=>this._accessibleDiffViewerShouldBeVisible.set(q,te),this._options.onlyShowAccessibleDiffViewer.map(q=>!q),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((q,te)=>{var G;return(G=q?.diff.read(te))===null||G===void 0?void 0:G.mappings.map($=>$.lineRangeMapping)}),new i.AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);const U=this._accessibleDiffViewerVisible.map(H=>H?"hidden":"visible");this._register((0,s.applyStyle)(this.elements.modified,{visibility:U})),this._register((0,s.applyStyle)(this.elements.original,{visibility:U})),this._createDiffEditorContributions(),j.addDiffEditor(this),this._register((0,p.recomputeInitiallyAndOnChange)(this._layoutInfo)),(0,w.derivedDisposable)(this,H=>new((0,s.readHotReloadableExport)(c.MovedBlocksLinesFeature,H))(this.elements.root,this._diffModel,this._layoutInfo.map(q=>q.originalEditor),this._layoutInfo.map(q=>q.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,H=>{this._movedBlocksLinesPart.set(H,void 0)}),this._register((0,s.applyStyle)(this.elements.overlay,{width:this._layoutInfo.map((H,q)=>H.originalEditor.width+(this._options.renderSideBySide.read(q)?0:H.modifiedEditor.width)),visibility:(0,p.derived)(H=>{var q,te;return this._options.hideUnchangedRegions.read(H)&&((te=(q=this._diffModel.read(H))===null||q===void 0?void 0:q.diff.read(H))===null||te===void 0?void 0:te.mappings.length)===0?"visible":"hidden"})})),this._register(D.Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,H=>{var q,te;if(H?.reason===3){const G=(te=(q=this._diffModel.get())===null||q===void 0?void 0:q.diff.get())===null||te===void 0?void 0:te.mappings.find($=>$.lineRangeMapping.modified.contains(H.position.lineNumber));G?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(f.AccessibilitySignal.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):G?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(f.AccessibilitySignal.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):G&&this._accessibilitySignalService.playSignal(f.AccessibilitySignal.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}));const Z=this._diffModel.map(this,(H,q)=>{if(H)return H.diff.read(q)===void 0&&!H.isDiffUpToDate.read(q)});this._register((0,p.autorunWithStore)((H,q)=>{if(Z.read(H)===!0){const te=this._editorProgressService.show(!0,1e3);q.add((0,S.toDisposable)(()=>te.done()))}})),this._register((0,S.toDisposable)(()=>{var H;this._shouldDisposeDiffModel&&((H=this._diffModel.get())===null||H===void 0||H.dispose())})),this._register(new N.RevertButtonsFeature(this._editors,this._diffModel,this._options,this))}_createInnerEditor(B,W,V,z){return B.createInstance(n.CodeEditorWidget,W,V,z)}_createDiffEditorContributions(){const B=v.EditorExtensionsRegistry.getDiffEditorContributions();for(const W of B)try{this._register(this._instantiationService.createInstance(W.ctor,this))}catch(V){(0,y.onUnexpectedError)(V)}}get _targetEditor(){return this._editors.modified}getEditorType(){return h.EditorType.IDiffEditor}layout(B){this._rootSizeObserver.observe(B)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var B;const W=this._editors.original.saveViewState(),V=this._editors.modified.saveViewState();return{original:W,modified:V,modelState:(B=this._diffModel.get())===null||B===void 0?void 0:B.serializeState()}}restoreViewState(B){var W;if(B&&B.original&&B.modified){const V=B;this._editors.original.restoreViewState(V.original),this._editors.modified.restoreViewState(V.modified),V.modelState&&((W=this._diffModel.get())===null||W===void 0||W.restoreSerializedState(V.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(B){return this._instantiationService.createInstance(M.DiffEditorViewModel,B,this._options)}getModel(){var B,W;return(W=(B=this._diffModel.get())===null||B===void 0?void 0:B.model)!==null&&W!==void 0?W:null}setModel(B,W){!B&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const V=B?"model"in B?{model:B,shouldDispose:!1}:{model:this.createViewModel(B),shouldDispose:!0}:void 0;this._diffModel.get()!==V?.model&&(0,p.subtransaction)(W,z=>{var K;p.observableFromEvent.batchEventsGlobally(z,()=>{this._editors.original.setModel(V?V.model.model.original:null),this._editors.modified.setModel(V?V.model.model.modified:null)});const j=this._diffModel.get(),x=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=(K=V?.shouldDispose)!==null&&K!==void 0?K:!1,this._diffModel.set(V?.model,z),x&&j?.dispose()})}updateOptions(B){this._options.updateOptions(B)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var B;const W=(B=this._diffModel.get())===null||B===void 0?void 0:B.diff.get();return W?F(W):null}revert(B){if(B.innerChanges){this.revertRangeMappings(B.innerChanges);return}const W=this._diffModel.get();!W||!W.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:B.modified.toExclusiveRange(),text:W.model.original.getValueInRange(B.original.toExclusiveRange())}])}revertRangeMappings(B){const W=this._diffModel.get();if(!W||!W.isDiffUpToDate.get())return;const V=B.map(z=>({range:z.modifiedRange,text:W.model.original.getValueInRange(z.originalRange)}));this._editors.modified.executeEdits("diffEditor",V)}_goTo(B){this._editors.modified.setPosition(new l.Position(B.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(B.lineRangeMapping.modified.toExclusiveRange())}goToDiff(B){var W,V,z,K;const j=(V=(W=this._diffModel.get())===null||W===void 0?void 0:W.diff.get())===null||V===void 0?void 0:V.mappings;if(!j||j.length===0)return;const x=this._editors.modified.getPosition().lineNumber;let re;B==="next"?re=(z=j.find(ie=>ie.lineRangeMapping.modified.startLineNumber>x))!==null&&z!==void 0?z:j[0]:re=(K=(0,k.findLast)(j,ie=>ie.lineRangeMapping.modified.startLineNumber{var W;const V=(W=B.diff.get())===null||W===void 0?void 0:W.mappings;!V||V.length===0||this._goTo(V[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const B=this._diffModel.get();B&&await B.waitForDiff()}mapToOtherSide(){var B,W;const V=this._editors.modified.hasWidgetFocus(),z=V?this._editors.modified:this._editors.original,K=V?this._editors.original:this._editors.modified;let j;const x=z.getSelection();if(x){const re=(W=(B=this._diffModel.get())===null||B===void 0?void 0:B.diff.get())===null||W===void 0?void 0:W.mappings.map(ie=>V?ie.lineRangeMapping.flip():ie.lineRangeMapping);if(re){const ie=(0,s.translatePosition)(x.getStartPosition(),re),J=(0,s.translatePosition)(x.getEndPosition(),re);j=r.Range.plusRange(ie,J)}}return{destination:K,destinationSelection:j}}switchSide(){const{destination:B,destinationSelection:W}=this.mapToOtherSide();B.focus(),W&&B.setSelection(W)}exitCompareMove(){const B=this._diffModel.get();B&&B.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var B;const W=(B=this._diffModel.get())===null||B===void 0?void 0:B.unchangedRegions.get();W&&(0,p.transaction)(V=>{for(const z of W)z.collapseAll(V)})}showAllUnchangedRegions(){var B;const W=(B=this._diffModel.get())===null||B===void 0?void 0:B.unchangedRegions.get();W&&(0,p.transaction)(V=>{for(const z of W)z.showAll(V)})}};e.DiffEditorWidget=P,e.DiffEditorWidget=P=De([he(3,C.IContextKeyService),he(4,_.IInstantiationService),he(5,b.ICodeEditorService),he(6,f.IAccessibilitySignalService),he(7,I.IEditorProgressService)],P);function F(O){return O.mappings.map(B=>{const W=B.lineRangeMapping;let V,z,K,j,x=W.innerChanges;return W.original.isEmpty?(V=W.original.startLineNumber-1,z=0,x=void 0):(V=W.original.startLineNumber,z=W.original.endLineNumberExclusive-1),W.modified.isEmpty?(K=W.modified.startLineNumber-1,j=0,x=void 0):(K=W.modified.startLineNumber,j=W.modified.endLineNumberExclusive-1),{originalStartLineNumber:V,originalEndLineNumber:z,modifiedStartLineNumber:K,modifiedEndLineNumber:j,charChanges:x?.map(re=>({originalStartLineNumber:re.originalRange.startLineNumber,originalStartColumn:re.originalRange.startColumn,originalEndLineNumber:re.originalRange.endLineNumber,originalEndColumn:re.originalRange.endColumn,modifiedStartLineNumber:re.modifiedRange.startLineNumber,modifiedStartColumn:re.modifiedRange.startColumn,modifiedEndLineNumber:re.modifiedRange.endLineNumber,modifiedEndColumn:re.modifiedRange.endColumn}))}})}}),define(ne[899],se([1,0,6,27,16,35,266,21,636,28,25,26,14,265]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.findFocusedDiffEditor=e.AccessibleDiffViewerPrev=e.AccessibleDiffViewerNext=e.ShowAllUnchangedRegions=e.CollapseAllUnchangedRegions=e.ExitCompareMove=e.SwitchSide=e.ToggleUseInlineViewWhenSpaceIsLimited=e.ToggleShowMovedCodeBlocks=e.ToggleCollapseUnchangedRegions=void 0;class i extends v.Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:(0,w.localize2)(3,"Toggle Collapse Unchanged Regions"),icon:k.Codicon.map,toggled:n.ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:n.ContextKeyExpr.has("isInDiffEditor"),menu:{when:n.ContextKeyExpr.has("isInDiffEditor"),id:v.MenuId.EditorTitle,order:22,group:"navigation"}})}run(_,...E){const I=_.get(a.IConfigurationService),T=!I.getValue("diffEditor.hideUnchangedRegions.enabled");I.updateValue("diffEditor.hideUnchangedRegions.enabled",T)}}e.ToggleCollapseUnchangedRegions=i,(0,v.registerAction2)(i);class t extends v.Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:(0,w.localize2)(4,"Toggle Show Moved Code Blocks"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(_,...E){const I=_.get(a.IConfigurationService),T=!I.getValue("diffEditor.experimental.showMoves");I.updateValue("diffEditor.experimental.showMoves",T)}}e.ToggleShowMovedCodeBlocks=t,(0,v.registerAction2)(t);class o extends v.Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:(0,w.localize2)(5,"Toggle Use Inline View When Space Is Limited"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(_,...E){const I=_.get(a.IConfigurationService),T=!I.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");I.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",T)}}e.ToggleUseInlineViewWhenSpaceIsLimited=o,(0,v.registerAction2)(o),v.MenuRegistry.appendMenuItem(v.MenuId.EditorTitle,{command:{id:new o().desc.id,title:(0,w.localize)(0,null),toggled:n.ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:n.ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:n.ContextKeyExpr.and(p.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,n.ContextKeyExpr.has("isInDiffEditor"))}),v.MenuRegistry.appendMenuItem(v.MenuId.EditorTitle,{command:{id:new t().desc.id,title:(0,w.localize)(1,null),icon:k.Codicon.move,toggled:n.ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:n.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:n.ContextKeyExpr.has("isInDiffEditor")});const g=(0,w.localize2)(6,"Diff Editor");class m extends y.EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:(0,w.localize2)(7,"Switch Side"),icon:k.Codicon.arrowSwap,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:g})}runEditorCommand(_,E,I){const T=u(_);if(T instanceof S.DiffEditorWidget){if(I&&I.dryRun)return{destinationSelection:T.mapToOtherSide().destinationSelection};T.switchSide()}}}e.SwitchSide=m,(0,v.registerAction2)(m);class c extends y.EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:(0,w.localize2)(8,"Exit Compare Move"),icon:k.Codicon.close,precondition:p.EditorContextKeys.comparingMovedCode,f1:!1,category:g,keybinding:{weight:1e4,primary:9}})}runEditorCommand(_,E,...I){const T=u(_);T instanceof S.DiffEditorWidget&&T.exitCompareMove()}}e.ExitCompareMove=c,(0,v.registerAction2)(c);class d extends y.EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:(0,w.localize2)(9,"Collapse All Unchanged Regions"),icon:k.Codicon.fold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:g})}runEditorCommand(_,E,...I){const T=u(_);T instanceof S.DiffEditorWidget&&T.collapseAllUnchangedRegions()}}e.CollapseAllUnchangedRegions=d,(0,v.registerAction2)(d);class s extends y.EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:(0,w.localize2)(10,"Show All Unchanged Regions"),icon:k.Codicon.unfold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:g})}runEditorCommand(_,E,...I){const T=u(_);T instanceof S.DiffEditorWidget&&T.showAllUnchangedRegions()}}e.ShowAllUnchangedRegions=s,(0,v.registerAction2)(s);const l=(0,w.localize2)(11,"Accessible Diff Viewer");class r extends v.Action2{constructor(){super({id:r.id,title:(0,w.localize2)(12,"Go to Next Difference"),category:l,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(_){const E=u(_);E?.accessibleDiffViewerNext()}}e.AccessibleDiffViewerNext=r,r.id="editor.action.accessibleDiffViewer.next",v.MenuRegistry.appendMenuItem(v.MenuId.EditorTitle,{command:{id:r.id,title:(0,w.localize)(2,null),precondition:n.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:n.ContextKeyExpr.and(p.EditorContextKeys.accessibleDiffViewerVisible.negate(),n.ContextKeyExpr.has("isInDiffEditor"))});class h extends v.Action2{constructor(){super({id:h.id,title:(0,w.localize2)(13,"Go to Previous Difference"),category:l,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(_){const E=u(_);E?.accessibleDiffViewerPrev()}}e.AccessibleDiffViewerPrev=h,h.id="editor.action.accessibleDiffViewer.prev";function u(C){const E=C.get(D.ICodeEditorService).listDiffEditors(),I=(0,L.getActiveElement)();if(I)for(const T of E){const A=T.getContainerDomNode();if(f(A,I))return T}return null}e.findFocusedDiffEditor=u;function f(C,_){let E=_;for(;E;){if(E===C)return!0;E=E.parentElement}return!1}b.CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",r.id),(0,v.registerAction2)(r),b.CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",h.id),(0,v.registerAction2)(h)}),define(ne[170],se([1,0,54,35,200,33,18,71,25,14,8,49,24]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmbeddedCodeEditorWidget=void 0;let i=class extends y.CodeEditorWidget{constructor(o,g,m,c,d,s,l,r,h,u,f,C,_){super(o,{...c.getRawOptions(),overflowWidgetsDomNode:c.getOverflowWidgetsDomNode()},m,d,s,l,r,h,u,f,C,_),this._parentEditor=c,this._overwriteOptions=g,super.updateOptions(this._overwriteOptions),this._register(c.onDidChangeConfiguration(E=>this._onParentConfigurationChanged(E)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(o){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(o){L.mixin(this._overwriteOptions,o,!0),super.updateOptions(this._overwriteOptions)}};e.EmbeddedCodeEditorWidget=i,e.EmbeddedCodeEditorWidget=i=De([he(4,b.IInstantiationService),he(5,k.ICodeEditorService),he(6,w.ICommandService),he(7,v.IContextKeyService),he(8,n.IThemeService),he(9,a.INotificationService),he(10,p.IAccessibilityService),he(11,D.ILanguageConfigurationService),he(12,S.ILanguageFeaturesService)],i)}),define(ne[381],se([1,0,6,235,27,2,32,129,266,262,28,8,588,110]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorItemTemplate=e.TemplateData=void 0;class t{constructor(c,d){this.viewModel=c,this.deltaScrollVertical=d}getId(){return this.viewModel}}e.TemplateData=t;let o=class extends D.Disposable{constructor(c,d,s,l){super(),this._container=c,this._overflowWidgetsDomNode=d,this._workbenchUIElementFactory=s,this._instantiationService=l,this._viewModel=(0,p.observableValue)(this,void 0),this._collapsed=(0,S.derived)(this,h=>{var u;return(u=this._viewModel.read(h))===null||u===void 0?void 0:u.collapsed.read(h)}),this._editorContentHeight=(0,p.observableValue)(this,500),this.contentHeight=(0,S.derived)(this,h=>(this._collapsed.read(h)?0:this._editorContentHeight.read(h))+this._outerEditorHeight),this._modifiedContentWidth=(0,p.observableValue)(this,0),this._modifiedWidth=(0,p.observableValue)(this,0),this._originalContentWidth=(0,p.observableValue)(this,0),this._originalWidth=(0,p.observableValue)(this,0),this.maxScroll=(0,S.derived)(this,h=>{const u=this._modifiedContentWidth.read(h)-this._modifiedWidth.read(h),f=this._originalContentWidth.read(h)-this._originalWidth.read(h);return u>f?{maxScroll:u,width:this._modifiedWidth.read(h)}:{maxScroll:f,width:this._originalWidth.read(h)}}),this._elements=(0,L.h)("div.multiDiffEntry",[(0,L.h)("div.header@header",[(0,L.h)("div.header-content",[(0,L.h)("div.collapse-button@collapseButton"),(0,L.h)("div.file-path",[(0,L.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,L.h)("div.status.deleted@status",["R"]),(0,L.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,L.h)("div.actions@actions")])]),(0,L.h)("div.editorParent",[(0,L.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(w.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=g(this.editor.getModifiedEditor()),this.isOriginalFocused=g(this.editor.getOriginalEditor()),this.isFocused=(0,S.derived)(this,h=>this.isModifedFocused.read(h)||this.isOriginalFocused.read(h)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new D.DisposableStore,this._headerHeight=48,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const r=new k.Button(this._elements.collapseButton,{});this._register((0,S.autorun)(h=>{r.element.className="",r.icon=this._collapsed.read(h)?y.Codicon.chevronRight:y.Codicon.chevronDown})),this._register(r.onDidClick(()=>{var h;(h=this._viewModel.get())===null||h===void 0||h.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,S.autorun)(h=>{this._elements.editor.style.display=this._collapsed.read(h)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(h=>{const u=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(u,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(h=>{const u=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(u,void 0)})),this._register(this.editor.onDidContentSizeChange(h=>{(0,p.globalTransaction)(u=>{this._editorContentHeight.set(h.contentHeight,u),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),u),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),u)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(h=>{if(this._isSettingScrollTop||!h.scrollTopChanged||!this._data)return;const u=h.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(u)})),this._register((0,S.autorun)(h=>{const u=this.isFocused.read(h);this._elements.root.classList.toggle("focused",u)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(v.MenuWorkbenchToolBar,this._elements.actions,b.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new n.ActionRunnerWithContext(()=>{var h;return(h=this._viewModel.get())===null||h===void 0?void 0:h.modifiedUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:h=>h.startsWith("navigation")},actionViewItemProvider:(h,u)=>(0,i.createActionViewItem)(l,h,u)}))}setScrollLeft(c){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(c):this.editor.getOriginalEditor().setScrollLeft(c)}setData(c){this._data=c;function d(l){return{...l,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}const s=c.viewModel.entry.value;s.onOptionsDidChange&&this._dataStore.add(s.onOptionsDidChange(()=>{var l;this.editor.updateOptions(d((l=s.options)!==null&&l!==void 0?l:{}))})),(0,p.globalTransaction)(l=>{var r,h,u,f;(r=this._resourceLabel)===null||r===void 0||r.setUri((h=c.viewModel.modifiedUri)!==null&&h!==void 0?h:c.viewModel.originalUri,{strikethrough:c.viewModel.modifiedUri===void 0});let C=!1,_=!1,E=!1,I="";c.viewModel.modifiedUri&&c.viewModel.originalUri&&c.viewModel.modifiedUri.path!==c.viewModel.originalUri.path?(I="R",C=!0):c.viewModel.modifiedUri?c.viewModel.originalUri||(I="A",E=!0):(I="D",_=!0),this._elements.status.classList.toggle("renamed",C),this._elements.status.classList.toggle("deleted",_),this._elements.status.classList.toggle("added",E),this._elements.status.innerText=I,(u=this._resourceLabel2)===null||u===void 0||u.setUri(C?c.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(c.viewModel,l),this.editor.setModel(c.viewModel.diffEditorViewModel,l),this.editor.updateOptions(d((f=s.options)!==null&&f!==void 0?f:{}))})}render(c,d,s,l){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${c.start}px`,this._elements.root.style.height=`${c.length}px`,this._elements.root.style.width=`${d}px`,this._elements.root.style.position="absolute";const r=c.length-this._headerHeight,h=Math.max(0,Math.min(l.start-c.start,r));this._elements.header.style.transform=`translateY(${h}px)`,(0,p.globalTransaction)(u=>{this.editor.layout({width:d-2*8-2*1,height:c.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=s,this.editor.getOriginalEditor().setScrollTop(s)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",h>0||s>0),this._elements.header.classList.toggle("collapsed",h===r)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};e.DiffEditorItemTemplate=o,e.DiffEditorItemTemplate=o=De([he(3,a.IInstantiationService)],o);function g(m){return(0,S.observableFromEvent)(c=>{const d=new D.DisposableStore;return d.add(m.onDidFocusEditorWidget(()=>c(!0))),d.add(m.onDidBlurEditorWidget(()=>c(!1))),d},()=>m.hasWidgetFocus())}}),define(ne[900],se([1,0,6,78,62,2,32,129,151,87,75,23,21,14,8,165,381,508,459]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidgetImpl=void 0;let c=class extends D.Disposable{constructor(l,r,h,u,f,C){super(),this._element=l,this._dimension=r,this._viewModel=h,this._workbenchUIElementFactory=u,this._parentContextKeyService=f,this._parentInstantiationService=C,this._elements=(0,L.h)("div.monaco-component.multiDiffEditor",[(0,L.h)("div@content",{style:{overflow:"hidden"}}),(0,L.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._sizeObserver=this._register(new v.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new m.ObjectPool(E=>{const I=this._instantiationService.createInstance(g.DiffEditorItemTemplate,this._elements.content,this._elements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return I.setData(E),I})),this._scrollable=this._register(new w.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:E=>(0,L.scheduleAtNextAnimationFrame)((0,L.getWindow)(this._element),E),smoothScrollDuration:100})),this._scrollableElement=this._register(new k.SmoothScrollableElement(this._elements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this.scrollTop=(0,S.observableFromEvent)(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,S.observableFromEvent)(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItems=(0,S.derivedWithStore)(this,(E,I)=>{const T=this._viewModel.read(E);return T?T.items.read(E).map(R=>{var M;const N=I.add(new d(R,this._objectPool,this.scrollLeft,F=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+F})})),P=(M=this._lastDocStates)===null||M===void 0?void 0:M[N.getKey()];return P&&(0,p.transaction)(F=>{N.setViewState(P,F)}),N}):[]}),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(E,I)=>E.reduce((T,A)=>T+A.contentHeight.read(I)+this._spaceBetweenPx,0)),this.activeDiffItem=(0,S.derived)(this,E=>this._viewItems.read(E).find(I=>{var T;return(T=I.template.read(E))===null||T===void 0?void 0:T.isFocused.read(E)})),this.lastActiveDiffItem=(0,S.derivedObservableWithCache)((E,I)=>{var T;return(T=this.activeDiffItem.read(E))!==null&&T!==void 0?T:I}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._parentInstantiationService.createChild(new o.ServiceCollection([i.IContextKeyService,this._contextKeyService])),this._lastDocStates={},this._contextKeyService.createKey(n.EditorContextKeys.inMultiDiffEditor.key,!0),this._register((0,S.autorunWithStore)((E,I)=>{const T=this._viewModel.read(E);if(T&&T.contextKeys)for(const[A,R]of Object.entries(T.contextKeys)){const M=this._contextKeyService.createKey(A,void 0);M.set(R),I.add((0,D.toDisposable)(()=>M.reset()))}}));const _=this._parentContextKeyService.createKey(n.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,S.autorun)(E=>{const I=this._viewModel.read(E);if(I){const T=I.items.read(E).every(A=>A.collapsed.read(E));_.set(T)}})),this._register((0,S.autorun)(E=>{const I=this.lastActiveDiffItem.read(E);(0,p.transaction)(T=>{var A;(A=this._viewModel.read(E))===null||A===void 0||A.activeDiffItem.set(I?.viewModel,T)})})),this._register((0,S.autorun)(E=>{const I=this._dimension.read(E);this._sizeObserver.observe(I)})),this._elements.content.style.position="relative",this._register((0,S.autorun)(E=>{const I=this._sizeObserver.height.read(E);this._elements.root.style.height=`${I}px`;const T=this._totalHeight.read(E);this._elements.content.style.height=`${T}px`;const A=this._sizeObserver.width.read(E);let R=A;const M=this._viewItems.read(E),N=(0,y.findFirstMaxBy)(M,P=>P.maxScroll.read(E).maxScroll);if(N){const P=N.maxScroll.read(E);R=A+P.maxScroll}this._scrollableElement.setScrollDimensions({width:A,height:I,scrollHeight:T,scrollWidth:R})})),l.replaceChildren(this._scrollableElement.getDomNode()),this._register((0,D.toDisposable)(()=>{l.replaceChildren()})),this._register(this._register((0,S.autorun)(E=>{(0,p.globalTransaction)(I=>{this.render(E)})})))}render(l){const r=this.scrollTop.read(l);let h=0,u=0,f=0;const C=this._sizeObserver.height.read(l),_=b.OffsetRange.ofStartAndLength(r,C),E=this._sizeObserver.width.read(l);for(const I of this._viewItems.read(l)){const T=I.contentHeight.read(l),A=Math.min(T,C),R=b.OffsetRange.ofStartAndLength(u,A),M=b.OffsetRange.ofStartAndLength(f,T);if(M.isBefore(_))h-=T-A,I.hide();else if(M.isAfter(_))I.hide();else{const N=Math.max(0,Math.min(_.start-M.start,T-A));h-=N;const P=b.OffsetRange.ofStartAndLength(r+h,C);I.render(R,N,E,P)}u+=A+this._spaceBetweenPx,f+=T+this._spaceBetweenPx}this._elements.content.style.transform=`translateY(${-(r+h)}px)`}};e.MultiDiffEditorWidgetImpl=c,e.MultiDiffEditorWidgetImpl=c=De([he(4,i.IContextKeyService),he(5,t.IInstantiationService)],c);class d extends D.Disposable{constructor(l,r,h,u){super(),this.viewModel=l,this._objectPool=r,this._scrollLeft=h,this._deltaScrollVertical=u,this._templateRef=this._register((0,p.disposableObservableValue)(this,void 0)),this.contentHeight=(0,S.derived)(this,f=>{var C,_,E;return(E=(_=(C=this._templateRef.read(f))===null||C===void 0?void 0:C.object.contentHeight)===null||_===void 0?void 0:_.read(f))!==null&&E!==void 0?E:this.viewModel.lastTemplateData.read(f).contentHeight}),this.maxScroll=(0,S.derived)(this,f=>{var C,_;return(_=(C=this._templateRef.read(f))===null||C===void 0?void 0:C.object.maxScroll.read(f))!==null&&_!==void 0?_:{maxScroll:0,scrollWidth:0}}),this.template=(0,S.derived)(this,f=>{var C;return(C=this._templateRef.read(f))===null||C===void 0?void 0:C.object}),this._isHidden=(0,S.observableValue)(this,!1),this._register((0,S.autorun)(f=>{var C;const _=this._scrollLeft.read(f);(C=this._templateRef.read(f))===null||C===void 0||C.object.setScrollLeft(_)})),this._register((0,S.autorun)(f=>{const C=this._templateRef.read(f);!C||!this._isHidden.read(f)||C.object.isFocused.read(f)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var l;return`VirtualViewItem(${(l=this.viewModel.entry.value.modified)===null||l===void 0?void 0:l.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(l,r){var h;this.viewModel.collapsed.set(l.collapsed,r),this._updateTemplateData(r);const u=this.viewModel.lastTemplateData.get(),f=(h=l.selections)===null||h===void 0?void 0:h.map(a.Selection.liftSelection);this.viewModel.lastTemplateData.set({...u,selections:f},r);const C=this._templateRef.get();C&&f&&C.object.editor.setSelections(f)}_updateTemplateData(l){var r;const h=this._templateRef.get();h&&this.viewModel.lastTemplateData.set({contentHeight:h.object.contentHeight.get(),selections:(r=h.object.editor.getSelections())!==null&&r!==void 0?r:void 0},l)}_clear(){const l=this._templateRef.get();l&&(0,p.transaction)(r=>{this._updateTemplateData(r),l.object.hide(),this._templateRef.set(void 0,r)})}hide(){this._isHidden.set(!0,void 0)}render(l,r,h,u){this._isHidden.set(!1,void 0);let f=this._templateRef.get();if(!f){f=this._objectPool.getUnusedObj(new g.TemplateData(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(f,void 0);const C=this.viewModel.lastTemplateData.get().selections;C&&f.object.editor.setSelections(C)}f.object.render(l,h,r,u)}}}),define(ne[901],se([1,0,2,32,87,900,8,381,845]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidget=void 0;let w=class extends L.Disposable{constructor(b,a,n){super(),this._element=b,this._workbenchUIElementFactory=a,this._instantiationService=n,this._dimension=(0,k.observableValue)(this,void 0),this._viewModel=(0,k.observableValue)(this,void 0),this._widgetImpl=(0,k.derivedWithStore)(this,(i,t)=>((0,y.readHotReloadableExport)(p.DiffEditorItemTemplate,i),t.add(this._instantiationService.createInstance((0,y.readHotReloadableExport)(D.MultiDiffEditorWidgetImpl,i),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,k.recomputeInitiallyAndOnChange)(this._widgetImpl))}};e.MultiDiffEditorWidget=w,e.MultiDiffEditorWidget=w=De([he(2,S.IInstantiationService)],w)}),define(ne[902],se([1,0,15,2,16,9,5,23,21,40,38,660,28,31,24,461]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketMatchingController=void 0;const o=(0,i.registerColor)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},a.localize(0,null));class g extends y.EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:a.localize(1,null),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(r,h){var u;(u=s.get(h))===null||u===void 0||u.jumpToBracket()}}class m extends y.EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:a.localize(2,null),alias:"Select to Bracket",precondition:void 0,metadata:{description:a.localize2(5,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(r,h,u){var f;let C=!0;u&&u.selectBrackets===!1&&(C=!1),(f=s.get(h))===null||f===void 0||f.selectToBracket(C)}}class c extends y.EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:a.localize(3,null),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(r,h){var u;(u=s.get(h))===null||u===void 0||u.removeBrackets(this.id)}}class d{constructor(r,h,u){this.position=r,this.brackets=h,this.options=u}}class s extends k.Disposable{static get(r){return r.getContribution(s.ID)}constructor(r){super(),this._editor=r,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new L.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(r.onDidChangeCursorPosition(h=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(r.onDidChangeModelContent(h=>{this._updateBracketsSoon.schedule()})),this._register(r.onDidChangeModel(h=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(r.onDidChangeModelLanguageConfiguration(h=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(r.onDidChangeConfiguration(h=>{h.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(r.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(r.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const r=this._editor.getModel(),h=this._editor.getSelections().map(u=>{const f=u.getStartPosition(),C=r.bracketPairs.matchBracket(f);let _=null;if(C)C[0].containsPosition(f)&&!C[1].containsPosition(f)?_=C[1].getStartPosition():C[1].containsPosition(f)&&(_=C[0].getStartPosition());else{const E=r.bracketPairs.findEnclosingBrackets(f);if(E)_=E[1].getStartPosition();else{const I=r.bracketPairs.findNextBracket(f);I&&I.range&&(_=I.range.getStartPosition())}}return _?new p.Selection(_.lineNumber,_.column,_.lineNumber,_.column):new p.Selection(f.lineNumber,f.column,f.lineNumber,f.column)});this._editor.setSelections(h),this._editor.revealRange(h[0])}selectToBracket(r){if(!this._editor.hasModel())return;const h=this._editor.getModel(),u=[];this._editor.getSelections().forEach(f=>{const C=f.getStartPosition();let _=h.bracketPairs.matchBracket(C);if(!_&&(_=h.bracketPairs.findEnclosingBrackets(C),!_)){const T=h.bracketPairs.findNextBracket(C);T&&T.range&&(_=h.bracketPairs.matchBracket(T.range.getStartPosition()))}let E=null,I=null;if(_){_.sort(S.Range.compareRangesUsingStarts);const[T,A]=_;if(E=r?T.getStartPosition():T.getEndPosition(),I=r?A.getEndPosition():A.getStartPosition(),A.containsPosition(C)){const R=E;E=I,I=R}}E&&I&&u.push(new p.Selection(E.lineNumber,E.column,I.lineNumber,I.column))}),u.length>0&&(this._editor.setSelections(u),this._editor.revealRange(u[0]))}removeBrackets(r){if(!this._editor.hasModel())return;const h=this._editor.getModel();this._editor.getSelections().forEach(u=>{const f=u.getPosition();let C=h.bracketPairs.matchBracket(f);C||(C=h.bracketPairs.findEnclosingBrackets(f)),C&&(this._editor.pushUndoStop(),this._editor.executeEdits(r,[{range:C[0],text:""},{range:C[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const r=[];let h=0;for(const u of this._lastBracketsData){const f=u.brackets;f&&(r[h++]={range:f[0],options:u.options},r[h++]={range:f[1],options:u.options})}this._decorations.set(r)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const r=this._editor.getSelections();if(r.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const h=this._editor.getModel(),u=h.getVersionId();let f=[];this._lastVersionId===u&&(f=this._lastBracketsData);const C=[];let _=0;for(let R=0,M=r.length;R1&&C.sort(D.Position.compare);const E=[];let I=0,T=0;const A=f.length;for(let R=0,M=C.length;Rthis.update(K))),this._lightBulbWidget=new D.Lazy(()=>{const K=this._editor.getContribution(i.LightBulbWidget.ID);return K&&this._register(K.onClick(j=>this.showCodeActionsFromLightbulb(j.actions,j))),K}),this._resolver=P.createInstance(a.CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(R,M){if(R.allAIFixes&&R.validActions.length===1){const N=R.validActions[0],P=N.action.command;P&&P.id==="inlineChat.start"&&P.arguments&&P.arguments.length>=1&&(P.arguments[0]={...P.arguments[0],autoSend:!1}),await this._applyCodeAction(N,!1,!1,b.ApplyCodeActionReason.FromAILightbulb);return}await this.showCodeActionList(R,M,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(R,M,N){return this.showCodeActionList(M,N,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(R,M,N,P){var F;if(!this._editor.hasModel())return;(F=t.MessageController.get(this._editor))===null||F===void 0||F.closeMessage();const O=this._editor.getPosition();this._trigger({type:1,triggerAction:M,filter:N,autoApply:P,context:{notAvailableMessage:R,position:O}})}_trigger(R){return this._model.trigger(R)}async _applyCodeAction(R,M,N,P){try{await this._instantiationService.invokeFunction(b.applyCodeAction,R,P,{preview:N,editor:this._editor})}finally{M&&this._trigger({type:2,triggerAction:C.CodeActionTriggerSource.QuickFix,filter:{}})}}async update(R){var M,N,P,F,O,B,W;if(R.type!==1){(M=this._lightBulbWidget.rawValue)===null||M===void 0||M.hide();return}let V;try{V=await R.actions}catch(z){(0,y.onUnexpectedError)(z);return}if(!this._disposed)if((N=this._lightBulbWidget.value)===null||N===void 0||N.update(V,R.trigger,R.position),R.trigger.type===1){if(!((P=R.trigger.filter)===null||P===void 0)&&P.include){const K=this.tryGetValidActionToApply(R.trigger,V);if(K){try{(F=this._lightBulbWidget.value)===null||F===void 0||F.hide(),await this._applyCodeAction(K,!1,!1,b.ApplyCodeActionReason.FromCodeActions)}finally{V.dispose()}return}if(R.trigger.context){const j=this.getInvalidActionThatWouldHaveBeenApplied(R.trigger,V);if(j&&j.action.disabled){(O=t.MessageController.get(this._editor))===null||O===void 0||O.showMessage(j.action.disabled,R.trigger.context.position),V.dispose();return}}}const z=!!(!((B=R.trigger.filter)===null||B===void 0)&&B.include);if(R.trigger.context&&(!V.allActions.length||!z&&!V.validActions.length)){(W=t.MessageController.get(this._editor))===null||W===void 0||W.showMessage(R.trigger.context.notAvailableMessage,R.trigger.context.position),this._activeCodeActions.value=V,V.dispose();return}this._activeCodeActions.value=V,this.showCodeActionList(V,this.toCoords(R.position),{includeDisabledActions:z,fromLightbulb:!1})}else this._actionWidgetService.isVisible?V.dispose():this._activeCodeActions.value=V}getInvalidActionThatWouldHaveBeenApplied(R,M){if(M.allActions.length&&(R.autoApply==="first"&&M.validActions.length===0||R.autoApply==="ifSingle"&&M.allActions.length===1))return M.allActions.find(({action:N})=>N.disabled)}tryGetValidActionToApply(R,M){if(M.validActions.length&&(R.autoApply==="first"&&M.validActions.length>0||R.autoApply==="ifSingle"&&M.validActions.length===1))return M.validActions[0]}async showCodeActionList(R,M,N){const P=this._editor.createDecorationsCollection(),F=this._editor.getDomNode();if(!F)return;const O=N.includeDisabledActions&&(this._showDisabled||R.validActions.length===0)?R.allActions:R.validActions;if(!O.length)return;const B=p.Position.isIPosition(M)?this.toCoords(M):M,W={onSelect:async(V,z)=>{this._applyCodeAction(V,!0,!!z,b.ApplyCodeActionReason.FromCodeActions),this._actionWidgetService.hide(),P.clear()},onHide:()=>{var V;(V=this._editor)===null||V===void 0||V.focus(),P.clear()},onHover:async(V,z)=>{var K;if(!z.isCancellationRequested)return{canPreview:!!(!((K=V.action.edit)===null||K===void 0)&&K.edits.length)}},onFocus:V=>{var z,K;if(V&&V.action){const j=V.action.ranges,x=V.action.diagnostics;if(P.clear(),j&&j.length>0){const re=x&&x?.length>1?x.map(ie=>({range:ie,options:E.DECORATION})):j.map(ie=>({range:ie,options:E.DECORATION}));P.set(re)}else if(x&&x.length>0){const re=x.map(J=>({range:J,options:E.DECORATION}));P.set(re);const ie=x[0];if(ie.startLineNumber&&ie.startColumn){const J=(K=(z=this._editor.getModel())===null||z===void 0?void 0:z.getWordAtPosition({lineNumber:ie.startLineNumber,column:ie.startColumn}))===null||K===void 0?void 0:K.word;k.status((0,o.localize)(0,null,J,ie.startLineNumber,ie.startColumn))}}}else P.clear()}};this._actionWidgetService.show("codeActionWidget",!0,(0,n.toMenuItems)(O,this._shouldShowHeaders(),this._resolver.getResolver()),W,B,F,this._getActionBarActions(R,M,N))}toCoords(R){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(R,1),this._editor.render();const M=this._editor.getScrolledVisiblePosition(R),N=(0,L.getDomNodePagePosition)(this._editor.getDomNode()),P=N.left+M.left,F=N.top+M.top+M.height;return{x:P,y:F}}_shouldShowHeaders(){var R;const M=(R=this._editor)===null||R===void 0?void 0:R.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:M?.uri})}_getActionBarActions(R,M,N){if(N.fromLightbulb)return[];const P=R.documentation.map(F=>{var O;return{id:F.id,label:F.title,tooltip:(O=F.tooltip)!==null&&O!==void 0?O:"",class:void 0,enabled:!0,run:()=>{var B;return this._commandService.executeCommand(F.id,...(B=F.arguments)!==null&&B!==void 0?B:[])}}});return N.includeDisabledActions&&R.validActions.length>0&&R.allActions.length!==R.validActions.length&&P.push(this._showDisabled?{id:"hideMoreActions",label:(0,o.localize)(1,null),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(R,M,N))}:{id:"showMoreActions",label:(0,o.localize)(2,null),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(R,M,N))}),P}};e.CodeActionController=T,T.ID="editor.contrib.codeActionController",T.DECORATION=w.ModelDecorationOptions.register({description:"quickfix-highlight",className:I}),e.CodeActionController=T=E=De([he(1,l.IMarkerService),he(2,d.IContextKeyService),he(3,s.IInstantiationService),he(4,v.ILanguageFeaturesService),he(5,r.IEditorProgressService),he(6,m.ICommandService),he(7,c.IConfigurationService),he(8,g.IActionWidgetService),he(9,s.IInstantiationService)],T),(0,f.registerThemingParticipant)((A,R)=>{((P,F)=>{F&&R.addRule(`.monaco-editor ${P} { background-color: ${F}; }`)})(".quickfix-edit-highlight",A.getColor(h.editorFindMatchHighlight));const N=A.getColor(h.editorFindMatchHighlightBorder);N&&R.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${(0,u.isHighContrast)(A.type)?"dotted":"solid"} ${N}; box-sizing: border-box; }`)})}),define(ne[903],se([1,0,11,16,21,146,665,14,119,267,367]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoFixAction=e.FixAllAction=e.OrganizeImportsAction=e.SourceAction=e.RefactorAction=e.CodeActionCommand=e.QuickFixAction=void 0;function a(l){return p.ContextKeyExpr.regex(b.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+(0,L.escapeRegExpCharacters)(l.value)+"\\b"))}const n={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:S.localize(0,null)},apply:{type:"string",description:S.localize(1,null),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[S.localize(2,null),S.localize(3,null),S.localize(4,null)]},preferred:{type:"boolean",default:!1,description:S.localize(5,null)}}};function i(l,r,h,u,f=w.CodeActionTriggerSource.Default){if(l.hasModel()){const C=v.CodeActionController.get(l);C?.manualTriggerAtCurrentPosition(r,f,h,u)}}class t extends k.EditorAction{constructor(){super({id:D.quickFixCommandId,label:S.localize(6,null),alias:"Quick Fix...",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,y.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(r,h){return i(h,S.localize(7,null),void 0,void 0,w.CodeActionTriggerSource.QuickFix)}}e.QuickFixAction=t;class o extends k.EditorCommand{constructor(){super({id:D.codeActionCommandId,precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,y.EditorContextKeys.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:n}]}})}runEditorCommand(r,h,u){const f=w.CodeActionCommandArgs.fromUser(u,{kind:w.CodeActionKind.Empty,apply:"ifSingle"});return i(h,typeof u?.kind=="string"?f.preferred?S.localize(8,null,u.kind):S.localize(9,null,u.kind):f.preferred?S.localize(10,null):S.localize(11,null),{include:f.kind,includeSourceActions:!0,onlyIncludePreferredActions:f.preferred},f.apply)}}e.CodeActionCommand=o;class g extends k.EditorAction{constructor(){super({id:D.refactorCommandId,label:S.localize(12,null),alias:"Refactor...",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,y.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:p.ContextKeyExpr.and(y.EditorContextKeys.writable,a(w.CodeActionKind.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:n}]}})}run(r,h,u){const f=w.CodeActionCommandArgs.fromUser(u,{kind:w.CodeActionKind.Refactor,apply:"never"});return i(h,typeof u?.kind=="string"?f.preferred?S.localize(13,null,u.kind):S.localize(14,null,u.kind):f.preferred?S.localize(15,null):S.localize(16,null),{include:w.CodeActionKind.Refactor.contains(f.kind)?f.kind:w.CodeActionKind.None,onlyIncludePreferredActions:f.preferred},f.apply,w.CodeActionTriggerSource.Refactor)}}e.RefactorAction=g;class m extends k.EditorAction{constructor(){super({id:D.sourceActionCommandId,label:S.localize(17,null),alias:"Source Action...",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,y.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:p.ContextKeyExpr.and(y.EditorContextKeys.writable,a(w.CodeActionKind.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:n}]}})}run(r,h,u){const f=w.CodeActionCommandArgs.fromUser(u,{kind:w.CodeActionKind.Source,apply:"never"});return i(h,typeof u?.kind=="string"?f.preferred?S.localize(18,null,u.kind):S.localize(19,null,u.kind):f.preferred?S.localize(20,null):S.localize(21,null),{include:w.CodeActionKind.Source.contains(f.kind)?f.kind:w.CodeActionKind.None,includeSourceActions:!0,onlyIncludePreferredActions:f.preferred},f.apply,w.CodeActionTriggerSource.SourceAction)}}e.SourceAction=m;class c extends k.EditorAction{constructor(){super({id:D.organizeImportsCommandId,label:S.localize(22,null),alias:"Organize Imports",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,a(w.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(r,h){return i(h,S.localize(23,null),{include:w.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",w.CodeActionTriggerSource.OrganizeImports)}}e.OrganizeImportsAction=c;class d extends k.EditorAction{constructor(){super({id:D.fixAllCommandId,label:S.localize(24,null),alias:"Fix All",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,a(w.CodeActionKind.SourceFixAll))})}run(r,h){return i(h,S.localize(25,null),{include:w.CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle",w.CodeActionTriggerSource.FixAll)}}e.FixAllAction=d;class s extends k.EditorAction{constructor(){super({id:D.autoFixCommandId,label:S.localize(26,null),alias:"Auto Fix...",precondition:p.ContextKeyExpr.and(y.EditorContextKeys.writable,a(w.CodeActionKind.QuickFix)),kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(r,h){return i(h,S.localize(27,null),{include:w.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",w.CodeActionTriggerSource.AutoFix)}}e.AutoFixAction=s}),define(ne[904],se([1,0,16,251,903,267,368,666,101,37]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(D.CodeActionController.ID,D.CodeActionController,3),(0,L.registerEditorContribution)(S.LightBulbWidget.ID,S.LightBulbWidget,4),(0,L.registerEditorAction)(y.QuickFixAction),(0,L.registerEditorAction)(y.RefactorAction),(0,L.registerEditorAction)(y.SourceAction),(0,L.registerEditorAction)(y.OrganizeImportsAction),(0,L.registerEditorAction)(y.AutoFixAction),(0,L.registerEditorAction)(y.FixAllAction),(0,L.registerEditorCommand)(new y.CodeActionCommand),v.Registry.as(w.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:p.localize(0,null),default:!0}}}),v.Registry.as(w.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:p.localize(1,null),default:!0}}})}),define(ne[905],se([1,0,6,104,5,38,463]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensWidget=e.CodeLensHelper=void 0;class S{constructor(n,i,t){this.afterColumn=1073741824,this.afterLineNumber=n,this.heightInPx=i,this._onHeight=t,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(n){this._lastHeight===void 0?this._lastHeight=n:this._lastHeight!==n&&(this._lastHeight=n,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class p{constructor(n,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=n,this._id=`codelens.widget-${p._idPool++}`,this.updatePosition(i),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(n,i){this._commands.clear();const t=[];let o=!1;for(let g=0;g{s.symbol.command&&d.push(s.symbol),t.addDecoration({range:s.symbol.range,options:v},r=>this._decorationIds[l]=r),c?c=y.Range.plusRange(c,s.symbol.range):c=y.Range.lift(s.symbol.range)}),this._viewZone=new S(c.startLineNumber-1,g,m),this._viewZoneId=o.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new p(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(n,i){this._decorationIds.forEach(n.removeDecoration,n),this._decorationIds=[],i?.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((n,i)=>{const t=this._editor.getModel().getDecorationRange(n),o=this._data[i].symbol;return!!(t&&y.Range.isEmpty(o.range)===t.isEmpty())})}updateCodeLensSymbols(n,i){this._decorationIds.forEach(i.removeDecoration,i),this._decorationIds=[],this._data=n,this._data.forEach((t,o)=>{i.addDecoration({range:t.symbol.range,options:v},g=>this._decorationIds[o]=g)})}updateHeight(n,i){this._viewZone.heightInPx=n,i.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(n){if(!this._viewZone.isVisible())return null;for(let i=0;ithis._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(C=>{(C.hasChanged(50)||C.hasChanged(19)||C.hasChanged(18))&&this._updateLensStyle(),C.hasChanged(17)&&this._onModelChange()})),this._disposables.add(l.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var s;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(s=this._currentCodeLensModel)===null||s===void 0||s.dispose()}_getLayoutInfo(){const s=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let l=this._editor.getOption(19);return(!l||l<5)&&(l=this._editor.getOption(52)*.9|0),{fontSize:l,codeLensHeight:l*s|0}}_updateLensStyle(){const{codeLensHeight:s,fontSize:l}=this._getLayoutInfo(),r=this._editor.getOption(18),h=this._editor.getOption(50),{style:u}=this._editor.getContainerDomNode();u.setProperty("--vscode-editorCodeLens-lineHeight",`${s}px`),u.setProperty("--vscode-editorCodeLens-fontSize",`${l}px`),u.setProperty("--vscode-editorCodeLens-fontFeatureSettings",h.fontFeatureSettings),r&&(u.setProperty("--vscode-editorCodeLens-fontFamily",r),u.setProperty("--vscode-editorCodeLens-fontFamilyDefault",p.EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(f=>{for(const C of this._lenses)C.updateHeight(s,f)})}_localDispose(){var s,l,r;(s=this._getCodeLensModelPromise)===null||s===void 0||s.cancel(),this._getCodeLensModelPromise=void 0,(l=this._resolveCodeLensesPromise)===null||l===void 0||l.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(r=this._currentCodeLensModel)===null||r===void 0||r.dispose()}_onModelChange(){this._localDispose();const s=this._editor.getModel();if(!s||!this._editor.getOption(17)||s.isTooLargeForTokenization())return;const l=this._codeLensCache.get(s);if(l&&this._renderCodeLensSymbols(l),!this._languageFeaturesService.codeLensProvider.has(s)){l&&(0,L.disposableTimeout)(()=>{const h=this._codeLensCache.get(s);l===h&&(this._codeLensCache.delete(s),this._onModelChange())},30*1e3,this._localToDispose);return}for(const h of this._languageFeaturesService.codeLensProvider.all(s))if(typeof h.onDidChange=="function"){const u=h.onDidChange(()=>r.schedule());this._localToDispose.add(u)}const r=new L.RunOnceScheduler(()=>{var h;const u=Date.now();(h=this._getCodeLensModelPromise)===null||h===void 0||h.cancel(),this._getCodeLensModelPromise=(0,L.createCancelablePromise)(f=>(0,v.getCodeLensModel)(this._languageFeaturesService.codeLensProvider,s,f)),this._getCodeLensModelPromise.then(f=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=f,this._codeLensCache.put(s,f);const C=this._provideCodeLensDebounce.update(s,Date.now()-u);r.delay=C,this._renderCodeLensSymbols(f),this._resolveCodeLensesInViewportSoon()},k.onUnexpectedError)},this._provideCodeLensDebounce.get(s));this._localToDispose.add(r),this._localToDispose.add((0,y.toDisposable)(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var h;this._editor.changeDecorations(u=>{this._editor.changeViewZones(f=>{const C=[];let _=-1;this._lenses.forEach(I=>{!I.isValid()||_===I.getLineNumber()?C.push(I):(I.update(f),_=I.getLineNumber())});const E=new a.CodeLensHelper;C.forEach(I=>{I.dispose(E,f),this._lenses.splice(this._lenses.indexOf(I),1)}),E.commit(u)})}),r.schedule(),this._resolveCodeLensesScheduler.cancel(),(h=this._resolveCodeLensesPromise)===null||h===void 0||h.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorWidget(()=>{r.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{r.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(h=>{h.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add((0,y.toDisposable)(()=>{if(this._editor.getModel()){const h=D.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(u=>{this._editor.changeViewZones(f=>{this._disposeAllLenses(u,f)})}),h.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(h=>{if(h.target.type!==9)return;let u=h.target.element;if(u?.tagName==="SPAN"&&(u=u.parentElement),u?.tagName==="A")for(const f of this._lenses){const C=f.getCommand(u);if(C){this._commandService.executeCommand(C.id,...C.arguments||[]).catch(_=>this._notificationService.error(_));break}}})),r.schedule()}_disposeAllLenses(s,l){const r=new a.CodeLensHelper;for(const h of this._lenses)h.dispose(r,l);s&&r.commit(s),this._lenses.length=0}_renderCodeLensSymbols(s){if(!this._editor.hasModel())return;const l=this._editor.getModel().getLineCount(),r=[];let h;for(const C of s.lenses){const _=C.symbol.range.startLineNumber;_<1||_>l||(h&&h[h.length-1].symbol.range.startLineNumber===_?h.push(C):(h=[C],r.push(h)))}if(!r.length&&!this._lenses.length)return;const u=D.StableEditorScrollState.capture(this._editor),f=this._getLayoutInfo();this._editor.changeDecorations(C=>{this._editor.changeViewZones(_=>{const E=new a.CodeLensHelper;let I=0,T=0;for(;Tthis._resolveCodeLensesInViewportSoon())),I++,T++)}for(;Ithis._resolveCodeLensesInViewportSoon())),T++;E.commit(C)})}),u.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var s;(s=this._resolveCodeLensesPromise)===null||s===void 0||s.cancel(),this._resolveCodeLensesPromise=void 0;const l=this._editor.getModel();if(!l)return;const r=[],h=[];if(this._lenses.forEach(C=>{const _=C.computeIfNecessary(l);_&&(r.push(_),h.push(C))}),r.length===0)return;const u=Date.now(),f=(0,L.createCancelablePromise)(C=>{const _=r.map((E,I)=>{const T=new Array(E.length),A=E.map((R,M)=>!R.symbol.command&&typeof R.provider.resolveCodeLens=="function"?Promise.resolve(R.provider.resolveCodeLens(l,R.symbol,C)).then(N=>{T[M]=N},k.onUnexpectedExternalError):(T[M]=R.symbol,Promise.resolve(void 0)));return Promise.all(A).then(()=>{!C.isCancellationRequested&&!h[I].isDisposed()&&h[I].updateCommands(T)})});return Promise.all(_)});this._resolveCodeLensesPromise=f,this._resolveCodeLensesPromise.then(()=>{const C=this._resolveCodeLensesDebounce.update(l,Date.now()-u);this._resolveCodeLensesScheduler.delay=C,this._currentCodeLensModel&&this._codeLensCache.put(l,this._currentCodeLensModel),this._oldCodeLensModels.clear(),f===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},C=>{(0,k.onUnexpectedError)(C),f===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var s;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,!((s=this._currentCodeLensModel)===null||s===void 0)&&s.isDisposed?void 0:this._currentCodeLensModel}};e.CodeLensContribution=c,c.ID="css.editor.codeLens",e.CodeLensContribution=c=De([he(1,m.ILanguageFeaturesService),he(2,g.ILanguageFeatureDebounceService),he(3,i.ICommandService),he(4,t.INotificationService),he(5,b.ICodeLensCache)],c),(0,S.registerEditorContribution)(c.ID,c,1),(0,S.registerEditorAction)(class extends S.EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:w.EditorContextKeys.hasCodeLensProvider,label:(0,n.localize)(0,null),alias:"Show CodeLens Commands For Current Line"})}async run(s,l){if(!l.hasModel())return;const r=s.get(o.IQuickInputService),h=s.get(i.ICommandService),u=s.get(t.INotificationService),f=l.getSelection().positionLineNumber,C=l.getContribution(c.ID);if(!C)return;const _=await C.getModel();if(!_)return;const E=[];for(const A of _.lenses)A.symbol.command&&A.symbol.range.startLineNumber===f&&E.push({label:A.symbol.command.title,command:A.symbol.command});if(E.length===0)return;const I=await r.pick(E,{canPickMany:!1,placeHolder:(0,n.localize)(1,null)});if(!I)return;let T=I.command;if(_.isDisposed){const A=await C.getModel(),R=A?.lenses.find(M=>{var N;return M.symbol.range.startLineNumber===f&&((N=M.symbol.command)===null||N===void 0?void 0:N.title)===T.title});if(!R||!R.symbol.command)return;T=R.symbol.command}try{await h.executeCommand(T.id,...T.arguments||[])}catch(A){u.error(A)}}})}),define(ne[382],se([1,0,15,39,12,7,2,63,11,169,16,5,38,80,18,361,26]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.DecoratorLimitReporter=e.ColorDetector=e.ColorDecorationInjectedTextMarker=void 0,e.ColorDecorationInjectedTextMarker=Object.create({});let c=m=class extends S.Disposable{constructor(l,r,h,u){super(),this._editor=l,this._configurationService=r,this._languageFeaturesService=h,this._localToDispose=this._register(new S.DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new v.DynamicCssRules(this._editor),this._decoratorLimitReporter=new d,this._colorDecorationClassRefs=this._register(new S.DisposableStore),this._debounceInformation=u.for(h.colorProvider,"Document Colors",{min:m.RECOMPUTE_TIME}),this._register(l.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(l.onDidChangeModelLanguage(()=>this.updateColors())),this._register(h.colorProvider.onDidChange(()=>this.updateColors())),this._register(l.onDidChangeConfiguration(f=>{const C=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(146);const _=C!==this._isColorDecoratorsEnabled||f.hasChanged(21),E=f.hasChanged(146);(_||E)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(146),this.updateColors()}isEnabled(){const l=this._editor.getModel();if(!l)return!1;const r=l.getLanguageId(),h=this._configurationService.getValue(r);if(h&&typeof h=="object"){const u=h.colorDecorators;if(u&&u.enable!==void 0&&!u.enable)return u.enable}return this._editor.getOption(20)}static get(l){return l.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const l=this._editor.getModel();!l||!this._languageFeaturesService.colorProvider.has(l)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new L.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(l)))})),this.beginCompute())}async beginCompute(){this._computePromise=(0,L.createCancelablePromise)(async l=>{const r=this._editor.getModel();if(!r)return[];const h=new p.StopWatch(!1),u=await(0,o.getColors)(this._languageFeaturesService.colorProvider,r,l,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(r,h.elapsed()),u});try{const l=await this._computePromise;this.updateDecorations(l),this.updateColorDecorators(l),this._computePromise=null}catch(l){(0,y.onUnexpectedError)(l)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(l){const r=l.map(h=>({range:{startLineNumber:h.colorInfo.range.startLineNumber,startColumn:h.colorInfo.range.startColumn,endLineNumber:h.colorInfo.range.endLineNumber,endColumn:h.colorInfo.range.endColumn},options:n.ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(h=>{this._decorationsIds=h.deltaDecorations(this._decorationsIds,r),this._colorDatas=new Map,this._decorationsIds.forEach((u,f)=>this._colorDatas.set(u,l[f]))})}updateColorDecorators(l){this._colorDecorationClassRefs.clear();const r=[],h=this._editor.getOption(21);for(let f=0;fthis._colorDatas.has(u.id));return h.length===0?null:this._colorDatas.get(h[0].id)}isColorDecoration(l){return this._colorDecoratorIds.has(l)}};e.ColorDetector=c,c.ID="editor.contrib.colorDetector",c.RECOMPUTE_TIME=1e3,e.ColorDetector=c=m=De([he(1,g.IConfigurationService),he(2,t.ILanguageFeaturesService),he(3,i.ILanguageFeatureDebounceService)],c);class d{constructor(){this._onDidChange=new D.Emitter,this._computed=0,this._limited=!1}update(l,r){(l!==this._computed||r!==this._limited)&&(this._computed=l,this._limited=r,this._onDidChange.fire())}}e.DecoratorLimitReporter=d,(0,b.registerEditorContribution)(c.ID,c,1)}),define(ne[383],se([1,0,15,19,39,2,5,361,382,562,852,24,6]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerParticipant=e.StandaloneColorPickerHover=e.ColorHoverParticipant=e.ColorHover=void 0;class i{constructor(r,h,u,f){this.owner=r,this.range=h,this.model=u,this.provider=f,this.forceShowAtRange=!0}isValidForHoverAnchor(r){return r.type===1&&this.range.startColumn<=r.range.startColumn&&this.range.endColumn>=r.range.endColumn}}e.ColorHover=i;let t=class{constructor(r,h){this._editor=r,this._themeService=h,this.hoverOrdinal=2}computeSync(r,h){return[]}computeAsync(r,h,u){return L.AsyncIterableObject.fromPromise(this._computeAsync(r,h,u))}async _computeAsync(r,h,u){if(!this._editor.hasModel())return[];const f=w.ColorDetector.get(this._editor);if(!f)return[];for(const C of h){if(!f.isColorDecoration(C))continue;const _=f.getColorData(C.range.getStartPosition());if(_)return[await m(this,this._editor.getModel(),_.colorInfo,_.provider)]}return[]}renderHoverParts(r,h){return c(this,this._editor,this._themeService,h,r)}};e.ColorHoverParticipant=t,e.ColorHoverParticipant=t=De([he(1,a.IThemeService)],t);class o{constructor(r,h,u,f){this.owner=r,this.range=h,this.model=u,this.provider=f}}e.StandaloneColorPickerHover=o;let g=class{constructor(r,h){this._editor=r,this._themeService=h,this._color=null}async createColorHover(r,h,u){if(!this._editor.hasModel()||!w.ColorDetector.get(this._editor))return null;const C=await(0,p.getColors)(u,this._editor.getModel(),k.CancellationToken.None);let _=null,E=null;for(const R of C){const M=R.colorInfo;S.Range.containsRange(M.range,r.range)&&(_=M,E=R.provider)}const I=_??r,T=E??h,A=!!_;return{colorHover:await m(this,this._editor.getModel(),I,T),foundInEditor:A}}async updateEditorModel(r){if(!this._editor.hasModel())return;const h=r.model;let u=new S.Range(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);this._color&&(await s(this._editor.getModel(),h,this._color,u,r),u=d(this._editor,u,h))}renderHoverParts(r,h){return c(this,this._editor,this._themeService,h,r)}set color(r){this._color=r}get color(){return this._color}};e.StandaloneColorPickerParticipant=g,e.StandaloneColorPickerParticipant=g=De([he(1,a.IThemeService)],g);async function m(l,r,h,u){const f=r.getValueInRange(h.range),{red:C,green:_,blue:E,alpha:I}=h.color,T=new y.RGBA(Math.round(C*255),Math.round(_*255),Math.round(E*255),I),A=new y.Color(T),R=await(0,p.getColorPresentations)(r,h,u,k.CancellationToken.None),M=new v.ColorPickerModel(A,[],0);return M.colorPresentations=R||[],M.guessColorPresentation(A,f),l instanceof t?new i(l,S.Range.lift(h.range),M,u):new o(l,S.Range.lift(h.range),M,u)}function c(l,r,h,u,f){if(u.length===0||!r.hasModel())return D.Disposable.None;if(f.setMinimumDimensions){const M=r.getOption(67)+8;f.setMinimumDimensions(new n.Dimension(302,M))}const C=new D.DisposableStore,_=u[0],E=r.getModel(),I=_.model,T=C.add(new b.ColorPickerWidget(f.fragment,I,r.getOption(142),h,l instanceof g));f.setColorPicker(T);let A=!1,R=new S.Range(_.range.startLineNumber,_.range.startColumn,_.range.endLineNumber,_.range.endColumn);if(l instanceof g){const M=u[0].model.color;l.color=M,s(E,I,M,R,_),C.add(I.onColorFlushed(N=>{l.color=N}))}else C.add(I.onColorFlushed(async M=>{await s(E,I,M,R,_),A=!0,R=d(r,R,I)}));return C.add(I.onDidChangeColor(M=>{s(E,I,M,R,_)})),C.add(r.onDidChangeModelContent(M=>{A?A=!1:(f.hide(),r.focus())})),C}function d(l,r,h){var u,f;const C=[],_=(u=h.presentation.textEdit)!==null&&u!==void 0?u:{range:r,text:h.presentation.label,forceMoveMarkers:!1};C.push(_),h.presentation.additionalTextEdits&&C.push(...h.presentation.additionalTextEdits);const E=S.Range.lift(_.range),I=l.getModel()._setTrackedRange(null,E,3);return l.executeEdits("colorpicker",C),l.pushUndoStop(),(f=l.getModel()._getTrackedRange(I))!==null&&f!==void 0?f:E}async function s(l,r,h,u,f){const C=await(0,p.getColorPresentations)(l,{range:u,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},f.provider,k.CancellationToken.None);r.colorPresentations=C||[]}}),define(ne[907],se([1,0,2,17,16,9,5,23,38,564,464]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropController=void 0;function b(n){return k.isMacintosh?n.altKey:n.ctrlKey}class a extends L.Disposable{constructor(i){super(),this._editor=i,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(i){!this._editor.getOption(35)||this._editor.getOption(22)||(b(i)&&(this._modifierPressed=!0),this._mouseDown&&b(i)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(i){!this._editor.getOption(35)||this._editor.getOption(22)||(b(i)&&(this._modifierPressed=!1),this._mouseDown&&i.keyCode===a.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(i){this._mouseDown=!0}_onEditorMouseUp(i){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(i){const t=i.target;if(this._dragSelection===null){const g=(this._editor.getSelections()||[]).filter(m=>t.position&&m.containsPosition(t.position));if(g.length===1)this._dragSelection=g[0];else return}b(i.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(i){if(i.target&&(this._hitContent(i.target)||this._hitMargin(i.target))&&i.target.position){const t=new D.Position(i.target.position.lineNumber,i.target.position.column);if(this._dragSelection===null){let o=null;if(i.event.shiftKey){const g=this._editor.getSelection();if(g){const{selectionStartLineNumber:m,selectionStartColumn:c}=g;o=[new p.Selection(m,c,t.lineNumber,t.column)]}}else o=(this._editor.getSelections()||[]).map(g=>g.containsPosition(t)?new p.Selection(t.lineNumber,t.column,t.lineNumber,t.column):g);this._editor.setSelections(o||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(b(i.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(a.ID,new v.DragAndDropCommand(this._dragSelection,t,b(i.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(i){this._dndDecorationIds.set([{range:new S.Range(i.lineNumber,i.column,i.lineNumber,i.column),options:a._DECORATION_OPTIONS}]),this._editor.revealPosition(i,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(i){return i.type===6||i.type===7}_hitMargin(i){return i.type===2||i.type===3||i.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}e.DragAndDropController=a,a.ID="editor.contrib.dragAndDrop",a.TRIGGER_KEY_VALUE=k.isMacintosh?6:5,a._DECORATION_OPTIONS=w.ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"}),(0,y.registerEditorContribution)(a.ID,a,2)}),define(ne[908],se([1,0,5,40,38,31,24]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindDecorations=void 0;class p{constructor(v){this._editor=v,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const v=this._findScopeDecorationIds.map(b=>this._editor.getModel().getDecorationRange(b)).filter(b=>!!b);if(v.length)return v}return null}getStartPosition(){return this._startPosition}setStartPosition(v){this._startPosition=v,this.setCurrentFindMatch(null)}_getDecorationIndex(v){const b=this._decorations.indexOf(v);return b>=0?b+1:1}getDecorationRangeAt(v){const b=v{if(this._highlightedDecorationId!==null&&(n.changeDecorationOptions(this._highlightedDecorationId,p._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),b!==null&&(this._highlightedDecorationId=b,n.changeDecorationOptions(this._highlightedDecorationId,p._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),b!==null){let i=this._editor.getModel().getDecorationRange(b);if(i.startLineNumber!==i.endLineNumber&&i.endColumn===1){const t=i.endLineNumber-1,o=this._editor.getModel().getLineMaxColumn(t);i=new L.Range(i.startLineNumber,i.startColumn,t,o)}this._rangeHighlightDecorationId=n.addDecoration(i,p._RANGE_HIGHLIGHT_DECORATION)}}),a}set(v,b){this._editor.changeDecorations(a=>{let n=p._FIND_MATCH_DECORATION;const i=[];if(v.length>1e3){n=p._FIND_MATCH_NO_OVERVIEW_DECORATION;const o=this._editor.getModel().getLineCount(),m=this._editor.getLayoutInfo().height/o,c=Math.max(2,Math.ceil(3/m));let d=v[0].range.startLineNumber,s=v[0].range.endLineNumber;for(let l=1,r=v.length;l=h.startLineNumber?h.endLineNumber>s&&(s=h.endLineNumber):(i.push({range:new L.Range(d,1,s,1),options:p._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),d=h.startLineNumber,s=h.endLineNumber)}i.push({range:new L.Range(d,1,s,1),options:p._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const t=new Array(v.length);for(let o=0,g=v.length;oa.removeDecoration(o)),this._findScopeDecorationIds=[]),b?.length&&(this._findScopeDecorationIds=b.map(o=>a.addDecoration(o,p._FIND_SCOPE_DECORATION)))})}matchBeforePosition(v){if(this._decorations.length===0)return null;for(let b=this._decorations.length-1;b>=0;b--){const a=this._decorations[b],n=this._editor.getModel().getDecorationRange(a);if(!(!n||n.endLineNumber>v.lineNumber)){if(n.endLineNumberv.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(v){if(this._decorations.length===0)return null;for(let b=0,a=this._decorations.length;bv.lineNumber)return i;if(!(i.startColumnthis.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(d=>{(d.reason===3||d.reason===5||d.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(d=>{this._ignoreModelContentChanged||(d.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(d=>this._onStateChanged(d))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,y.dispose)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(m){this._isDisposed||this._editor.hasModel()&&(m.searchString||m.isReplaceRevealed||m.isRegex||m.wholeWord||m.matchCase||m.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{m.searchScope?this.research(m.moveCursor,this._state.searchScope):this.research(m.moveCursor)},t)):m.searchScope?this.research(m.moveCursor,this._state.searchScope):this.research(m.moveCursor))}static _getSearchRange(m,c){return c||m.getFullModelRange()}research(m,c){let d=null;typeof c<"u"?c!==null&&(Array.isArray(c)?d=c:d=[c]):d=this._decorations.getFindScopes(),d!==null&&(d=d.map(h=>{if(h.startLineNumber!==h.endLineNumber){let u=h.endLineNumber;return h.endColumn===1&&(u=u-1),new p.Range(h.startLineNumber,1,u,this._editor.getModel().getLineMaxColumn(u))}return h}));const s=this._findMatches(d,!1,e.MATCHES_LIMIT);this._decorations.set(s,d);const l=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(l);if(r===0&&s.length>0){const h=(0,L.findFirstIdxMonotonousOrArrLen)(s.map(u=>u.range),u=>p.Range.compareRangesUsingStarts(u,l)>=0);r=h>0?h-1+1:r}this._state.changeMatchInfo(r,this._decorations.getCount(),void 0),m&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const m=this._decorations.getFindScope();return m&&this._editor.revealRangeInCenterIfOutsideViewport(m,0),!0}return!1}_setCurrentFindMatch(m){const c=this._decorations.setCurrentFindMatch(m);this._state.changeMatchInfo(c,this._decorations.getCount(),m),this._editor.setSelection(m),this._editor.revealRangeInCenterIfOutsideViewport(m,0)}_prevSearchPosition(m){const c=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:d,column:s}=m;const l=this._editor.getModel();return c||s===1?(d===1?d=l.getLineCount():d--,s=l.getLineMaxColumn(d)):s--,new S.Position(d,s)}_moveToPrevMatch(m,c=!1){if(!this._state.canNavigateBack()){const C=this._decorations.matchAfterPosition(m);C&&this._setCurrentFindMatch(C);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:d,column:s}=m;const l=this._editor.getModel();return c||s===l.getLineMaxColumn(d)?(d===l.getLineCount()?d=1:d++,s=1):s++,new S.Position(d,s)}_moveToNextMatch(m){if(!this._state.canNavigateForward()){const d=this._decorations.matchBeforePosition(m);d&&this._setCurrentFindMatch(d);return}if(this._decorations.getCount()o._getSearchRange(this._editor.getModel(),l));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(130):null,c,d)}replaceAll(){if(!this._hasMatches())return;const m=this._decorations.getFindScopes();m===null&&this._state.matchesCount>=e.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(m),this.research(!1)}_largeReplaceAll(){const c=new v.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(130):null).parseSearchRequest();if(!c)return;let d=c.regex;if(!d.multiline){let _="mu";d.ignoreCase&&(_+="i"),d.global&&(_+="g"),d=new RegExp(d.source,_)}const s=this._editor.getModel(),l=s.getValue(1),r=s.getFullModelRange(),h=this._getReplacePattern();let u;const f=this._state.preserveCase;h.hasReplacementPatterns||f?u=l.replace(d,function(){return h.buildReplaceString(arguments,f)}):u=l.replace(d,h.buildReplaceString(null,f));const C=new D.ReplaceCommandThatPreservesSelection(r,u,this._editor.getSelection());this._executeEditorCommand("replaceAll",C)}_regularReplaceAll(m){const c=this._getReplacePattern(),d=this._findMatches(m,c.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let r=0,h=d.length;rr.range),s);this._executeEditorCommand("replaceAll",l)}selectAllMatches(){if(!this._hasMatches())return;const m=this._decorations.getFindScopes();let d=this._findMatches(m,!1,1073741824).map(l=>new w.Selection(l.range.startLineNumber,l.range.startColumn,l.range.endLineNumber,l.range.endColumn));const s=this._editor.getSelection();for(let l=0,r=d.length;lthis._hide(),2e3)),this._isVisible=!1,this._editor=b,this._state=a,this._keybindingService=n,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const i={inputActiveOptionBorder:(0,p.asCssVariable)(p.inputActiveOptionBorder),inputActiveOptionForeground:(0,p.asCssVariable)(p.inputActiveOptionForeground),inputActiveOptionBackground:(0,p.asCssVariable)(p.inputActiveOptionBackground)};this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(S.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,...i})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:this._keybindingLabelFor(S.FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,...i})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new k.RegexToggle({appendTitle:this._keybindingLabelFor(S.FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,...i})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(t=>{let o=!1;t.isRegex&&(this.regex.checked=this._state.isRegex,o=!0),t.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,o=!0),t.matchCase&&(this.caseSensitive.checked=this._state.matchCase,o=!0),!this._state.isRevealed&&o&&this._revealTemporarily()})),this._register(L.addDisposableListener(this._domNode,L.EventType.MOUSE_LEAVE,t=>this._onMouseLeave())),this._register(L.addDisposableListener(this._domNode,"mouseover",t=>this._onMouseOver()))}_keybindingLabelFor(b){const a=this._keybindingService.lookupKeybinding(b);return a?` (${a.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return w.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}e.FindOptionsWidget=w,w.ID="editor.contrib.findOptionsWidget"}),define(ne[910],se([1,0,7,2,5,201]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindReplaceState=void 0;function S(w,v){return w===1?!0:w===2?!1:v}class p extends k.Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return S(this._isRegexOverride,this._isRegex)}get wholeWord(){return S(this._wholeWordOverride,this._wholeWord)}get matchCase(){return S(this._matchCaseOverride,this._matchCase)}get preserveCase(){return S(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new L.Emitter),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(v,b,a){const n={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let i=!1;b===0&&(v=0),v>b&&(v=b),this._matchesPosition!==v&&(this._matchesPosition=v,n.matchesPosition=!0,i=!0),this._matchesCount!==b&&(this._matchesCount=b,n.matchesCount=!0,i=!0),typeof a<"u"&&(y.Range.equalsRange(this._currentMatch,a)||(this._currentMatch=a,n.currentMatch=!0,i=!0)),i&&this._onFindReplaceStateChange.fire(n)}change(v,b,a=!0){var n;const i={moveCursor:b,updateHistory:a,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;const o=this.isRegex,g=this.wholeWord,m=this.matchCase,c=this.preserveCase;typeof v.searchString<"u"&&this._searchString!==v.searchString&&(this._searchString=v.searchString,i.searchString=!0,t=!0),typeof v.replaceString<"u"&&this._replaceString!==v.replaceString&&(this._replaceString=v.replaceString,i.replaceString=!0,t=!0),typeof v.isRevealed<"u"&&this._isRevealed!==v.isRevealed&&(this._isRevealed=v.isRevealed,i.isRevealed=!0,t=!0),typeof v.isReplaceRevealed<"u"&&this._isReplaceRevealed!==v.isReplaceRevealed&&(this._isReplaceRevealed=v.isReplaceRevealed,i.isReplaceRevealed=!0,t=!0),typeof v.isRegex<"u"&&(this._isRegex=v.isRegex),typeof v.wholeWord<"u"&&(this._wholeWord=v.wholeWord),typeof v.matchCase<"u"&&(this._matchCase=v.matchCase),typeof v.preserveCase<"u"&&(this._preserveCase=v.preserveCase),typeof v.searchScope<"u"&&(!((n=v.searchScope)===null||n===void 0)&&n.every(d=>{var s;return(s=this._searchScope)===null||s===void 0?void 0:s.some(l=>!y.Range.equalsRange(l,d))})||(this._searchScope=v.searchScope,i.searchScope=!0,t=!0)),typeof v.loop<"u"&&this._loop!==v.loop&&(this._loop=v.loop,i.loop=!0,t=!0),typeof v.isSearching<"u"&&this._isSearching!==v.isSearching&&(this._isSearching=v.isSearching,i.isSearching=!0,t=!0),typeof v.filters<"u"&&(this._filters?this._filters.update(v.filters):this._filters=v.filters,i.filters=!0,t=!0),this._isRegexOverride=typeof v.isRegexOverride<"u"?v.isRegexOverride:0,this._wholeWordOverride=typeof v.wholeWordOverride<"u"?v.wholeWordOverride:0,this._matchCaseOverride=typeof v.matchCaseOverride<"u"?v.matchCaseOverride:0,this._preserveCaseOverride=typeof v.preserveCaseOverride<"u"?v.preserveCaseOverride:0,o!==this.isRegex&&(t=!0,i.isRegex=!0),g!==this.wholeWord&&(t=!0,i.wholeWord=!0),m!==this.matchCase&&(t=!0,i.matchCase=!0),c!==this.preserveCase&&(t=!0,i.preserveCase=!0),t&&this._onFindReplaceStateChange.fire(i)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=D.MATCHES_LIMIT}}e.FindReplaceState=p}),define(ne[911],se([1,0,6,44,161,160,77,15,27,12,2,17,11,5,201,683,364,771,31,82,24,29,89,20,102,467]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleButton=e.FindWidget=e.FindWidgetViewZone=e.NLS_NO_RESULTS=e.NLS_MATCHES_LOCATION=e.findNextMatchIcon=e.findPreviousMatchIcon=e.findReplaceAllIcon=e.findReplaceIcon=void 0;const f=(0,d.registerIcon)("find-selection",w.Codicon.selection,o.localize(0,null)),C=(0,d.registerIcon)("find-collapsed",w.Codicon.chevronRight,o.localize(1,null)),_=(0,d.registerIcon)("find-expanded",w.Codicon.chevronDown,o.localize(2,null));e.findReplaceIcon=(0,d.registerIcon)("find-replace",w.Codicon.replace,o.localize(3,null)),e.findReplaceAllIcon=(0,d.registerIcon)("find-replace-all",w.Codicon.replaceAll,o.localize(4,null)),e.findPreviousMatchIcon=(0,d.registerIcon)("find-previous-match",w.Codicon.arrowUp,o.localize(5,null)),e.findNextMatchIcon=(0,d.registerIcon)("find-next-match",w.Codicon.arrowDown,o.localize(6,null));const E=o.localize(7,null),I=o.localize(8,null),T=o.localize(9,null),A=o.localize(10,null),R=o.localize(11,null),M=o.localize(12,null),N=o.localize(13,null),P=o.localize(14,null),F=o.localize(15,null),O=o.localize(16,null),B=o.localize(17,null),W=o.localize(18,null),V=o.localize(19,null,t.MATCHES_LIMIT);e.NLS_MATCHES_LOCATION=o.localize(20,null),e.NLS_NO_RESULTS=o.localize(21,null);const z=419,j=275-54;let x=69;const re=33,ie="ctrlEnterReplaceAll.windows.donotask",J=a.isMacintosh?256:2048;class X{constructor(Q){this.afterLineNumber=Q,this.heightInPx=re,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}e.FindWidgetViewZone=X;function Y(pe,Q,U){const Z=!!Q.match(/\n/);if(U&&Z&&U.selectionStart>0){pe.stopPropagation();return}}function le(pe,Q,U){const Z=!!Q.match(/\n/);if(U&&Z&&U.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(ae=>this._onStateChanged(ae))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(ae=>{if(ae.hasChanged(91)&&(this._codeEditor.getOption(91)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),ae.hasChanged(144)&&this._tryUpdateWidgetWidth(),ae.hasChanged(2)&&this.updateAccessibilitySupport(),ae.hasChanged(41)){const ue=this._codeEditor.getOption(41).loop;this._state.change({loop:ue},!1);const ce=this._codeEditor.getOption(41).addExtraSpaceOnTop;ce&&!this._viewZone&&(this._viewZone=new X(0),this._showViewZone()),!ce&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const ae=await this._controller.getGlobalBufferTerm();ae&&ae!==this._state.searchString&&(this._state.change({searchString:ae},!1),this._findInput.select())}})),this._findInputFocused=t.CONTEXT_FIND_INPUT_FOCUSED.bindTo(te),this._findFocusTracker=this._register(L.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=t.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(te),this._replaceFocusTracker=this._register(L.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new X(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(ae=>{if(ae.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return de.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(Q){if(Q.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(Q.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),Q.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),Q.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(91)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=L.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(Q.isRevealed||Q.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),Q.isRegex&&this._findInput.setRegex(this._state.isRegex),Q.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),Q.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),Q.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),Q.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),Q.searchString||Q.matchesCount||Q.matchesPosition){const U=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",U),this._updateMatchesCount(),this._updateButtons()}(Q.searchString||Q.currentMatch)&&this._layoutViewZone(),Q.updateHistory&&this._delayedUpdateHistory(),Q.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,v.onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=x+"px",this._state.matchesCount>=t.MATCHES_LIMIT?this._matchesCount.title=V:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let Q;if(this._state.matchesCount>0){let U=String(this._state.matchesCount);this._state.matchesCount>=t.MATCHES_LIMIT&&(U+="+");let Z=String(this._state.matchesPosition);Z==="0"&&(Z="?"),Q=n.format(e.NLS_MATCHES_LOCATION,Z,U)}else Q=e.NLS_NO_RESULTS;this._matchesCount.appendChild(document.createTextNode(Q)),(0,k.alert)(this._getAriaLabel(Q,this._state.currentMatch,this._state.searchString)),x=Math.max(x,this._matchesCount.clientWidth)}_getAriaLabel(Q,U,Z){if(Q===e.NLS_NO_RESULTS)return Z===""?o.localize(22,null,Q):o.localize(23,null,Q,Z);if(U){const H=o.localize(24,null,Q,Z,U.startLineNumber+":"+U.startColumn),q=this._codeEditor.getModel();return q&&U.startLineNumber<=q.getLineCount()&&U.startLineNumber>=1?`${q.getLineContent(U.startLineNumber)}, ${H}`:H}return o.localize(25,null,Q,Z)}_updateToggleSelectionFindButton(){const Q=this._codeEditor.getSelection(),U=Q?Q.startLineNumber!==Q.endLineNumber||Q.startColumn!==Q.endColumn:!1,Z=this._toggleSelectionFind.checked;this._isVisible&&(Z||U)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const Q=this._state.searchString.length>0,U=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&Q&&U&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&Q&&U&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&Q),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&Q),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const Z=!this._codeEditor.getOption(91);this._toggleReplaceBtn.setEnabled(this._isVisible&&Z)}_reveal(){if(this._revealTimeouts.forEach(Q=>{clearTimeout(Q)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const Q=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const Z=!!Q&&Q.startLineNumber!==Q.endLineNumber;this._toggleSelectionFind.checked=Z;break}default:break}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let U=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&Q){const Z=this._codeEditor.getDomNode();if(Z){const H=L.getDomNodePagePosition(Z),q=this._codeEditor.getScrolledVisiblePosition(Q.getStartPosition()),te=H.left+(q?q.left:0),G=q?q.top:0;if(this._viewZone&&GQ.startLineNumber&&(U=!1);const $=L.getTopLeftOffset(this._domNode).left;te>$&&(U=!1);const oe=this._codeEditor.getScrolledVisiblePosition(Q.getEndPosition());H.left+(oe?oe.left:0)>$&&(U=!1)}}}this._showViewZone(U)}}_hide(Q){this._revealTimeouts.forEach(U=>{clearTimeout(U)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),Q&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(Q){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const Z=this._viewZone;this._viewZoneId!==void 0||!Z||this._codeEditor.changeViewZones(H=>{Z.heightInPx=this._getHeight(),this._viewZoneId=H.addZone(Z),this._codeEditor.setScrollTop(Q||this._codeEditor.getScrollTop()+Z.heightInPx)})}_showViewZone(Q=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new X(0));const Z=this._viewZone;this._codeEditor.changeViewZones(H=>{if(this._viewZoneId!==void 0){const q=this._getHeight();if(q===Z.heightInPx)return;const te=q-Z.heightInPx;Z.heightInPx=q,H.layoutZone(this._viewZoneId),Q&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+te);return}else{let q=this._getHeight();if(q-=this._codeEditor.getOption(84).top,q<=0)return;Z.heightInPx=q,this._viewZoneId=H.addZone(Z),Q&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+q)}})}_removeViewZone(){this._codeEditor.changeViewZones(Q=>{this._viewZoneId!==void 0&&(Q.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const Q=this._codeEditor.getLayoutInfo();if(Q.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const Z=Q.width,H=Q.minimap.minimapWidth;let q=!1,te=!1,G=!1;if(this._resized&&L.getTotalWidth(this._domNode)>z){this._domNode.style.maxWidth=`${Z-28-H-15}px`,this._replaceInput.width=L.getTotalWidth(this._findInput.domNode);return}if(z+28+H>=Z&&(te=!0),z+28+H-x>=Z&&(G=!0),z+28+H-x>=Z+50&&(q=!0),this._domNode.classList.toggle("collapsed-find-widget",q),this._domNode.classList.toggle("narrow-find-widget",G),this._domNode.classList.toggle("reduced-find-widget",te),!G&&!q&&(this._domNode.style.maxWidth=`${Z-28-H-15}px`),this._findInput.layout({collapsedFindWidget:q,narrowFindWidget:G,reducedFindWidget:te}),this._resized){const $=this._findInput.inputBox.element.clientWidth;$>0&&(this._replaceInput.width=$)}else this._isReplaceVisible&&(this._replaceInput.width=L.getTotalWidth(this._findInput.domNode))}_getHeight(){let Q=0;return Q+=4,Q+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(Q+=4,Q+=this._replaceInput.inputBox.height+2),Q+=4,Q}_tryUpdateHeight(){const Q=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===Q?!1:(this._cachedHeight=Q,this._domNode.style.height=`${Q}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const Q=this._codeEditor.getSelections();Q.map(U=>{U.endColumn===1&&U.endLineNumber>U.startLineNumber&&(U=U.setEndPosition(U.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(U.endLineNumber-1)));const Z=this._state.currentMatch;return U.startLineNumber!==U.endLineNumber&&!i.Range.equalsRange(U,Z)?U:null}).filter(U=>!!U),Q.length&&this._state.change({searchScope:Q},!0)}}_onFindInputMouseDown(Q){Q.middleButton&&Q.stopPropagation()}_onFindInputKeyDown(Q){if(Q.equals(J|3))if(this._keybindingService.dispatchEvent(Q,Q.target)){Q.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` +`),Q.preventDefault();return}if(Q.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),Q.preventDefault();return}if(Q.equals(2066)){this._codeEditor.focus(),Q.preventDefault();return}if(Q.equals(16))return Y(Q,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(Q.equals(18))return le(Q,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(Q){if(Q.equals(J|3))if(this._keybindingService.dispatchEvent(Q,Q.target)){Q.preventDefault();return}else{a.isWindows&&a.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(o.localize(26,null)),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(ie,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` +`),Q.preventDefault();return}if(Q.equals(2)){this._findInput.focusOnCaseSensitive(),Q.preventDefault();return}if(Q.equals(1026)){this._findInput.focus(),Q.preventDefault();return}if(Q.equals(2066)){this._codeEditor.focus(),Q.preventDefault();return}if(Q.equals(16))return Y(Q,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(Q.equals(18))return le(Q,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(Q){return 0}_keybindingLabelFor(Q){const U=this._keybindingService.lookupKeybinding(Q);return U?` (${U.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new g.ContextScopedFindInput(null,this._contextViewProvider,{width:j,label:I,placeholder:T,appendCaseSensitiveLabel:this._keybindingLabelFor(t.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(t.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(t.FIND_IDS.ToggleRegexCommand),validation:$=>{if($.length===0||!this._findInput.getRegex())return null;try{return new RegExp($,"gu"),null}catch(oe){return{content:oe.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>(0,m.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:u.defaultInputBoxStyles,toggleStyles:u.defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown($=>this._onFindInputKeyDown($))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown($=>{$.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),$.preventDefault())})),this._register(this._findInput.onRegexKeyDown($=>{$.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),$.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange($=>{this._tryUpdateHeight()&&this._showViewZone()})),a.isLinux&&this._register(this._findInput.onMouseDown($=>this._onFindInputMouseDown($))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new ge({label:A+this._keybindingLabelFor(t.FIND_IDS.PreviousMatchFindAction),icon:e.findPreviousMatchIcon,onTrigger:()=>{(0,h.assertIsDefined)(this._codeEditor.getAction(t.FIND_IDS.PreviousMatchFindAction)).run().then(void 0,v.onUnexpectedError)}})),this._nextBtn=this._register(new ge({label:R+this._keybindingLabelFor(t.FIND_IDS.NextMatchFindAction),icon:e.findNextMatchIcon,onTrigger:()=>{(0,h.assertIsDefined)(this._codeEditor.getAction(t.FIND_IDS.NextMatchFindAction)).run().then(void 0,v.onUnexpectedError)}}));const Z=document.createElement("div");Z.className="find-part",Z.appendChild(this._findInput.domNode);const H=document.createElement("div");H.className="find-actions",Z.appendChild(H),H.appendChild(this._matchesCount),H.appendChild(this._prevBtn.domNode),H.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new y.Toggle({icon:f,title:M+this._keybindingLabelFor(t.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1,inputActiveOptionBackground:(0,c.asCssVariable)(c.inputActiveOptionBackground),inputActiveOptionBorder:(0,c.asCssVariable)(c.inputActiveOptionBorder),inputActiveOptionForeground:(0,c.asCssVariable)(c.inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let $=this._codeEditor.getSelections();$=$.map(oe=>(oe.endColumn===1&&oe.endLineNumber>oe.startLineNumber&&(oe=oe.setEndPosition(oe.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(oe.endLineNumber-1))),oe.isEmpty()?null:oe)).filter(oe=>!!oe),$.length&&this._state.change({searchScope:$},!0)}}else this._state.change({searchScope:null},!0)})),H.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new ge({label:N+this._keybindingLabelFor(t.FIND_IDS.CloseFindWidgetCommand),icon:d.widgetClose,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:$=>{$.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),$.preventDefault())}})),this._replaceInput=this._register(new g.ContextScopedReplaceInput(null,void 0,{label:P,placeholder:F,appendPreserveCaseLabel:this._keybindingLabelFor(t.FIND_IDS.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>(0,m.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:u.defaultInputBoxStyles,toggleStyles:u.defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown($=>this._onReplaceInputKeyDown($))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange($=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown($=>{$.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),$.preventDefault())})),this._replaceBtn=this._register(new ge({label:O+this._keybindingLabelFor(t.FIND_IDS.ReplaceOneAction),icon:e.findReplaceIcon,onTrigger:()=>{this._controller.replace()},onKeyDown:$=>{$.equals(1026)&&(this._closeBtn.focus(),$.preventDefault())}})),this._replaceAllBtn=this._register(new ge({label:B+this._keybindingLabelFor(t.FIND_IDS.ReplaceAllAction),icon:e.findReplaceAllIcon,onTrigger:()=>{this._controller.replaceAll()}}));const q=document.createElement("div");q.className="replace-part",q.appendChild(this._replaceInput.domNode);const te=document.createElement("div");te.className="replace-actions",q.appendChild(te),te.appendChild(this._replaceBtn.domNode),te.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new ge({label:W,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=L.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=E,this._domNode.role="dialog",this._domNode.style.width=`${z}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(Z),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(q),this._resizeSash=this._register(new D.Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let G=z;this._register(this._resizeSash.onDidStart(()=>{G=L.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange($=>{this._resized=!0;const oe=G+$.startX-$.currentX;if(oeae||(this._domNode.style.width=`${oe}px`,this._isReplaceVisible&&(this._replaceInput.width=L.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const $=L.getTotalWidth(this._domNode);if(${this._opts.onTrigger(),Z.preventDefault()}),this.onkeydown(this._domNode,Z=>{var H,q;if(Z.equals(10)||Z.equals(3)){this._opts.onTrigger(),Z.preventDefault();return}(q=(H=this._opts).onKeyDown)===null||q===void 0||q.call(H,Z)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(Q){this._domNode.classList.toggle("disabled",!Q),this._domNode.setAttribute("aria-disabled",String(!Q)),this._domNode.tabIndex=Q?0:-1}setExpanded(Q){this._domNode.setAttribute("aria-expanded",String(!!Q)),Q?(this._domNode.classList.remove(...l.ThemeIcon.asClassNameArray(C)),this._domNode.classList.add(...l.ThemeIcon.asClassNameArray(_))):(this._domNode.classList.remove(...l.ThemeIcon.asClassNameArray(_)),this._domNode.classList.add(...l.ThemeIcon.asClassNameArray(C)))}}e.SimpleButton=ge,(0,s.registerThemingParticipant)((pe,Q)=>{const U=pe.getColor(c.editorFindMatchHighlightBorder);U&&Q.addRule(`.monaco-editor .findMatch { border: 1px ${(0,r.isHighContrast)(pe.type)?"dotted":"solid"} ${U}; box-sizing: border-box; }`);const Z=pe.getColor(c.editorFindRangeHighlightBorder);Z&&Q.addRule(`.monaco-editor .findScope { border: 1px ${(0,r.isHighContrast)(pe.type)?"dashed":"solid"} ${Z}; }`);const H=pe.getColor(c.contrastBorder);H&&Q.addRule(`.monaco-editor .find-widget { border: 1px solid ${H}; }`)})}),define(ne[384],se([1,0,15,2,11,16,83,21,40,201,909,910,911,682,28,107,14,56,34,49,72,94,24]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StartFindReplaceAction=e.PreviousSelectionMatchFindAction=e.NextSelectionMatchFindAction=e.SelectionMatchFindAction=e.MoveToMatchFindAction=e.PreviousMatchFindAction=e.NextMatchFindAction=e.MatchFindAction=e.StartFindWithSelectionAction=e.StartFindWithArgsAction=e.StartFindAction=e.FindController=e.CommonFindController=e.getSelectionSearchString=void 0;const u=524288;function f(W,V="single",z=!1){if(!W.hasModel())return null;const K=W.getSelection();if(V==="single"&&K.startLineNumber===K.endLineNumber||V==="multiple"){if(K.isEmpty()){const j=W.getConfiguredWordAtPosition(K.getStartPosition());if(j&&z===!1)return j.word}else if(W.getModel().getValueLengthInRange(K)this._onStateChanged(re))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const re=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),re&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(V){this.saveQueryState(V),V.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),V.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(V){V.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),V.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),V.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),V.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!v.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let V=this._editor.getSelections();V=V.map(z=>(z.endColumn===1&&z.endLineNumber>z.startLineNumber&&(z=z.setEndPosition(z.endLineNumber-1,this._editor.getModel().getLineMaxColumn(z.endLineNumber-1))),z.isEmpty()?null:z)).filter(z=>!!z),V.length&&this._state.change({searchScope:V},!0)}}setSearchString(V){this._state.isRegex&&(V=y.escapeRegExpCharacters(V)),this._state.change({searchString:V},!1)}highlightFindOptions(V=!1){}async _start(V,z){if(this.disposeModel(),!this._editor.hasModel())return;const K={...z,isRevealed:!0};if(V.seedSearchStringFromSelection==="single"){const j=f(this._editor,V.seedSearchStringFromSelection,V.seedSearchStringFromNonEmptySelection);j&&(this._state.isRegex?K.searchString=y.escapeRegExpCharacters(j):K.searchString=j)}else if(V.seedSearchStringFromSelection==="multiple"&&!V.updateSearchScope){const j=f(this._editor,V.seedSearchStringFromSelection);j&&(K.searchString=j)}if(!K.searchString&&V.seedSearchStringFromGlobalClipboard){const j=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;j&&(K.searchString=j)}if(V.forceRevealReplace||K.isReplaceRevealed?K.isReplaceRevealed=!0:this._findWidgetVisible.get()||(K.isReplaceRevealed=!1),V.updateSearchScope){const j=this._editor.getSelections();j.some(x=>!x.isEmpty())&&(K.searchScope=j)}K.loop=V.loop,this._state.change(K,!1),this._model||(this._model=new v.FindModelBoundToEditorModel(this._editor,this._state))}start(V,z){return this._start(V,z)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(V){return this._model?(this._model.moveToMatch(V),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var V;return this._model?!((V=this._editor.getModel())===null||V===void 0)&&V.isTooLargeForHeapOperation()?(this._notificationService.warn(i.localize(0,null)),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(V){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(V)}};e.CommonFindController=C,C.ID="editor.contrib.findController",e.CommonFindController=C=h=De([he(1,g.IContextKeyService),he(2,l.IStorageService),he(3,o.IClipboardService),he(4,d.INotificationService)],C);let _=class extends C{constructor(V,z,K,j,x,re,ie,J){super(V,K,ie,J,re),this._contextViewService=z,this._keybindingService=j,this._themeService=x,this._widget=null,this._findOptionsWidget=null}async _start(V,z){this._widget||this._createFindWidget();const K=this._editor.getSelection();let j=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":j=!0;break;case"never":j=!1;break;case"multiline":{j=!!K&&K.startLineNumber!==K.endLineNumber;break}default:break}V.updateSearchScope=V.updateSearchScope||j,await super._start(V,z),this._widget&&(V.shouldFocus===2?this._widget.focusReplaceInput():V.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(V=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!V?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new n.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new b.FindOptionsWidget(this._editor,this._state,this._keybindingService))}};e.FindController=_,e.FindController=_=De([he(1,m.IContextViewService),he(2,g.IContextKeyService),he(3,c.IKeybindingService),he(4,r.IThemeService),he(5,d.INotificationService),he(6,l.IStorageService),he(7,o.IClipboardService)],_),e.StartFindAction=(0,D.registerMultiEditorAction)(new D.MultiEditorAction({id:v.FIND_IDS.StartFindAction,label:i.localize(1,null),alias:"Find",precondition:g.ContextKeyExpr.or(p.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:t.MenuId.MenubarEditMenu,group:"3_find",title:i.localize(2,null),order:1}})),e.StartFindAction.addImplementation(0,(W,V,z)=>{const K=C.get(V);return K?K.start({forceRevealReplace:!1,seedSearchStringFromSelection:V.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:V.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:V.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:V.getOption(41).loop}):!1});const E={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class I extends D.EditorAction{constructor(){super({id:v.FIND_IDS.StartFindWithArgs,label:i.localize(3,null),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:E})}async run(V,z,K){const j=C.get(z);if(j){const x=K?{searchString:K.searchString,replaceString:K.replaceString,isReplaceRevealed:K.replaceString!==void 0,isRegex:K.isRegex,wholeWord:K.matchWholeWord,matchCase:K.isCaseSensitive,preserveCase:K.preserveCase}:{};await j.start({forceRevealReplace:!1,seedSearchStringFromSelection:j.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:K?.findInSelection||!1,loop:z.getOption(41).loop},x),j.setGlobalBufferTerm(j.getState().searchString)}}}e.StartFindWithArgsAction=I;class T extends D.EditorAction{constructor(){super({id:v.FIND_IDS.StartFindWithSelection,label:i.localize(4,null),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(V,z){const K=C.get(z);K&&(await K.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),K.setGlobalBufferTerm(K.getState().searchString))}}e.StartFindWithSelectionAction=T;class A extends D.EditorAction{async run(V,z){const K=C.get(z);K&&!this._run(K)&&(await K.start({forceRevealReplace:!1,seedSearchStringFromSelection:K.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(K))}}e.MatchFindAction=A;class R extends A{constructor(){super({id:v.FIND_IDS.NextMatchFindAction,label:i.localize(5,null),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:p.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:g.ContextKeyExpr.and(p.EditorContextKeys.focus,v.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}]})}_run(V){return V.moveToNextMatch()?(V.editor.pushUndoStop(),!0):!1}}e.NextMatchFindAction=R;class M extends A{constructor(){super({id:v.FIND_IDS.PreviousMatchFindAction,label:i.localize(6,null),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:p.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:g.ContextKeyExpr.and(p.EditorContextKeys.focus,v.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}]})}_run(V){return V.moveToPrevMatch()}}e.PreviousMatchFindAction=M;class N extends D.EditorAction{constructor(){super({id:v.FIND_IDS.GoToMatchFindAction,label:i.localize(7,null),alias:"Go to Match...",precondition:v.CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(V,z,K){const j=C.get(z);if(!j)return;const x=j.getState().matchesCount;if(x<1){V.get(d.INotificationService).notify({severity:d.Severity.Warning,message:i.localize(8,null)});return}const ie=V.get(s.IQuickInputService).createInputBox();ie.placeholder=i.localize(9,null,x);const J=Y=>{const le=parseInt(Y);if(isNaN(le))return;const de=j.getState().matchesCount;if(le>0&&le<=de)return le-1;if(le<0&&le>=-de)return de+le},X=Y=>{const le=J(Y);if(typeof le=="number"){ie.validationMessage=void 0,j.goToMatch(le);const de=j.getState().currentMatch;de&&this.addDecorations(z,de)}else ie.validationMessage=i.localize(10,null,j.getState().matchesCount),this.clearDecorations(z)};ie.onDidChangeValue(Y=>{X(Y)}),ie.onDidAccept(()=>{const Y=J(ie.value);typeof Y=="number"?(j.goToMatch(Y),ie.hide()):ie.validationMessage=i.localize(11,null,j.getState().matchesCount)}),ie.onDidHide(()=>{this.clearDecorations(z),ie.dispose()}),ie.show()}clearDecorations(V){V.changeDecorations(z=>{this._highlightDecorations=z.deltaDecorations(this._highlightDecorations,[])})}addDecorations(V,z){V.changeDecorations(K=>{this._highlightDecorations=K.deltaDecorations(this._highlightDecorations,[{range:z,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:z,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:(0,r.themeColorFromId)(S.overviewRulerRangeHighlight),position:w.OverviewRulerLane.Full}}}])})}}e.MoveToMatchFindAction=N;class P extends D.EditorAction{async run(V,z){const K=C.get(z);if(!K)return;const j=f(z,"single",!1);j&&K.setSearchString(j),this._run(K)||(await K.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(K))}}e.SelectionMatchFindAction=P;class F extends P{constructor(){super({id:v.FIND_IDS.NextSelectionMatchFindAction,label:i.localize(12,null),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:2109,weight:100}})}_run(V){return V.moveToNextMatch()}}e.NextSelectionMatchFindAction=F;class O extends P{constructor(){super({id:v.FIND_IDS.PreviousSelectionMatchFindAction,label:i.localize(13,null),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:3133,weight:100}})}_run(V){return V.moveToPrevMatch()}}e.PreviousSelectionMatchFindAction=O,e.StartFindReplaceAction=(0,D.registerMultiEditorAction)(new D.MultiEditorAction({id:v.FIND_IDS.StartFindReplaceAction,label:i.localize(14,null),alias:"Replace",precondition:g.ContextKeyExpr.or(p.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:t.MenuId.MenubarEditMenu,group:"3_find",title:i.localize(15,null),order:2}})),e.StartFindReplaceAction.addImplementation(0,(W,V,z)=>{if(!V.hasModel()||V.getOption(91))return!1;const K=C.get(V);if(!K)return!1;const j=V.getSelection(),x=K.isFindInputFocused(),re=!j.isEmpty()&&j.startLineNumber===j.endLineNumber&&V.getOption(41).seedSearchStringFromSelection!=="never"&&!x,ie=x||re?2:1;return K.start({forceRevealReplace:!0,seedSearchStringFromSelection:re?"single":"none",seedSearchStringFromNonEmptySelection:V.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:V.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:ie,shouldAnimate:!0,updateSearchScope:!1,loop:V.getOption(41).loop})}),(0,D.registerEditorContribution)(C.ID,_,0),(0,D.registerEditorAction)(I),(0,D.registerEditorAction)(T),(0,D.registerEditorAction)(R),(0,D.registerEditorAction)(M),(0,D.registerEditorAction)(N),(0,D.registerEditorAction)(F),(0,D.registerEditorAction)(O);const B=D.EditorCommand.bindToContribution(C.get);(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.CloseFindWidgetCommand,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.closeFindWidget(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(p.EditorContextKeys.focus,g.ContextKeyExpr.not("isComposing")),primary:9,secondary:[1033]}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:W=>W.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:v.ToggleCaseSensitiveKeybinding.primary,mac:v.ToggleCaseSensitiveKeybinding.mac,win:v.ToggleCaseSensitiveKeybinding.win,linux:v.ToggleCaseSensitiveKeybinding.linux}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:W=>W.toggleWholeWords(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:v.ToggleWholeWordKeybinding.primary,mac:v.ToggleWholeWordKeybinding.mac,win:v.ToggleWholeWordKeybinding.win,linux:v.ToggleWholeWordKeybinding.linux}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:W=>W.toggleRegex(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:v.ToggleRegexKeybinding.primary,mac:v.ToggleRegexKeybinding.mac,win:v.ToggleRegexKeybinding.win,linux:v.ToggleRegexKeybinding.linux}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:W=>W.toggleSearchScope(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:v.ToggleSearchScopeKeybinding.primary,mac:v.ToggleSearchScopeKeybinding.mac,win:v.ToggleSearchScopeKeybinding.win,linux:v.ToggleSearchScopeKeybinding.linux}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.TogglePreserveCaseCommand,precondition:void 0,handler:W=>W.togglePreserveCase(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:v.TogglePreserveCaseKeybinding.primary,mac:v.TogglePreserveCaseKeybinding.mac,win:v.TogglePreserveCaseKeybinding.win,linux:v.TogglePreserveCaseKeybinding.linux}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ReplaceOneAction,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.replace(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:3094}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ReplaceOneAction,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.replace(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(p.EditorContextKeys.focus,v.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ReplaceAllAction,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.replaceAll(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:2563}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.ReplaceAllAction,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.replaceAll(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(p.EditorContextKeys.focus,v.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),(0,D.registerEditorCommand)(new B({id:v.FIND_IDS.SelectAllMatchesAction,precondition:v.CONTEXT_FIND_WIDGET_VISIBLE,handler:W=>W.selectAllMatches(),kbOpts:{weight:105,kbExpr:p.EditorContextKeys.focus,primary:515}}))}),define(ne[385],se([1,0,27,40,38,685,31,82,24,29]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingDecorationProvider=e.foldingManualExpandedIcon=e.foldingManualCollapsedIcon=e.foldingCollapsedIcon=e.foldingExpandedIcon=void 0;const b=(0,S.registerColor)("editor.foldBackground",{light:(0,S.transparent)(S.editorSelectionBackground,.3),dark:(0,S.transparent)(S.editorSelectionBackground,.3),hcDark:null,hcLight:null},(0,D.localize)(0,null),!0);(0,S.registerColor)("editorGutter.foldingControlForeground",{dark:S.iconForeground,light:S.iconForeground,hcDark:S.iconForeground,hcLight:S.iconForeground},(0,D.localize)(1,null)),e.foldingExpandedIcon=(0,p.registerIcon)("folding-expanded",L.Codicon.chevronDown,(0,D.localize)(2,null)),e.foldingCollapsedIcon=(0,p.registerIcon)("folding-collapsed",L.Codicon.chevronRight,(0,D.localize)(3,null)),e.foldingManualCollapsedIcon=(0,p.registerIcon)("folding-manual-collapsed",e.foldingCollapsedIcon,(0,D.localize)(4,null)),e.foldingManualExpandedIcon=(0,p.registerIcon)("folding-manual-expanded",e.foldingExpandedIcon,(0,D.localize)(5,null));const a={color:(0,w.themeColorFromId)(b),position:k.MinimapPosition.Inline},n=(0,D.localize)(6,null),i=(0,D.localize)(7,null);class t{constructor(g){this.editor=g,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(g,m,c){return m?t.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?g?this.showFoldingHighlights?t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:t.NO_CONTROLS_EXPANDED_RANGE_DECORATION:g?c?this.showFoldingHighlights?t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?c?t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c?t.MANUALLY_EXPANDED_VISUAL_DECORATION:t.EXPANDED_VISUAL_DECORATION}changeDecorations(g){return this.editor.changeDecorations(g)}removeDecorations(g){this.editor.removeDecorations(g)}}e.FoldingDecorationProvider=t,t.COLLAPSED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingCollapsedIcon)}),t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:a,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingCollapsedIcon)}),t.MANUALLY_COLLAPSED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)}),t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:a,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)}),t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=y.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n}),t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=y.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:a,isWholeLine:!0,linesDecorationsTooltip:n}),t.EXPANDED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+v.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:i}),t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:i}),t.MANUALLY_EXPANDED_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+v.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:i}),t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=y.ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:v.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:i}),t.NO_CONTROLS_EXPANDED_RANGE_DECORATION=y.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),t.HIDDEN_RANGE_DECORATION=y.ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1})}),define(ne[268],se([1,0,15,19,12,66,2,11,20,131,16,21,30,33,310,567,311,684,14,385,188,312,49,80,63,18,7,25,22,51,26,468]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.RangesLimitReporter=e.FoldingController=void 0;const R=new c.RawContextKey("foldingEnabled",!1);let M=A=class extends S.Disposable{static get(Z){return Z.getContribution(A.ID)}static getFoldingRangeProviders(Z,H){var q,te;const G=Z.foldingRangeProvider.ordered(H);return(te=(q=A._foldingRangeSelector)===null||q===void 0?void 0:q.call(A,G,H))!==null&&te!==void 0?te:G}constructor(Z,H,q,te,G,$){super(),this.contextKeyService=H,this.languageConfigurationService=q,this.languageFeaturesService=$,this.localToDispose=this._register(new S.DisposableStore),this.editor=Z,this._foldingLimitReporter=new N(Z);const oe=this.editor.getOptions();this._isEnabled=oe.get(43),this._useFoldingProviders=oe.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=oe.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=oe.get(46),this.updateDebounceInfo=G.for($.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new d.FoldingDecorationProvider(Z),this.foldingDecorationProvider.showFoldingControls=oe.get(110),this.foldingDecorationProvider.showFoldingHighlights=oe.get(45),this.foldingEnabled=R.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(ae=>{if(ae.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),ae.hasChanged(47)&&this.onModelChanged(),ae.hasChanged(110)||ae.hasChanged(45)){const ue=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=ue.get(110),this.foldingDecorationProvider.showFoldingHighlights=ue.get(45),this.triggerFoldingModelChanged()}ae.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),ae.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),ae.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const Z=this.editor.getModel();if(!Z||!this._isEnabled||Z.isTooLargeForTokenization())return{};if(this.foldingModel){const H=this.foldingModel.getMemento(),q=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:H,lineCount:Z.getLineCount(),provider:q,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(Z){const H=this.editor.getModel();if(!(!H||!this._isEnabled||H.isTooLargeForTokenization()||!this.hiddenRangeModel)&&Z&&(this._currentModelHasFoldedImports=!!Z.foldedImports,Z.collapsedRegions&&Z.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(Z.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const Z=this.editor.getModel();!this._isEnabled||!Z||Z.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new t.FoldingModel(Z,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new o.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(H=>this.onHiddenRangesChanges(H))),this.updateScheduler=new L.Delayer(this.updateDebounceInfo.get(Z)),this.cursorChangedScheduler=new L.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(H=>this.onDidChangeModelContent(H))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(H=>this.onEditorMouseDown(H))),this.localToDispose.add(this.editor.onMouseUp(H=>this.onEditorMouseUp(H))),this.localToDispose.add({dispose:()=>{var H,q;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(H=this.updateScheduler)===null||H===void 0||H.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(q=this.rangeProvider)===null||q===void 0||q.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var Z;(Z=this.rangeProvider)===null||Z===void 0||Z.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(Z){if(this.rangeProvider)return this.rangeProvider;const H=new g.IndentRangeProvider(Z,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=H,this._useFoldingProviders&&this.foldingModel){const q=A.getFoldingRangeProviders(this.languageFeaturesService,Z);q.length>0&&(this.rangeProvider=new l.SyntaxRangeProvider(Z,q,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,H))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(Z){var H;(H=this.hiddenRangeModel)===null||H===void 0||H.notifyChangeModelContent(Z),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const Z=this.foldingModel;if(!Z)return null;const H=new u.StopWatch,q=this.getRangeProvider(Z.textModel),te=this.foldingRegionPromise=(0,L.createCancelablePromise)(G=>q.compute(G));return te.then(G=>{if(G&&te===this.foldingRegionPromise){let $;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const ce=G.setCollapsedAllOfType(n.FoldingRangeKind.Imports.value,!0);ce&&($=v.StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=ce)}const oe=this.editor.getSelections(),ae=oe?oe.map(ce=>ce.startLineNumber):[];Z.update(G,ae),$?.restore(this.editor);const ue=this.updateDebounceInfo.update(Z.textModel,H.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=ue)}return Z})}).then(void 0,Z=>((0,y.onUnexpectedError)(Z),null)))}onHiddenRangesChanges(Z){if(this.hiddenRangeModel&&Z.length&&!this._restoringViewState){const H=this.editor.getSelections();H&&this.hiddenRangeModel.adjustSelections(H)&&this.editor.setSelections(H)}this.editor.setHiddenAreas(Z,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const Z=this.getFoldingModel();Z&&Z.then(H=>{if(H){const q=this.editor.getSelections();if(q&&q.length>0){const te=[];for(const G of q){const $=G.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden($)&&te.push(...H.getAllRegionsAtLine($,oe=>oe.isCollapsed&&$>oe.startLineNumber))}te.length&&(H.toggleCollapseState(te),this.reveal(q[0].getPosition()))}}}).then(void 0,y.onUnexpectedError)}onEditorMouseDown(Z){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!Z.target||!Z.target.range||!Z.event.leftButton&&!Z.event.middleButton)return;const H=Z.target.range;let q=!1;switch(Z.target.type){case 4:{const te=Z.target.detail,G=Z.target.element.offsetLeft;if(te.offsetX-G<4)return;q=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!Z.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const te=this.editor.getModel();if(te&&H.startColumn===te.getLineMaxColumn(H.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:H.startLineNumber,iconClicked:q}}onEditorMouseUp(Z){const H=this.foldingModel;if(!H||!this.mouseDownInfo||!Z.target)return;const q=this.mouseDownInfo.lineNumber,te=this.mouseDownInfo.iconClicked,G=Z.target.range;if(!G||G.startLineNumber!==q)return;if(te){if(Z.target.type!==4)return}else{const oe=this.editor.getModel();if(!oe||G.startColumn!==oe.getLineMaxColumn(q))return}const $=H.getRegionAtLine(q);if($&&$.startLineNumber===q){const oe=$.isCollapsed;if(te||oe){const ae=Z.event.altKey;let ue=[];if(ae){const ce=ve=>!ve.containedBy($)&&!$.containedBy(ve),fe=H.getRegionsInside(null,ce);for(const ve of fe)ve.isCollapsed&&ue.push(ve);ue.length===0&&(ue=fe)}else{const ce=Z.event.middleButton||Z.event.shiftKey;if(ce)for(const fe of H.getRegionsInside($))fe.isCollapsed===oe&&ue.push(fe);(oe||!ce||ue.length===0)&&ue.push($)}H.toggleCollapseState(ue),this.reveal({lineNumber:q,column:1})}}}reveal(Z){this.editor.revealPositionInCenterIfOutsideViewport(Z,0)}};e.FoldingController=M,M.ID="editor.contrib.folding",e.FoldingController=M=A=De([he(1,c.IContextKeyService),he(2,i.ILanguageConfigurationService),he(3,r.INotificationService),he(4,h.ILanguageFeatureDebounceService),he(5,f.ILanguageFeaturesService)],M);class N{constructor(Z){this.editor=Z,this._onDidChange=new C.Emitter,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(Z,H){(Z!==this._computed||H!==this._limited)&&(this._computed=Z,this._limited=H,this._onDidChange.fire())}}e.RangesLimitReporter=N;class P extends b.EditorAction{runEditorCommand(Z,H,q){const te=Z.get(i.ILanguageConfigurationService),G=M.get(H);if(!G)return;const $=G.getFoldingModel();if($)return this.reportTelemetry(Z,H),$.then(oe=>{if(oe){this.invoke(G,oe,H,q,te);const ae=H.getSelection();ae&&G.reveal(ae.getStartPosition())}})}getSelectedLines(Z){const H=Z.getSelections();return H?H.map(q=>q.startLineNumber):[]}getLineNumbers(Z,H){return Z&&Z.selectionLines?Z.selectionLines.map(q=>q+1):this.getSelectedLines(H)}run(Z,H){}}function F(U){if(!w.isUndefined(U)){if(!w.isObject(U))return!1;const Z=U;if(!w.isUndefined(Z.levels)&&!w.isNumber(Z.levels)||!w.isUndefined(Z.direction)&&!w.isString(Z.direction)||!w.isUndefined(Z.selectionLines)&&(!Array.isArray(Z.selectionLines)||!Z.selectionLines.every(w.isNumber)))return!1}return!0}class O extends P{constructor(){super({id:"editor.unfold",label:m.localize(0,null),alias:"Unfold",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to unfold. If not set, defaults to 1. + * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. + `,constraint:F,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(Z,H,q,te){const G=te&&te.levels||1,$=this.getLineNumbers(te,q);te&&te.direction==="up"?(0,t.setCollapseStateLevelsUp)(H,!1,G,$):(0,t.setCollapseStateLevelsDown)(H,!1,G,$)}}class B extends P{constructor(){super({id:"editor.unfoldRecursively",label:m.localize(1,null),alias:"Unfold Recursively",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2142),weight:100}})}invoke(Z,H,q,te){(0,t.setCollapseStateLevelsDown)(H,!1,Number.MAX_VALUE,this.getSelectedLines(q))}}class W extends P{constructor(){super({id:"editor.fold",label:m.localize(2,null),alias:"Fold",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to fold. + * 'direction': If 'up', folds given number of levels up otherwise folds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. + If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. + `,constraint:F,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(Z,H,q,te){const G=this.getLineNumbers(te,q),$=te&&te.levels,oe=te&&te.direction;typeof $!="number"&&typeof oe!="string"?(0,t.setCollapseStateUp)(H,!0,G):oe==="up"?(0,t.setCollapseStateLevelsUp)(H,!0,$||1,G):(0,t.setCollapseStateLevelsDown)(H,!0,$||1,G)}}class V extends P{constructor(){super({id:"editor.toggleFold",label:m.localize(3,null),alias:"Toggle Fold",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2090),weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);(0,t.toggleCollapseState)(H,1,te)}}class z extends P{constructor(){super({id:"editor.foldRecursively",label:m.localize(4,null),alias:"Fold Recursively",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2140),weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);(0,t.setCollapseStateLevelsDown)(H,!0,Number.MAX_VALUE,te)}}class K extends P{constructor(){super({id:"editor.foldAllBlockComments",label:m.localize(5,null),alias:"Fold All Block Comments",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2138),weight:100}})}invoke(Z,H,q,te,G){if(H.regions.hasTypes())(0,t.setCollapseStateForType)(H,n.FoldingRangeKind.Comment.value,!0);else{const $=q.getModel();if(!$)return;const oe=G.getLanguageConfiguration($.getLanguageId()).comments;if(oe&&oe.blockCommentStartToken){const ae=new RegExp("^\\s*"+(0,p.escapeRegExpCharacters)(oe.blockCommentStartToken));(0,t.setCollapseStateForMatchingLines)(H,ae,!0)}}}}class j extends P{constructor(){super({id:"editor.foldAllMarkerRegions",label:m.localize(6,null),alias:"Fold All Regions",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2077),weight:100}})}invoke(Z,H,q,te,G){if(H.regions.hasTypes())(0,t.setCollapseStateForType)(H,n.FoldingRangeKind.Region.value,!0);else{const $=q.getModel();if(!$)return;const oe=G.getLanguageConfiguration($.getLanguageId()).foldingRules;if(oe&&oe.markers&&oe.markers.start){const ae=new RegExp(oe.markers.start);(0,t.setCollapseStateForMatchingLines)(H,ae,!0)}}}}class x extends P{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:m.localize(7,null),alias:"Unfold All Regions",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2078),weight:100}})}invoke(Z,H,q,te,G){if(H.regions.hasTypes())(0,t.setCollapseStateForType)(H,n.FoldingRangeKind.Region.value,!1);else{const $=q.getModel();if(!$)return;const oe=G.getLanguageConfiguration($.getLanguageId()).foldingRules;if(oe&&oe.markers&&oe.markers.start){const ae=new RegExp(oe.markers.start);(0,t.setCollapseStateForMatchingLines)(H,ae,!1)}}}}class re extends P{constructor(){super({id:"editor.foldAllExcept",label:m.localize(8,null),alias:"Fold All Except Selected",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2136),weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);(0,t.setCollapseStateForRest)(H,!0,te)}}class ie extends P{constructor(){super({id:"editor.unfoldAllExcept",label:m.localize(9,null),alias:"Unfold All Except Selected",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2134),weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);(0,t.setCollapseStateForRest)(H,!1,te)}}class J extends P{constructor(){super({id:"editor.foldAll",label:m.localize(10,null),alias:"Fold All",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2069),weight:100}})}invoke(Z,H,q){(0,t.setCollapseStateLevelsDown)(H,!0)}}class X extends P{constructor(){super({id:"editor.unfoldAll",label:m.localize(11,null),alias:"Unfold All",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2088),weight:100}})}invoke(Z,H,q){(0,t.setCollapseStateLevelsDown)(H,!1)}}class Y extends P{getFoldingLevel(){return parseInt(this.id.substr(Y.ID_PREFIX.length))}invoke(Z,H,q){(0,t.setCollapseStateAtLevel)(H,this.getFoldingLevel(),!0,this.getSelectedLines(q))}}Y.ID_PREFIX="editor.foldLevel",Y.ID=U=>Y.ID_PREFIX+U;class le extends P{constructor(){super({id:"editor.gotoParentFold",label:m.localize(12,null),alias:"Go to Parent Fold",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);if(te.length>0){const G=(0,t.getParentFoldLine)(te[0],H);G!==null&&q.setSelection({startLineNumber:G,startColumn:1,endLineNumber:G,endColumn:1})}}}class de extends P{constructor(){super({id:"editor.gotoPreviousFold",label:m.localize(13,null),alias:"Go to Previous Folding Range",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);if(te.length>0){const G=(0,t.getPreviousFoldLine)(te[0],H);G!==null&&q.setSelection({startLineNumber:G,startColumn:1,endLineNumber:G,endColumn:1})}}}class ge extends P{constructor(){super({id:"editor.gotoNextFold",label:m.localize(14,null),alias:"Go to Next Folding Range",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,weight:100}})}invoke(Z,H,q){const te=this.getSelectedLines(q);if(te.length>0){const G=(0,t.getNextFoldLine)(te[0],H);G!==null&&q.setSelection({startLineNumber:G,startColumn:1,endLineNumber:G,endColumn:1})}}}class pe extends P{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:m.localize(15,null),alias:"Create Folding Range from Selection",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2135),weight:100}})}invoke(Z,H,q){var te;const G=[],$=q.getSelections();if($){for(const oe of $){let ae=oe.endLineNumber;oe.endColumn===1&&--ae,ae>oe.startLineNumber&&(G.push({startLineNumber:oe.startLineNumber,endLineNumber:ae,type:void 0,isCollapsed:!0,source:1}),q.setSelection({startLineNumber:oe.startLineNumber,startColumn:1,endLineNumber:oe.startLineNumber,endColumn:1}))}if(G.length>0){G.sort((ae,ue)=>ae.startLineNumber-ue.startLineNumber);const oe=s.FoldingRegions.sanitizeAndMerge(H.regions,G,(te=q.getModel())===null||te===void 0?void 0:te.getLineCount());H.updatePost(s.FoldingRegions.fromFoldRanges(oe))}}}}class Q extends P{constructor(){super({id:"editor.removeManualFoldingRanges",label:m.localize(16,null),alias:"Remove Manual Folding Ranges",precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2137),weight:100}})}invoke(Z,H,q){const te=q.getSelections();if(te){const G=[];for(const $ of te){const{startLineNumber:oe,endLineNumber:ae}=$;G.push(ae>=oe?{startLineNumber:oe,endLineNumber:ae}:{endLineNumber:ae,startLineNumber:oe})}H.removeManualRanges(G),Z.triggerFoldingModelChanged()}}}(0,b.registerEditorContribution)(M.ID,M,0),(0,b.registerEditorAction)(O),(0,b.registerEditorAction)(B),(0,b.registerEditorAction)(W),(0,b.registerEditorAction)(z),(0,b.registerEditorAction)(J),(0,b.registerEditorAction)(X),(0,b.registerEditorAction)(K),(0,b.registerEditorAction)(j),(0,b.registerEditorAction)(x),(0,b.registerEditorAction)(re),(0,b.registerEditorAction)(ie),(0,b.registerEditorAction)(V),(0,b.registerEditorAction)(le),(0,b.registerEditorAction)(de),(0,b.registerEditorAction)(ge),(0,b.registerEditorAction)(pe),(0,b.registerEditorAction)(Q);for(let U=1;U<=7;U++)(0,b.registerInstantiatedEditorAction)(new Y({id:Y.ID(U),label:m.localize(17,null,U),alias:`Fold Level ${U}`,precondition:R,kbOpts:{kbExpr:a.EditorContextKeys.editorTextFocus,primary:(0,D.KeyChord)(2089,2048|21+U),weight:100}}));_.CommandsRegistry.registerCommand("_executeFoldingRangeProvider",async function(U,...Z){const[H]=Z;if(!(H instanceof E.URI))throw(0,y.illegalArgument)();const q=U.get(f.ILanguageFeaturesService),te=U.get(I.IModelService).getModel(H);if(!te)throw(0,y.illegalArgument)();const G=U.get(T.IConfigurationService);if(!G.getValue("editor.folding",{resource:H}))return[];const $=U.get(i.ILanguageConfigurationService),oe=G.getValue("editor.foldingStrategy",{resource:H}),ae={get limit(){return G.getValue("editor.foldingMaximumRegions",{resource:H})},update:(Ce,Se)=>{}},ue=new g.IndentRangeProvider(te,$,ae);let ce=ue;if(oe!=="indentation"){const Ce=M.getFoldingRangeProviders(q,te);Ce.length&&(ce=new l.SyntaxRangeProvider(te,Ce,()=>{},ae,ue))}const fe=await ce.compute(k.CancellationToken.None),ve=[];try{if(fe)for(let Ce=0;CeB.hoverOrdinal-W.hoverOrdinal),this._computer=new R(this._editor,this._participants),this._hoverOperation=this._register(new b.HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(B=>{if(!this._computer.anchor)return;const W=B.hasLoadingMessage?this._addLoadingMessage(B.value):B.value;this._withResult(new u(this._computer.anchor,W,B.isComplete))})),this._register(L.addStandardDisposableListener(this._widget.getDomNode(),"keydown",B=>{B.equals(9)&&this.hide()})),this._register(v.TokenizationRegistry.onDidChange(()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(P,F,O,B,W){return!this._widget.position||!this._currentResult?P?(this._startHoverOperationIfNecessary(P,F,O,B,!1),!0):!1:this._editor.getOption(60).sticky&&W&&this._widget.isMouseGettingCloser(W.event.posx,W.event.posy)?(P&&this._startHoverOperationIfNecessary(P,F,O,B,!0),!0):P?P&&this._currentResult.anchor.equals(P)?!0:P.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(P)),this._startHoverOperationIfNecessary(P,F,O,B,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(P,F,O,B,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(P,F,O,B,W){this._computer.anchor&&this._computer.anchor.equals(P)||(this._hoverOperation.cancel(),this._computer.anchor=P,this._computer.shouldFocus=B,this._computer.source=O,this._computer.insistOnKeepingHoverVisible=W,this._hoverOperation.start(F))}_setCurrentResult(P){this._currentResult!==P&&(P&&P.messages.length===0&&(P=null),this._currentResult=P,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}_addLoadingMessage(P){if(this._computer.anchor){for(const F of this._participants)if(F.createLoadingMessage){const O=F.createLoadingMessage(this._computer.anchor);if(O)return P.slice(0).concat([O])}}return P}_withResult(P){this._widget.position&&this._currentResult&&this._currentResult.isComplete&&(!P.isComplete||this._computer.insistOnKeepingHoverVisible&&P.messages.length===0)||this._setCurrentResult(P)}_renderMessages(P,F){const{showAtPosition:O,showAtSecondaryPosition:B,highlightRange:W}=s.computeHoverRanges(this._editor,P.range,F),V=new D.DisposableStore,z=V.add(new A(this._keybindingService)),K=document.createDocumentFragment();let j=null;const x={fragment:K,statusBar:z,setColorPicker:ie=>j=ie,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:ie=>this._widget.setMinimumDimensions(ie),hide:()=>this.hide()};for(const ie of this._participants){const J=F.filter(X=>X.owner===ie);J.length>0&&V.add(ie.renderHoverParts(x,J))}const re=F.some(ie=>ie.isBeforeContent);if(z.hasContent&&K.appendChild(z.hoverElement),K.hasChildNodes()){if(W){const ie=this._editor.createDecorationsCollection();ie.set([{range:W,options:s._DECORATION_OPTIONS}]),V.add((0,D.toDisposable)(()=>{ie.clear()}))}this._widget.showAt(K,new C(P.initialMousePosX,P.initialMousePosY,j,O,B,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,re,V))}else V.dispose()}static computeHoverRanges(P,F,O){let B=1;if(P.hasModel()){const re=P._getViewModel(),ie=re.coordinatesConverter,J=ie.convertModelRangeToViewRange(F),X=new S.Position(J.startLineNumber,re.getLineMinColumn(J.startLineNumber));B=ie.convertViewPositionToModelPosition(X).column}const W=F.startLineNumber;let V=F.startColumn,z=O[0].range,K=null;for(const re of O)z=p.Range.plusRange(z,re.range),re.range.startLineNumber===W&&re.range.endLineNumber===W&&(V=Math.max(Math.min(V,re.range.startColumn),B)),re.forceShowAtRange&&(K=re.range);const j=K?K.getStartPosition():new S.Position(W,F.startColumn),x=K?K.getStartPosition():new S.Position(W,V);return{showAtPosition:j,showAtSecondaryPosition:x,highlightRange:z}}showsOrWillShow(P){if(this._widget.isResizing)return!0;const F=[];for(const B of this._participants)if(B.suggestHoverAnchor){const W=B.suggestHoverAnchor(P);W&&F.push(W)}const O=P.target;if(O.type===6&&F.push(new a.HoverRangeAnchor(0,O.range,P.event.posx,P.event.posy)),O.type===7){const B=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!O.detail.isAfterLines&&typeof O.detail.horizontalDistanceToText=="number"&&O.detail.horizontalDistanceToTextW.priority-B.priority),this._startShowingOrUpdateHover(F[0],0,0,!1,P))}startShowingAtRange(P,F,O,B){this._startShowingOrUpdateHover(new a.HoverRangeAnchor(0,P,void 0,void 0),F,O,B,null)}containsNode(P){return P?this._widget.getDomNode().contains(P):!1}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}get widget(){return this._widget}};e.ContentHoverController=h,h._DECORATION_OPTIONS=w.ModelDecorationOptions.register({description:"content-hover-highlight",className:"hoverHighlight"}),e.ContentHoverController=h=s=De([he(1,n.IInstantiationService),he(2,i.IKeybindingService)],h);class u{constructor(P,F,O){this.anchor=P,this.messages=F,this.isComplete=O}filter(P){const F=this.messages.filter(O=>O.isValidForHoverAnchor(P));return F.length===this.messages.length?this:new f(this,this.anchor,F,this.isComplete)}}class f extends u{constructor(P,F,O,B){super(F,O,B),this.original=P}filter(P){return this.original.filter(P)}}class C{constructor(P,F,O,B,W,V,z,K,j,x){this.initialMousePosX=P,this.initialMousePosY=F,this.colorPicker=O,this.showAtPosition=B,this.showAtSecondaryPosition=W,this.preferAbove=V,this.stoleFocus=z,this.source=K,this.isBeforeContent=j,this.disposables=x,this.closestMouseDistance=void 0}}const _=30,E=10,I=6;let T=l=class extends m.ResizableContentWidget{get isColorPickerVisible(){var P;return!!(!((P=this._visibleData)===null||P===void 0)&&P.colorPicker)}get isVisibleFromKeyboard(){var P;return((P=this._visibleData)===null||P===void 0?void 0:P.source)===1}get isVisible(){var P;return(P=this._hoverVisibleKey.get())!==null&&P!==void 0?P:!1}get isFocused(){var P;return(P=this._hoverFocusedKey.get())!==null&&P!==void 0?P:!1}constructor(P,F,O,B,W){const V=P.getOption(67)+8,z=150,K=new L.Dimension(z,V);super(P,K),this._configurationService=O,this._accessibilityService=B,this._keybindingService=W,this._hover=this._register(new k.HoverWidget),this._minimumSize=K,this._hoverVisibleKey=o.EditorContextKeys.hoverVisible.bindTo(F),this._hoverFocusedKey=o.EditorContextKeys.hoverFocused.bindTo(F),L.append(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(x=>{x.hasChanged(50)&&this._updateFont()}));const j=this._register(L.trackFocus(this._resizableNode.domNode));this._register(j.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(j.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var P;super.dispose(),(P=this._visibleData)===null||P===void 0||P.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return l.ID}static _applyDimensions(P,F,O){const B=typeof F=="number"?`${F}px`:F,W=typeof O=="number"?`${O}px`:O;P.style.width=B,P.style.height=W}_setContentsDomNodeDimensions(P,F){const O=this._hover.contentsDomNode;return l._applyDimensions(O,P,F)}_setContainerDomNodeDimensions(P,F){const O=this._hover.containerDomNode;return l._applyDimensions(O,P,F)}_setHoverWidgetDimensions(P,F){this._setContentsDomNodeDimensions(P,F),this._setContainerDomNodeDimensions(P,F),this._layoutContentWidget()}static _applyMaxDimensions(P,F,O){const B=typeof F=="number"?`${F}px`:F,W=typeof O=="number"?`${O}px`:O;P.style.maxWidth=B,P.style.maxHeight=W}_setHoverWidgetMaxDimensions(P,F){l._applyMaxDimensions(this._hover.contentsDomNode,P,F),l._applyMaxDimensions(this._hover.containerDomNode,P,F),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof P=="number"?`${P}px`:P),this._layoutContentWidget()}_hasHorizontalScrollbar(){const P=this._hover.scrollbar.getScrollDimensions();return P.scrollWidth>P.width}_adjustContentsBottomPadding(){const P=this._hover.contentsDomNode,F=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;P.style.paddingBottom!==F&&(P.style.paddingBottom=F)}_setAdjustedHoverWidgetDimensions(P){this._setHoverWidgetMaxDimensions("none","none");const F=P.width,O=P.height;this._setHoverWidgetDimensions(F,O),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(F,O-E))}_updateResizableNodeMaxDimensions(){var P,F;const O=(P=this._findMaximumRenderingWidth())!==null&&P!==void 0?P:1/0,B=(F=this._findMaximumRenderingHeight())!==null&&F!==void 0?F:1/0;this._resizableNode.maxSize=new L.Dimension(O,B),this._setHoverWidgetMaxDimensions(O,B)}_resize(P){var F,O;l._lastDimensions=new L.Dimension(P.width,P.height),this._setAdjustedHoverWidgetDimensions(P),this._resizableNode.layout(P.height,P.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),(O=(F=this._visibleData)===null||F===void 0?void 0:F.colorPicker)===null||O===void 0||O.layout()}_findAvailableSpaceVertically(){var P;const F=(P=this._visibleData)===null||P===void 0?void 0:P.showAtPosition;if(F)return this._positionPreference===1?this._availableVerticalSpaceAbove(F):this._availableVerticalSpaceBelow(F)}_findMaximumRenderingHeight(){const P=this._findAvailableSpaceVertically();if(!P)return;let F=I;return Array.from(this._hover.contentsDomNode.children).forEach(O=>{F+=O.clientHeight}),this._hasHorizontalScrollbar()&&(F+=E),Math.min(P,F)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const P=Array.from(this._hover.contentsDomNode.children).some(F=>F.scrollWidth>F.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),P}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const P=this._isHoverTextOverflowing(),F=typeof this._contentWidth>"u"?0:this._contentWidth-2;return P||this._hover.containerDomNode.clientWidth"u"||typeof this._visibleData.initialMousePosY>"u")return this._visibleData.initialMousePosX=P,this._visibleData.initialMousePosY=F,!1;const O=L.getDomNodePagePosition(this.getDomNode());typeof this._visibleData.closestMouseDistance>"u"&&(this._visibleData.closestMouseDistance=M(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,O.left,O.top,O.width,O.height));const B=M(P,F,O.left,O.top,O.width,O.height);return B>this._visibleData.closestMouseDistance+4?!1:(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,B),!0)}_setHoverData(P){var F;(F=this._visibleData)===null||F===void 0||F.disposables.dispose(),this._visibleData=P,this._hoverVisibleKey.set(!!P),this._hover.containerDomNode.classList.toggle("hidden",!P)}_updateFont(){const{fontSize:P,lineHeight:F}=this._editor.getOption(50),O=this._hover.contentsDomNode;O.style.fontSize=`${P}px`,O.style.lineHeight=`${F/P}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(W=>this._editor.applyFontInfo(W))}_updateContent(P){const F=this._hover.contentsDomNode;F.style.paddingBottom="",F.textContent="",F.appendChild(P)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const P=Math.max(this._editor.getLayoutInfo().height/4,250,l._lastDimensions.height),F=Math.max(this._editor.getLayoutInfo().width*.66,500,l._lastDimensions.width);this._setHoverWidgetMaxDimensions(F,P)}_render(P,F){this._setHoverData(F),this._updateFont(),this._updateContent(P),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var P;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[(P=this._positionPreference)!==null&&P!==void 0?P:1]}:null}showAt(P,F){var O,B,W,V;if(!this._editor||!this._editor.hasModel())return;this._render(P,F);const z=L.getTotalHeight(this._hover.containerDomNode),K=F.showAtPosition;this._positionPreference=(O=this._findPositionPreference(z,K))!==null&&O!==void 0?O:1,this.onContentsChanged(),F.stoleFocus&&this._hover.containerDomNode.focus(),(B=F.colorPicker)===null||B===void 0||B.layout();const x=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(0,k.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(V=(W=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||W===void 0?void 0:W.getAriaLabel())!==null&&V!==void 0?V:"");x&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+x)}hide(){if(!this._visibleData)return;const P=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new L.Dimension(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),P&&this._editor.focus()}_removeConstraintsRenderNormally(){const P=this._editor.getLayoutInfo();this._resizableNode.layout(P.height,P.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(P){var F;const O=this._hover.containerDomNode,B=this._hover.contentsDomNode,W=(F=this._findMaximumRenderingHeight())!==null&&F!==void 0?F:1/0;this._setContainerDomNodeDimensions(L.getTotalWidth(O),Math.min(W,P)),this._setContentsDomNodeDimensions(L.getTotalWidth(B),Math.min(W,P-E))}setMinimumDimensions(P){this._minimumSize=new L.Dimension(Math.max(this._minimumSize.width,P.width),Math.max(this._minimumSize.height,P.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const P=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new L.Dimension(P,this._minimumSize.height)}onContentsChanged(){var P;this._removeConstraintsRenderNormally();const F=this._hover.containerDomNode;let O=L.getTotalHeight(F),B=L.getTotalWidth(F);if(this._resizableNode.layout(O,B),this._setHoverWidgetDimensions(B,O),O=L.getTotalHeight(F),B=L.getTotalWidth(F),this._contentWidth=B,this._updateMinimumWidth(),this._resizableNode.layout(O,B),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(O)),!((P=this._visibleData)===null||P===void 0)&&P.showAtPosition){const W=L.getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(W,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const P=this._hover.scrollbar.getScrollPosition().scrollTop,F=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:P-F.lineHeight})}scrollDown(){const P=this._hover.scrollbar.getScrollPosition().scrollTop,F=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:P+F.lineHeight})}scrollLeft(){const P=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:P-_})}scrollRight(){const P=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:P+_})}pageUp(){const P=this._hover.scrollbar.getScrollPosition().scrollTop,F=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:P-F})}pageDown(){const P=this._hover.scrollbar.getScrollPosition().scrollTop,F=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:P+F})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};e.ContentHoverWidget=T,T.ID="editor.contrib.resizableContentHoverWidget",T._lastDimensions=new L.Dimension(0,0),e.ContentHoverWidget=T=l=De([he(1,g.IContextKeyService),he(2,c.IConfigurationService),he(3,d.IAccessibilityService),he(4,i.IKeybindingService)],T);let A=class extends D.Disposable{get hasContent(){return this._hasContent}constructor(P){super(),this._keybindingService=P,this._hasContent=!1,this.hoverElement=r("div.hover-row.status-bar"),this.actionsElement=L.append(this.hoverElement,r("div.actions"))}addAction(P){const F=this._keybindingService.lookupKeybinding(P.commandId),O=F?F.getLabel():null;return this._hasContent=!0,this._register(k.HoverAction.render(this.actionsElement,P,O))}append(P){const F=L.append(this.actionsElement,P);return this._hasContent=!0,F}};e.EditorHoverStatusBar=A,e.EditorHoverStatusBar=A=De([he(0,i.IKeybindingService)],A);class R{get anchor(){return this._anchor}set anchor(P){this._anchor=P}get shouldFocus(){return this._shouldFocus}set shouldFocus(P){this._shouldFocus=P}get source(){return this._source}set source(P){this._source=P}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(P){this._insistOnKeepingHoverVisible=P}constructor(P,F){this._editor=P,this._participants=F,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(P,F){if(F.type!==1&&!F.supportsMarkerHover)return[];const O=P.getModel(),B=F.range.startLineNumber;if(B>O.getLineCount())return[];const W=O.getLineMaxColumn(B);return P.getLineDecorations(B).filter(V=>{if(V.options.isWholeLine)return!0;const z=V.range.startLineNumber===B?V.range.startColumn:1,K=V.range.endLineNumber===B?V.range.endColumn:W;if(V.options.showIfCollapsed){if(z>F.range.startColumn+1||F.range.endColumn-1>K)return!1}else if(z>F.range.startColumn||F.range.endColumn>K)return!1;return!0})}computeAsync(P){const F=this._anchor;if(!this._editor.hasModel()||!F)return t.AsyncIterableObject.EMPTY;const O=R._getLineDecorations(this._editor,F);return t.AsyncIterableObject.merge(this._participants.map(B=>B.computeAsync?B.computeAsync(F,O,P):t.AsyncIterableObject.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const P=R._getLineDecorations(this._editor,this._anchor);let F=[];for(const O of this._participants)F=F.concat(O.computeSync(this._anchor,P));return(0,y.coalesce)(F)}}function M(N,P,F,O,B,W){const V=F+B/2,z=O+W/2,K=Math.max(Math.abs(N-V)-B/2,0),j=Math.max(Math.abs(P-z)-W/2,0);return Math.sqrt(K*K+j*j)}}),define(ne[912],se([1,0,2,383,8,386,34,7,18,16,21,14,51,33,360,6,207]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";var g,m;Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerWidget=e.StandaloneColorPickerController=void 0;let c=g=class extends L.Disposable{constructor(u,f,C,_,E,I,T){super(),this._editor=u,this._modelService=C,this._keybindingService=_,this._instantiationService=E,this._languageFeatureService=I,this._languageConfigurationService=T,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=b.EditorContextKeys.standaloneColorPickerVisible.bindTo(f),this._standaloneColorPickerFocused=b.EditorContextKeys.standaloneColorPickerFocused.bindTo(f)}showOrFocus(){var u;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(u=this._standaloneColorPickerWidget)===null||u===void 0||u.focus():this._standaloneColorPickerWidget=new l(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var u;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(u=this._standaloneColorPickerWidget)===null||u===void 0||u.hide(),this._editor.focus()}insertColor(){var u;(u=this._standaloneColorPickerWidget)===null||u===void 0||u.updateEditor(),this.hide()}static get(u){return u.getContribution(g.ID)}};e.StandaloneColorPickerController=c,c.ID="editor.contrib.standaloneColorPickerController",e.StandaloneColorPickerController=c=g=De([he(1,a.IContextKeyService),he(2,n.IModelService),he(3,S.IKeybindingService),he(4,y.IInstantiationService),he(5,w.ILanguageFeaturesService),he(6,i.ILanguageConfigurationService)],c),(0,v.registerEditorContribution)(c.ID,c,1);const d=8,s=22;let l=m=class extends L.Disposable{constructor(u,f,C,_,E,I,T,A){var R;super(),this._editor=u,this._standaloneColorPickerVisible=f,this._standaloneColorPickerFocused=C,this._modelService=E,this._keybindingService=I,this._languageFeaturesService=T,this._languageConfigurationService=A,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new p.Emitter),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=_.createInstance(k.StandaloneColorPickerParticipant,this._editor),this._position=(R=this._editor._getViewModel())===null||R===void 0?void 0:R.getPrimaryCursorState().modelState.position;const M=this._editor.getSelection(),N=M?{startLineNumber:M.startLineNumber,startColumn:M.startColumn,endLineNumber:M.endLineNumber,endColumn:M.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},P=this._register(o.trackFocus(this._body));this._register(P.onDidBlur(F=>{this.hide()})),this._register(P.onDidFocus(F=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(F=>{var O;const B=(O=F.target.element)===null||O===void 0?void 0:O.classList;B&&B.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(F=>{this._render(F.value,F.foundInEditor)})),this._start(N),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return m.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const u=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:u?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(u){const f=await this._computeAsync(u);f&&this._onResult.fire(new r(f.result,f.foundInEditor))}async _computeAsync(u){if(!this._editor.hasModel())return null;const f={range:u,color:{red:0,green:0,blue:0,alpha:1}},C=await this._standaloneColorPickerParticipant.createColorHover(f,new t.DefaultDocumentColorProvider(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return C?{result:C.colorHover,foundInEditor:C.foundInEditor}:null}_render(u,f){const C=document.createDocumentFragment(),_=this._register(new D.EditorHoverStatusBar(this._keybindingService));let E;const I={fragment:C,statusBar:_,setColorPicker:B=>E=B,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=u,this._register(this._standaloneColorPickerParticipant.renderHoverParts(I,[u])),E===void 0)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(C),E.layout();const T=E.body,A=T.saturationBox.domNode.clientWidth,R=T.domNode.clientWidth-A-s-d,M=E.body.enterButton;M?.onClicked(()=>{this.updateEditor(),this.hide()});const N=E.header,P=N.pickedColorNode;P.style.width=A+d+"px";const F=N.originalColorNode;F.style.width=R+"px";const O=E.header.closeButton;O?.onClicked(()=>{this.hide()}),f&&(M&&(M.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(u.range)),this._editor.layoutContentWidget(this)}};e.StandaloneColorPickerWidget=l,l.ID="editor.contrib.standaloneColorPickerWidget",e.StandaloneColorPickerWidget=l=m=De([he(3,y.IInstantiationService),he(4,n.IModelService),he(5,S.IKeybindingService),he(6,w.ILanguageFeaturesService),he(7,i.ILanguageConfigurationService)],l);class r{constructor(u,f){this.value=u,this.foundInEditor=f}}}),define(ne[913],se([1,0,16,672,912,21,28,207]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowOrFocusStandaloneColorPicker=void 0;class p extends L.EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...(0,k.localize2)(3,"Show or Focus Standalone Color Picker"),mnemonicTitle:(0,k.localize)(0,null)},precondition:void 0,menu:[{id:S.MenuId.CommandPalette}]})}runEditorCommand(a,n){var i;(i=y.StandaloneColorPickerController.get(n))===null||i===void 0||i.showOrFocus()}}e.ShowOrFocusStandaloneColorPicker=p;class w extends L.EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:(0,k.localize)(1,null),alias:"Hide the Color Picker",precondition:D.EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(a,n){var i;(i=y.StandaloneColorPickerController.get(n))===null||i===void 0||i.hide()}}class v extends L.EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:(0,k.localize)(2,null),alias:"Insert Color with Standalone Color Picker",precondition:D.EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(a,n){var i;(i=y.StandaloneColorPickerController.get(n))===null||i===void 0||i.insertColor()}}(0,L.registerEditorAction)(w),(0,L.registerEditorAction)(v),(0,S.registerAction2)(p)}),define(ne[914],se([1,0,15,12,109,16,5,23,21,38,123,700,568,473]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0});let t=i=class{static get(c){return c.getContribution(i.ID)}constructor(c,d){this.editor=c,this.editorWorkerService=d,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(c,d){var s;(s=this.currentRequest)===null||s===void 0||s.cancel();const l=this.editor.getSelection(),r=this.editor.getModel();if(!r||!l)return;let h=l;if(h.startLineNumber!==h.endLineNumber)return;const u=new y.EditorState(this.editor,5),f=r.uri;return this.editorWorkerService.canNavigateValueSet(f)?(this.currentRequest=(0,L.createCancelablePromise)(C=>this.editorWorkerService.navigateValueSet(f,h,d)),this.currentRequest.then(C=>{var _;if(!C||!C.range||!C.value||!u.validate(this.editor))return;const E=S.Range.lift(C.range);let I=C.range;const T=C.value.length-(h.endColumn-h.startColumn);I={startLineNumber:I.startLineNumber,startColumn:I.startColumn,endLineNumber:I.endLineNumber,endColumn:I.startColumn+C.value.length},T>1&&(h=new p.Selection(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn+T-1));const A=new n.InPlaceReplaceCommand(E,h,C.value);this.editor.pushUndoStop(),this.editor.executeCommand(c,A),this.editor.pushUndoStop(),this.decorations.set([{range:I,options:i.DECORATION}]),(_=this.decorationRemover)===null||_===void 0||_.cancel(),this.decorationRemover=(0,L.timeout)(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(k.onUnexpectedError)}).catch(k.onUnexpectedError)):Promise.resolve(void 0)}};t.ID="editor.contrib.inPlaceReplaceController",t.DECORATION=v.ModelDecorationOptions.register({description:"in-place-replace",className:"valueSetReplacement"}),t=i=De([he(1,b.IEditorWorkerService)],t);class o extends D.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:a.localize(0,null),alias:"Replace with Previous Value",precondition:w.EditorContextKeys.writable,kbOpts:{kbExpr:w.EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(c,d){const s=t.get(d);return s?s.run(this.id,!1):Promise.resolve(void 0)}}class g extends D.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:a.localize(1,null),alias:"Replace with Next Value",precondition:w.EditorContextKeys.writable,kbOpts:{kbExpr:w.EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(c,d){const s=t.get(d);return s?s.run(this.id,!0):Promise.resolve(void 0)}}(0,D.registerEditorContribution)(t.ID,t,4),(0,D.registerEditorAction)(o),(0,D.registerEditorAction)(g)}),define(ne[269],se([1,0,6,15,27,2,11,29,5,38,8,478]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineProgressManager=void 0;const a=v.ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:S.noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class n extends D.Disposable{constructor(o,g,m,c,d){super(),this.typeId=o,this.editor=g,this.range=m,this.delegate=d,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(c),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(o){this.domNode=L.$(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=o;const g=L.$("span.icon");this.domNode.append(g),g.classList.add(...p.ThemeIcon.asClassNameArray(y.Codicon.loading),"codicon-modifier-spin");const m=()=>{const c=this.editor.getOption(67);this.domNode.style.height=`${c}px`,this.domNode.style.width=`${Math.ceil(.8*c)}px`};m(),this._register(this.editor.onDidChangeConfiguration(c=>{(c.hasChanged(52)||c.hasChanged(67))&&m()})),this._register(L.addDisposableListener(this.domNode,L.EventType.CLICK,c=>{this.delegate.cancel()}))}getId(){return n.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}n.baseId="editor.widget.inlineProgressWidget";let i=class extends D.Disposable{constructor(o,g,m){super(),this.id=o,this._editor=g,this._instantiationService=m,this._showDelay=500,this._showPromise=this._register(new D.MutableDisposable),this._currentWidget=new D.MutableDisposable,this._operationIdPool=0,this._currentDecorations=g.createDecorationsCollection()}async showWhile(o,g,m){const c=this._operationIdPool++;this._currentOperation=c,this.clear(),this._showPromise.value=(0,k.disposableTimeout)(()=>{const d=w.Range.fromPositions(o);this._currentDecorations.set([{range:d,options:a}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(n,this.id,this._editor,d,g,m))},this._showDelay);try{return await m}finally{this._currentOperation===c&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};e.InlineProgressManager=i,e.InlineProgressManager=i=De([he(2,b.IInstantiationService)],i)}),define(ne[387],se([1,0,6,13,15,179,2,113,17,178,196,359,142,5,18,245,109,269,677,107,14,8,88,72,353,168]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f){"use strict";var C;Object.defineProperty(e,"__esModule",{value:!0}),e.CopyPasteController=e.pasteWidgetVisibleCtx=e.changePasteTypeCommandId=void 0,e.changePasteTypeCommandId="editor.changePasteType",e.pasteWidgetVisibleCtx=new s.RawContextKey("pasteWidgetVisible",!1,(0,c.localize)(0,null));const _="application/vnd.code.copyMetadata";let E=C=class extends S.Disposable{static get(A){return A.getContribution(C.ID)}constructor(A,R,M,N,P,F,O){super(),this._bulkEditService=M,this._clipboardService=N,this._languageFeaturesService=P,this._quickInputService=F,this._progressService=O,this._editor=A;const B=A.getContainerDomNode();this._register((0,L.addDisposableListener)(B,"copy",W=>this.handleCopy(W))),this._register((0,L.addDisposableListener)(B,"cut",W=>this.handleCopy(W))),this._register((0,L.addDisposableListener)(B,"paste",W=>this.handlePaste(W),!0)),this._pasteProgressManager=this._register(new m.InlineProgressManager("pasteIntoEditor",A,R)),this._postPasteWidgetManager=this._register(R.createInstance(u.PostEditWidgetManager,"pasteIntoEditor",A,e.pasteWidgetVisibleCtx,{id:e.changePasteTypeCommandId,label:(0,c.localize)(1,null)}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(A){this._editor.focus();try{this._pasteAsActionContext={preferredId:A},(0,L.getActiveDocument)().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(91)}async finishedPaste(){await this._currentPasteOperation}handleCopy(A){var R,M;if(!this._editor.hasTextFocus()||(w.isWeb&&this._clipboardService.writeResources([]),!A.clipboardData||!this.isPasteAsEnabled()))return;const N=this._editor.getModel(),P=this._editor.getSelections();if(!N||!P?.length)return;const F=this._editor.getOption(37);let O=P;const B=P.length===1&&P[0].isEmpty();if(B){if(!F)return;O=[new i.Range(O[0].startLineNumber,1,O[0].startLineNumber,1+N.getLineLength(O[0].startLineNumber))]}const W=(R=this._editor._getViewModel())===null||R===void 0?void 0:R.getPlainTextToCopy(P,F,w.isWindows),z={multicursorText:Array.isArray(W)?W:null,pasteOnNewLine:B,mode:null},K=this._languageFeaturesService.documentPasteEditProvider.ordered(N).filter(J=>!!J.prepareDocumentPaste);if(!K.length){this.setCopyMetadata(A.clipboardData,{defaultPastePayload:z});return}const j=(0,a.toVSDataTransfer)(A.clipboardData),x=K.flatMap(J=>{var X;return(X=J.copyMimeTypes)!==null&&X!==void 0?X:[]}),re=(0,v.generateUuid)();this.setCopyMetadata(A.clipboardData,{id:re,providerCopyMimeTypes:x,defaultPastePayload:z});const ie=(0,y.createCancelablePromise)(async J=>{const X=(0,k.coalesce)(await Promise.all(K.map(async Y=>{try{return await Y.prepareDocumentPaste(N,O,j,J)}catch(le){console.error(le);return}})));X.reverse();for(const Y of X)for(const[le,de]of Y)j.replace(le,de);return j});(M=this._currentCopyOperation)===null||M===void 0||M.dataTransferPromise.cancel(),this._currentCopyOperation={handle:re,dataTransferPromise:ie}}async handlePaste(A){var R,M,N,P,F;if(!A.clipboardData||!this._editor.hasTextFocus())return;(R=f.MessageController.get(this._editor))===null||R===void 0||R.closeMessage(),(M=this._currentPasteOperation)===null||M===void 0||M.cancel(),this._currentPasteOperation=void 0;const O=this._editor.getModel(),B=this._editor.getSelections();if(!B?.length||!O||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const W=this.fetchCopyMetadata(A),V=(0,a.toExternalVSDataTransfer)(A.clipboardData);V.delete(_);const z=[...A.clipboardData.types,...(N=W?.providerCopyMimeTypes)!==null&&N!==void 0?N:[],p.Mimes.uriList],K=this._languageFeaturesService.documentPasteEditProvider.ordered(O).filter(j=>{var x,re;return!((x=this._pasteAsActionContext)===null||x===void 0)&&x.preferredId&&this._pasteAsActionContext.preferredId!==j.id?!1:(re=j.pasteMimeTypes)===null||re===void 0?void 0:re.some(ie=>(0,D.matchesMimeType)(ie,z))});if(!K.length){!((P=this._pasteAsActionContext)===null||P===void 0)&&P.preferredId&&this.showPasteAsNoEditMessage(B,(F=this._pasteAsActionContext)===null||F===void 0?void 0:F.preferredId);return}A.preventDefault(),A.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferredId,K,B,V,W,{trigger:"explicit",only:this._pasteAsActionContext.preferredId}):this.doPasteInline(K,B,V,W,{trigger:"implicit"})}showPasteAsNoEditMessage(A,R){var M;(M=f.MessageController.get(this._editor))===null||M===void 0||M.showMessage((0,c.localize)(2,null,R),A[0].getStartPosition())}doPasteInline(A,R,M,N,P){const F=(0,y.createCancelablePromise)(async O=>{const B=this._editor;if(!B.hasModel())return;const W=B.getModel(),V=new g.EditorStateCancellationTokenSource(B,3,void 0,O);try{if(await this.mergeInDataFromCopy(M,N,V.token),V.token.isCancellationRequested)return;const z=A.filter(j=>I(j,M));if(!z.length||z.length===1&&z[0].id==="text"){await this.applyDefaultPasteHandler(M,N,V.token);return}const K=await this.getPasteEdits(z,M,W,R,P,V.token);if(V.token.isCancellationRequested)return;if(K.length===1&&K[0].providerId==="text"){await this.applyDefaultPasteHandler(M,N,V.token);return}if(K.length){const j=B.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(R,{activeEditIndex:0,allEdits:K},j,V.token)}await this.applyDefaultPasteHandler(M,N,V.token)}finally{V.dispose(),this._currentPasteOperation===F&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(R[0].getEndPosition(),(0,c.localize)(3,null),F),this._currentPasteOperation=F}showPasteAsPick(A,R,M,N,P,F){const O=(0,y.createCancelablePromise)(async B=>{const W=this._editor;if(!W.hasModel())return;const V=W.getModel(),z=new g.EditorStateCancellationTokenSource(W,3,void 0,B);try{if(await this.mergeInDataFromCopy(N,P,z.token),z.token.isCancellationRequested)return;let K=R.filter(ie=>I(ie,N));A&&(K=K.filter(ie=>ie.id===A));const j=await this.getPasteEdits(K,N,V,M,F,z.token);if(z.token.isCancellationRequested)return;if(!j.length){F.only&&this.showPasteAsNoEditMessage(M,F.only);return}let x;if(A)x=j.at(0);else{const ie=await this._quickInputService.pick(j.map(J=>({label:J.label,description:J.providerId,detail:J.detail,edit:J})),{placeHolder:(0,c.localize)(4,null)});x=ie?.edit}if(!x)return;const re=(0,o.createCombinedWorkspaceEdit)(V.uri,M,x);await this._bulkEditService.apply(re,{editor:this._editor})}finally{z.dispose(),this._currentPasteOperation===O&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:(0,c.localize)(5,null)},()=>O)}setCopyMetadata(A,R){A.setData(_,JSON.stringify(R))}fetchCopyMetadata(A){var R;if(!A.clipboardData)return;const M=A.clipboardData.getData(_);if(M)try{return JSON.parse(M)}catch{return}const[N,P]=b.ClipboardEventUtils.getTextData(A.clipboardData);if(P)return{defaultPastePayload:{mode:P.mode,multicursorText:(R=P.multicursorText)!==null&&R!==void 0?R:null,pasteOnNewLine:!!P.isFromEmptySelection}}}async mergeInDataFromCopy(A,R,M){var N;if(R?.id&&((N=this._currentCopyOperation)===null||N===void 0?void 0:N.handle)===R.id){const P=await this._currentCopyOperation.dataTransferPromise;if(M.isCancellationRequested)return;for(const[F,O]of P)A.replace(F,O)}if(!A.has(p.Mimes.uriList)){const P=await this._clipboardService.readResources();if(M.isCancellationRequested)return;P.length&&A.append(p.Mimes.uriList,(0,D.createStringDataTransferItem)(D.UriList.create(P)))}}async getPasteEdits(A,R,M,N,P,F){const O=await(0,y.raceCancellation)(Promise.all(A.map(async W=>{var V;try{const z=await((V=W.provideDocumentPasteEdits)===null||V===void 0?void 0:V.call(W,M,N,R,P,F));if(z)return{...z,providerId:W.id}}catch(z){console.error(z)}})),F),B=(0,k.coalesce)(O??[]);return(0,o.sortEditsByYieldTo)(B)}async applyDefaultPasteHandler(A,R,M){var N,P,F;const O=(N=A.get(p.Mimes.text))!==null&&N!==void 0?N:A.get("text");if(!O)return;const B=await O.asString();if(M.isCancellationRequested)return;const W={text:B,pasteOnNewLine:(P=R?.defaultPastePayload.pasteOnNewLine)!==null&&P!==void 0?P:!1,multicursorText:(F=R?.defaultPastePayload.multicursorText)!==null&&F!==void 0?F:null,mode:null};this._editor.trigger("keyboard","paste",W)}};e.CopyPasteController=E,E.ID="editor.contrib.copyPasteActionController",e.CopyPasteController=E=C=De([he(1,l.IInstantiationService),he(2,n.IBulkEditService),he(3,d.IClipboardService),he(4,t.ILanguageFeaturesService),he(5,h.IQuickInputService),he(6,r.IProgressService)],E);function I(T,A){var R;return!!(!((R=T.pasteMimeTypes)===null||R===void 0)&&R.some(M=>A.matches(M)))}}),define(ne[915],se([1,0,59,6,17,196,16,35,21,387,663,28,107,14]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PasteAction=e.CopyAction=e.CutAction=void 0;const t="9_cutcopypaste",o=y.isNative||document.queryCommandSupported("cut"),g=y.isNative||document.queryCommandSupported("copy"),m=typeof navigator.clipboard>"u"||L.isFirefox?document.queryCommandSupported("paste"):!0;function c(l){return l.register(),l}e.CutAction=o?c(new S.MultiCommand({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:y.isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:a.MenuId.MenubarEditMenu,group:"2_ccp",title:b.localize(0,null),order:1},{menuId:a.MenuId.EditorContext,group:t,title:b.localize(1,null),when:w.EditorContextKeys.writable,order:1},{menuId:a.MenuId.CommandPalette,group:"",title:b.localize(2,null),order:1},{menuId:a.MenuId.SimpleEditorContext,group:t,title:b.localize(3,null),when:w.EditorContextKeys.writable,order:1}]})):void 0,e.CopyAction=g?c(new S.MultiCommand({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:y.isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:a.MenuId.MenubarEditMenu,group:"2_ccp",title:b.localize(4,null),order:2},{menuId:a.MenuId.EditorContext,group:t,title:b.localize(5,null),order:2},{menuId:a.MenuId.CommandPalette,group:"",title:b.localize(6,null),order:1},{menuId:a.MenuId.SimpleEditorContext,group:t,title:b.localize(7,null),order:2}]})):void 0,a.MenuRegistry.appendMenuItem(a.MenuId.MenubarEditMenu,{submenu:a.MenuId.MenubarCopy,title:b.localize2(13,"Copy As"),group:"2_ccp",order:3}),a.MenuRegistry.appendMenuItem(a.MenuId.EditorContext,{submenu:a.MenuId.EditorContextCopy,title:b.localize2(14,"Copy As"),group:t,order:3}),a.MenuRegistry.appendMenuItem(a.MenuId.EditorContext,{submenu:a.MenuId.EditorContextShare,title:b.localize2(15,"Share"),group:"11_share",order:-1,when:i.ContextKeyExpr.and(i.ContextKeyExpr.notEquals("resourceScheme","output"),w.EditorContextKeys.editorTextFocus)}),a.MenuRegistry.appendMenuItem(a.MenuId.EditorTitleContext,{submenu:a.MenuId.EditorTitleContextShare,title:b.localize2(16,"Share"),group:"11_share",order:-1}),a.MenuRegistry.appendMenuItem(a.MenuId.ExplorerContext,{submenu:a.MenuId.ExplorerContextShare,title:b.localize2(17,"Share"),group:"11_share",order:-1}),e.PasteAction=m?c(new S.MultiCommand({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:y.isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:a.MenuId.MenubarEditMenu,group:"2_ccp",title:b.localize(8,null),order:4},{menuId:a.MenuId.EditorContext,group:t,title:b.localize(9,null),when:w.EditorContextKeys.writable,order:4},{menuId:a.MenuId.CommandPalette,group:"",title:b.localize(10,null),order:1},{menuId:a.MenuId.SimpleEditorContext,group:t,title:b.localize(11,null),when:w.EditorContextKeys.writable,order:4}]})):void 0;class d extends S.EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:b.localize(12,null),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(r,h){!h.hasModel()||!h.getOption(37)&&h.getSelection().isEmpty()||(D.CopyOptions.forceCopyWithSyntaxHighlighting=!0,h.focus(),h.getContainerDomNode().ownerDocument.execCommand("copy"),D.CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function s(l,r){l&&(l.addImplementation(1e4,"code-editor",(h,u)=>{const f=h.get(p.ICodeEditorService).getFocusedCodeEditor();if(f&&f.hasTextFocus()){const C=f.getOption(37),_=f.getSelection();return _&&_.isEmpty()&&!C||f.getContainerDomNode().ownerDocument.execCommand(r),!0}return!1}),l.addImplementation(0,"generic-dom",(h,u)=>((0,k.getActiveDocument)().execCommand(r),!0)))}s(e.CutAction,"cut"),s(e.CopyAction,"copy"),e.PasteAction&&(e.PasteAction.addImplementation(1e4,"code-editor",(l,r)=>{var h,u;const f=l.get(p.ICodeEditorService),C=l.get(n.IClipboardService),_=f.getFocusedCodeEditor();return _&&_.hasTextFocus()?_.getContainerDomNode().ownerDocument.execCommand("paste")?(u=(h=v.CopyPasteController.get(_))===null||h===void 0?void 0:h.finishedPaste())!==null&&u!==void 0?u:Promise.resolve():y.isWeb?(async()=>{const I=await C.readText();if(I!==""){const T=D.InMemoryClipboardMetadataManager.INSTANCE.get(I);let A=!1,R=null,M=null;T&&(A=_.getOption(37)&&!!T.isFromEmptySelection,R=typeof T.multicursorText<"u"?T.multicursorText:null,M=T.mode),_.trigger("keyboard","paste",{text:I,pasteOnNewLine:A,multicursorText:R,mode:M})}})():!0:!1}),e.PasteAction.addImplementation(0,"generic-dom",(l,r)=>((0,k.getActiveDocument)().execCommand("paste"),!0))),g&&(0,S.registerEditorAction)(d)}),define(ne[916],se([1,0,13,15,179,2,359,5,18,303,774,109,269,680,26,14,358,8,245,353]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d){"use strict";var s;Object.defineProperty(e,"__esModule",{value:!0}),e.DropIntoEditorController=e.dropWidgetVisibleCtx=e.changeDropTypeCommandId=e.defaultProviderConfig=void 0,e.defaultProviderConfig="editor.experimental.dropIntoEditor.defaultProvider",e.changeDropTypeCommandId="editor.changeDropType",e.dropWidgetVisibleCtx=new o.RawContextKey("dropWidgetVisible",!1,(0,i.localize)(0,null));let l=s=class extends D.Disposable{static get(h){return h.getContribution(s.ID)}constructor(h,u,f,C,_){super(),this._configService=f,this._languageFeaturesService=C,this._treeViewsDragAndDropService=_,this.treeItemsTransfer=g.LocalSelectionTransfer.getInstance(),this._dropProgressManager=this._register(u.createInstance(n.InlineProgressManager,"dropIntoEditor",h)),this._postDropWidgetManager=this._register(u.createInstance(d.PostEditWidgetManager,"dropIntoEditor",h,e.dropWidgetVisibleCtx,{id:e.changeDropTypeCommandId,label:(0,i.localize)(1,null)})),this._register(h.onDropIntoEditor(E=>this.onDropIntoEditor(h,E.position,E.event)))}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(h,u,f){var C;if(!f.dataTransfer||!h.hasModel())return;(C=this._currentOperation)===null||C===void 0||C.cancel(),h.focus(),h.setPosition(u);const _=(0,k.createCancelablePromise)(async E=>{const I=new a.EditorStateCancellationTokenSource(h,1,void 0,E);try{const T=await this.extractDataTransferData(f);if(T.size===0||I.token.isCancellationRequested)return;const A=h.getModel();if(!A)return;const R=this._languageFeaturesService.documentOnDropEditProvider.ordered(A).filter(N=>N.dropMimeTypes?N.dropMimeTypes.some(P=>T.matches(P)):!0),M=await this.getDropEdits(R,A,u,T,I);if(I.token.isCancellationRequested)return;if(M.length){const N=this.getInitialActiveEditIndex(A,M),P=h.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([p.Range.fromPositions(u)],{activeEditIndex:N,allEdits:M},P,E)}}finally{I.dispose(),this._currentOperation===_&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(u,(0,i.localize)(2,null),_),this._currentOperation=_}async getDropEdits(h,u,f,C,_){const E=await(0,k.raceCancellation)(Promise.all(h.map(async T=>{try{const A=await T.provideDocumentOnDropEdits(u,f,C,_.token);if(A)return{...A,providerId:T.id}}catch(A){console.error(A)}})),_.token),I=(0,L.coalesce)(E??[]);return(0,c.sortEditsByYieldTo)(I)}getInitialActiveEditIndex(h,u){const f=this._configService.getValue(e.defaultProviderConfig,{resource:h.uri});for(const[C,_]of Object.entries(f)){const E=u.findIndex(I=>_===I.providerId&&I.handledMimeType&&(0,y.matchesMimeType)(C,[I.handledMimeType]));if(E>=0)return E}return 0}async extractDataTransferData(h){if(!h.dataTransfer)return new y.VSDataTransfer;const u=(0,S.toExternalVSDataTransfer)(h.dataTransfer);if(this.treeItemsTransfer.hasData(v.DraggedTreeItemsIdentifier.prototype)){const f=this.treeItemsTransfer.getData(v.DraggedTreeItemsIdentifier.prototype);if(Array.isArray(f))for(const C of f){const _=await this._treeViewsDragAndDropService.removeDragOperationTransfer(C.identifier);if(_)for(const[E,I]of _)u.replace(E,I)}}return u}};e.DropIntoEditorController=l,l.ID="editor.contrib.dropIntoEditorController",e.DropIntoEditorController=l=s=De([he(1,m.IInstantiationService),he(2,t.IConfigurationService),he(3,w.ILanguageFeaturesService),he(4,b.ITreeViewsDnDService)],l)}),define(ne[917],se([1,0,13,15,19,39,12,7,2,11,22,16,35,9,5,21,38,33,710,14,18,31,80,63,479]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.editorLinkedEditingBackground=e.LinkedEditingAction=e.LinkedEditingContribution=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=void 0,e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new d.RawContextKey("LinkedEditingInputVisible",!1);const f="linked-editing-decoration";let C=u=class extends w.Disposable{static get(A){return A.getContribution(u.ID)}constructor(A,R,M,N,P){super(),this.languageConfigurationService=N,this._syncRangesToken=0,this._localToDispose=this._register(new w.DisposableStore),this._editor=A,this._providers=M.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(R),this._debounceInformation=P.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new w.DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(F=>{(F.hasChanged(70)||F.hasChanged(93))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(A){const R=this._editor.getModel(),M=R!==null&&(this._editor.getOption(70)||this._editor.getOption(93))&&this._providers.has(R);if(M===this._enabled&&!A||(this._enabled=M,this.clearRanges(),this._localToDispose.clear(),!M||R===null))return;this._localToDispose.add(p.Event.runAndSubscribe(R.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(R.getLanguageId()).getWordDefinition()}));const N=new k.Delayer(this._debounceInformation.get(R)),P=()=>{var B;this._rangeUpdateTriggerPromise=N.trigger(()=>this.updateRanges(),(B=this._debounceDuration)!==null&&B!==void 0?B:this._debounceInformation.get(R))},F=new k.Delayer(0),O=B=>{this._rangeSyncTriggerPromise=F.trigger(()=>this._syncRanges(B))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{P()})),this._localToDispose.add(this._editor.onDidChangeModelContent(B=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const W=this._currentDecorations.getRange(0);if(W&&B.changes.every(V=>W.intersectRanges(V.range))){O(this._syncRangesToken);return}}P()})),this._localToDispose.add({dispose:()=>{N.dispose(),F.dispose()}}),this.updateRanges()}_syncRanges(A){if(!this._editor.hasModel()||A!==this._syncRangesToken||this._currentDecorations.length===0)return;const R=this._editor.getModel(),M=this._currentDecorations.getRange(0);if(!M||M.startLineNumber!==M.endLineNumber)return this.clearRanges();const N=R.getValueInRange(M);if(this._currentWordPattern){const F=N.match(this._currentWordPattern);if((F?F[0].length:0)!==N.length)return this.clearRanges()}const P=[];for(let F=1,O=this._currentDecorations.length;F1){this.clearRanges();return}const M=this._editor.getModel(),N=M.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===N){if(R.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const F=this._currentDecorations.getRange(0);if(F&&F.containsPosition(R))return}}this.clearRanges(),this._currentRequestPosition=R,this._currentRequestModelVersion=N;const P=this._currentRequestCts=new y.CancellationTokenSource;try{const F=new h.StopWatch(!1),O=await I(this._providers,M,R,P.token);if(this._debounceInformation.update(M,F.elapsed()),P!==this._currentRequestCts||(this._currentRequestCts=null,N!==M.getVersionId()))return;let B=[];O?.ranges&&(B=O.ranges),this._currentWordPattern=O?.wordPattern||this._languageWordPattern;let W=!1;for(let z=0,K=B.length;z({range:z,options:u.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(V),this._syncRangesToken++}catch(F){(0,S.isCancellationError)(F)||(0,S.onUnexpectedError)(F),(this._currentRequestCts===P||!this._currentRequestCts)&&this.clearRanges()}}};e.LinkedEditingContribution=C,C.ID="editor.contrib.linkedEditing",C.DECORATION=g.ModelDecorationOptions.register({description:"linked-editing",stickiness:0,className:f}),e.LinkedEditingContribution=C=u=De([he(1,d.IContextKeyService),he(2,s.ILanguageFeaturesService),he(3,m.ILanguageConfigurationService),he(4,r.ILanguageFeatureDebounceService)],C);class _ extends a.EditorAction{constructor(){super({id:"editor.action.linkedEditing",label:c.localize(0,null),alias:"Start Linked Editing",precondition:d.ContextKeyExpr.and(o.EditorContextKeys.writable,o.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(A,R){const M=A.get(n.ICodeEditorService),[N,P]=Array.isArray(R)&&R||[void 0,void 0];return b.URI.isUri(N)&&i.Position.isIPosition(P)?M.openCodeEditor({resource:N},M.getActiveCodeEditor()).then(F=>{F&&(F.setPosition(P),F.invokeWithinContext(O=>(this.reportTelemetry(O,F),this.run(O,F))))},S.onUnexpectedError):super.runCommand(A,R)}run(A,R){const M=C.get(R);return M?Promise.resolve(M.updateRanges(!0)):Promise.resolve()}}e.LinkedEditingAction=_;const E=a.EditorCommand.bindToContribution(C.get);(0,a.registerEditorCommand)(new E({id:"cancelLinkedEditingInput",precondition:e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,handler:T=>T.clearRanges(),kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function I(T,A,R,M){const N=T.ordered(A);return(0,k.first)(N.map(P=>async()=>{try{return await P.provideLinkedEditingRanges(A,R,M)}catch(F){(0,S.onUnexpectedExternalError)(F);return}}),P=>!!P&&L.isNonEmptyArray(P?.ranges))}e.editorLinkedEditingBackground=(0,l.registerColor)("editor.linkedEditingBackground",{dark:D.Color.fromHex("#f00").transparent(.3),light:D.Color.fromHex("#f00").transparent(.3),hcDark:D.Color.fromHex("#f00").transparent(.3),hcLight:D.Color.white},c.localize(1,null)),(0,a.registerModelAndPositionCommand)("_executeLinkedEditingProvider",(T,A,R)=>{const{linkedEditingRangeProvider:M}=T.get(s.ILanguageFeaturesService);return I(M,A,R,y.CancellationToken.None)}),(0,a.registerEditorContribution)(C.ID,C,1),(0,a.registerEditorAction)(_)}),define(ne[918],se([1,0,15,19,12,58,2,47,17,48,63,22,16,38,80,18,193,776,711,49,57,480]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s){"use strict";var l;Object.defineProperty(e,"__esModule",{value:!0}),e.LinkDetector=void 0;let r=l=class extends S.Disposable{static get(E){return E.getContribution(l.ID)}constructor(E,I,T,A,R){super(),this.editor=E,this.openerService=I,this.notificationService=T,this.languageFeaturesService=A,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=R.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new L.RunOnceScheduler(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const M=this._register(new g.ClickLinkGesture(E));this._register(M.onMouseMoveOrRelevantKeyDown(([N,P])=>{this._onEditorMouseMove(N,P)})),this._register(M.onExecute(N=>{this.onEditorMouseUp(N)})),this._register(M.onCancel(N=>{this.cleanUpActiveLinkDecoration()})),this._register(E.onDidChangeConfiguration(N=>{N.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(E.onDidChangeModelContent(N=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(E.onDidChangeModel(N=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(E.onDidChangeModelLanguage(N=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(N=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const E=this.editor.getModel();if(!E.isTooLargeForSyncing()&&this.providers.has(E)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,L.createCancelablePromise)(I=>(0,m.getLinks)(this.providers,E,I));try{const I=new b.StopWatch(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(E,I.elapsed()),E.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(I){(0,y.onUnexpectedError)(I)}finally{this.computePromise=null}}}updateDecorations(E){const I=this.editor.getOption(78)==="altKey",T=[],A=Object.keys(this.currentOccurrences);for(const M of A){const N=this.currentOccurrences[M];T.push(N.decorationId)}const R=[];if(E)for(const M of E)R.push(u.decoration(M,I));this.editor.changeDecorations(M=>{const N=M.deltaDecorations(T,R);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let P=0,F=N.length;P{A.activate(R,T),this.activeLinkDecorationId=A.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const E=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const I=this.currentOccurrences[this.activeLinkDecorationId];I&&this.editor.changeDecorations(T=>{I.deactivate(T,E)}),this.activeLinkDecorationId=null}}onEditorMouseUp(E){if(!this.isEnabled(E))return;const I=this.getLinkOccurrence(E.target.position);I&&this.openLinkOccurrence(I,E.hasSideBySideModifier,!0)}openLinkOccurrence(E,I,T=!1){if(!this.openerService)return;const{link:A}=E;A.resolve(k.CancellationToken.None).then(R=>{if(typeof R=="string"&&this.editor.hasModel()){const M=this.editor.getModel().uri;if(M.scheme===p.Schemas.file&&R.startsWith(`${p.Schemas.file}:`)){const N=a.URI.parse(R);if(N.scheme===p.Schemas.file){const P=v.originalFSPath(N);let F=null;P.startsWith("/./")?F=`.${P.substr(1)}`:P.startsWith("//./")&&(F=`.${P.substr(2)}`),F&&(R=v.joinPath(M,F))}}}return this.openerService.open(R,{openToSide:I,fromUserGesture:T,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},R=>{const M=R instanceof Error?R.message:R;M==="invalid"?this.notificationService.warn(c.localize(0,null,A.url.toString())):M==="missing"?this.notificationService.warn(c.localize(1,null)):(0,y.onUnexpectedError)(R)})}getLinkOccurrence(E){if(!this.editor.hasModel()||!E)return null;const I=this.editor.getModel().getDecorationsInRange({startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:E.lineNumber,endColumn:E.column},0,!0);for(const T of I){const A=this.currentOccurrences[T.id];if(A)return A}return null}isEnabled(E,I){return!!(E.target.type===6&&(E.hasTriggerModifier||I&&I.keyCodeIsTriggerKey))}stop(){var E;this.computeLinks.cancel(),this.activeLinksList&&((E=this.activeLinksList)===null||E===void 0||E.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};e.LinkDetector=r,r.ID="editor.linkDetector",e.LinkDetector=r=l=De([he(1,s.IOpenerService),he(2,d.INotificationService),he(3,o.ILanguageFeaturesService),he(4,t.ILanguageFeatureDebounceService)],r);const h={general:i.ModelDecorationOptions.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:i.ModelDecorationOptions.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class u{static decoration(E,I){return{range:E.range,options:u._getOptions(E,I,!1)}}static _getOptions(E,I,T){const A={...T?h.active:h.general};return A.hoverMessage=f(E,I),A}constructor(E,I){this.link=E,this.decorationId=I}activate(E,I){E.changeDecorationOptions(this.decorationId,u._getOptions(this.link,I,!0))}deactivate(E,I){E.changeDecorationOptions(this.decorationId,u._getOptions(this.link,I,!1))}}function f(_,E){const I=_.url&&/^command:/i.test(_.url.toString()),T=_.tooltip?_.tooltip:I?c.localize(2,null):c.localize(3,null),A=E?w.isMacintosh?c.localize(4,null):c.localize(5,null):w.isMacintosh?c.localize(6,null):c.localize(7,null);if(_.url){let R="";if(/^command:/i.test(_.url.toString())){const N=_.url.toString().match(/^command:([^?#]+)/);if(N){const P=N[1];R=c.localize(8,null,P)}}return new D.MarkdownString("",!0).appendLink(_.url.toString(!0).replace(/ /g,"%20"),T,R).appendMarkdown(` (${A})`)}else return new D.MarkdownString().appendText(`${T} (${A})`)}class C extends n.EditorAction{constructor(){super({id:"editor.action.openLink",label:c.localize(9,null),alias:"Open Link",precondition:void 0})}run(E,I){const T=r.get(I);if(!T||!I.hasModel())return;const A=I.getSelections();for(const R of A){const M=T.getLinkOccurrence(R.getEndPosition());M&&T.openLinkOccurrence(M,!1)}}}(0,n.registerEditorContribution)(r.ID,r,1),(0,n.registerEditorAction)(C)}),define(ne[919],se([1,0,2,18,167,15,268,312,311,33,12,317,52]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyModelProvider=void 0;var i;(function(l){l.OUTLINE_MODEL="outlineModel",l.FOLDING_PROVIDER_MODEL="foldingProviderModel",l.INDENTATION_MODEL="indentationModel"})(i||(i={}));var t;(function(l){l[l.VALID=0]="VALID",l[l.INVALID=1]="INVALID",l[l.CANCELED=2]="CANCELED"})(t||(t={}));let o=class extends L.Disposable{constructor(r,h,u,f){super(),this._editor=r,this._languageConfigurationService=h,this._languageFeaturesService=u,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new D.Delayer(300)),this._updateOperation=this._register(new L.DisposableStore);const C=new m(u),_=new s(this._editor,u),E=new d(this._editor,h);switch(f){case i.OUTLINE_MODEL:this._modelProviders.push(C),this._modelProviders.push(_),this._modelProviders.push(E);break;case i.FOLDING_PROVIDER_MODEL:this._modelProviders.push(_),this._modelProviders.push(E);break;case i.INDENTATION_MODEL:this._modelProviders.push(E);break}}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(r,h,u){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const f of this._modelProviders){const{statusPromise:C,modelPromise:_}=f.computeStickyModel(r,h,u);this._modelPromise=_;const E=await C;if(this._modelPromise!==_)return null;switch(E){case t.CANCELED:return this._updateOperation.clear(),null;case t.VALID:return f.stickyModel}}return null}).catch(f=>((0,b.onUnexpectedError)(f),null))}};e.StickyModelProvider=o,e.StickyModelProvider=o=De([he(1,v.ILanguageConfigurationService),he(2,k.ILanguageFeaturesService)],o);class g{constructor(){this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,t.INVALID}computeStickyModel(r,h,u){if(u.isCancellationRequested||!this.isProviderValid(r))return{statusPromise:this._invalid(),modelPromise:null};const f=(0,D.createCancelablePromise)(C=>this.createModelFromProvider(r,h,C));return{statusPromise:f.then(C=>this.isModelValid(C)?u.isCancellationRequested?t.CANCELED:(this._stickyModel=this.createStickyModel(r,h,u,C),t.VALID):this._invalid()).then(void 0,C=>((0,b.onUnexpectedError)(C),t.CANCELED)),modelPromise:f}}isModelValid(r){return!0}isProviderValid(r){return!0}}let m=class extends g{constructor(r){super(),this._languageFeaturesService=r}createModelFromProvider(r,h,u){return y.OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,r,u)}createStickyModel(r,h,u,f){var C;const{stickyOutlineElement:_,providerID:E}=this._stickyModelFromOutlineModel(f,(C=this._stickyModel)===null||C===void 0?void 0:C.outlineProviderId);return new a.StickyModel(r.uri,h,_,E)}isModelValid(r){return r&&r.children.size>0}_stickyModelFromOutlineModel(r,h){let u;if(n.Iterable.first(r.children.values())instanceof y.OutlineGroup){const E=n.Iterable.find(r.children.values(),I=>I.id===h);if(E)u=E.children;else{let I="",T=-1,A;for(const[R,M]of r.children.entries()){const N=this._findSumOfRangesOfGroup(M);N>T&&(A=M,T=N,I=M.id)}h=I,u=A.children}}else u=r.children;const f=[],C=Array.from(u.values()).sort((E,I)=>{const T=new a.StickyRange(E.symbol.range.startLineNumber,E.symbol.range.endLineNumber),A=new a.StickyRange(I.symbol.range.startLineNumber,I.symbol.range.endLineNumber);return this._comparator(T,A)});for(const E of C)f.push(this._stickyModelFromOutlineElement(E,E.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new a.StickyElement(void 0,f,void 0),providerID:h}}_stickyModelFromOutlineElement(r,h){const u=[];for(const C of r.children.values())if(C.symbol.selectionRange.startLineNumber!==C.symbol.range.endLineNumber)if(C.symbol.selectionRange.startLineNumber!==h)u.push(this._stickyModelFromOutlineElement(C,C.symbol.selectionRange.startLineNumber));else for(const _ of C.children.values())u.push(this._stickyModelFromOutlineElement(_,C.symbol.selectionRange.startLineNumber));u.sort((C,_)=>this._comparator(C.range,_.range));const f=new a.StickyRange(r.symbol.selectionRange.startLineNumber,r.symbol.range.endLineNumber);return new a.StickyElement(f,u,void 0)}_comparator(r,h){return r.startLineNumber!==h.startLineNumber?r.startLineNumber-h.startLineNumber:h.endLineNumber-r.endLineNumber}_findSumOfRangesOfGroup(r){let h=0;for(const u of r.children.values())h+=this._findSumOfRangesOfGroup(u);return r instanceof y.OutlineElement?h+r.symbol.range.endLineNumber-r.symbol.selectionRange.startLineNumber:h}};m=De([he(0,k.ILanguageFeaturesService)],m);class c extends g{constructor(r){super(),this._foldingLimitReporter=new S.RangesLimitReporter(r)}createStickyModel(r,h,u,f){const C=this._fromFoldingRegions(f);return new a.StickyModel(r.uri,h,C,void 0)}isModelValid(r){return r!==null}_fromFoldingRegions(r){const h=r.length,u=[],f=new a.StickyElement(void 0,[],void 0);for(let C=0;C0}createModelFromProvider(r,h,u){const f=S.FoldingController.getFoldingRangeProviders(this._languageFeaturesService,r);return new p.SyntaxRangeProvider(r,f,()=>this.createModelFromProvider(r,h,u),this._foldingLimitReporter,void 0).compute(u)}};s=De([he(1,k.ILanguageFeaturesService)],s)}),define(ne[920],se([1,0,2,18,19,15,13,7,33,919]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyLineCandidateProvider=e.StickyLineCandidate=void 0;class b{constructor(i,t,o){this.startLineNumber=i,this.endLineNumber=t,this.nestingDepth=o}}e.StickyLineCandidate=b;let a=class extends L.Disposable{constructor(i,t,o){super(),this._languageFeaturesService=t,this._languageConfigurationService=o,this._onDidChangeStickyScroll=this._register(new p.Emitter),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._options=null,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=i,this._sessionStore=this._register(new L.DisposableStore),this._updateSoon=this._register(new D.RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(g=>{g.hasChanged(115)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._stickyModelProvider=null,this._sessionStore.clear(),this._options=this._editor.getOption(115),this._options.enabled&&(this._stickyModelProvider=this._sessionStore.add(new v.StickyModelProvider(this._editor,this._languageConfigurationService,this._languageFeaturesService,this._options.defaultModel)),this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this.update())}getVersionId(){var i;return(i=this._model)===null||i===void 0?void 0:i.version}async update(){var i;(i=this._cts)===null||i===void 0||i.dispose(!0),this._cts=new y.CancellationTokenSource,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(i){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=this._editor.getModel(),o=t.getVersionId(),g=await this._stickyModelProvider.update(t,o,i);i.isCancellationRequested||(this._model=g)}updateIndex(i){return i===-1?i=0:i<0&&(i=-i-2),i}getCandidateStickyLinesIntersectingFromStickyModel(i,t,o,g,m){if(t.children.length===0)return;let c=m;const d=[];for(let r=0;rr-h)),l=this.updateIndex((0,S.binarySearch)(d,i.startLineNumber+g,(r,h)=>r-h));for(let r=s;r<=l;r++){const h=t.children[r];if(!h)return;if(h.range){const u=h.range.startLineNumber,f=h.range.endLineNumber;i.startLineNumber<=f+1&&u-1<=i.endLineNumber&&u!==c&&(c=u,o.push(new b(u,f-1,g+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(i,h,o,g+1,u))}else this.getCandidateStickyLinesIntersectingFromStickyModel(i,h,o,g,m)}}getCandidateStickyLinesIntersecting(i){var t,o;if(!(!((t=this._model)===null||t===void 0)&&t.element))return[];let g=[];this.getCandidateStickyLinesIntersectingFromStickyModel(i,this._model.element,g,0,-1);const m=(o=this._editor._getViewModel())===null||o===void 0?void 0:o.getHiddenAreas();if(m)for(const c of m)g=g.filter(d=>!(d.startLineNumber>=c.startLineNumber&&d.endLineNumber<=c.endLineNumber+1));return g}};e.StickyLineCandidateProvider=a,e.StickyLineCandidateProvider=a=De([he(1,k.ILanguageFeaturesService),he(2,w.ILanguageConfigurationService)],a)}),define(ne[921],se([1,0,6,95,13,2,29,260,170,9,106,139,122,385,486]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollWidget=e.StickyScrollWidgetState=void 0;class t{constructor(u,f,C,_=null){this.startLineNumbers=u,this.endLineNumbers=f,this.lastLineRelativePosition=C,this.showEndForLine=_}equals(u){return!!u&&this.lastLineRelativePosition===u.lastLineRelativePosition&&this.showEndForLine===u.showEndForLine&&(0,y.equals)(this.startLineNumbers,u.startLineNumbers)&&(0,y.equals)(this.endLineNumbers,u.endLineNumbers)}}e.StickyScrollWidgetState=t;const o=(0,k.createTrustedTypesPolicy)("stickyScrollViewLayer",{createHTML:h=>h}),g="data-sticky-line-index",m="data-sticky-is-line",c="data-sticky-is-line-number",d="data-sticky-is-folding-icon";class s extends D.Disposable{constructor(u){super(),this._editor=u,this._foldingIconStore=new D.DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",u instanceof w.EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const f=()=>{this._linesDomNode.style.left=this._editor.getOption(115).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(C=>{C.hasChanged(115)&&f(),C.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(C=>{C.scrollLeftChanged&&f(),C.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{f(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),f(),this._register(this._editor.onDidLayoutChange(C=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(u){return this._renderedStickyLines.find(f=>f.lineNumber===u)}getCurrentLines(){return this._lineNumbers}setState(u,f,C){if(C===void 0&&(!this._previousState&&!u||this._previousState&&this._previousState.equals(u)))return;const _=this._isWidgetHeightZero(u),E=_?void 0:u,I=_?0:this._findLineToRebuildWidgetFrom(u,C);this._renderRootNode(E,f,I),this._previousState=u}_isWidgetHeightZero(u){if(!u)return!0;const f=u.startLineNumbers.length*this._lineHeight+u.lastLineRelativePosition;if(f>0){this._lastLineRelativePosition=u.lastLineRelativePosition;const C=[...u.startLineNumbers];u.showEndForLine!==null&&(C[u.showEndForLine]=u.endLineNumbers[u.showEndForLine]),this._lineNumbers=C}else this._lastLineRelativePosition=0,this._lineNumbers=[];return f===0}_findLineToRebuildWidgetFrom(u,f){if(!u||!this._previousState)return 0;if(f!==void 0)return f;const C=this._previousState,_=u.startLineNumbers.findIndex(E=>!C.startLineNumbers.includes(E));return _===-1?0:_}_updateWidgetWidth(){const u=this._editor.getLayoutInfo(),f=u.contentLeft;this._lineNumbersDomNode.style.width=`${f}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-u.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${u.width-u.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(u){this._foldingIconStore.clear();for(let f=u;fT.scrollWidth))+_.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(110)==="mouseover"&&(this._foldingIconStore.add(L.addDisposableListener(this._lineNumbersDomNode,L.EventType.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(L.addDisposableListener(this._lineNumbersDomNode,L.EventType.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(u,f,C,_){const E=this._editor._getViewModel();if(!E)return;const I=E.coordinatesConverter.convertModelPositionToViewPosition(new v.Position(f,1)).lineNumber,T=E.getViewLineRenderingData(I),A=this._editor.getOption(68);let R;try{R=a.LineDecoration.filter(T.inlineDecorations,I,T.minColumn,T.maxColumn)}catch{R=[]}const M=new n.RenderLineInput(!0,!0,T.content,T.continuesWithWrappedLine,T.isBasicASCII,T.containsRTL,0,T.tokens,R,T.tabSize,T.startVisibleColumn,1,1,1,500,"none",!0,!0,null),N=new b.StringBuilder(2e3),P=(0,n.renderViewLine)(M,N);let F;o?F=o.createHTML(N.build()):F=N.build();const O=document.createElement("span");O.setAttribute(g,String(u)),O.setAttribute(m,""),O.setAttribute("role","listitem"),O.tabIndex=0,O.className="sticky-line-content",O.classList.add(`stickyLine${f}`),O.style.lineHeight=`${this._lineHeight}px`,O.innerHTML=F;const B=document.createElement("span");B.setAttribute(g,String(u)),B.setAttribute(c,""),B.className="sticky-line-number",B.style.lineHeight=`${this._lineHeight}px`;const W=_.contentLeft;B.style.width=`${W}px`;const V=document.createElement("span");A.renderType===1||A.renderType===3&&f%10===0?V.innerText=f.toString():A.renderType===2&&(V.innerText=Math.abs(f-this._editor.getPosition().lineNumber).toString()),V.className="sticky-line-number-inner",V.style.lineHeight=`${this._lineHeight}px`,V.style.width=`${_.lineNumbersWidth}px`,V.style.paddingLeft=`${_.lineNumbersLeft}px`,B.appendChild(V);const z=this._renderFoldingIconForLine(C,f);z&&B.appendChild(z.domNode),this._editor.applyFontInfo(O),this._editor.applyFontInfo(V),B.style.lineHeight=`${this._lineHeight}px`,O.style.lineHeight=`${this._lineHeight}px`,B.style.height=`${this._lineHeight}px`,O.style.height=`${this._lineHeight}px`;const K=new l(u,f,O,B,z,P.characterMapping,O.scrollWidth);return this._updateTopAndZIndexOfStickyLine(K)}_updateTopAndZIndexOfStickyLine(u){var f;const C=u.index,_=u.lineDomNode,E=u.lineNumberDomNode,I=C===this._lineNumbers.length-1,T="0",A="1";_.style.zIndex=I?T:A,E.style.zIndex=I?T:A;const R=`${C*this._lineHeight+this._lastLineRelativePosition+(!((f=u.foldingIcon)===null||f===void 0)&&f.isCollapsed?1:0)}px`,M=`${C*this._lineHeight}px`;return _.style.top=I?R:M,E.style.top=I?R:M,u}_renderFoldingIconForLine(u,f){const C=this._editor.getOption(110);if(!u||C==="never")return;const _=u.regions,E=_.findRange(f),I=_.getStartLineNumber(E);if(!(f===I))return;const A=_.isCollapsed(E),R=new r(A,I,_.getEndLineNumber(E),this._lineHeight);return R.setVisible(this._isOnGlyphMargin?!0:A||C==="always"),R.domNode.setAttribute(d,""),R}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(u){0<=u&&u0)return null;const f=this._getRenderedStickyLineFromChildDomNode(u);if(!f)return null;const C=(0,p.getColumnOfNodeOffset)(f.characterMapping,u,0);return new v.Position(f.lineNumber,C)}getLineNumberFromChildDomNode(u){var f,C;return(C=(f=this._getRenderedStickyLineFromChildDomNode(u))===null||f===void 0?void 0:f.lineNumber)!==null&&C!==void 0?C:null}_getRenderedStickyLineFromChildDomNode(u){const f=this.getLineIndexFromChildDomNode(u);return f===null||f<0||f>=this._renderedStickyLines.length?null:this._renderedStickyLines[f]}getLineIndexFromChildDomNode(u){const f=this._getAttributeValue(u,g);return f?parseInt(f,10):null}isInStickyLine(u){return this._getAttributeValue(u,m)!==void 0}isInFoldingIconDomNode(u){return this._getAttributeValue(u,d)!==void 0}_getAttributeValue(u,f){for(;u&&u!==this._rootDomNode;){const C=u.getAttribute(f);if(C!==null)return C;u=u.parentElement}}}e.StickyScrollWidget=s;class l{constructor(u,f,C,_,E,I,T){this.index=u,this.lineNumber=f,this.lineDomNode=C,this.lineNumberDomNode=_,this.foldingIcon=E,this.characterMapping=I,this.scrollWidth=T}}class r{constructor(u,f,C,_){this.isCollapsed=u,this.foldingStartLine=f,this.foldingEndLine=C,this.dimension=_,this.domNode=document.createElement("div"),this.domNode.style.width=`${_}px`,this.domNode.style.height=`${_}px`,this.domNode.className=S.ThemeIcon.asClassName(u?i.foldingCollapsedIcon:i.foldingExpandedIcon)}setVisible(u){this.domNode.style.cursor=u?"pointer":"default",this.domNode.style.opacity=u?"1":"0"}}}),define(ne[922],se([1,0,6,105,15,12,7,2,128,11,170,887,728,14,8,94,31,89,24,231,144,362,882,102,44,180,487,259]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestContentWidget=e.SuggestWidget=e.editorSuggestWidgetSelectedBackground=void 0,(0,g.registerColor)("editorSuggestWidget.background",{dark:g.editorWidgetBackground,light:g.editorWidgetBackground,hcDark:g.editorWidgetBackground,hcLight:g.editorWidgetBackground},n.localize(0,null)),(0,g.registerColor)("editorSuggestWidget.border",{dark:g.editorWidgetBorder,light:g.editorWidgetBorder,hcDark:g.editorWidgetBorder,hcLight:g.editorWidgetBorder},n.localize(1,null));const C=(0,g.registerColor)("editorSuggestWidget.foreground",{dark:g.editorForeground,light:g.editorForeground,hcDark:g.editorForeground,hcLight:g.editorForeground},n.localize(2,null));(0,g.registerColor)("editorSuggestWidget.selectedForeground",{dark:g.quickInputListFocusForeground,light:g.quickInputListFocusForeground,hcDark:g.quickInputListFocusForeground,hcLight:g.quickInputListFocusForeground},n.localize(3,null)),(0,g.registerColor)("editorSuggestWidget.selectedIconForeground",{dark:g.quickInputListFocusIconForeground,light:g.quickInputListFocusIconForeground,hcDark:g.quickInputListFocusIconForeground,hcLight:g.quickInputListFocusIconForeground},n.localize(4,null)),e.editorSuggestWidgetSelectedBackground=(0,g.registerColor)("editorSuggestWidget.selectedBackground",{dark:g.quickInputListFocusBackground,light:g.quickInputListFocusBackground,hcDark:g.quickInputListFocusBackground,hcLight:g.quickInputListFocusBackground},n.localize(5,null)),(0,g.registerColor)("editorSuggestWidget.highlightForeground",{dark:g.listHighlightForeground,light:g.listHighlightForeground,hcDark:g.listHighlightForeground,hcLight:g.listHighlightForeground},n.localize(6,null)),(0,g.registerColor)("editorSuggestWidget.focusHighlightForeground",{dark:g.listFocusHighlightForeground,light:g.listFocusHighlightForeground,hcDark:g.listFocusHighlightForeground,hcLight:g.listFocusHighlightForeground},n.localize(7,null)),(0,g.registerColor)("editorSuggestWidgetStatus.foreground",{dark:(0,g.transparent)(C,.5),light:(0,g.transparent)(C,.5),hcDark:(0,g.transparent)(C,.5),hcLight:(0,g.transparent)(C,.5)},n.localize(8,null));class _{constructor(A,R){this._service=A,this._key=`suggestWidget.size/${R.getEditorType()}/${R instanceof b.EmbeddedCodeEditorWidget}`}restore(){var A;const R=(A=this._service.get(this._key,0))!==null&&A!==void 0?A:"";try{const M=JSON.parse(R);if(L.Dimension.is(M))return L.Dimension.lift(M)}catch{}}store(A){this._service.store(this._key,JSON.stringify(A),0,1)}reset(){this._service.remove(this._key,0)}}let E=f=class{constructor(A,R,M,N,P){this.editor=A,this._storageService=R,this._state=0,this._isAuto=!1,this._pendingLayout=new p.MutableDisposable,this._pendingShowDetails=new p.MutableDisposable,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new y.TimeoutTimer,this._disposables=new p.DisposableStore,this._onDidSelect=new S.PauseableEmitter,this._onDidFocus=new S.PauseableEmitter,this._onDidHide=new S.Emitter,this._onDidShow=new S.Emitter,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new S.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new d.ResizableHTMLElement,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new I(this,A),this._persistedSize=new _(R,A);class F{constructor(j,x,re=!1,ie=!1){this.persistedSize=j,this.currentSize=x,this.persistHeight=re,this.persistWidth=ie}}let O;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),O=new F(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(K=>{var j,x,re,ie;if(this._resize(K.dimension.width,K.dimension.height),O&&(O.persistHeight=O.persistHeight||!!K.north||!!K.south,O.persistWidth=O.persistWidth||!!K.east||!!K.west),!!K.done){if(O){const{itemHeight:J,defaultSize:X}=this.getLayoutInfo(),Y=Math.round(J/2);let{width:le,height:de}=this.element.size;(!O.persistHeight||Math.abs(O.currentSize.height-de)<=Y)&&(de=(x=(j=O.persistedSize)===null||j===void 0?void 0:j.height)!==null&&x!==void 0?x:X.height),(!O.persistWidth||Math.abs(O.currentSize.width-le)<=Y)&&(le=(ie=(re=O.persistedSize)===null||re===void 0?void 0:re.width)!==null&&ie!==void 0?ie:X.width),this._persistedSize.store(new L.Dimension(le,de))}this._contentWidget.unlockPreference(),O=void 0}})),this._messageElement=L.append(this.element.domNode,L.$(".message")),this._listElement=L.append(this.element.domNode,L.$(".tree"));const B=this._disposables.add(P.createInstance(l.SuggestDetailsWidget,this.editor));B.onDidClose(this.toggleDetails,this,this._disposables),this._details=new l.SuggestDetailsOverlay(B,this.editor);const W=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(118).showIcons);W();const V=P.createInstance(r.ItemRenderer,this.editor);this._disposables.add(V),this._disposables.add(V.onDidToggleDetails(()=>this.toggleDetails())),this._list=new k.List("SuggestWidget",this._listElement,{getHeight:K=>this.getLayoutInfo().itemHeight,getTemplateId:K=>"suggestion"},[V],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>n.localize(11,null),getWidgetRole:()=>"listbox",getAriaLabel:K=>{let j=K.textLabel;if(typeof K.completion.label!="string"){const{detail:J,description:X}=K.completion.label;J&&X?j=n.localize(12,null,j,J,X):J?j=n.localize(13,null,j,J):X&&(j=n.localize(14,null,j,X))}if(!K.isResolved||!this._isDetailsVisible())return j;const{documentation:x,detail:re}=K.completion,ie=v.format("{0}{1}",re||"",x?typeof x=="string"?x:x.value:"");return n.localize(15,null,j,ie)}}}),this._list.style((0,h.getListStyles)({listInactiveFocusBackground:e.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:g.activeContrastBorder})),this._status=P.createInstance(a.SuggestWidgetStatus,this.element.domNode,s.suggestWidgetStatusbarMenu);const z=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(118).showStatusBar);z(),this._disposables.add(N.onDidColorThemeChange(K=>this._onThemeChange(K))),this._onThemeChange(N.getColorTheme()),this._disposables.add(this._list.onMouseDown(K=>this._onListMouseDownOrTap(K))),this._disposables.add(this._list.onTap(K=>this._onListMouseDownOrTap(K))),this._disposables.add(this._list.onDidChangeSelection(K=>this._onListSelection(K))),this._disposables.add(this._list.onDidChangeFocus(K=>this._onListFocus(K))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(K=>{K.hasChanged(118)&&(z(),W()),this._completionModel&&(K.hasChanged(50)||K.hasChanged(119)||K.hasChanged(120))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=s.Context.Visible.bindTo(M),this._ctxSuggestWidgetDetailsVisible=s.Context.DetailsVisible.bindTo(M),this._ctxSuggestWidgetMultipleSuggestions=s.Context.MultipleSuggestions.bindTo(M),this._ctxSuggestWidgetHasFocusedSuggestion=s.Context.HasFocusedSuggestion.bindTo(M),this._disposables.add(L.addStandardDisposableListener(this._details.widget.domNode,"keydown",K=>{this._onDetailsKeydown.fire(K)})),this._disposables.add(this.editor.onMouseDown(K=>this._onEditorMouseDown(K)))}dispose(){var A;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(A=this._loadingTimeout)===null||A===void 0||A.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(A){this._details.widget.domNode.contains(A.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(A.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(A){typeof A.element>"u"||typeof A.index>"u"||(A.browserEvent.preventDefault(),A.browserEvent.stopPropagation(),this._select(A.element,A.index))}_onListSelection(A){A.elements.length&&this._select(A.elements[0],A.indexes[0])}_select(A,R){const M=this._completionModel;M&&(this._onDidSelect.fire({item:A,index:R,model:M}),this.editor.focus())}_onThemeChange(A){this._details.widget.borderWidth=(0,m.isHighContrast)(A.type)?2:1}_onListFocus(A){var R;if(this._ignoreFocusEvents)return;if(!A.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const M=A.elements[0],N=A.indexes[0];M!==this._focusedItem&&((R=this._currentSuggestionDetails)===null||R===void 0||R.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=M,this._list.reveal(N),this._currentSuggestionDetails=(0,y.createCancelablePromise)(async P=>{const F=(0,y.disposableTimeout)(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),O=P.onCancellationRequested(()=>F.dispose());try{return await M.resolve(P)}finally{F.dispose(),O.dispose()}}),this._currentSuggestionDetails.then(()=>{N>=this._list.length||M!==this._list.element(N)||(this._ignoreFocusEvents=!0,this._list.splice(N,1,[M]),this._list.setFocus([N]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:(0,r.getAriaId)(N)}))}).catch(D.onUnexpectedError)),this._onDidFocus.fire({item:M,index:N,model:this._completionModel})}_setState(A){if(this._state!==A)switch(this._state=A,this.element.domNode.classList.toggle("frozen",A===4),this.element.domNode.classList.remove("message"),A){case 0:L.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=f.LOADING_MESSAGE,L.hide(this._listElement,this._status.element),L.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,u.status)(f.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=f.NO_SUGGESTIONS_MESSAGE,L.hide(this._listElement,this._status.element),L.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,u.status)(f.NO_SUGGESTIONS_MESSAGE);break;case 3:L.hide(this._messageElement),L.show(this._listElement,this._status.element),this._show();break;case 4:L.hide(this._messageElement),L.show(this._listElement,this._status.element),this._show();break;case 5:L.hide(this._messageElement),L.show(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(A,R){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!A,this._isAuto||(this._loadingTimeout=(0,y.disposableTimeout)(()=>this._setState(1),R)))}showSuggestions(A,R,M,N,P){var F,O;if(this._contentWidget.setPosition(this.editor.getPosition()),(F=this._loadingTimeout)===null||F===void 0||F.dispose(),(O=this._currentSuggestionDetails)===null||O===void 0||O.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==A&&(this._completionModel=A),M&&this._state!==2&&this._state!==0){this._setState(4);return}const B=this._completionModel.items.length,W=B===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(B>1),W){this._setState(N?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(M?4:3),this._list.reveal(R,0),this._list.setFocus(P?[]:[R])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=L.runAtThisOrScheduleAtNextAnimationFrame(L.getWindow(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):((0,l.canExpandCompletionItem)(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(A){this._pendingShowDetails.value=L.runAtThisOrScheduleAtNextAnimationFrame(L.getWindow(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),A?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var A;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(A=this._loadingTimeout)===null||A===void 0||A.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const R=this._persistedSize.restore(),M=Math.ceil(this.getLayoutInfo().itemHeight*4.3);R&&R.heightW&&(B=W);const V=this._completionModel?this._completionModel.stats.pLabelLen*F.typicalHalfwidthCharacterWidth:B,z=F.statusBarHeight+this._list.contentHeight+F.borderHeight,K=F.itemHeight+F.statusBarHeight,j=L.getDomNodePagePosition(this.editor.getDomNode()),x=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),re=j.top+x.top+x.height,ie=Math.min(P.height-re-F.verticalPadding,z),J=j.top+x.top-F.verticalPadding,X=Math.min(J,z);let Y=Math.min(Math.max(X,ie)+F.borderHeight,z);O===((R=this._cappedHeight)===null||R===void 0?void 0:R.capped)&&(O=this._cappedHeight.wanted),OY&&(O=Y),O>ie||this._forceRenderingAbove&&J>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),Y=X):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),Y=ie),this.element.preferredSize=new L.Dimension(V,F.defaultSize.height),this.element.maxSize=new L.Dimension(W,Y),this.element.minSize=new L.Dimension(220,K),this._cappedHeight=O===z?{wanted:(N=(M=this._cappedHeight)===null||M===void 0?void 0:M.wanted)!==null&&N!==void 0?N:A.height,capped:O}:void 0}this._resize(B,O)}_resize(A,R){const{width:M,height:N}=this.element.maxSize;A=Math.min(M,A),R=Math.min(N,R);const{statusBarHeight:P}=this.getLayoutInfo();this._list.layout(R-P,A),this._listElement.style.height=`${R-P}px`,this.element.layout(R,A),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var A;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((A=this._contentWidget.getPosition())===null||A===void 0?void 0:A.preference[0])===2)}getLayoutInfo(){const A=this.editor.getOption(50),R=(0,w.clamp)(this.editor.getOption(120)||A.lineHeight,8,1e3),M=!this.editor.getOption(118).showStatusBar||this._state===2||this._state===1?0:R,N=this._details.widget.borderWidth,P=2*N;return{itemHeight:R,statusBarHeight:M,borderWidth:N,borderHeight:P,typicalHalfwidthCharacterWidth:A.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new L.Dimension(430,M+12*R+P)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(A){this._storageService.store("expandSuggestionDocs",A,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};e.SuggestWidget=E,E.LOADING_MESSAGE=n.localize(9,null),E.NO_SUGGESTIONS_MESSAGE=n.localize(10,null),e.SuggestWidget=E=f=De([he(1,o.IStorageService),he(2,i.IContextKeyService),he(3,c.IThemeService),he(4,t.IInstantiationService)],E);class I{constructor(A,R){this._widget=A,this._editor=R,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:A,width:R}=this._widget.element.size,{borderWidth:M,horizontalPadding:N}=this._widget.getLayoutInfo();return new L.Dimension(R+2*M+N,A+2*M)}afterRender(A){this._widget._afterRender(A)}setPreference(A){this._preferenceLocked||(this._preference=A)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(A){this._position=A}}e.SuggestContentWidget=I}),define(ne[388],se([1,0,40,38,30,737,31,24,491]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSelectionHighlightDecorationOptions=e.getHighlightDecorationOptions=void 0;const w=(0,S.registerColor)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},D.localize(0,null),!0);(0,S.registerColor)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},D.localize(1,null),!0),(0,S.registerColor)("editor.wordHighlightTextBackground",{light:w,dark:w,hcDark:w,hcLight:w},D.localize(2,null),!0);const v=(0,S.registerColor)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:S.activeContrastBorder,hcLight:S.activeContrastBorder},D.localize(3,null));(0,S.registerColor)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:S.activeContrastBorder,hcLight:S.activeContrastBorder},D.localize(4,null)),(0,S.registerColor)("editor.wordHighlightTextBorder",{light:v,dark:v,hcDark:v,hcLight:v},D.localize(5,null));const b=(0,S.registerColor)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},D.localize(6,null),!0),a=(0,S.registerColor)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},D.localize(7,null),!0),n=(0,S.registerColor)("editorOverviewRuler.wordHighlightTextForeground",{dark:S.overviewRulerSelectionHighlightForeground,light:S.overviewRulerSelectionHighlightForeground,hcDark:S.overviewRulerSelectionHighlightForeground,hcLight:S.overviewRulerSelectionHighlightForeground},D.localize(8,null),!0),i=k.ModelDecorationOptions.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,p.themeColorFromId)(a),position:L.OverviewRulerLane.Center},minimap:{color:(0,p.themeColorFromId)(S.minimapSelectionOccurrenceHighlight),position:L.MinimapPosition.Inline}}),t=k.ModelDecorationOptions.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:(0,p.themeColorFromId)(n),position:L.OverviewRulerLane.Center},minimap:{color:(0,p.themeColorFromId)(S.minimapSelectionOccurrenceHighlight),position:L.MinimapPosition.Inline}}),o=k.ModelDecorationOptions.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,p.themeColorFromId)(S.overviewRulerSelectionHighlightForeground),position:L.OverviewRulerLane.Center},minimap:{color:(0,p.themeColorFromId)(S.minimapSelectionOccurrenceHighlight),position:L.MinimapPosition.Inline}}),g=k.ModelDecorationOptions.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),m=k.ModelDecorationOptions.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,p.themeColorFromId)(b),position:L.OverviewRulerLane.Center},minimap:{color:(0,p.themeColorFromId)(S.minimapSelectionOccurrenceHighlight),position:L.MinimapPosition.Inline}});function c(s){return s===y.DocumentHighlightKind.Write?i:s===y.DocumentHighlightKind.Text?t:m}e.getHighlightDecorationOptions=c;function d(s){return s?g:o}e.getSelectionHighlightDecorationOptions=d,(0,p.registerThemingParticipant)((s,l)=>{const r=s.getColor(S.editorSelectionHighlight);r&&l.addRule(`.monaco-editor .selectionHighlight { background-color: ${r.transparent(.5)}; }`)})}),define(ne[923],se([1,0,44,15,66,2,16,214,5,23,21,384,713,28,14,18,388,8]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.FocusPreviousCursor=e.FocusNextCursor=e.SelectionHighlighter=e.CompatChangeAll=e.SelectHighlightsAction=e.MoveSelectionToPreviousFindMatchAction=e.MoveSelectionToNextFindMatchAction=e.AddSelectionToPreviousFindMatchAction=e.AddSelectionToNextFindMatchAction=e.MultiCursorSelectionControllerAction=e.MultiCursorSelectionController=e.MultiCursorSession=e.MultiCursorSessionResult=e.InsertCursorBelow=e.InsertCursorAbove=void 0;function d(z,K){const j=K.filter(x=>!z.find(re=>re.equals(x)));if(j.length>=1){const x=j.map(ie=>`line ${ie.viewState.position.lineNumber} column ${ie.viewState.position.column}`).join(", "),re=j.length===1?n.localize(0,null,x):n.localize(1,null,x);(0,L.status)(re)}}class s extends S.EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:n.localize(2,null),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(3,null),order:2}})}run(K,j,x){if(!j.hasModel())return;let re=!0;x&&x.logicalLine===!1&&(re=!1);const ie=j._getViewModel();if(ie.cursorConfig.readOnly)return;ie.model.pushStackElement();const J=ie.getCursorStates();ie.setCursorStates(x.source,3,p.CursorMoveCommands.addCursorUp(ie,J,re)),ie.revealTopMostCursor(x.source),d(J,ie.getCursorStates())}}e.InsertCursorAbove=s;class l extends S.EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:n.localize(4,null),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(5,null),order:3}})}run(K,j,x){if(!j.hasModel())return;let re=!0;x&&x.logicalLine===!1&&(re=!1);const ie=j._getViewModel();if(ie.cursorConfig.readOnly)return;ie.model.pushStackElement();const J=ie.getCursorStates();ie.setCursorStates(x.source,3,p.CursorMoveCommands.addCursorDown(ie,J,re)),ie.revealBottomMostCursor(x.source),d(J,ie.getCursorStates())}}e.InsertCursorBelow=l;class r extends S.EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:n.localize(6,null),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(7,null),order:4}})}getCursorsForSelection(K,j,x){if(!K.isEmpty()){for(let re=K.startLineNumber;re1&&x.push(new v.Selection(K.endLineNumber,K.endColumn,K.endLineNumber,K.endColumn))}}run(K,j){if(!j.hasModel())return;const x=j.getModel(),re=j.getSelections(),ie=j._getViewModel(),J=ie.getCursorStates(),X=[];re.forEach(Y=>this.getCursorsForSelection(Y,x,X)),X.length>0&&j.setSelections(X),d(J,ie.getCursorStates())}}class h extends S.EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:n.localize(8,null),alias:"Add Cursors To Bottom",precondition:void 0})}run(K,j){if(!j.hasModel())return;const x=j.getSelections(),re=j.getModel().getLineCount(),ie=[];for(let Y=x[0].startLineNumber;Y<=re;Y++)ie.push(new v.Selection(Y,x[0].startColumn,Y,x[0].endColumn));const J=j._getViewModel(),X=J.getCursorStates();ie.length>0&&j.setSelections(ie),d(X,J.getCursorStates())}}class u extends S.EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:n.localize(9,null),alias:"Add Cursors To Top",precondition:void 0})}run(K,j){if(!j.hasModel())return;const x=j.getSelections(),re=[];for(let X=x[0].startLineNumber;X>=1;X--)re.push(new v.Selection(X,x[0].startColumn,X,x[0].endColumn));const ie=j._getViewModel(),J=ie.getCursorStates();re.length>0&&j.setSelections(re),d(J,ie.getCursorStates())}}class f{constructor(K,j,x){this.selections=K,this.revealRange=j,this.revealScrollType=x}}e.MultiCursorSessionResult=f;class C{static create(K,j){if(!K.hasModel())return null;const x=j.getState();if(!K.hasTextFocus()&&x.isRevealed&&x.searchString.length>0)return new C(K,j,!1,x.searchString,x.wholeWord,x.matchCase,null);let re=!1,ie,J;const X=K.getSelections();X.length===1&&X[0].isEmpty()?(re=!0,ie=!0,J=!0):(ie=x.wholeWord,J=x.matchCase);const Y=K.getSelection();let le,de=null;if(Y.isEmpty()){const ge=K.getConfiguredWordAtPosition(Y.getStartPosition());if(!ge)return null;le=ge.word,de=new v.Selection(Y.startLineNumber,ge.startColumn,Y.startLineNumber,ge.endColumn)}else le=K.getModel().getValueInRange(Y).replace(/\r\n/g,` +`);return new C(K,j,re,le,ie,J,de)}constructor(K,j,x,re,ie,J,X){this._editor=K,this.findController=j,this.isDisconnectedFromFindController=x,this.searchText=re,this.wholeWord=ie,this.matchCase=J,this.currentMatch=X}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const K=this._getNextMatch();if(!K)return null;const j=this._editor.getSelections();return new f(j.concat(K),K,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const K=this._getNextMatch();if(!K)return null;const j=this._editor.getSelections();return new f(j.slice(0,j.length-1).concat(K),K,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const re=this.currentMatch;return this.currentMatch=null,re}this.findController.highlightFindOptions();const K=this._editor.getSelections(),j=K[K.length-1],x=this._editor.getModel().findNextMatch(this.searchText,j.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1);return x?new v.Selection(x.range.startLineNumber,x.range.startColumn,x.range.endLineNumber,x.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const K=this._getPreviousMatch();if(!K)return null;const j=this._editor.getSelections();return new f(j.concat(K),K,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const K=this._getPreviousMatch();if(!K)return null;const j=this._editor.getSelections();return new f(j.slice(0,j.length-1).concat(K),K,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const re=this.currentMatch;return this.currentMatch=null,re}this.findController.highlightFindOptions();const K=this._editor.getSelections(),j=K[K.length-1],x=this._editor.getModel().findPreviousMatch(this.searchText,j.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1);return x?new v.Selection(x.range.startLineNumber,x.range.startColumn,x.range.endLineNumber,x.range.endColumn):null}selectAll(K){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const j=this._editor.getModel();return K?j.findMatches(this.searchText,K,!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1,1073741824):j.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1,1073741824)}}e.MultiCursorSession=C;class _ extends D.Disposable{static get(K){return K.getContribution(_.ID)}constructor(K){super(),this._sessionDispose=this._register(new D.DisposableStore),this._editor=K,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(K){if(!this._session){const j=C.create(this._editor,K);if(!j)return;this._session=j;const x={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(x.wholeWordOverride=1,x.matchCaseOverride=1,x.isRegexOverride=2),K.getState().change(x,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(re=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(K.getState().onFindReplaceStateChange(re=>{(re.matchCase||re.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const K={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(K,!1)}this._session=null}_setSelections(K){this._ignoreSelectionChange=!0,this._editor.setSelections(K),this._ignoreSelectionChange=!1}_expandEmptyToWord(K,j){if(!j.isEmpty())return j;const x=this._editor.getConfiguredWordAtPosition(j.getStartPosition());return x?new v.Selection(j.startLineNumber,x.startColumn,j.startLineNumber,x.endColumn):j}_applySessionResult(K){K&&(this._setSelections(K.selections),K.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(K.revealRange,K.revealScrollType))}getSession(K){return this._session}addSelectionToNextFindMatch(K){if(this._editor.hasModel()){if(!this._session){const j=this._editor.getSelections();if(j.length>1){const re=K.getState().matchCase;if(!O(this._editor.getModel(),j,re)){const J=this._editor.getModel(),X=[];for(let Y=0,le=j.length;Y0&&x.isRegex){const re=this._editor.getModel();x.searchScope?j=re.findMatches(x.searchString,x.searchScope,x.isRegex,x.matchCase,x.wholeWord?this._editor.getOption(130):null,!1,1073741824):j=re.findMatches(x.searchString,!0,x.isRegex,x.matchCase,x.wholeWord?this._editor.getOption(130):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(K),!this._session)return;j=this._session.selectAll(x.searchScope)}if(j.length>0){const re=this._editor.getSelection();for(let ie=0,J=j.length;ienew v.Selection(ie.range.startLineNumber,ie.range.startColumn,ie.range.endLineNumber,ie.range.endColumn)))}}}e.MultiCursorSelectionController=_,_.ID="editor.contrib.multiCursorController";class E extends S.EditorAction{run(K,j){const x=_.get(j);if(!x)return;const re=j._getViewModel();if(re){const ie=re.getCursorStates(),J=a.CommonFindController.get(j);if(J)this._run(x,J);else{const X=K.get(m.IInstantiationService).createInstance(a.CommonFindController,j);this._run(x,X),X.dispose()}d(ie,re.getCursorStates())}}}e.MultiCursorSelectionControllerAction=E;class I extends E{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:n.localize(10,null),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(11,null),order:5}})}_run(K,j){K.addSelectionToNextFindMatch(j)}}e.AddSelectionToNextFindMatchAction=I;class T extends E{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:n.localize(12,null),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(13,null),order:6}})}_run(K,j){K.addSelectionToPreviousFindMatch(j)}}e.AddSelectionToPreviousFindMatchAction=T;class A extends E{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:n.localize(14,null),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:(0,y.KeyChord)(2089,2082),weight:100}})}_run(K,j){K.moveSelectionToNextFindMatch(j)}}e.MoveSelectionToNextFindMatchAction=A;class R extends E{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:n.localize(15,null),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(K,j){K.moveSelectionToPreviousFindMatch(j)}}e.MoveSelectionToPreviousFindMatchAction=R;class M extends E{constructor(){super({id:"editor.action.selectHighlights",label:n.localize(16,null),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:i.MenuId.MenubarSelectionMenu,group:"3_multi",title:n.localize(17,null),order:7}})}_run(K,j){K.selectAll(j)}}e.SelectHighlightsAction=M;class N extends E{constructor(){super({id:"editor.action.changeAll",label:n.localize(18,null),alias:"Change All Occurrences",precondition:t.ContextKeyExpr.and(b.EditorContextKeys.writable,b.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(K,j){K.selectAll(j)}}e.CompatChangeAll=N;class P{constructor(K,j,x,re,ie){this._model=K,this._searchText=j,this._matchCase=x,this._wordSeparators=re,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,ie&&this._model===ie._model&&this._searchText===ie._searchText&&this._matchCase===ie._matchCase&&this._wordSeparators===ie._wordSeparators&&this._modelVersionId===ie._modelVersionId&&(this._cachedFindMatches=ie._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(K=>K.range),this._cachedFindMatches.sort(w.Range.compareRangesUsingStarts)),this._cachedFindMatches}}let F=c=class extends D.Disposable{constructor(K,j){super(),this._languageFeaturesService=j,this.editor=K,this._isEnabled=K.getOption(108),this._decorations=K.createDecorationsCollection(),this.updateSoon=this._register(new k.RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(K.onDidChangeConfiguration(re=>{this._isEnabled=K.getOption(108)})),this._register(K.onDidChangeCursorSelection(re=>{this._isEnabled&&(re.selection.isEmpty()?re.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(K.onDidChangeModel(re=>{this._setState(null)})),this._register(K.onDidChangeModelContent(re=>{this._isEnabled&&this.updateSoon.schedule()}));const x=a.CommonFindController.get(K);x&&this._register(x.getState().onFindReplaceStateChange(re=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(c._createState(this.state,this._isEnabled,this.editor))}static _createState(K,j,x){if(!j||!x.hasModel())return null;const re=x.getSelection();if(re.startLineNumber!==re.endLineNumber)return null;const ie=_.get(x);if(!ie)return null;const J=a.CommonFindController.get(x);if(!J)return null;let X=ie.getSession(J);if(!X){const de=x.getSelections();if(de.length>1){const pe=J.getState().matchCase;if(!O(x.getModel(),de,pe))return null}X=C.create(x,J)}if(!X||X.currentMatch||/^[ \t]+$/.test(X.searchText)||X.searchText.length>200)return null;const Y=J.getState(),le=Y.matchCase;if(Y.isRevealed){let de=Y.searchString;le||(de=de.toLowerCase());let ge=X.searchText;if(le||(ge=ge.toLowerCase()),de===ge&&X.matchCase===Y.matchCase&&X.wholeWord===Y.wholeWord&&!Y.isRegex)return null}return new P(x.getModel(),X.searchText,X.matchCase,X.wholeWord?x.getOption(130):null,K)}_setState(K){if(this.state=K,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const j=this.editor.getModel();if(j.isTooLargeForTokenization())return;const x=this.state.findMatches(),re=this.editor.getSelections();re.sort(w.Range.compareRangesUsingStarts);const ie=[];for(let le=0,de=0,ge=x.length,pe=re.length;le=pe)ie.push(Q),le++;else{const U=w.Range.compareRangesUsingStarts(Q,re[de]);U<0?((re[de].isEmpty()||!w.Range.areIntersecting(Q,re[de]))&&ie.push(Q),le++):(U>0||le++,de++)}}const J=this.editor.getOption(81)!=="off",X=this._languageFeaturesService.documentHighlightProvider.has(j)&&J,Y=ie.map(le=>({range:le,options:(0,g.getSelectionHighlightDecorationOptions)(X)}));this._decorations.set(Y)}dispose(){this._setState(null),super.dispose()}};e.SelectionHighlighter=F,F.ID="editor.contrib.selectionHighlighter",e.SelectionHighlighter=F=c=De([he(1,o.ILanguageFeaturesService)],F);function O(z,K,j){const x=B(z,K[0],!j);for(let re=1,ie=K.length;re()=>Promise.resolve(x.provideDocumentHighlights(V,z,K)).then(void 0,p.onUnexpectedExternalError)),k.isNonEmptyArray).then(x=>{if(x){const re=new s.ResourceMap;return re.set(V.uri,x),re}return new s.ResourceMap})}e.getOccurrencesAtPosition=f;function C(W,V,z,K,j,x){const re=W.ordered(V);return(0,D.first)(re.map(ie=>()=>{const J=x.filter(X=>(0,o.shouldSynchronizeModel)(X)).filter(X=>(0,l.score)(ie.selector,X.uri,X.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(ie.provideMultiDocumentHighlights(V,z,J,j)).then(void 0,p.onUnexpectedExternalError)}),ie=>ie instanceof s.ResourceMap&&ie.size>0)}e.getOccurrencesAcrossMultipleModels=C;class _{constructor(V,z,K){this._model=V,this._selection=z,this._wordSeparators=K,this._wordRange=this._getCurrentWordRange(V,z),this._result=null}get result(){return this._result||(this._result=(0,D.createCancelablePromise)(V=>this._compute(this._model,this._selection,this._wordSeparators,V))),this._result}_getCurrentWordRange(V,z){const K=V.getWordAtPosition(z.getPosition());return K?new n.Range(z.startLineNumber,K.startColumn,z.startLineNumber,K.endColumn):null}isValid(V,z,K){const j=z.startLineNumber,x=z.startColumn,re=z.endColumn,ie=this._getCurrentWordRange(V,z);let J=!!(this._wordRange&&this._wordRange.equalsRange(ie));for(let X=0,Y=K.length;!J&&X=re&&(J=!0)}return J}cancel(){this.result.cancel()}}class E extends _{constructor(V,z,K,j){super(V,z,K),this._providers=j}_compute(V,z,K,j){return f(this._providers,V,z.getPosition(),j).then(x=>x||new s.ResourceMap)}}class I extends _{constructor(V,z,K,j,x){super(V,z,K),this._providers=j,this._otherModels=x}_compute(V,z,K,j){return C(this._providers,V,z.getPosition(),K,j,this._otherModels).then(x=>x||new s.ResourceMap)}}class T extends _{constructor(V,z,K,j,x){super(V,z,j),this._otherModels=x,this._selectionIsEmpty=z.isEmpty(),this._word=K}_compute(V,z,K,j){return(0,D.timeout)(250,j).then(()=>{const x=new s.ResourceMap;let re;if(this._word?re=this._word:re=V.getWordAtPosition(z.getPosition()),!re)return new s.ResourceMap;const ie=[V,...this._otherModels];for(const J of ie){if(J.isDisposed())continue;const Y=J.findMatches(re.word,!0,!1,!0,K,!1).map(le=>({range:le.range,kind:t.DocumentHighlightKind.Text}));Y&&x.set(J.uri,Y)}return x})}isValid(V,z,K){const j=z.isEmpty();return this._selectionIsEmpty!==j?!1:super.isValid(V,z,K)}}function A(W,V,z,K,j){return W.has(V)?new E(V,z,j,W):new T(V,z,K,j,[])}function R(W,V,z,K,j,x){return W.has(V)?new I(V,z,j,W,x):new T(V,z,K,j,x)}(0,b.registerModelAndPositionCommand)("_executeDocumentHighlights",async(W,V,z)=>{const K=W.get(g.ILanguageFeaturesService),j=await f(K.documentHighlightProvider,V,z,S.CancellationToken.None);return j?.get(V.uri)});let M=r=class{constructor(V,z,K,j,x){this.toUnhook=new w.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new s.ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=V,this.providers=z,this.multiDocumentProviders=K,this.codeEditorService=x,this._hasWordHighlights=u.bindTo(j),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(V.onDidChangeCursorPosition(re=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this._onPositionChanged(re)})),this.toUnhook.add(V.onDidFocusEditorText(re=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this._run())})),this.toUnhook.add(V.onDidChangeModelContent(re=>{this._stopAll()})),this.toUnhook.add(V.onDidChangeModel(re=>{!re.newModelUrl&&re.oldModelUrl?this._stopSingular():r.query&&this._run()})),this.toUnhook.add(V.onDidChangeConfiguration(re=>{const ie=this.editor.getOption(81);this.occurrencesHighlight!==ie&&(this.occurrencesHighlight=ie,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,r.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(n.Range.compareRangesUsingStarts)}moveNext(){const V=this._getSortedHighlights(),K=(V.findIndex(x=>x.containsPosition(this.editor.getPosition()))+1)%V.length,j=V[K];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(j.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(j);const x=this._getWord();if(x){const re=this.editor.getModel().getLineContent(j.startLineNumber);(0,y.alert)(`${re}, ${K+1} of ${V.length} for '${x.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const V=this._getSortedHighlights(),K=(V.findIndex(x=>x.containsPosition(this.editor.getPosition()))-1+V.length)%V.length,j=V[K];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(j.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(j);const x=this._getWord();if(x){const re=this.editor.getModel().getLineContent(j.startLineNumber);(0,y.alert)(`${re}, ${K+1} of ${V.length} for '${x.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const V=r.storedDecorations.get(this.editor.getModel().uri);V&&(this.editor.removeDecorations(V),r.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const V=this.codeEditorService.listCodeEditors(),z=[];for(const K of V){if(!K.hasModel())continue;const j=r.storedDecorations.get(K.getModel().uri);if(!j)continue;K.removeDecorations(j),z.push(K.getModel().uri);const x=N.get(K);x?.wordHighlighter&&x.wordHighlighter.decorations.length>0&&(x.wordHighlighter.decorations.clear(),x.wordHighlighter.workerRequest=null,x.wordHighlighter._hasWordHighlights.set(!1))}for(const K of z)r.storedDecorations.delete(K)}_stopSingular(){var V,z,K,j;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((V=this.editor.getModel())===null||V===void 0?void 0:V.uri.scheme)!==d.Schemas.vscodeNotebookCell&&((K=(z=r.query)===null||z===void 0?void 0:z.modelInfo)===null||K===void 0?void 0:K.model.uri.scheme)!==d.Schemas.vscodeNotebookCell?(r.query=null,this._run()):!((j=r.query)===null||j===void 0)&&j.modelInfo&&(r.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(V){var z;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(V.reason!==3&&((z=this.editor.getModel())===null||z===void 0?void 0:z.uri.scheme)!==d.Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const V=this.editor.getSelection(),z=V.startLineNumber,K=V.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:z,column:K})}getOtherModelsToHighlight(V){if(!V)return[];if(V.uri.scheme===d.Schemas.vscodeNotebookCell){const x=[],re=this.codeEditorService.listCodeEditors();for(const ie of re){const J=ie.getModel();J&&J!==V&&J.uri.scheme===d.Schemas.vscodeNotebookCell&&x.push(J)}return x}const K=[],j=this.codeEditorService.listCodeEditors();for(const x of j){if(!(0,v.isDiffEditor)(x))continue;const re=x.getModel();re&&V===re.modified&&K.push(re.modified)}if(K.length)return K;if(this.occurrencesHighlight==="singleFile")return[];for(const x of j){const re=x.getModel();re&&re!==V&&K.push(re)}return K}_run(){var V;let z;if(this.editor.hasTextFocus()){const j=this.editor.getSelection();if(!j||j.startLineNumber!==j.endLineNumber){r.query=null,this._stopAll();return}const x=j.startColumn,re=j.endColumn,ie=this._getWord();if(!ie||ie.startColumn>x||ie.endColumn{j===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=re||[],this._beginRenderDecorations())},p.onUnexpectedError)}}computeWithModel(V,z,K,j){return j.length?R(this.multiDocumentProviders,V,z,K,this.editor.getOption(130),j):A(this.providers,V,z,K,this.editor.getOption(130))}_beginRenderDecorations(){const V=new Date().getTime(),z=this.lastCursorPositionChangeTime+250;V>=z?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},z-V)}renderDecorations(){var V,z,K;this.renderDecorationsTimer=-1;const j=this.codeEditorService.listCodeEditors();for(const x of j){const re=N.get(x);if(!re)continue;const ie=[],J=(V=x.getModel())===null||V===void 0?void 0:V.uri;if(J&&this.workerRequestValue.has(J)){const X=r.storedDecorations.get(J),Y=this.workerRequestValue.get(J);if(Y)for(const de of Y)de.range&&ie.push({range:de.range,options:(0,m.getHighlightDecorationOptions)(de.kind)});let le=[];x.changeDecorations(de=>{le=de.deltaDecorations(X??[],ie)}),r.storedDecorations=r.storedDecorations.set(J,le),ie.length>0&&((z=re.wordHighlighter)===null||z===void 0||z.decorations.set(ie),(K=re.wordHighlighter)===null||K===void 0||K._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};M.storedDecorations=new s.ResourceMap,M.query=null,M=r=De([he(4,a.ICodeEditorService)],M);let N=h=class extends w.Disposable{static get(V){return V.getContribution(h.ID)}constructor(V,z,K,j){super(),this._wordHighlighter=null;const x=()=>{V.hasModel()&&!V.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new M(V,K.documentHighlightProvider,K.multiDocumentHighlightProvider,z,j))};this._register(V.onDidChangeModel(re=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),x()})),x()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var V;(V=this._wordHighlighter)===null||V===void 0||V.moveNext()}moveBack(){var V;(V=this._wordHighlighter)===null||V===void 0||V.moveBack()}restoreViewState(V){this._wordHighlighter&&V&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};e.WordHighlighterContribution=N,N.ID="editor.contrib.wordHighlighter",e.WordHighlighterContribution=N=h=De([he(1,c.IContextKeyService),he(2,g.ILanguageFeaturesService),he(3,a.ICodeEditorService)],N);class P extends b.EditorAction{constructor(V,z){super(z),this._isNext=V}run(V,z){const K=N.get(z);K&&(this._isNext?K.moveNext():K.moveBack())}}class F extends P{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:L.localize(0,null),alias:"Go to Next Symbol Highlight",precondition:u,kbOpts:{kbExpr:i.EditorContextKeys.editorTextFocus,primary:65,weight:100}})}}class O extends P{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:L.localize(1,null),alias:"Go to Previous Symbol Highlight",precondition:u,kbOpts:{kbExpr:i.EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}}class B extends b.EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:L.localize(2,null),alias:"Trigger Symbol Highlight",precondition:u.toNegated(),kbOpts:{kbExpr:i.EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(V,z,K){const j=N.get(z);j&&j.restoreViewState(!0)}}(0,b.registerEditorContribution)(N.ID,N,0),(0,b.registerEditorAction)(F),(0,b.registerEditorAction)(O),(0,b.registerEditorAction)(B)}),define(ne[925],se([1,0,6,160,39,172,2,54,5,38,492]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ZoneWidget=e.OverlayWidgetDelegate=void 0;const b=new y.Color(new y.RGBA(0,122,204)),a={showArrow:!0,showFrame:!0,className:"",frameColor:b,arrowColor:b,keepEditorSelection:!1},n="vs.editor.contrib.zoneWidget";class i{constructor(c,d,s,l,r,h,u,f){this.id="",this.domNode=c,this.afterLineNumber=d,this.afterColumn=s,this.heightInLines=l,this.showInHiddenAreas=u,this.ordinal=f,this._onDomNodeTop=r,this._onComputedHeight=h}onDomNodeTop(c){this._onDomNodeTop(c)}onComputedHeight(c){this._onComputedHeight(c)}}class t{constructor(c,d){this._id=c,this._domNode=d}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}e.OverlayWidgetDelegate=t;class o{constructor(c){this._editor=c,this._ruleName=o._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),L.removeCSSRulesContainingSelector(this._ruleName)}set color(c){this._color!==c&&(this._color=c,this._updateStyle())}set height(c){this._height!==c&&(this._height=c,this._updateStyle())}_updateStyle(){L.removeCSSRulesContainingSelector(this._ruleName),L.createCSSRule(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(c){c.column===1&&(c={lineNumber:c.lineNumber,column:2}),this._decorations.set([{range:w.Range.fromPositions(c),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}o._IdGenerator=new D.IdGenerator(".arrow-decoration-");class g{constructor(c,d={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new S.DisposableStore,this.container=null,this._isShowing=!1,this.editor=c,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=p.deepClone(d),p.mixin(this.options,a,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(s=>{const l=this._getWidth(s);this.domNode.style.width=l+"px",this.domNode.style.left=this._getLeft(s)+"px",this._onWidth(l)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(c=>{this._viewZone&&c.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new o(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(c){c.frameColor&&(this.options.frameColor=c.frameColor),c.arrowColor&&(this.options.arrowColor=c.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const c=this.options.frameColor.toString();this.container.style.borderTopColor=c,this.container.style.borderBottomColor=c}if(this._arrow&&this.options.arrowColor){const c=this.options.arrowColor.toString();this._arrow.color=c}}_getWidth(c){return c.width-c.minimap.minimapWidth-c.verticalScrollbarWidth}_getLeft(c){return c.minimap.minimapWidth>0&&c.minimap.minimapLeft===0?c.minimap.minimapWidth:0}_onViewZoneTop(c){this.domNode.style.top=c+"px"}_onViewZoneHeight(c){var d;if(this.domNode.style.height=`${c}px`,this.container){const s=c-this._decoratingElementsHeight();this.container.style.height=`${s}px`;const l=this.editor.getLayoutInfo();this._doLayout(s,this._getWidth(l))}(d=this._resizeSash)===null||d===void 0||d.layout()}get position(){const c=this._positionMarkerId.getRange(0);if(c)return c.getStartPosition()}show(c,d){const s=w.Range.isIRange(c)?w.Range.lift(c):w.Range.fromPositions(c);this._isShowing=!0,this._showImpl(s,d),this._isShowing=!1,this._positionMarkerId.set([{range:s,options:v.ModelDecorationOptions.EMPTY}])}hide(){var c;this._viewZone&&(this.editor.changeViewZones(d=>{this._viewZone&&d.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(c=this._arrow)===null||c===void 0||c.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const c=this.editor.getOption(67);let d=0;if(this.options.showArrow){const s=Math.round(c/3);d+=2*s}if(this.options.showFrame){const s=Math.round(c/9);d+=2*s}return d}_showImpl(c,d){const s=c.getStartPosition(),l=this.editor.getLayoutInfo(),r=this._getWidth(l);this.domNode.style.width=`${r}px`,this.domNode.style.left=this._getLeft(l)+"px";const h=document.createElement("div");h.style.overflow="hidden";const u=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const I=Math.max(12,this.editor.getLayoutInfo().height/u*.8);d=Math.min(d,I)}let f=0,C=0;if(this._arrow&&this.options.showArrow&&(f=Math.round(u/3),this._arrow.height=f,this._arrow.show(s)),this.options.showFrame&&(C=Math.round(u/9)),this.editor.changeViewZones(I=>{this._viewZone&&I.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new i(h,s.lineNumber,s.column,d,T=>this._onViewZoneTop(T),T=>this._onViewZoneHeight(T),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=I.addZone(this._viewZone),this._overlayWidget=new t(n+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const I=this.options.frameWidth?this.options.frameWidth:C;this.container.style.borderTopWidth=I+"px",this.container.style.borderBottomWidth=I+"px"}const _=d*u-this._decoratingElementsHeight();this.container&&(this.container.style.top=f+"px",this.container.style.height=_+"px",this.container.style.overflow="hidden"),this._doLayout(_,r),this.options.keepEditorSelection||this.editor.setSelection(c);const E=this.editor.getModel();if(E){const I=E.validateRange(new w.Range(c.startLineNumber,1,c.endLineNumber+1,1));this.revealRange(I,I.startLineNumber===E.getLineCount())}}revealRange(c,d){d?this.editor.revealLineNearTop(c.endLineNumber,0):this.editor.revealRange(c,0)}setCssClass(c,d){this.container&&(d&&this.container.classList.remove(d),this.container.classList.add(c))}_onWidth(c){}_doLayout(c,d){}_relayout(c){this._viewZone&&this._viewZone.heightInLines!==c&&this.editor.changeViewZones(d=>{this._viewZone&&(this._viewZone.heightInLines=c,d.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new k.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let c;this._disposables.add(this._resizeSash.onDidStart(d=>{this._viewZone&&(c={startY:d.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{c=void 0})),this._disposables.add(this._resizeSash.onDidChange(d=>{if(c){const s=(d.currentY-c.startY)/this.editor.getOption(67),l=s<0?Math.ceil(s):Math.floor(s),r=c.heightInLines+l;r>5&&r<35&&this._relayout(r)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const c=this.editor.getLayoutInfo();return c.width-c.minimap.minimapWidth}}e.ZoneWidget=g}),define(ne[147],se([1,0,6,79,42,27,29,39,7,54,16,35,170,925,716,110,14,45,8,31,483]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.peekViewEditorMatchHighlightBorder=e.peekViewEditorMatchHighlight=e.peekViewResultsMatchHighlight=e.peekViewEditorStickyScrollBackground=e.peekViewEditorGutterBackground=e.peekViewEditorBackground=e.peekViewResultsSelectionForeground=e.peekViewResultsSelectionBackground=e.peekViewResultsFileForeground=e.peekViewResultsMatchForeground=e.peekViewResultsBackground=e.peekViewBorder=e.peekViewTitleInfoForeground=e.peekViewTitleForeground=e.peekViewTitleBackground=e.PeekViewWidget=e.getOuterEditor=e.PeekContext=e.IPeekViewService=void 0,e.IPeekViewService=(0,c.createDecorator)("IPeekViewService"),(0,m.registerSingleton)(e.IPeekViewService,class{constructor(){this._widgets=new Map}addExclusiveWidget(f,C){const _=this._widgets.get(f);_&&(_.listener.dispose(),_.widget.dispose());const E=()=>{const I=this._widgets.get(f);I&&I.widget===C&&(I.listener.dispose(),this._widgets.delete(f))};this._widgets.set(f,{widget:C,listener:C.onDidClose(E)})}},1);var s;(function(f){f.inPeekEditor=new g.RawContextKey("inReferenceSearchEditor",!0,t.localize(0,null)),f.notInPeekEditor=f.inPeekEditor.toNegated()})(s||(e.PeekContext=s={}));let l=class{constructor(C,_){C instanceof n.EmbeddedCodeEditorWidget&&s.inPeekEditor.bindTo(_)}dispose(){}};l.ID="editor.contrib.referenceController",l=De([he(1,g.IContextKeyService)],l),(0,b.registerEditorContribution)(l.ID,l,0);function r(f){const C=f.get(a.ICodeEditorService).getFocusedCodeEditor();return C instanceof n.EmbeddedCodeEditorWidget?C.getParentEditor():C}e.getOuterEditor=r;const h={headerBackgroundColor:p.Color.white,primaryHeadingColor:p.Color.fromHex("#333333"),secondaryHeadingColor:p.Color.fromHex("#6c6c6cb3")};let u=class extends i.ZoneWidget{constructor(C,_,E){super(C,_),this.instantiationService=E,this._onDidClose=new w.Emitter,this.onDidClose=this._onDidClose.event,v.mixin(this.options,h,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(C){const _=this.options;C.headerBackgroundColor&&(_.headerBackgroundColor=C.headerBackgroundColor),C.primaryHeadingColor&&(_.primaryHeadingColor=C.primaryHeadingColor),C.secondaryHeadingColor&&(_.secondaryHeadingColor=C.secondaryHeadingColor),super.style(C)}_applyStyles(){super._applyStyles();const C=this.options;this._headElement&&C.headerBackgroundColor&&(this._headElement.style.backgroundColor=C.headerBackgroundColor.toString()),this._primaryHeading&&C.primaryHeadingColor&&(this._primaryHeading.style.color=C.primaryHeadingColor.toString()),this._secondaryHeading&&C.secondaryHeadingColor&&(this._secondaryHeading.style.color=C.secondaryHeadingColor.toString()),this._bodyElement&&C.frameColor&&(this._bodyElement.style.borderColor=C.frameColor.toString())}_fillContainer(C){this.setCssClass("peekview-widget"),this._headElement=L.$(".head"),this._bodyElement=L.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),C.appendChild(this._headElement),C.appendChild(this._bodyElement)}_fillHead(C,_){this._titleElement=L.$(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),L.addStandardDisposableListener(this._titleElement,"click",T=>this._onTitleClick(T))),L.append(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=L.$("span.filename"),this._secondaryHeading=L.$("span.dirname"),this._metaHeading=L.$("span.meta"),L.append(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const E=L.$(".peekview-actions");L.append(this._headElement,E);const I=this._getActionBarOptions();this._actionbarWidget=new k.ActionBar(E,I),this._disposables.add(this._actionbarWidget),_||this._actionbarWidget.push(new y.Action("peekview.close",t.localize(1,null),S.ThemeIcon.asClassName(D.Codicon.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(C){}_getActionBarOptions(){return{actionViewItemProvider:o.createActionViewItem.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(C){}setTitle(C,_){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=C,this._primaryHeading.setAttribute("title",C),_?this._secondaryHeading.innerText=_:L.clearNode(this._secondaryHeading))}setMetaTitle(C){this._metaHeading&&(C?(this._metaHeading.innerText=C,L.show(this._metaHeading)):L.hide(this._metaHeading))}_doLayout(C,_){if(!this._isShowing&&C<0){this.dispose();return}const E=Math.ceil(this.editor.getOption(67)*1.2),I=Math.round(C-(E+2));this._doLayoutHead(E,_),this._doLayoutBody(I,_)}_doLayoutHead(C,_){this._headElement&&(this._headElement.style.height=`${C}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(C,_){this._bodyElement&&(this._bodyElement.style.height=`${C}px`)}};e.PeekViewWidget=u,e.PeekViewWidget=u=De([he(2,c.IInstantiationService)],u),e.peekViewTitleBackground=(0,d.registerColor)("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:p.Color.black,hcLight:p.Color.white},t.localize(2,null)),e.peekViewTitleForeground=(0,d.registerColor)("peekViewTitleLabel.foreground",{dark:p.Color.white,light:p.Color.black,hcDark:p.Color.white,hcLight:d.editorForeground},t.localize(3,null)),e.peekViewTitleInfoForeground=(0,d.registerColor)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},t.localize(4,null)),e.peekViewBorder=(0,d.registerColor)("peekView.border",{dark:d.editorInfoForeground,light:d.editorInfoForeground,hcDark:d.contrastBorder,hcLight:d.contrastBorder},t.localize(5,null)),e.peekViewResultsBackground=(0,d.registerColor)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:p.Color.black,hcLight:p.Color.white},t.localize(6,null)),e.peekViewResultsMatchForeground=(0,d.registerColor)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:p.Color.white,hcLight:d.editorForeground},t.localize(7,null)),e.peekViewResultsFileForeground=(0,d.registerColor)("peekViewResult.fileForeground",{dark:p.Color.white,light:"#1E1E1E",hcDark:p.Color.white,hcLight:d.editorForeground},t.localize(8,null)),e.peekViewResultsSelectionBackground=(0,d.registerColor)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},t.localize(9,null)),e.peekViewResultsSelectionForeground=(0,d.registerColor)("peekViewResult.selectionForeground",{dark:p.Color.white,light:"#6C6C6C",hcDark:p.Color.white,hcLight:d.editorForeground},t.localize(10,null)),e.peekViewEditorBackground=(0,d.registerColor)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:p.Color.black,hcLight:p.Color.white},t.localize(11,null)),e.peekViewEditorGutterBackground=(0,d.registerColor)("peekViewEditorGutter.background",{dark:e.peekViewEditorBackground,light:e.peekViewEditorBackground,hcDark:e.peekViewEditorBackground,hcLight:e.peekViewEditorBackground},t.localize(12,null)),e.peekViewEditorStickyScrollBackground=(0,d.registerColor)("peekViewEditorStickyScroll.background",{dark:e.peekViewEditorBackground,light:e.peekViewEditorBackground,hcDark:e.peekViewEditorBackground,hcLight:e.peekViewEditorBackground},t.localize(13,null)),e.peekViewResultsMatchHighlight=(0,d.registerColor)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},t.localize(14,null)),e.peekViewEditorMatchHighlight=(0,d.registerColor)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},t.localize(15,null)),e.peekViewEditorMatchHighlightBorder=(0,d.registerColor)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:d.activeContrastBorder,hcLight:d.activeContrastBorder},t.localize(16,null))}),define(ne[926],se([1,0,6,78,13,39,7,2,48,11,5,147,689,110,28,14,8,166,100,57,814,31,24,469]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerNavigationWidget=void 0;class u{constructor(O,B,W,V,z){this._openerService=V,this._labelService=z,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new p.DisposableStore,this._editor=B;const K=document.createElement("div");K.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),K.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),K.appendChild(this._relatedBlock),this._disposables.add(L.addStandardDisposableListener(this._relatedBlock,"click",j=>{j.preventDefault();const x=this._relatedDiagnostics.get(j.target);x&&W(x)})),this._scrollable=new k.ScrollableElement(K,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),O.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(j=>{K.style.left=`-${j.scrollLeft}px`,K.style.top=`-${j.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){(0,p.dispose)(this._disposables)}update(O){const{source:B,message:W,relatedInformation:V,code:z}=O;let K=(B?.length||0)+2;z&&(typeof z=="string"?K+=z.length:K+=z.value.length);const j=(0,v.splitLines)(W);this._lines=j.length,this._longestLineLength=0;for(const X of j)this._longestLineLength=Math.max(X.length+K,this._longestLineLength);L.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(O)),this._editor.applyFontInfo(this._messageBlock);let x=this._messageBlock;for(const X of j)x=document.createElement("div"),x.innerText=X,X===""&&(x.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(x);if(B||z){const X=document.createElement("span");if(X.classList.add("details"),x.appendChild(X),B){const Y=document.createElement("span");Y.innerText=B,Y.classList.add("source"),X.appendChild(Y)}if(z)if(typeof z=="string"){const Y=document.createElement("span");Y.innerText=`(${z})`,Y.classList.add("code"),X.appendChild(Y)}else{this._codeLink=L.$("a.code-link"),this._codeLink.setAttribute("href",`${z.target.toString()}`),this._codeLink.onclick=le=>{this._openerService.open(z.target,{allowCommands:!0}),le.preventDefault(),le.stopPropagation()};const Y=L.append(this._codeLink,L.$("span"));Y.innerText=z.value,X.appendChild(this._codeLink)}}if(L.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,y.isNonEmptyArray)(V)){const X=this._relatedBlock.appendChild(document.createElement("div"));X.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const Y of V){const le=document.createElement("div"),de=document.createElement("a");de.classList.add("filename"),de.innerText=`${this._labelService.getUriBasenameLabel(Y.resource)}(${Y.startLineNumber}, ${Y.startColumn}): `,de.title=this._labelService.getUriLabel(Y.resource),this._relatedDiagnostics.set(de,Y);const ge=document.createElement("span");ge.innerText=Y.message,le.appendChild(de),le.appendChild(ge),this._lines+=1,X.appendChild(le)}}const re=this._editor.getOption(50),ie=Math.ceil(re.typicalFullwidthCharacterWidth*this._longestLineLength*.75),J=re.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:ie,scrollHeight:J})}layout(O,B){this._scrollable.getDomNode().style.height=`${O}px`,this._scrollable.getDomNode().style.width=`${B}px`,this._scrollable.setScrollDimensions({width:B,height:O})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(O){let B="";switch(O.severity){case c.MarkerSeverity.Error:B=n.localize(0,null);break;case c.MarkerSeverity.Warning:B=n.localize(1,null);break;case c.MarkerSeverity.Info:B=n.localize(2,null);break;case c.MarkerSeverity.Hint:B=n.localize(3,null);break}let W=n.localize(4,null,B,O.startLineNumber+":"+O.startColumn);const V=this._editor.getModel();return V&&O.startLineNumber<=V.getLineCount()&&O.startLineNumber>=1&&(W=`${V.getLineContent(O.startLineNumber)}, ${W}`),W}}let f=h=class extends a.PeekViewWidget{constructor(O,B,W,V,z,K,j){super(O,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},z),this._themeService=B,this._openerService=W,this._menuService=V,this._contextKeyService=K,this._labelService=j,this._callOnDispose=new p.DisposableStore,this._onDidSelectRelatedInformation=new S.Emitter,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=c.MarkerSeverity.Warning,this._backgroundColor=D.Color.white,this._applyTheme(B.getColorTheme()),this._callOnDispose.add(B.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(O){this._backgroundColor=O.getColor(P);let B=I,W=T;this._severity===c.MarkerSeverity.Warning?(B=A,W=R):this._severity===c.MarkerSeverity.Info&&(B=M,W=N);const V=O.getColor(B),z=O.getColor(W);this.style({arrowColor:V,frameColor:V,headerBackgroundColor:z,primaryHeadingColor:O.getColor(a.peekViewTitleForeground),secondaryHeadingColor:O.getColor(a.peekViewTitleInfoForeground)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(O){super._fillHead(O),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(V=>this.editor.focus()));const B=[],W=this._menuService.createMenu(h.TitleMenu,this._contextKeyService);(0,i.createAndFillInActionBarActions)(W,void 0,B),this._actionbarWidget.push(B,{label:!1,icon:!0,index:0}),W.dispose()}_fillTitleIcon(O){this._icon=L.append(O,L.$(""))}_fillBody(O){this._parentContainer=O,O.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),O.appendChild(this._container),this._message=new u(this._container,this.editor,B=>this._onDidSelectRelatedInformation.fire(B),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(O,B,W){this._container.classList.remove("stale"),this._message.update(O),this._severity=O.severity,this._applyTheme(this._themeService.getColorTheme());const V=b.Range.lift(O),z=this.editor.getPosition(),K=z&&V.containsPosition(z)?z:V.getStartPosition();super.show(K,this.computeRequiredHeight());const j=this.editor.getModel();if(j){const x=W>1?n.localize(5,null,B,W):n.localize(6,null,B,W);this.setTitle((0,w.basename)(j.uri),x)}this._icon.className=`codicon ${s.SeverityIcon.className(c.MarkerSeverity.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(K,0),this.editor.focus()}updateMarker(O){this._container.classList.remove("stale"),this._message.update(O)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(O,B){super._doLayoutBody(O,B),this._heightInPixel=O,this._message.layout(O,B),this._container.style.height=`${O}px`}_onWidth(O){this._message.layout(this._heightInPixel,O)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};e.MarkerNavigationWidget=f,f.TitleMenu=new t.MenuId("gotoErrorTitleMenu"),e.MarkerNavigationWidget=f=h=De([he(1,r.IThemeService),he(2,d.IOpenerService),he(3,t.IMenuService),he(4,g.IInstantiationService),he(5,o.IContextKeyService),he(6,m.ILabelService)],f);const C=(0,l.oneOf)(l.editorErrorForeground,l.editorErrorBorder),_=(0,l.oneOf)(l.editorWarningForeground,l.editorWarningBorder),E=(0,l.oneOf)(l.editorInfoForeground,l.editorInfoBorder),I=(0,l.registerColor)("editorMarkerNavigationError.background",{dark:C,light:C,hcDark:l.contrastBorder,hcLight:l.contrastBorder},n.localize(7,null)),T=(0,l.registerColor)("editorMarkerNavigationError.headerBackground",{dark:(0,l.transparent)(I,.1),light:(0,l.transparent)(I,.1),hcDark:null,hcLight:null},n.localize(8,null)),A=(0,l.registerColor)("editorMarkerNavigationWarning.background",{dark:_,light:_,hcDark:l.contrastBorder,hcLight:l.contrastBorder},n.localize(9,null)),R=(0,l.registerColor)("editorMarkerNavigationWarning.headerBackground",{dark:(0,l.transparent)(A,.1),light:(0,l.transparent)(A,.1),hcDark:"#0C141F",hcLight:(0,l.transparent)(A,.2)},n.localize(10,null)),M=(0,l.registerColor)("editorMarkerNavigationInfo.background",{dark:E,light:E,hcDark:l.contrastBorder,hcLight:l.contrastBorder},n.localize(11,null)),N=(0,l.registerColor)("editorMarkerNavigationInfo.headerBackground",{dark:(0,l.transparent)(M,.1),light:(0,l.transparent)(M,.1),hcDark:null,hcLight:null},n.localize(12,null)),P=(0,l.registerColor)("editorMarkerNavigation.background",{dark:l.editorBackground,light:l.editorBackground,hcDark:l.editorBackground,hcLight:l.editorBackground},n.localize(13,null))}),define(ne[389],se([1,0,27,2,16,35,9,5,21,793,688,28,14,8,82,926]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.NextMarkerAction=e.MarkerController=void 0;let m=g=class{static get(C){return C.getContribution(g.ID)}constructor(C,_,E,I,T){this._markerNavigationService=_,this._contextKeyService=E,this._editorService=I,this._instantiationService=T,this._sessionDispoables=new k.DisposableStore,this._editor=C,this._widgetVisible=h.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(C){if(this._model&&this._model.matches(C))return this._model;let _=!1;return this._model&&(_=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(C),_&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(o.MarkerNavigationWidget,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(E=>{var I,T,A;(!(!((I=this._model)===null||I===void 0)&&I.selected)||!p.Range.containsPosition((T=this._model)===null||T===void 0?void 0:T.selected.marker,E.position))&&((A=this._model)===null||A===void 0||A.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const E=this._model.find(this._editor.getModel().uri,this._widget.position);E?this._widget.updateMarker(E.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(E=>{this._editorService.openCodeEditor({resource:E.resource,options:{pinned:!0,revealIfOpened:!0,selection:p.Range.lift(E).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(C=!0){this._cleanUp(),C&&this._editor.focus()}showAtMarker(C){if(this._editor.hasModel()){const _=this._getOrCreateModel(this._editor.getModel().uri);_.resetIndex(),_.move(!0,this._editor.getModel(),new S.Position(C.startLineNumber,C.startColumn)),_.selected&&this._widget.showAtMarker(_.selected.marker,_.selected.index,_.selected.total)}}async nagivate(C,_){var E,I;if(this._editor.hasModel()){const T=this._getOrCreateModel(_?void 0:this._editor.getModel().uri);if(T.move(C,this._editor.getModel(),this._editor.getPosition()),!T.selected)return;if(T.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const A=await this._editorService.openCodeEditor({resource:T.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:T.selected.marker}},this._editor);A&&((E=g.get(A))===null||E===void 0||E.close(),(I=g.get(A))===null||I===void 0||I.nagivate(C,_))}else this._widget.showAtMarker(T.selected.marker,T.selected.index,T.selected.total)}}};e.MarkerController=m,m.ID="editor.contrib.markerController",e.MarkerController=m=g=De([he(1,v.IMarkerNavigationService),he(2,n.IContextKeyService),he(3,D.ICodeEditorService),he(4,i.IInstantiationService)],m);class c extends y.EditorAction{constructor(C,_,E){super(E),this._next=C,this._multiFile=_}async run(C,_){var E;_.hasModel()&&((E=m.get(_))===null||E===void 0||E.nagivate(this._next,this._multiFile))}}class d extends c{constructor(){super(!0,!1,{id:d.ID,label:d.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:o.MarkerNavigationWidget.TitleMenu,title:d.LABEL,icon:(0,t.registerIcon)("marker-navigation-next",L.Codicon.arrowDown,b.localize(1,null)),group:"navigation",order:1}})}}e.NextMarkerAction=d,d.ID="editor.action.marker.next",d.LABEL=b.localize(0,null);class s extends c{constructor(){super(!1,!1,{id:s.ID,label:s.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:o.MarkerNavigationWidget.TitleMenu,title:s.LABEL,icon:(0,t.registerIcon)("marker-navigation-previous",L.Codicon.arrowUp,b.localize(3,null)),group:"navigation",order:2}})}}s.ID="editor.action.marker.prev",s.LABEL=b.localize(2,null);class l extends c{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:b.localize(4,null),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:a.MenuId.MenubarGoMenu,title:b.localize(5,null),group:"6_problem_nav",order:1}})}}class r extends c{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:b.localize(6,null),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:a.MenuId.MenubarGoMenu,title:b.localize(7,null),group:"6_problem_nav",order:2}})}}(0,y.registerEditorContribution)(m.ID,m,4),(0,y.registerEditorAction)(d),(0,y.registerEditorAction)(s),(0,y.registerEditorAction)(l),(0,y.registerEditorAction)(r);const h=new n.RawContextKey("markersNavigationVisible",!1),u=y.EditorCommand.bindToContribution(m.get);(0,y.registerEditorCommand)(new u({id:"closeMarkersNavigation",precondition:h,handler:f=>f.close(),kbOpts:{weight:150,kbExpr:w.EditorContextKeys.focus,primary:9,secondary:[1033]}}))}),define(ne[927],se([1,0,6,329,39,7,2,47,48,170,5,38,33,81,43,70,847,147,694,8,34,166,198,24,199,163,471]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferenceWidget=e.LayoutData=void 0;class C{constructor(A,R){this._editor=A,this._model=R,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new S.DisposableStore,this._callOnModelChange=new S.DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const A=this._editor.getModel();if(A){for(const R of this._model.references)if(R.uri.toString()===A.uri.toString()){this._addDecorations(R.parent);return}}}_addDecorations(A){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const R=[],M=[];for(let N=0,P=A.children.length;N{const P=N.deltaDecorations([],R);for(let F=0;F{P.equals(9)&&(this._keybindingService.dispatchEvent(P,P.target),P.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(E,"ReferencesWidget",this._treeContainer,new g.Delegate,[this._instantiationService.createInstance(g.FileReferencesRenderer),this._instantiationService.createInstance(g.OneReferenceRenderer)],this._instantiationService.createInstance(g.DataSource),M),this._splitView.addView({onDidChange:D.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:P=>{this._preview.layout({height:this._dim.height,width:P})}},k.Sizing.Distribute),this._splitView.addView({onDidChange:D.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:P=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${P}px`,this._tree.layout(this._dim.height,P)}},k.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const N=(P,F)=>{P instanceof f.OneReference&&(F==="show"&&this._revealReference(P,!1),this._onDidSelectReference.fire({element:P,kind:F,source:"tree"}))};this._tree.onDidOpen(P=>{P.sideBySide?N(P.element,"side"):P.editorOptions.pinned?N(P.element,"goto"):N(P.element,"show")}),L.hide(this._treeContainer)}_onWidth(A){this._dim&&this._doLayoutBody(this._dim.height,A)}_doLayoutBody(A,R){super._doLayoutBody(A,R),this._dim=new L.Dimension(R,A),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(R),this._splitView.resizeView(0,R*this.layoutData.ratio)}setSelection(A){return this._revealReference(A,!0).then(()=>{this._model&&(this._tree.setSelection([A]),this._tree.setFocus([A]))})}setModel(A){return this._disposeOnNewModel.clear(),this._model=A,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=c.localize(1,null),L.show(this._messageContainer),Promise.resolve(void 0)):(L.hide(this._messageContainer),this._decorationsManager=new C(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(A=>this._tree.rerender(A))),this._disposeOnNewModel.add(this._preview.onMouseDown(A=>{const{event:R,target:M}=A;if(R.detail!==2)return;const N=this._getFocusedReference();N&&this._onDidSelectReference.fire({element:{uri:N.uri,range:M.range},kind:R.ctrlKey||R.metaKey||R.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),L.show(this._treeContainer),L.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[A]=this._tree.getFocus();if(A instanceof f.OneReference)return A;if(A instanceof f.FileReferences&&A.children.length>0)return A.children[0]}async revealReference(A){await this._revealReference(A,!1),this._onDidSelectReference.fire({element:A,kind:"goto",source:"tree"})}async _revealReference(A,R){if(this._revealedReference===A)return;this._revealedReference=A,A.uri.scheme!==p.Schemas.inMemory?this.setTitle((0,w.basenameOrAuthority)(A.uri),this._uriLabel.getUriLabel((0,w.dirname)(A.uri))):this.setTitle(c.localize(2,null));const M=this._textModelResolverService.createModelReference(A.uri);this._tree.getInput()===A.parent?this._tree.reveal(A):(R&&this._tree.reveal(A.parent),await this._tree.expand(A.parent),this._tree.reveal(A));const N=await M;if(!this._model){N.dispose();return}(0,S.dispose)(this._previewModelReference);const P=N.object;if(P){const F=this._preview.getModel()===P.textEditorModel?0:1,O=b.Range.lift(A.range).collapseToStart();this._previewModelReference=N,this._preview.setModel(P.textEditorModel),this._preview.setSelection(O),this._preview.revealRangeInCenter(O,F)}else this._preview.setModel(this._previewNotAvailableMessage),N.dispose()}};e.ReferenceWidget=I,e.ReferenceWidget=I=De([he(3,h.IThemeService),he(4,o.ITextModelService),he(5,d.IInstantiationService),he(6,m.IPeekViewService),he(7,l.ILabelService),he(8,u.IUndoRedoService),he(9,s.IKeybindingService),he(10,t.ILanguageService),he(11,n.ILanguageConfigurationService)],I)}),define(ne[390],se([1,0,15,12,66,2,35,9,5,147,692,25,26,14,8,126,198,49,94,163,927,21,195]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesController=e.ctxReferenceSearchVisible=void 0,e.ctxReferenceSearchVisible=new i.RawContextKey("referenceSearchVisible",!1,b.localize(0,null));let u=h=class{static get(_){return _.getContribution(h.ID)}constructor(_,E,I,T,A,R,M,N){this._defaultTreeKeyboardSupport=_,this._editor=E,this._editorService=T,this._notificationService=A,this._instantiationService=R,this._storageService=M,this._configurationService=N,this._disposables=new D.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=e.ctxReferenceSearchVisible.bindTo(I)}dispose(){var _,E;this._referenceSearchVisible.reset(),this._disposables.dispose(),(_=this._widget)===null||_===void 0||_.dispose(),(E=this._model)===null||E===void 0||E.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(_,E,I){let T;if(this._widget&&(T=this._widget.position),this.closeWidget(),T&&_.containsPosition(T))return;this._peekMode=I,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const A="peekViewLayout",R=s.LayoutData.fromJSON(this._storageService.get(A,0,"{}"));this._widget=this._instantiationService.createInstance(s.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,R),this._widget.setTitle(b.localize(1,null)),this._widget.show(_),this._disposables.add(this._widget.onDidClose(()=>{E.cancel(),this._widget&&(this._storageService.store(A,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(N=>{const{element:P,kind:F}=N;if(P)switch(F){case"open":(N.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(P,!1,!1);break;case"side":this.openReference(P,!0,!1);break;case"goto":I?this._gotoReference(P,!0):this.openReference(P,!1,!0);break}}));const M=++this._requestIdPool;E.then(N=>{var P;if(M!==this._requestIdPool||!this._widget){N.dispose();return}return(P=this._model)===null||P===void 0||P.dispose(),this._model=N,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(b.localize(2,null,this._model.title,this._model.references.length));const F=this._editor.getModel().uri,O=new p.Position(_.startLineNumber,_.startColumn),B=this._model.nearestReference(F,O);if(B)return this._widget.setSelection(B).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},N=>{this._notificationService.error(N)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(_){if(!this._editor.hasModel()||!this._model||!this._widget)return;const E=this._widget.position;if(!E)return;const I=this._model.nearestReference(this._editor.getModel().uri,E);if(!I)return;const T=this._model.nextOrPreviousReference(I,_),A=this._editor.hasTextFocus(),R=this._widget.isPreviewEditorFocused();await this._widget.setSelection(T),await this._gotoReference(T,!1),A?this._editor.focus():this._widget&&R&&this._widget.focusOnPreviewEditor()}async revealReference(_){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(_)}closeWidget(_=!0){var E,I;(E=this._widget)===null||E===void 0||E.dispose(),(I=this._model)===null||I===void 0||I.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,_&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(_,E){var I;(I=this._widget)===null||I===void 0||I.hide(),this._ignoreModelChangeEvent=!0;const T=w.Range.lift(_.range).collapseToStart();return this._editorService.openCodeEditor({resource:_.uri,options:{selection:T,selectionSource:"code.jump",pinned:E}},this._editor).then(A=>{var R;if(this._ignoreModelChangeEvent=!1,!A||!this._widget){this.closeWidget();return}if(this._editor===A)this._widget.show(T),this._widget.focusOnReferenceTree();else{const M=h.get(A),N=this._model.clone();this.closeWidget(),A.focus(),M?.toggleWidget(T,(0,L.createCancelablePromise)(P=>Promise.resolve(N)),(R=this._peekMode)!==null&&R!==void 0?R:!1)}},A=>{this._ignoreModelChangeEvent=!1,(0,k.onUnexpectedError)(A)})}openReference(_,E,I){E||this.closeWidget();const{uri:T,range:A}=_;this._editorService.openCodeEditor({resource:T,options:{selection:A,selectionSource:"code.jump",pinned:I}},this._editor,E)}};e.ReferencesController=u,u.ID="editor.contrib.referencesController",e.ReferencesController=u=h=De([he(2,i.IContextKeyService),he(3,S.ICodeEditorService),he(4,m.INotificationService),he(5,t.IInstantiationService),he(6,c.IStorageService),he(7,n.IConfigurationService)],u);function f(C,_){const E=(0,v.getOuterEditor)(C);if(!E)return;const I=u.get(E);I&&_(I)}o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,y.KeyChord)(2089,60),when:i.ContextKeyExpr.or(e.ctxReferenceSearchVisible,v.PeekContext.inPeekEditor),handler(C){f(C,_=>{_.changeFocusBetweenPreviewAndReferences()})}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:i.ContextKeyExpr.or(e.ctxReferenceSearchVisible,v.PeekContext.inPeekEditor),handler(C){f(C,_=>{_.goToNextOrPreviousReference(!0)})}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:i.ContextKeyExpr.or(e.ctxReferenceSearchVisible,v.PeekContext.inPeekEditor),handler(C){f(C,_=>{_.goToNextOrPreviousReference(!1)})}}),a.CommandsRegistry.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),a.CommandsRegistry.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),a.CommandsRegistry.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),a.CommandsRegistry.registerCommand("closeReferenceSearch",C=>f(C,_=>_.closeWidget())),o.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:i.ContextKeyExpr.and(v.PeekContext.inPeekEditor,i.ContextKeyExpr.not("config.editor.stablePeek"))}),o.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:i.ContextKeyExpr.and(e.ctxReferenceSearchVisible,i.ContextKeyExpr.not("config.editor.stablePeek"),i.ContextKeyExpr.or(l.EditorContextKeys.editorTextFocus,r.InputFocusedContext.negate()))}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:i.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(C){var _;const I=(_=C.get(g.IListService).lastFocusedList)===null||_===void 0?void 0:_.getFocus();Array.isArray(I)&&I[0]instanceof d.OneReference&&f(C,T=>T.revealReference(I[0]))}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:i.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(C){var _;const I=(_=C.get(g.IListService).lastFocusedList)===null||_===void 0?void 0:_.getFocus();Array.isArray(I)&&I[0]instanceof d.OneReference&&f(C,T=>T.openReference(I[0],!0,!0))}}),a.CommandsRegistry.registerCommand("openReference",C=>{var _;const I=(_=C.get(g.IListService).lastFocusedList)===null||_===void 0?void 0:_.getFocus();Array.isArray(I)&&I[0]instanceof d.OneReference&&f(C,T=>T.openReference(I[0],!1,!0))})}),define(ne[270],se([1,0,44,15,66,20,22,109,157,16,35,170,9,5,21,30,390,163,829,168,147,690,28,25,14,8,49,88,257,18,52,195]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A){"use strict";var R,M,N,P,F,O,B,W;Object.defineProperty(e,"__esModule",{value:!0}),e.DefinitionAction=e.SymbolNavigationAction=e.SymbolNavigationAnchor=void 0,r.MenuRegistry.appendMenuItem(r.MenuId.EditorContext,{submenu:r.MenuId.EditorContextPeek,title:l.localize(0,null),group:"navigation",order:100});class V{static is(Y){return!Y||typeof Y!="object"?!1:!!(Y instanceof V||n.Position.isIPosition(Y.position)&&Y.model)}constructor(Y,le){this.model=Y,this.position=le}}e.SymbolNavigationAnchor=V;class z extends v.EditorAction2{static all(){return z._allSymbolNavigationCommands.values()}static _patchConfig(Y){const le={...Y,f1:!0};if(le.menu)for(const de of T.Iterable.wrap(le.menu))(de.id===r.MenuId.EditorContext||de.id===r.MenuId.EditorContextPeek)&&(de.when=u.ContextKeyExpr.and(Y.precondition,de.when));return le}constructor(Y,le){super(z._patchConfig(le)),this.configuration=Y,z._allSymbolNavigationCommands.set(le.id,this)}runEditorCommand(Y,le,de,ge){if(!le.hasModel())return Promise.resolve(void 0);const pe=Y.get(C.INotificationService),Q=Y.get(b.ICodeEditorService),U=Y.get(_.IEditorProgressService),Z=Y.get(c.ISymbolNavigationService),H=Y.get(I.ILanguageFeaturesService),q=Y.get(f.IInstantiationService),te=le.getModel(),G=le.getPosition(),$=V.is(de)?de:new V(te,G),oe=new p.EditorStateCancellationTokenSource(le,5),ae=(0,k.raceCancellation)(this._getLocationModel(H,$.model,$.position,oe.token),oe.token).then(async ue=>{var ce;if(!ue||oe.token.isCancellationRequested)return;(0,L.alert)(ue.ariaMessage);let fe;if(ue.referenceAt(te.uri,G)){const Ce=this._getAlternativeCommand(le);!z._activeAlternativeCommands.has(Ce)&&z._allSymbolNavigationCommands.has(Ce)&&(fe=z._allSymbolNavigationCommands.get(Ce))}const ve=ue.references.length;if(ve===0){if(!this.configuration.muteMessage){const Ce=te.getWordAtPosition(G);(ce=d.MessageController.get(le))===null||ce===void 0||ce.showMessage(this._getNoResultFoundMessage(Ce),G)}}else if(ve===1&&fe)z._activeAlternativeCommands.add(this.desc.id),q.invokeFunction(Ce=>fe.runEditorCommand(Ce,le,de,ge).finally(()=>{z._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(Q,Z,le,ue,ge)},ue=>{pe.error(ue)}).finally(()=>{oe.dispose()});return U.showWhile(ae,250),ae}async _onResult(Y,le,de,ge,pe){const Q=this._getGoToPreference(de);if(!(de instanceof a.EmbeddedCodeEditorWidget)&&(this.configuration.openInPeek||Q==="peek"&&ge.references.length>1))this._openInPeek(de,ge,pe);else{const U=ge.firstReference(),Z=ge.references.length>1&&Q==="gotoAndPeek",H=await this._openReference(de,Y,U,this.configuration.openToSide,!Z);Z&&H?this._openInPeek(H,ge,pe):ge.dispose(),Q==="goto"&&le.put(U)}}async _openReference(Y,le,de,ge,pe){let Q;if((0,o.isLocationLink)(de)&&(Q=de.targetSelectionRange),Q||(Q=de.range),!Q)return;const U=await le.openCodeEditor({resource:de.uri,options:{selection:i.Range.collapseToStart(Q),selectionRevealType:3,selectionSource:"code.jump"}},Y,ge);if(U){if(pe){const Z=U.getModel(),H=U.createDecorationsCollection([{range:Q,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{U.getModel()===Z&&H.clear()},350)}return U}}_openInPeek(Y,le,de){const ge=g.ReferencesController.get(Y);ge&&Y.hasModel()?ge.toggleWidget(de??Y.getSelection(),(0,k.createCancelablePromise)(pe=>Promise.resolve(le)),this.configuration.openInPeek):le.dispose()}}e.SymbolNavigationAction=z,z._allSymbolNavigationCommands=new Map,z._activeAlternativeCommands=new Set;class K extends z{async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getDefinitionsAtPosition)(Y.definitionProvider,le,de,ge),l.localize(1,null))}_getNoResultFoundMessage(Y){return Y&&Y.word?l.localize(2,null,Y.word):l.localize(3,null)}_getAlternativeCommand(Y){return Y.getOption(58).alternativeDefinitionCommand}_getGoToPreference(Y){return Y.getOption(58).multipleDefinitions}}e.DefinitionAction=K,(0,r.registerAction2)((R=class extends K{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:R.id,title:{...l.localize2(27,"Go to Definition"),mnemonicTitle:l.localize(4,null)},precondition:t.EditorContextKeys.hasDefinitionProvider,keybinding:[{when:t.EditorContextKeys.editorTextFocus,primary:70,weight:100},{when:u.ContextKeyExpr.and(t.EditorContextKeys.editorTextFocus,A.IsWebContext),primary:2118,weight:100}],menu:[{id:r.MenuId.EditorContext,group:"navigation",order:1.1},{id:r.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),h.CommandsRegistry.registerCommandAlias("editor.action.goToDeclaration",R.id)}},R.id="editor.action.revealDefinition",R)),(0,r.registerAction2)((M=class extends K{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:M.id,title:l.localize2(28,"Open Definition to the Side"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasDefinitionProvider,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:[{when:t.EditorContextKeys.editorTextFocus,primary:(0,y.KeyChord)(2089,70),weight:100},{when:u.ContextKeyExpr.and(t.EditorContextKeys.editorTextFocus,A.IsWebContext),primary:(0,y.KeyChord)(2089,2118),weight:100}]}),h.CommandsRegistry.registerCommandAlias("editor.action.openDeclarationToTheSide",M.id)}},M.id="editor.action.revealDefinitionAside",M)),(0,r.registerAction2)((N=class extends K{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:N.id,title:l.localize2(29,"Peek Definition"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasDefinitionProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:t.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:r.MenuId.EditorContextPeek,group:"peek",order:2}}),h.CommandsRegistry.registerCommandAlias("editor.action.previewDeclaration",N.id)}},N.id="editor.action.peekDefinition",N));class j extends z{async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getDeclarationsAtPosition)(Y.declarationProvider,le,de,ge),l.localize(5,null))}_getNoResultFoundMessage(Y){return Y&&Y.word?l.localize(6,null,Y.word):l.localize(7,null)}_getAlternativeCommand(Y){return Y.getOption(58).alternativeDeclarationCommand}_getGoToPreference(Y){return Y.getOption(58).multipleDeclarations}}(0,r.registerAction2)((P=class extends j{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:P.id,title:{...l.localize2(30,"Go to Declaration"),mnemonicTitle:l.localize(8,null)},precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasDeclarationProvider,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:[{id:r.MenuId.EditorContext,group:"navigation",order:1.3},{id:r.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(Y){return Y&&Y.word?l.localize(9,null,Y.word):l.localize(10,null)}},P.id="editor.action.revealDeclaration",P)),(0,r.registerAction2)(class extends j{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:l.localize2(31,"Peek Declaration"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasDeclarationProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:r.MenuId.EditorContextPeek,group:"peek",order:3}})}});class x extends z{async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getTypeDefinitionsAtPosition)(Y.typeDefinitionProvider,le,de,ge),l.localize(11,null))}_getNoResultFoundMessage(Y){return Y&&Y.word?l.localize(12,null,Y.word):l.localize(13,null)}_getAlternativeCommand(Y){return Y.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(Y){return Y.getOption(58).multipleTypeDefinitions}}(0,r.registerAction2)((F=class extends x{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:F.ID,title:{...l.localize2(32,"Go to Type Definition"),mnemonicTitle:l.localize(14,null)},precondition:t.EditorContextKeys.hasTypeDefinitionProvider,keybinding:{when:t.EditorContextKeys.editorTextFocus,primary:0,weight:100},menu:[{id:r.MenuId.EditorContext,group:"navigation",order:1.4},{id:r.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},F.ID="editor.action.goToTypeDefinition",F)),(0,r.registerAction2)((O=class extends x{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:O.ID,title:l.localize2(33,"Peek Type Definition"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasTypeDefinitionProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:r.MenuId.EditorContextPeek,group:"peek",order:4}})}},O.ID="editor.action.peekTypeDefinition",O));class re extends z{async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getImplementationsAtPosition)(Y.implementationProvider,le,de,ge),l.localize(15,null))}_getNoResultFoundMessage(Y){return Y&&Y.word?l.localize(16,null,Y.word):l.localize(17,null)}_getAlternativeCommand(Y){return Y.getOption(58).alternativeImplementationCommand}_getGoToPreference(Y){return Y.getOption(58).multipleImplementations}}(0,r.registerAction2)((B=class extends re{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:B.ID,title:{...l.localize2(34,"Go to Implementations"),mnemonicTitle:l.localize(18,null)},precondition:t.EditorContextKeys.hasImplementationProvider,keybinding:{when:t.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menu:[{id:r.MenuId.EditorContext,group:"navigation",order:1.45},{id:r.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},B.ID="editor.action.goToImplementation",B)),(0,r.registerAction2)((W=class extends re{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:W.ID,title:l.localize2(35,"Peek Implementations"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasImplementationProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:t.EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:r.MenuId.EditorContextPeek,group:"peek",order:5}})}},W.ID="editor.action.peekImplementation",W));class ie extends z{_getNoResultFoundMessage(Y){return Y?l.localize(19,null,Y.word):l.localize(20,null)}_getAlternativeCommand(Y){return Y.getOption(58).alternativeReferenceCommand}_getGoToPreference(Y){return Y.getOption(58).multipleReferences}}(0,r.registerAction2)(class extends ie{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...l.localize2(36,"Go to References"),mnemonicTitle:l.localize(21,null)},precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasReferenceProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:t.EditorContextKeys.editorTextFocus,primary:1094,weight:100},menu:[{id:r.MenuId.EditorContext,group:"navigation",order:1.45},{id:r.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getReferencesAtPosition)(Y.referenceProvider,le,de,!0,ge),l.localize(22,null))}}),(0,r.registerAction2)(class extends ie{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:l.localize2(37,"Peek References"),precondition:u.ContextKeyExpr.and(t.EditorContextKeys.hasReferenceProvider,s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:r.MenuId.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(await(0,E.getReferencesAtPosition)(Y.referenceProvider,le,de,!1,ge),l.localize(23,null))}});class J extends z{constructor(Y,le,de){super(Y,{id:"editor.action.goToLocation",title:l.localize2(38,"Go to Any Symbol"),precondition:u.ContextKeyExpr.and(s.PeekContext.notInPeekEditor,t.EditorContextKeys.isInEmbeddedEditor.toNegated())}),this._references=le,this._gotoMultipleBehaviour=de}async _getLocationModel(Y,le,de,ge){return new m.ReferencesModel(this._references,l.localize(24,null))}_getNoResultFoundMessage(Y){return Y&&l.localize(25,null,Y.word)||""}_getGoToPreference(Y){var le;return(le=this._gotoMultipleBehaviour)!==null&&le!==void 0?le:Y.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}h.CommandsRegistry.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:S.URI},{name:"position",description:"The position at which to start",constraint:n.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(X,Y,le,de,ge,pe,Q)=>{(0,D.assertType)(S.URI.isUri(Y)),(0,D.assertType)(n.Position.isIPosition(le)),(0,D.assertType)(Array.isArray(de)),(0,D.assertType)(typeof ge>"u"||typeof ge=="string"),(0,D.assertType)(typeof Q>"u"||typeof Q=="boolean");const U=X.get(b.ICodeEditorService),Z=await U.openCodeEditor({resource:Y},U.getFocusedCodeEditor());if((0,w.isCodeEditor)(Z))return Z.setPosition(le),Z.revealPositionInCenterIfOutsideViewport(le,0),Z.invokeWithinContext(H=>{const q=new class extends J{_getNoResultFoundMessage(te){return pe||super._getNoResultFoundMessage(te)}}({muteMessage:!pe,openInPeek:!!Q,openToSide:!1},de,ge);H.get(f.IInstantiationService).invokeFunction(q.run.bind(q),Z)})}}),h.CommandsRegistry.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:S.URI},{name:"position",description:"The position at which to start",constraint:n.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(X,Y,le,de,ge)=>{X.get(h.ICommandService).executeCommand("editor.action.goToLocations",Y,le,de,ge,void 0,!0)}}),h.CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(X,Y,le)=>{(0,D.assertType)(S.URI.isUri(Y)),(0,D.assertType)(n.Position.isIPosition(le));const de=X.get(I.ILanguageFeaturesService),ge=X.get(b.ICodeEditorService);return ge.openCodeEditor({resource:Y},ge.getFocusedCodeEditor()).then(pe=>{if(!(0,w.isCodeEditor)(pe)||!pe.hasModel())return;const Q=g.ReferencesController.get(pe);if(!Q)return;const U=(0,k.createCancelablePromise)(H=>(0,E.getReferencesAtPosition)(de.referenceProvider,pe.getModel(),n.Position.lift(le),!1,H).then(q=>new m.ReferencesModel(q,l.localize(26,null)))),Z=new i.Range(le.lineNumber,le.column,le.lineNumber,le.column);return Promise.resolve(Q.toggleWidget(Z,U,!1))})}}),h.CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations")}),define(ne[391],se([1,0,15,12,58,2,109,16,5,43,70,193,147,691,14,270,257,18,38,470]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";var d;Object.defineProperty(e,"__esModule",{value:!0}),e.GotoDefinitionAtPositionEditorContribution=void 0;let s=d=class{constructor(r,h,u,f){this.textModelResolverService=h,this.languageService=u,this.languageFeaturesService=f,this.toUnhook=new D.DisposableStore,this.toUnhookForKeyboard=new D.DisposableStore,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=r,this.linkDecorations=this.editor.createDecorationsCollection();const C=new a.ClickLinkGesture(r);this.toUnhook.add(C),this.toUnhook.add(C.onMouseMoveOrRelevantKeyDown(([_,E])=>{this.startFindDefinitionFromMouse(_,E??void 0)})),this.toUnhook.add(C.onExecute(_=>{this.isEnabled(_)&&this.gotoDefinition(_.target.position,_.hasSideBySideModifier).catch(E=>{(0,k.onUnexpectedError)(E)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(C.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(r){return r.getContribution(d.ID)}async startFindDefinitionFromCursor(r){await this.startFindDefinition(r),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(h=>{h&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(r,h){if(r.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(r,h)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const u=r.target.position;this.startFindDefinition(u)}async startFindDefinition(r){var h;this.toUnhookForKeyboard.clear();const u=r?(h=this.editor.getModel())===null||h===void 0?void 0:h.getWordAtPosition(r):null;if(!u){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===u.startColumn&&this.currentWordAtPosition.endColumn===u.endColumn&&this.currentWordAtPosition.word===u.word)return;this.currentWordAtPosition=u;const f=new S.EditorState(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,L.createCancelablePromise)(E=>this.findDefinition(r,E));let C;try{C=await this.previousPromise}catch(E){(0,k.onUnexpectedError)(E);return}if(!C||!C.length||!f.validate(this.editor)){this.removeLinkDecorations();return}const _=C[0].originSelectionRange?w.Range.lift(C[0].originSelectionRange):new w.Range(r.lineNumber,u.startColumn,r.lineNumber,u.endColumn);if(C.length>1){let E=_;for(const{originSelectionRange:I}of C)I&&(E=w.Range.plusRange(E,I));this.addDecoration(E,new y.MarkdownString().appendText(i.localize(0,null,C.length)))}else{const E=C[0];if(!E.uri)return;this.textModelResolverService.createModelReference(E.uri).then(I=>{if(!I.object||!I.object.textEditorModel){I.dispose();return}const{object:{textEditorModel:T}}=I,{startLineNumber:A}=E.range;if(A<1||A>T.getLineCount()){I.dispose();return}const R=this.getPreviewValue(T,A,E),M=this.languageService.guessLanguageIdByFilepathOrFirstLine(T.uri);this.addDecoration(_,R?new y.MarkdownString().appendCodeblock(M||"",R):void 0),I.dispose()})}}getPreviewValue(r,h,u){let f=u.range;return f.endLineNumber-f.startLineNumber>=d.MAX_SOURCE_PREVIEW_LINES&&(f=this.getPreviewRangeBasedOnIndentation(r,h)),this.stripIndentationFromPreviewRange(r,h,f)}stripIndentationFromPreviewRange(r,h,u){let C=r.getLineFirstNonWhitespaceColumn(h);for(let E=h+1;E{const f=!h&&this.editor.getOption(88)&&!this.isInPeekEditor(u);return new o.DefinitionAction({openToSide:h,openInPeek:f,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(u)})}isInPeekEditor(r){const h=r.get(t.IContextKeyService);return n.PeekContext.inPeekEditor.getValue(h)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};e.GotoDefinitionAtPositionEditorContribution=s,s.ID="editor.contrib.gotodefinitionatposition",s.MAX_SOURCE_PREVIEW_LINES=8,e.GotoDefinitionAtPositionEditorContribution=s=d=De([he(1,b.ITextModelService),he(2,v.ILanguageService),he(3,m.ILanguageFeaturesService)],s),(0,p.registerEditorContribution)(s.ID,s,2)}),define(ne[928],se([1,0,6,13,15,12,2,48,5,18,243,146,267,119,389,699,100,57,88]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerHoverParticipant=e.MarkerHover=void 0;const d=L.$;class s{constructor(u,f,C){this.owner=u,this.range=f,this.marker=C}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}e.MarkerHover=s;const l={type:1,filter:{include:i.CodeActionKind.QuickFix},triggerAction:i.CodeActionTriggerSource.QuickFixHover};let r=class{constructor(u,f,C,_){this._editor=u,this._markerDecorationsService=f,this._openerService=C,this._languageFeaturesService=_,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(u,f){if(!this._editor.hasModel()||u.type!==1&&!u.supportsMarkerHover)return[];const C=this._editor.getModel(),_=u.range.startLineNumber,E=C.getLineMaxColumn(_),I=[];for(const T of f){const A=T.range.startLineNumber===_?T.range.startColumn:1,R=T.range.endLineNumber===_?T.range.endColumn:E,M=this._markerDecorationsService.getMarker(C.uri,T);if(!M)continue;const N=new w.Range(u.range.startLineNumber,A,u.range.startLineNumber,R);I.push(new s(this,N,M))}return I}renderHoverParts(u,f){if(!f.length)return S.Disposable.None;const C=new S.DisposableStore;f.forEach(E=>u.fragment.appendChild(this.renderMarkerHover(E,C)));const _=f.length===1?f[0]:f.sort((E,I)=>g.MarkerSeverity.compare(E.marker.severity,I.marker.severity))[0];return this.renderMarkerStatusbar(u,_,C),C}renderMarkerHover(u,f){const C=d("div.hover-row"),_=L.append(C,d("div.marker.hover-contents")),{source:E,message:I,code:T,relatedInformation:A}=u.marker;this._editor.applyFontInfo(_);const R=L.append(_,d("span"));if(R.style.whiteSpace="pre-wrap",R.innerText=I,E||T)if(T&&typeof T!="string"){const M=d("span");if(E){const O=L.append(M,d("span"));O.innerText=E}const N=L.append(M,d("a.code-link"));N.setAttribute("href",T.target.toString()),f.add(L.addDisposableListener(N,"click",O=>{this._openerService.open(T.target,{allowCommands:!0}),O.preventDefault(),O.stopPropagation()}));const P=L.append(N,d("span"));P.innerText=T.value;const F=L.append(_,M);F.style.opacity="0.6",F.style.paddingLeft="6px"}else{const M=L.append(_,d("span"));M.style.opacity="0.6",M.style.paddingLeft="6px",M.innerText=E&&T?`${E}(${T})`:E||`(${T})`}if((0,k.isNonEmptyArray)(A))for(const{message:M,resource:N,startLineNumber:P,startColumn:F}of A){const O=L.append(_,d("div"));O.style.marginTop="8px";const B=L.append(O,d("a"));B.innerText=`${(0,p.basename)(N)}(${P}, ${F}): `,B.style.cursor="pointer",f.add(L.addDisposableListener(B,"click",V=>{V.stopPropagation(),V.preventDefault(),this._openerService&&this._openerService.open(N,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:P,startColumn:F}}}).catch(D.onUnexpectedError)}));const W=L.append(O,d("span"));W.innerText=M,this._editor.applyFontInfo(W)}return C}renderMarkerStatusbar(u,f,C){if(f.marker.severity===g.MarkerSeverity.Error||f.marker.severity===g.MarkerSeverity.Warning||f.marker.severity===g.MarkerSeverity.Info){const _=t.MarkerController.get(this._editor);_&&u.statusBar.addAction({label:o.localize(0,null),commandId:t.NextMarkerAction.ID,run:()=>{u.hide(),_.showAtMarker(f.marker),this._editor.focus()}})}if(!this._editor.getOption(91)){const _=u.statusBar.append(d("div"));this.recentMarkerCodeActionsInfo&&(g.IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===g.IMarkerData.makeKey(f.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(_.textContent=o.localize(1,null)):this.recentMarkerCodeActionsInfo=void 0);const E=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?S.Disposable.None:(0,y.disposableTimeout)(()=>_.textContent=o.localize(2,null),200,C);_.textContent||(_.textContent="\xA0");const I=this.getCodeActions(f.marker);C.add((0,S.toDisposable)(()=>I.cancel())),I.then(T=>{if(E.dispose(),this.recentMarkerCodeActionsInfo={marker:f.marker,hasCodeActions:T.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){T.dispose(),_.textContent=o.localize(3,null);return}_.style.display="none";let A=!1;C.add((0,S.toDisposable)(()=>{A||T.dispose()})),u.statusBar.addAction({label:o.localize(4,null),commandId:a.quickFixCommandId,run:R=>{A=!0;const M=n.CodeActionController.get(this._editor),N=L.getDomNodePagePosition(R);u.hide(),M?.showCodeActions(l,T,{x:N.left,y:N.top,width:N.width,height:N.height})}})},D.onUnexpectedError)}}getCodeActions(u){return(0,y.createCancelablePromise)(f=>(0,a.getCodeActions)(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new w.Range(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn),l,c.Progress.None,f))}};e.MarkerHoverParticipant=r,e.MarkerHoverParticipant=r=De([he(1,b.IMarkerDecorationsService),he(2,m.IOpenerService),he(3,v.ILanguageFeaturesService)],r)}),define(ne[392],se([1,0,66,2,16,5,21,43,391,386,806,8,57,31,24,93,258,928,263,34,15,697,472]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l){"use strict";var r;Object.defineProperty(e,"__esModule",{value:!0}),e.HoverController=void 0;const h=!1;let u=r=class extends k.Disposable{constructor(O,B,W,V,z){super(),this._editor=O,this._instantiationService=B,this._openerService=W,this._languageService=V,this._keybindingService=z,this._listenersStore=new k.DisposableStore,this._hoverState={mouseDown:!1,contentHoverFocused:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new s.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(K=>{K.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(O){return O.getContribution(r.ID)}_hookListeners(){const O=this._editor.getOption(60);this._hoverSettings={enabled:O.enabled,sticky:O.sticky,hidingDelay:O.delay},O.enabled?(this._listenersStore.add(this._editor.onMouseDown(B=>this._onEditorMouseDown(B))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(B=>this._onEditorMouseMove(B))),this._listenersStore.add(this._editor.onKeyDown(B=>this._onKeyDown(B)))):(this._listenersStore.add(this._editor.onMouseMove(B=>this._onEditorMouseMove(B))),this._listenersStore.add(this._editor.onKeyDown(B=>this._onKeyDown(B)))),this._listenersStore.add(this._editor.onMouseLeave(B=>this._onEditorMouseLeave(B))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(B=>this._onEditorScrollChanged(B)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(O){(O.scrollTopChanged||O.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(O){var B;this._hoverState.mouseDown=!0;const W=O.target;if(W.type===9&&W.detail===v.ContentHoverWidget.ID){this._hoverState.contentHoverFocused=!0;return}W.type===12&&W.detail===b.MarginHoverWidget.ID||(W.type!==12&&(this._hoverState.contentHoverFocused=!1),!(!((B=this._contentWidget)===null||B===void 0)&&B.widget.isResizing)&&this._hideWidgets())}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(O){var B,W;this._cancelScheduler();const V=O.event.browserEvent.relatedTarget;!((B=this._contentWidget)===null||B===void 0)&&B.widget.isResizing||!((W=this._contentWidget)===null||W===void 0)&&W.containsNode(V)||h||this._hideWidgets()}_isMouseOverWidget(O){var B,W,V,z,K;const j=O.target,x=this._hoverSettings.sticky;return!!(x&&j.type===9&&j.detail===v.ContentHoverWidget.ID||x&&(!((B=this._contentWidget)===null||B===void 0)&&B.containsNode((W=O.event.browserEvent.view)===null||W===void 0?void 0:W.document.activeElement))&&!(!((z=(V=O.event.browserEvent.view)===null||V===void 0?void 0:V.getSelection())===null||z===void 0)&&z.isCollapsed)||!x&&j.type===9&&j.detail===v.ContentHoverWidget.ID&&(!((K=this._contentWidget)===null||K===void 0)&&K.isColorPickerVisible)||x&&j.type===12&&j.detail===b.MarginHoverWidget.ID)}_onEditorMouseMove(O){var B,W,V,z;if(this._mouseMoveEvent=O,!((B=this._contentWidget)===null||B===void 0)&&B.isFocused||!((W=this._contentWidget)===null||W===void 0)&&W.isResizing||this._hoverState.mouseDown&&this._hoverState.contentHoverFocused)return;const K=this._hoverSettings.sticky;if(K&&(!((V=this._contentWidget)===null||V===void 0)&&V.isVisibleFromKeyboard))return;if(this._isMouseOverWidget(O)){this._reactToEditorMouseMoveRunner.cancel();return}const x=this._hoverSettings.hidingDelay;if(!((z=this._contentWidget)===null||z===void 0)&&z.isVisible&&K&&x>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(x);return}this._reactToEditorMouseMove(O)}_reactToEditorMouseMove(O){var B,W,V,z;if(!O)return;const K=O.target,j=(B=K.element)===null||B===void 0?void 0:B.classList.contains("colorpicker-color-decoration"),x=this._editor.getOption(147),re=this._hoverSettings.enabled,ie=this._hoverState.activatedByDecoratorClick;if(j&&(x==="click"&&!ie||x==="hover"&&!re&&!h||x==="clickAndHover"&&!re&&!ie)||!j&&!re&&!ie){this._hideWidgets();return}if(this._getOrCreateContentWidget().showsOrWillShow(O)){(W=this._glyphWidget)===null||W===void 0||W.hide();return}if(K.type===2&&K.position&&K.detail.glyphMarginLane){(V=this._contentWidget)===null||V===void 0||V.hide(),this._getOrCreateGlyphWidget().startShowingAt(K.position.lineNumber,K.detail.glyphMarginLane);return}if(K.type===3&&K.position){(z=this._contentWidget)===null||z===void 0||z.hide(),this._getOrCreateGlyphWidget().startShowingAt(K.position.lineNumber,"lineNo");return}h||this._hideWidgets()}_onKeyDown(O){var B;if(!this._editor.hasModel())return;const W=this._keybindingService.softDispatch(O,this._editor.getDomNode()),V=W.kind===1||W.kind===2&&W.commandId==="editor.action.showHover"&&((B=this._contentWidget)===null||B===void 0?void 0:B.isVisible);O.keyCode===5||O.keyCode===6||O.keyCode===57||O.keyCode===4||V||this._hideWidgets()}_hideWidgets(){var O,B,W;h||this._hoverState.mouseDown&&this._hoverState.contentHoverFocused&&(!((O=this._contentWidget)===null||O===void 0)&&O.isColorPickerVisible)||c.InlineSuggestionHintsContentWidget.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._hoverState.contentHoverFocused=!1,(B=this._glyphWidget)===null||B===void 0||B.hide(),(W=this._contentWidget)===null||W===void 0||W.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(v.ContentHoverController,this._editor)),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=new b.MarginHoverWidget(this._editor,this._languageService,this._openerService)),this._glyphWidget}showContentHover(O,B,W,V,z=!1){this._hoverState.activatedByDecoratorClick=z,this._getOrCreateContentWidget().startShowingAtRange(O,B,W,V)}focus(){var O;(O=this._contentWidget)===null||O===void 0||O.focus()}scrollUp(){var O;(O=this._contentWidget)===null||O===void 0||O.scrollUp()}scrollDown(){var O;(O=this._contentWidget)===null||O===void 0||O.scrollDown()}scrollLeft(){var O;(O=this._contentWidget)===null||O===void 0||O.scrollLeft()}scrollRight(){var O;(O=this._contentWidget)===null||O===void 0||O.scrollRight()}pageUp(){var O;(O=this._contentWidget)===null||O===void 0||O.pageUp()}pageDown(){var O;(O=this._contentWidget)===null||O===void 0||O.pageDown()}goToTop(){var O;(O=this._contentWidget)===null||O===void 0||O.goToTop()}goToBottom(){var O;(O=this._contentWidget)===null||O===void 0||O.goToBottom()}get isColorPickerVisible(){var O;return(O=this._contentWidget)===null||O===void 0?void 0:O.isColorPickerVisible}get isHoverVisible(){var O;return(O=this._contentWidget)===null||O===void 0?void 0:O.isVisible}dispose(){var O,B;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(O=this._glyphWidget)===null||O===void 0||O.dispose(),(B=this._contentWidget)===null||B===void 0||B.dispose()}};e.HoverController=u,u.ID="editor.contrib.hover",e.HoverController=u=r=De([he(1,a.IInstantiationService),he(2,n.IOpenerService),he(3,p.ILanguageService),he(4,d.IKeybindingService)],u);var f;(function(F){F.NoAutoFocus="noAutoFocus",F.FocusIfVisible="focusIfVisible",F.AutoFocusImmediately="autoFocusImmediately"})(f||(f={}));class C extends y.EditorAction{constructor(){super({id:"editor.action.showHover",label:l.localize(0,null),metadata:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[f.NoAutoFocus,f.FocusIfVisible,f.AutoFocusImmediately],enumDescriptions:[l.localize(1,null),l.localize(2,null),l.localize(3,null)],default:f.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:S.EditorContextKeys.editorTextFocus,primary:(0,L.KeyChord)(2089,2087),weight:100}})}run(O,B,W){if(!B.hasModel())return;const V=u.get(B);if(!V)return;const z=W?.focus;let K=f.FocusIfVisible;Object.values(f).includes(z)?K=z:typeof z=="boolean"&&z&&(K=f.AutoFocusImmediately);const j=re=>{const ie=B.getPosition(),J=new D.Range(ie.lineNumber,ie.column,ie.lineNumber,ie.column);V.showContentHover(J,1,1,re)},x=B.getOption(2)===2;V.isHoverVisible?K!==f.NoAutoFocus?V.focus():j(x):j(x||K===f.AutoFocusImmediately)}}class _ extends y.EditorAction{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:l.localize(4,null),alias:"Show Definition Preview Hover",precondition:void 0})}run(O,B){const W=u.get(B);if(!W)return;const V=B.getPosition();if(!V)return;const z=new D.Range(V.lineNumber,V.column,V.lineNumber,V.column),K=w.GotoDefinitionAtPositionEditorContribution.get(B);if(!K)return;K.startFindDefinitionFromCursor(V).then(()=>{W.showContentHover(z,1,1,!0)})}}class E extends y.EditorAction{constructor(){super({id:"editor.action.scrollUpHover",label:l.localize(5,null),alias:"Scroll Up Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:16,weight:100}})}run(O,B){const W=u.get(B);W&&W.scrollUp()}}class I extends y.EditorAction{constructor(){super({id:"editor.action.scrollDownHover",label:l.localize(6,null),alias:"Scroll Down Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:18,weight:100}})}run(O,B){const W=u.get(B);W&&W.scrollDown()}}class T extends y.EditorAction{constructor(){super({id:"editor.action.scrollLeftHover",label:l.localize(7,null),alias:"Scroll Left Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:15,weight:100}})}run(O,B){const W=u.get(B);W&&W.scrollLeft()}}class A extends y.EditorAction{constructor(){super({id:"editor.action.scrollRightHover",label:l.localize(8,null),alias:"Scroll Right Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:17,weight:100}})}run(O,B){const W=u.get(B);W&&W.scrollRight()}}class R extends y.EditorAction{constructor(){super({id:"editor.action.pageUpHover",label:l.localize(9,null),alias:"Page Up Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100}})}run(O,B){const W=u.get(B);W&&W.pageUp()}}class M extends y.EditorAction{constructor(){super({id:"editor.action.pageDownHover",label:l.localize(10,null),alias:"Page Down Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100}})}run(O,B){const W=u.get(B);W&&W.pageDown()}}class N extends y.EditorAction{constructor(){super({id:"editor.action.goToTopHover",label:l.localize(11,null),alias:"Go To Bottom Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(O,B){const W=u.get(B);W&&W.goToTop()}}class P extends y.EditorAction{constructor(){super({id:"editor.action.goToBottomHover",label:l.localize(12,null),alias:"Go To Bottom Hover",precondition:S.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:S.EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(O,B){const W=u.get(B);W&&W.goToBottom()}}(0,y.registerEditorContribution)(u.ID,u,2),(0,y.registerEditorAction)(C),(0,y.registerEditorAction)(_),(0,y.registerEditorAction)(E),(0,y.registerEditorAction)(I),(0,y.registerEditorAction)(T),(0,y.registerEditorAction)(A),(0,y.registerEditorAction)(R),(0,y.registerEditorAction)(M),(0,y.registerEditorAction)(N),(0,y.registerEditorAction)(P),o.HoverParticipantRegistry.register(g.MarkdownHoverParticipant),o.HoverParticipantRegistry.register(m.MarkerHoverParticipant),(0,t.registerThemingParticipant)((F,O)=>{const B=F.getColor(i.editorHoverBorder);B&&(O.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${B.transparent(.5)}; }`),O.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${B.transparent(.5)}; }`),O.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${B.transparent(.5)}; }`))})}),define(ne[929],se([1,0,2,16,5,382,383,392,93]),function(ee,e,L,k,y,D,S,p,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorContribution=void 0;class v extends L.Disposable{constructor(a){super(),this._editor=a,this._register(a.onMouseDown(n=>this.onMouseDown(n)))}dispose(){super.dispose()}onMouseDown(a){const n=this._editor.getOption(147);if(n!=="click"&&n!=="clickAndHover")return;const i=a.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==D.ColorDecorationInjectedTextMarker||!i.range)return;const t=this._editor.getContribution(p.HoverController.ID);if(t&&!t.isColorPickerVisible){const o=new y.Range(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);t.showContentHover(o,1,0,!1,!0)}}}e.ColorContribution=v,v.ID="editor.contrib.colorContribution",(0,k.registerEditorContribution)(v.ID,v,2),w.HoverParticipantRegistry.register(S.ColorHoverParticipant)}),define(ne[393],se([1,0,6,42,19,178,5,70,270,147,28,25,14,56,8,49]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.goToDefinitionWithLocation=e.showGoToContextMenu=void 0;async function g(c,d,s,l){var r;const h=c.get(p.ITextModelService),u=c.get(i.IContextMenuService),f=c.get(a.ICommandService),C=c.get(t.IInstantiationService),_=c.get(o.INotificationService);if(await l.item.resolve(y.CancellationToken.None),!l.part.location)return;const E=l.part.location,I=[],T=new Set(b.MenuRegistry.getMenuItems(b.MenuId.EditorContext).map(R=>(0,b.isIMenuItem)(R)?R.command.id:(0,D.generateUuid)()));for(const R of w.SymbolNavigationAction.all())T.has(R.desc.id)&&I.push(new k.Action(R.desc.id,b.MenuItemAction.label(R.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const M=await h.createModelReference(E.uri);try{const N=new w.SymbolNavigationAnchor(M.object.textEditorModel,S.Range.getStartPosition(E.range)),P=l.item.anchor.range;await C.invokeFunction(R.runEditorCommand.bind(R),d,N,P)}finally{M.dispose()}}));if(l.part.command){const{command:R}=l.part;I.push(new k.Separator),I.push(new k.Action(R.id,R.title,void 0,!0,async()=>{var M;try{await f.executeCommand(R.id,...(M=R.arguments)!==null&&M!==void 0?M:[])}catch(N){_.notify({severity:o.Severity.Error,source:l.item.provider.displayName,message:N})}}))}const A=d.getOption(127);u.showContextMenu({domForShadowRoot:A&&(r=d.getDomNode())!==null&&r!==void 0?r:void 0,getAnchor:()=>{const R=L.getDomNodePagePosition(s);return{x:R.left,y:R.top+R.height+8}},getActions:()=>I,onHide:()=>{d.focus()},autoSelectFirstItem:!0})}e.showGoToContextMenu=g;async function m(c,d,s,l){const h=await c.get(p.ITextModelService).createModelReference(l.uri);await s.invokeWithinContext(async u=>{const f=d.hasSideBySideModifier,C=u.get(n.IContextKeyService),_=v.PeekContext.inPeekEditor.getValue(C),E=!f&&s.getOption(88)&&!_;return new w.DefinitionAction({openToSide:f,openInPeek:E,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(u,new w.SymbolNavigationAnchor(h.object.textEditorModel,S.Range.getStartPosition(l.range)),S.Range.lift(l.range))}),h.dispose()}e.goToDefinitionWithLocation=m}),define(ne[394],se([1,0,6,13,15,19,12,2,53,20,22,169,131,36,68,5,30,40,38,80,18,70,193,339,393,25,45,8,49,31,24]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsController=e.RenderedInlayHintLabelPart=void 0;class R{constructor(){this._entries=new w.LRUCache(50)}get(W){const V=R._key(W);return this._entries.get(V)}set(W,V){const z=R._key(W);this._entries.set(z,V)}static _key(W){return`${W.uri.toString()}/${W.getVersionId()}`}}const M=(0,_.createDecorator)("IInlayHintsCache");(0,C.registerSingleton)(M,R,1);class N{constructor(W,V){this.item=W,this.index=V}get part(){const W=this.item.hint.label;return typeof W=="string"?{label:W}:W[this.index]}}e.RenderedInlayHintLabelPart=N;class P{constructor(W,V){this.part=W,this.hasTriggerModifier=V}}let F=A=class{static get(W){var V;return(V=W.getContribution(A.ID))!==null&&V!==void 0?V:void 0}constructor(W,V,z,K,j,x,re){this._editor=W,this._languageFeaturesService=V,this._inlayHintsCache=K,this._commandService=j,this._notificationService=x,this._instaService=re,this._disposables=new p.DisposableStore,this._sessionDisposables=new p.DisposableStore,this._decorationsMetadata=new Map,this._ruleFactory=new a.DynamicCssRules(this._editor),this._activeRenderMode=0,this._debounceInfo=z.for(V.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(V.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(W.onDidChangeModel(()=>this._update())),this._disposables.add(W.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(W.onDidChangeConfiguration(ie=>{ie.hasChanged(140)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const W=this._editor.getOption(140);if(W.enabled==="off")return;const V=this._editor.getModel();if(!V||!this._languageFeaturesService.inlayHintsProvider.has(V))return;if(W.enabled==="on")this._activeRenderMode=0;else{let re,ie;W.enabled==="onUnlessPressed"?(re=0,ie=1):(re=1,ie=0),this._activeRenderMode=re,this._sessionDisposables.add(L.ModifierKeyEmitter.getInstance().event(J=>{if(!this._editor.hasModel())return;const X=J.altKey&&J.ctrlKey&&!(J.shiftKey||J.metaKey)?ie:re;if(X!==this._activeRenderMode){this._activeRenderMode=X;const Y=this._editor.getModel(),le=this._copyInlayHintsWithCurrentAnchor(Y);this._updateHintsDecorators([Y.getFullModelRange()],le),x.schedule(0)}}))}const z=this._inlayHintsCache.get(V);z&&this._updateHintsDecorators([V.getFullModelRange()],z),this._sessionDisposables.add((0,p.toDisposable)(()=>{V.isDisposed()||this._cacheHintsForFastRestore(V)}));let K;const j=new Set,x=new y.RunOnceScheduler(async()=>{const re=Date.now();K?.dispose(!0),K=new D.CancellationTokenSource;const ie=V.onWillDispose(()=>K?.cancel());try{const J=K.token,X=await h.InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider,V,this._getHintsRanges(),J);if(x.delay=this._debounceInfo.update(V,Date.now()-re),J.isCancellationRequested){X.dispose();return}for(const Y of X.provider)typeof Y.onDidChangeInlayHints=="function"&&!j.has(Y)&&(j.add(Y),this._sessionDisposables.add(Y.onDidChangeInlayHints(()=>{x.isScheduled()||x.schedule()})));this._sessionDisposables.add(X),this._updateHintsDecorators(X.ranges,X.items),this._cacheHintsForFastRestore(V)}catch(J){(0,S.onUnexpectedError)(J)}finally{K.dispose(),ie.dispose()}},this._debounceInfo.get(V));this._sessionDisposables.add(x),this._sessionDisposables.add((0,p.toDisposable)(()=>K?.dispose(!0))),x.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(re=>{(re.scrollTopChanged||!x.isScheduled())&&x.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(re=>{K?.cancel();const ie=Math.max(x.delay,1250);x.schedule(ie)})),this._sessionDisposables.add(this._installDblClickGesture(()=>x.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const W=new p.DisposableStore,V=W.add(new r.ClickLinkGesture(this._editor)),z=new p.DisposableStore;return W.add(z),W.add(V.onMouseMoveOrRelevantKeyDown(K=>{const[j]=K,x=this._getInlayHintLabelPart(j),re=this._editor.getModel();if(!x||!re){z.clear();return}const ie=new D.CancellationTokenSource;z.add((0,p.toDisposable)(()=>ie.dispose(!0))),x.item.resolve(ie.token),this._activeInlayHintPart=x.part.command||x.part.location?new P(x,j.hasTriggerModifier):void 0;const J=re.validatePosition(x.item.hint.position).lineNumber,X=new o.Range(J,1,J,re.getLineMaxColumn(J)),Y=this._getInlineHintsForRange(X);this._updateHintsDecorators([X],Y),z.add((0,p.toDisposable)(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([X],Y)}))})),W.add(V.onCancel(()=>z.clear())),W.add(V.onExecute(async K=>{const j=this._getInlayHintLabelPart(K);if(j){const x=j.part;x.location?this._instaService.invokeFunction(u.goToDefinitionWithLocation,K,this._editor,x.location):g.Command.is(x.command)&&await this._invokeCommand(x.command,j.item)}})),W}_getInlineHintsForRange(W){const V=new Set;for(const z of this._decorationsMetadata.values())W.containsRange(z.item.anchor.range)&&V.add(z.item);return Array.from(V)}_installDblClickGesture(W){return this._editor.onMouseUp(async V=>{if(V.event.detail!==2)return;const z=this._getInlayHintLabelPart(V);if(z&&(V.event.preventDefault(),await z.item.resolve(D.CancellationToken.None),(0,k.isNonEmptyArray)(z.item.hint.textEdits))){const K=z.item.hint.textEdits.map(j=>t.EditOperation.replace(o.Range.lift(j.range),j.text));this._editor.executeEdits("inlayHint.default",K),W()}})}_installContextMenu(){return this._editor.onContextMenu(async W=>{if(!(W.event.target instanceof HTMLElement))return;const V=this._getInlayHintLabelPart(W);V&&await this._instaService.invokeFunction(u.showGoToContextMenu,this._editor,W.event.target,V)})}_getInlayHintLabelPart(W){var V;if(W.target.type!==6)return;const z=(V=W.target.detail.injectedText)===null||V===void 0?void 0:V.options;if(z instanceof c.ModelDecorationInjectedTextOptions&&z?.attachedData instanceof N)return z.attachedData}async _invokeCommand(W,V){var z;try{await this._commandService.executeCommand(W.id,...(z=W.arguments)!==null&&z!==void 0?z:[])}catch(K){this._notificationService.notify({severity:E.Severity.Error,source:V.provider.displayName,message:K})}}_cacheHintsForFastRestore(W){const V=this._copyInlayHintsWithCurrentAnchor(W);this._inlayHintsCache.set(W,V)}_copyInlayHintsWithCurrentAnchor(W){const V=new Map;for(const[z,K]of this._decorationsMetadata){if(V.has(K.item))continue;const j=W.getDecorationRange(z);if(j){const x=new h.InlayHintAnchor(j,K.item.anchor.direction),re=K.item.with({anchor:x});V.set(K.item,re)}}return Array.from(V.values())}_getHintsRanges(){const V=this._editor.getModel(),z=this._editor.getVisibleRangesPlusViewportAboveBelow(),K=[];for(const j of z.sort(o.Range.compareRangesUsingStarts)){const x=V.validateRange(new o.Range(j.startLineNumber-30,j.startColumn,j.endLineNumber+30,j.endColumn));K.length===0||!o.Range.areIntersectingOrTouching(K[K.length-1],x)?K.push(x):K[K.length-1]=o.Range.plusRange(K[K.length-1],x)}return K}_updateHintsDecorators(W,V){var z,K;const j=[],x=(Q,U,Z,H,q)=>{const te={content:Z,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:U.className,cursorStops:H,attachedData:q};j.push({item:Q,classNameRef:U,decoration:{range:Q.anchor.range,options:{description:"InlayHint",showIfCollapsed:Q.anchor.range.isEmpty(),collapseOnReplaceEdit:!Q.anchor.range.isEmpty(),stickiness:0,[Q.anchor.direction]:this._activeRenderMode===0?te:void 0}}})},re=(Q,U)=>{const Z=this._ruleFactory.createClassNameRef({width:`${ie/3|0}px`,display:"inline-block"});x(Q,Z,"\u200A",U?m.InjectedTextCursorStops.Right:m.InjectedTextCursorStops.None)},{fontSize:ie,fontFamily:J,padding:X,isUniform:Y}=this._getLayoutInfo(),le="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(le,J);let de={line:0,totalLen:0};for(const Q of V){if(de.line!==Q.anchor.range.startLineNumber&&(de={line:Q.anchor.range.startLineNumber,totalLen:0}),de.totalLen>A._MAX_LABEL_LEN)continue;Q.hint.paddingLeft&&re(Q,!1);const U=typeof Q.hint.label=="string"?[{label:Q.hint.label}]:Q.hint.label;for(let Z=0;Z0&&($=$.slice(0,-ae)+"\u2026",oe=!0),x(Q,this._ruleFactory.createClassNameRef(G),O($),te&&!Q.hint.paddingRight?m.InjectedTextCursorStops.Right:m.InjectedTextCursorStops.None,new N(Q,Z)),oe)break}if(Q.hint.paddingRight&&re(Q,!0),j.length>A._MAX_DECORATORS)break}const ge=[];for(const[Q,U]of this._decorationsMetadata){const Z=(K=this._editor.getModel())===null||K===void 0?void 0:K.getDecorationRange(Q);Z&&W.some(H=>H.containsRange(Z))&&(ge.push(Q),U.classNameRef.dispose(),this._decorationsMetadata.delete(Q))}const pe=n.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(Q=>{const U=Q.deltaDecorations(ge,j.map(Z=>Z.decoration));for(let Z=0;Zz)&&(j=z);const x=W.fontFamily||K;return{fontSize:j,fontFamily:x,padding:V,isUniform:!V&&x===K&&j===z}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const W of this._decorationsMetadata.values())W.classNameRef.dispose();this._decorationsMetadata.clear()}};e.InlayHintsController=F,F.ID="editor.contrib.InlayHints",F._MAX_DECORATORS=1500,F._MAX_LABEL_LEN=43,e.InlayHintsController=F=A=De([he(1,s.ILanguageFeaturesService),he(2,d.ILanguageFeatureDebounceService),he(3,M),he(4,f.ICommandService),he(5,E.INotificationService),he(6,_.IInstantiationService)],F);function O(B){return B.replace(/[ \t]/g,"\xA0")}f.CommandsRegistry.registerCommand("_executeInlayHintProvider",async(B,...W)=>{const[V,z]=W;(0,v.assertType)(b.URI.isUri(V)),(0,v.assertType)(o.Range.isIRange(z));const{inlayHintsProvider:K}=B.get(s.ILanguageFeaturesService),j=await B.get(l.ITextModelService).createModelReference(V);try{const x=await h.InlayHintsFragments.create(K,j.object.textEditorModel,[o.Range.lift(z)],D.CancellationToken.None),re=x.items.map(ie=>ie.hint);return setTimeout(()=>x.dispose(),0),re}finally{j.dispose()}})}),define(ne[930],se([1,0,15,58,9,38,93,43,70,370,258,394,26,57,18,702,17,339,13]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsHover=void 0;class d extends S.HoverForeignElementAnchor{constructor(r,h,u,f){super(10,h,r.item.anchor.range,u,f,!0),this.part=r}}let s=class extends b.MarkdownHoverParticipant{constructor(r,h,u,f,C,_){super(r,h,u,f,_),this._resolverService=C,this.hoverOrdinal=6}suggestHoverAnchor(r){var h;if(!a.InlayHintsController.get(this._editor)||r.target.type!==6)return null;const f=(h=r.target.detail.injectedText)===null||h===void 0?void 0:h.options;return f instanceof D.ModelDecorationInjectedTextOptions&&f.attachedData instanceof a.RenderedInlayHintLabelPart?new d(f.attachedData,this,r.event.posx,r.event.posy):null}computeSync(){return[]}computeAsync(r,h,u){return r instanceof d?new L.AsyncIterableObject(async f=>{const{part:C}=r;if(await C.item.resolve(u),u.isCancellationRequested)return;let _;typeof C.item.hint.tooltip=="string"?_=new k.MarkdownString().appendText(C.item.hint.tooltip):C.item.hint.tooltip&&(_=C.item.hint.tooltip),_&&f.emitOne(new b.MarkdownHover(this,r.range,[_],!1,0)),(0,c.isNonEmptyArray)(C.item.hint.textEdits)&&f.emitOne(new b.MarkdownHover(this,r.range,[new k.MarkdownString().appendText((0,o.localize)(0,null))],!1,10001));let E;if(typeof C.part.tooltip=="string"?E=new k.MarkdownString().appendText(C.part.tooltip):C.part.tooltip&&(E=C.part.tooltip),E&&f.emitOne(new b.MarkdownHover(this,r.range,[E],!1,1)),C.part.location||C.part.command){let T;const R=this._editor.getOption(78)==="altKey"?g.isMacintosh?(0,o.localize)(1,null):(0,o.localize)(2,null):g.isMacintosh?(0,o.localize)(3,null):(0,o.localize)(4,null);C.part.location&&C.part.command?T=new k.MarkdownString().appendText((0,o.localize)(5,null,R)):C.part.location?T=new k.MarkdownString().appendText((0,o.localize)(6,null,R)):C.part.command&&(T=new k.MarkdownString(`[${(0,o.localize)(7,null)}](${(0,m.asCommandLink)(C.part.command)} "${C.part.command.title}") (${R})`,{isTrusted:!0})),T&&f.emitOne(new b.MarkdownHover(this,r.range,[T],!1,1e4))}const I=await this._resolveInlayHintLabelPartHover(C,u);for await(const T of I)f.emitOne(T)}):L.AsyncIterableObject.EMPTY}async _resolveInlayHintLabelPartHover(r,h){if(!r.part.location)return L.AsyncIterableObject.EMPTY;const{uri:u,range:f}=r.part.location,C=await this._resolverService.createModelReference(u);try{const _=C.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(_)?(0,v.getHover)(this._languageFeaturesService.hoverProvider,_,new y.Position(f.startLineNumber,f.startColumn),h).filter(E=>!(0,k.isEmptyMarkdownString)(E.hover.contents)).map(E=>new b.MarkdownHover(this,r.item.anchor.range,E.hover.contents,!1,2+E.ordinal)):L.AsyncIterableObject.EMPTY}finally{C.dispose()}}};e.InlayHintsHover=s,e.InlayHintsHover=s=De([he(1,p.ILanguageService),he(2,i.IOpenerService),he(3,n.IConfigurationService),he(4,w.ITextModelService),he(5,t.ILanguageFeaturesService)],s)}),define(ne[931],se([1,0,16,93,394,930]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(y.InlayHintsController.ID,y.InlayHintsController,1),k.HoverParticipantRegistry.register(D.InlayHintsHover)}),define(ne[395],se([1,0,2,18,921,920,8,56,28,14,21,193,5,257,393,9,19,33,80,6,317,69,268,310]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollController=void 0;let f=u=class extends L.Disposable{constructor(_,E,I,T,A,R,M){super(),this._editor=_,this._contextMenuService=E,this._languageFeaturesService=I,this._instaService=T,this._contextKeyService=M,this._sessionStore=new L.DisposableStore,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new y.StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new D.StickyLineCandidateProvider(this._editor,I,A),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new y.StickyScrollWidgetState([],[],0),this._onDidResize(),this._readConfiguration();const N=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(F=>{(F.hasChanged(115)||F.hasChanged(73)||F.hasChanged(67)||F.hasChanged(110))&&this._readConfiguration()})),this._register(d.addDisposableListener(N,d.EventType.CONTEXT_MENU,async F=>{this._onContextMenu(d.getWindow(N),F)})),this._stickyScrollFocusedContextKey=b.EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=b.EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const P=this._register(d.trackFocus(N));this._register(P.onDidBlur(F=>{this._positionRevealed===!1&&N.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(P.onDidFocus(F=>{this.focus()})),this._registerMouseListeners(),this._register(d.addDisposableListener(N,d.EventType.MOUSE_DOWN,F=>{this._onMouseDown=!0}))}static get(_){return _.getContribution(u.ID)}_disposeFocusStickyScrollStore(){var _;this._stickyScrollFocusedContextKey.set(!1),(_=this._focusDisposableStore)===null||_===void 0||_.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new L.DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(_){this._focusedStickyElementIndex=_?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const _=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:_[this._focusedStickyElementIndex],column:1})}_revealPosition(_){this._reveaInEditor(_,()=>this._editor.revealPosition(_))}_revealLineInCenterIfOutsideViewport(_){this._reveaInEditor(_,()=>this._editor.revealLineInCenterIfOutsideViewport(_.lineNumber,0))}_reveaInEditor(_,E){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,E(),this._editor.setSelection(n.Range.fromPositions(_)),this._editor.focus()}_registerMouseListeners(){const _=this._register(new L.DisposableStore),E=this._register(new a.ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:A=>{const R=this._stickyScrollWidget.getEditorPositionFromNode(A.target.element);return R?R.lineNumber:0}})),I=A=>{if(!this._editor.hasModel()||A.target.type!==12||A.target.detail!==this._stickyScrollWidget.getId())return null;const R=A.target.element;if(!R||R.innerText!==R.innerHTML)return null;const M=this._stickyScrollWidget.getEditorPositionFromNode(R);return M?{range:new n.Range(M.lineNumber,M.column,M.lineNumber,M.column+R.innerText.length),textElement:R}:null},T=this._stickyScrollWidget.getDomNode();this._register(d.addStandardDisposableListener(T,d.EventType.CLICK,A=>{if(A.ctrlKey||A.altKey||A.metaKey||!A.leftButton)return;if(A.shiftKey){const P=this._stickyScrollWidget.getLineIndexFromChildDomNode(A.target);if(P===null)return;const F=new o.Position(this._endLineNumbers[P],1);this._revealLineInCenterIfOutsideViewport(F);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(A.target)){const P=this._stickyScrollWidget.getLineNumberFromChildDomNode(A.target);this._toggleFoldingRegionForLine(P);return}if(!this._stickyScrollWidget.isInStickyLine(A.target))return;let N=this._stickyScrollWidget.getEditorPositionFromNode(A.target);if(!N){const P=this._stickyScrollWidget.getLineNumberFromChildDomNode(A.target);if(P===null)return;N=new o.Position(P,1)}this._revealPosition(N)})),this._register(d.addStandardDisposableListener(T,d.EventType.MOUSE_MOVE,A=>{if(A.shiftKey){const R=this._stickyScrollWidget.getLineIndexFromChildDomNode(A.target);if(R===null||this._showEndForLine!==null&&this._showEndForLine===R)return;this._showEndForLine=R,this._renderStickyScroll();return}this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(d.addDisposableListener(T,d.EventType.MOUSE_LEAVE,A=>{this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(E.onMouseMoveOrRelevantKeyDown(([A,R])=>{const M=I(A);if(!M||!A.hasTriggerModifier||!this._editor.hasModel()){_.clear();return}const{range:N,textElement:P}=M;if(!N.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=N,_.clear();else if(P.style.textDecoration==="underline")return;const F=new g.CancellationTokenSource;_.add((0,L.toDisposable)(()=>F.dispose(!0)));let O;(0,i.getDefinitionsAtPosition)(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new o.Position(N.startLineNumber,N.startColumn+1),F.token).then(B=>{if(!F.token.isCancellationRequested)if(B.length!==0){this._candidateDefinitionsLength=B.length;const W=P;O!==W?(_.clear(),O=W,O.style.textDecoration="underline",_.add((0,L.toDisposable)(()=>{O.style.textDecoration="none"}))):O||(O=W,O.style.textDecoration="underline",_.add((0,L.toDisposable)(()=>{O.style.textDecoration="none"})))}else _.clear()})})),this._register(E.onCancel(()=>{_.clear()})),this._register(E.onExecute(async A=>{if(A.target.type!==12||A.target.detail!==this._stickyScrollWidget.getId())return;const R=this._stickyScrollWidget.getEditorPositionFromNode(A.target.element);R&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:R.lineNumber,column:1})),this._instaService.invokeFunction(t.goToDefinitionWithLocation,A,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(_,E){const I=new l.StandardMouseEvent(_,E);this._contextMenuService.showContextMenu({menuId:w.MenuId.StickyScrollContext,getAnchor:()=>I})}_toggleFoldingRegionForLine(_){if(!this._foldingModel||_===null)return;const E=this._stickyScrollWidget.getRenderedStickyLine(_),I=E?.foldingIcon;if(!I)return;(0,h.toggleCollapseState)(this._foldingModel,Number.MAX_VALUE,[_]),I.isCollapsed=!I.isCollapsed;const T=(I.isCollapsed?this._editor.getTopForLineNumber(I.foldingEndLine):this._editor.getTopForLineNumber(I.foldingStartLine))-this._editor.getOption(67)*E.index+1;this._editor.setScrollTop(T),this._renderStickyScroll(_)}_readConfiguration(){const _=this._editor.getOption(115);if(_.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else _.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(I=>{I.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(I=>this._onTokensChange(I))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=null,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=null,this._renderStickyScroll(0)}))}_needsUpdate(_){const E=this._stickyScrollWidget.getCurrentLines();for(const I of E)for(const T of _.ranges)if(I>=T.fromLineNumber&&I<=T.toLineNumber)return!0;return!1}_onTokensChange(_){this._needsUpdate(_)&&this._renderStickyScroll(0)}_onDidResize(){const E=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(E*.25)}async _renderStickyScroll(_){var E,I;const T=this._editor.getModel();if(!T||T.isTooLargeForTokenization()){this._foldingModel=null,this._stickyScrollWidget.setState(void 0,null);return}const A=this._stickyLineCandidateProvider.getVersionId();if(A===void 0||A===T.getVersionId())if(this._foldingModel=(I=await((E=r.FoldingController.get(this._editor))===null||E===void 0?void 0:E.getFoldingModel()))!==null&&I!==void 0?I:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(this._widgetState.startLineNumbers.length!==0),!this._focused)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,_);else if(this._focusedStickyElementIndex===-1)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,_),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const R=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,_),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(R)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}findScrollWidgetState(){const _=this._editor.getOption(67),E=Math.min(this._maxStickyLines,this._editor.getOption(115).maxLineCount),I=this._editor.getScrollTop();let T=0;const A=[],R=[],M=this._editor.getVisibleRanges();if(M.length!==0){const N=new s.StickyRange(M[0].startLineNumber,M[M.length-1].endLineNumber),P=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(N);for(const F of P){const O=F.startLineNumber,B=F.endLineNumber,W=F.nestingDepth;if(B-O>0){const V=(W-1)*_,z=W*_,K=this._editor.getBottomForLineNumber(O)-I,j=this._editor.getTopForLineNumber(B)-I,x=this._editor.getBottomForLineNumber(B)-I;if(V>j&&V<=x){A.push(O),R.push(B+1),T=x-z;break}else z>K&&z<=x&&(A.push(O),R.push(B+1));if(A.length===E)break}}}return this._endLineNumbers=R,new y.StickyScrollWidgetState(A,R,T,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};e.StickyScrollController=f,f.ID="store.contrib.stickyScrollController",e.StickyScrollController=f=u=De([he(1,p.IContextMenuService),he(2,k.ILanguageFeaturesService),he(3,S.IInstantiationService),he(4,m.ILanguageConfigurationService),he(5,c.ILanguageFeatureDebounceService),he(6,v.IContextKeyService)],f)}),define(ne[932],se([1,0,16,725,767,28,26,14,21,395]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectEditor=e.GoToStickyScrollLine=e.SelectPreviousStickyScrollLine=e.SelectNextStickyScrollLine=e.FocusStickyScroll=e.ToggleStickyScroll=void 0;class b extends D.Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...(0,k.localize2)(4,"Toggle Editor Sticky Scroll"),mnemonicTitle:(0,k.localize)(0,null)},category:y.Categories.View,toggled:{condition:p.ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:(0,k.localize)(1,null),mnemonicTitle:(0,k.localize)(2,null)},menu:[{id:D.MenuId.CommandPalette},{id:D.MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:D.MenuId.StickyScrollContext}]})}async run(c){const d=c.get(S.IConfigurationService),s=!d.getValue("editor.stickyScroll.enabled");return d.updateValue("editor.stickyScroll.enabled",s)}}e.ToggleStickyScroll=b;const a=100;class n extends L.EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...(0,k.localize2)(5,"Focus Sticky Scroll"),mnemonicTitle:(0,k.localize)(3,null)},precondition:p.ContextKeyExpr.and(p.ContextKeyExpr.has("config.editor.stickyScroll.enabled"),w.EditorContextKeys.stickyScrollVisible),menu:[{id:D.MenuId.CommandPalette}]})}runEditorCommand(c,d){var s;(s=v.StickyScrollController.get(d))===null||s===void 0||s.focus()}}e.FocusStickyScroll=n;class i extends L.EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:(0,k.localize2)(6,"Select next sticky scroll line"),precondition:w.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:a,primary:18}})}runEditorCommand(c,d){var s;(s=v.StickyScrollController.get(d))===null||s===void 0||s.focusNext()}}e.SelectNextStickyScrollLine=i;class t extends L.EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:(0,k.localize2)(7,"Select previous sticky scroll line"),precondition:w.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:a,primary:16}})}runEditorCommand(c,d){var s;(s=v.StickyScrollController.get(d))===null||s===void 0||s.focusPrevious()}}e.SelectPreviousStickyScrollLine=t;class o extends L.EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:(0,k.localize2)(8,"Go to focused sticky scroll line"),precondition:w.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:a,primary:3}})}runEditorCommand(c,d){var s;(s=v.StickyScrollController.get(d))===null||s===void 0||s.goToFocused()}}e.GoToStickyScrollLine=o;class g extends L.EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:(0,k.localize2)(9,"Select Editor"),precondition:w.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:a,primary:9}})}runEditorCommand(c,d){var s;(s=v.StickyScrollController.get(d))===null||s===void 0||s.selectEditor()}}e.SelectEditor=g}),define(ne[933],se([1,0,16,932,395,28]),function(ee,e,L,k,y,D){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(y.StickyScrollController.ID,y.StickyScrollController,1),(0,D.registerAction2)(k.ToggleStickyScroll),(0,D.registerAction2)(k.FocusStickyScroll),(0,D.registerAction2)(k.SelectPreviousStickyScrollLine),(0,D.registerAction2)(k.SelectNextStickyScrollLine),(0,D.registerAction2)(k.GoToStickyScrollLine),(0,D.registerAction2)(k.SelectEditor)}),define(ne[934],se([1,0,16,35,390,26,14,8,49,94]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneReferencesController=void 0;let b=class extends y.ReferencesController{constructor(n,i,t,o,g,m,c){super(!0,n,i,t,o,g,m,c)}};e.StandaloneReferencesController=b,e.StandaloneReferencesController=b=De([he(1,S.IContextKeyService),he(2,k.ICodeEditorService),he(3,w.INotificationService),he(4,p.IInstantiationService),he(5,v.IStorageService),he(6,D.IConfigurationService)],b),(0,L.registerEditorContribution)(y.ReferencesController.ID,b,4)}),define(ne[935],se([1,0,12,2,47,103,764,164,45,49,199]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoService=void 0;const a=!1;function n(h){return h.scheme===y.Schemas.file?h.fsPath:h.path}let i=0;class t{constructor(u,f,C,_,E,I,T){this.id=++i,this.type=0,this.actual=u,this.label=u.label,this.confirmBeforeUndo=u.confirmBeforeUndo||!1,this.resourceLabel=f,this.strResource=C,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=_,this.groupOrder=E,this.sourceId=I,this.sourceOrder=T,this.isValid=!0}setValid(u){this.isValid=u}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class o{constructor(u,f){this.resourceLabel=u,this.reason=f}}class g{constructor(){this.elements=new Map}createMessage(){const u=[],f=[];for(const[,_]of this.elements)(_.reason===0?u:f).push(_.resourceLabel);const C=[];return u.length>0&&C.push(S.localize(0,null,u.join(", "))),f.length>0&&C.push(S.localize(1,null,f.join(", "))),C.join(` +`)}get size(){return this.elements.size}has(u){return this.elements.has(u)}set(u,f){this.elements.set(u,f)}delete(u){return this.elements.delete(u)}}class m{constructor(u,f,C,_,E,I,T){this.id=++i,this.type=1,this.actual=u,this.label=u.label,this.confirmBeforeUndo=u.confirmBeforeUndo||!1,this.resourceLabels=f,this.strResources=C,this.groupId=_,this.groupOrder=E,this.sourceId=I,this.sourceOrder=T,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(u,f,C){this.removedResources||(this.removedResources=new g),this.removedResources.has(f)||this.removedResources.set(f,new o(u,C))}setValid(u,f,C){C?this.invalidatedResources&&(this.invalidatedResources.delete(f),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new g),this.invalidatedResources.has(f)||this.invalidatedResources.set(f,new o(u,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class c{constructor(u,f){this.resourceLabel=u,this.strResource=f,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const u of this._past)u.type===1&&u.removeResource(this.resourceLabel,this.strResource,0);for(const u of this._future)u.type===1&&u.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const u=[];u.push(`* ${this.strResource}:`);for(let f=0;f=0;f--)u.push(` * [REDO] ${this._future[f]}`);return u.join(` +`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(u,f){u.type===1?u.setValid(this.resourceLabel,this.strResource,f):u.setValid(f)}setElementsValidFlag(u,f){for(const C of this._past)f(C.actual)&&this._setElementValidFlag(C,u);for(const C of this._future)f(C.actual)&&this._setElementValidFlag(C,u)}pushElement(u){for(const f of this._future)f.type===1&&f.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(u),this.versionId++}createSnapshot(u){const f=[];for(let C=0,_=this._past.length;C<_;C++)f.push(this._past[C].id);for(let C=this._future.length-1;C>=0;C--)f.push(this._future[C].id);return new b.ResourceEditStackSnapshot(u,f)}restoreSnapshot(u){const f=u.elements.length;let C=!0,_=0,E=-1;for(let T=0,A=this._past.length;T=f||R.id!==u.elements[_])&&(C=!1,E=0),!C&&R.type===1&&R.removeResource(this.resourceLabel,this.strResource,0)}let I=-1;for(let T=this._future.length-1;T>=0;T--,_++){const A=this._future[T];C&&(_>=f||A.id!==u.elements[_])&&(C=!1,I=T),!C&&A.type===1&&A.removeResource(this.resourceLabel,this.strResource,0)}E!==-1&&(this._past=this._past.slice(0,E)),I!==-1&&(this._future=this._future.slice(I+1)),this.versionId++}getElements(){const u=[],f=[];for(const C of this._past)u.push(C.actual);for(const C of this._future)f.push(C.actual);return{past:u,future:f}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(u,f){for(let C=this._past.length-1;C>=0;C--)if(this._past[C]===u){f.has(this.strResource)?this._past[C]=f.get(this.strResource):this._past.splice(C,1);break}this.versionId++}splitFutureWorkspaceElement(u,f){for(let C=this._future.length-1;C>=0;C--)if(this._future[C]===u){f.has(this.strResource)?this._future[C]=f.get(this.strResource):this._future.splice(C,1);break}this.versionId++}moveBackward(u){this._past.pop(),this._future.push(u),this.versionId++}moveForward(u){this._future.pop(),this._past.push(u),this.versionId++}}class d{constructor(u){this.editStacks=u,this._versionIds=[];for(let f=0,C=this.editStacks.length;ff.sourceOrder)&&(f=I,C=_)}return[f,C]}canUndo(u){if(u instanceof b.UndoRedoSource){const[,C]=this._findClosestUndoElementWithSource(u.id);return!!C}const f=this.getUriComparisonKey(u);return this._editStacks.has(f)?this._editStacks.get(f).hasPastElements():!1}_onError(u,f){(0,L.onUnexpectedError)(u);for(const C of f.strResources)this.removeElements(C);this._notificationService.error(u)}_acquireLocks(u){for(const f of u.editStacks)if(f.locked)throw new Error("Cannot acquire edit stack lock");for(const f of u.editStacks)f.locked=!0;return()=>{for(const f of u.editStacks)f.locked=!1}}_safeInvokeWithLocks(u,f,C,_,E){const I=this._acquireLocks(C);let T;try{T=f()}catch(A){return I(),_.dispose(),this._onError(A,u)}return T?T.then(()=>(I(),_.dispose(),E()),A=>(I(),_.dispose(),this._onError(A,u))):(I(),_.dispose(),E())}async _invokeWorkspacePrepare(u){if(typeof u.actual.prepareUndoRedo>"u")return k.Disposable.None;const f=u.actual.prepareUndoRedo();return typeof f>"u"?k.Disposable.None:f}_invokeResourcePrepare(u,f){if(u.actual.type!==1||typeof u.actual.prepareUndoRedo>"u")return f(k.Disposable.None);const C=u.actual.prepareUndoRedo();return C?(0,k.isDisposable)(C)?f(C):C.then(_=>f(_)):f(k.Disposable.None)}_getAffectedEditStacks(u){const f=[];for(const C of u.strResources)f.push(this._editStacks.get(C)||s);return new d(f)}_tryToSplitAndUndo(u,f,C,_){if(f.canSplit())return this._splitPastWorkspaceElement(f,C),this._notificationService.warn(_),new r(this._undo(u,0,!0));for(const E of f.strResources)this.removeElements(E);return this._notificationService.warn(_),new r}_checkWorkspaceUndo(u,f,C,_){if(f.removedResources)return this._tryToSplitAndUndo(u,f,f.removedResources,S.localize(2,null,f.label,f.removedResources.createMessage()));if(_&&f.invalidatedResources)return this._tryToSplitAndUndo(u,f,f.invalidatedResources,S.localize(3,null,f.label,f.invalidatedResources.createMessage()));const E=[];for(const T of C.editStacks)T.getClosestPastElement()!==f&&E.push(T.resourceLabel);if(E.length>0)return this._tryToSplitAndUndo(u,f,null,S.localize(4,null,f.label,E.join(", ")));const I=[];for(const T of C.editStacks)T.locked&&I.push(T.resourceLabel);return I.length>0?this._tryToSplitAndUndo(u,f,null,S.localize(5,null,f.label,I.join(", "))):C.isValid()?null:this._tryToSplitAndUndo(u,f,null,S.localize(6,null,f.label))}_workspaceUndo(u,f,C){const _=this._getAffectedEditStacks(f),E=this._checkWorkspaceUndo(u,f,_,!1);return E?E.returnValue:this._confirmAndExecuteWorkspaceUndo(u,f,_,C)}_isPartOfUndoGroup(u){if(!u.groupId)return!1;for(const[,f]of this._editStacks){const C=f.getClosestPastElement();if(C){if(C===u){const _=f.getSecondClosestPastElement();if(_&&_.groupId===u.groupId)return!0}if(C.groupId===u.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(u,f,C,_){if(f.canSplit()&&!this._isPartOfUndoGroup(f)){let T;(function(M){M[M.All=0]="All",M[M.This=1]="This",M[M.Cancel=2]="Cancel"})(T||(T={}));const{result:A}=await this._dialogService.prompt({type:D.default.Info,message:S.localize(7,null,f.label),buttons:[{label:S.localize(8,null,C.editStacks.length),run:()=>T.All},{label:S.localize(9,null),run:()=>T.This}],cancelButton:{run:()=>T.Cancel}});if(A===T.Cancel)return;if(A===T.This)return this._splitPastWorkspaceElement(f,null),this._undo(u,0,!0);const R=this._checkWorkspaceUndo(u,f,C,!1);if(R)return R.returnValue;_=!0}let E;try{E=await this._invokeWorkspacePrepare(f)}catch(T){return this._onError(T,f)}const I=this._checkWorkspaceUndo(u,f,C,!0);if(I)return E.dispose(),I.returnValue;for(const T of C.editStacks)T.moveBackward(f);return this._safeInvokeWithLocks(f,()=>f.actual.undo(),C,E,()=>this._continueUndoInGroup(f.groupId,_))}_resourceUndo(u,f,C){if(!f.isValid){u.flushAllElements();return}if(u.locked){const _=S.localize(10,null,f.label);this._notificationService.warn(_);return}return this._invokeResourcePrepare(f,_=>(u.moveBackward(f),this._safeInvokeWithLocks(f,()=>f.actual.undo(),new d([u]),_,()=>this._continueUndoInGroup(f.groupId,C))))}_findClosestUndoElementInGroup(u){if(!u)return[null,null];let f=null,C=null;for(const[_,E]of this._editStacks){const I=E.getClosestPastElement();I&&I.groupId===u&&(!f||I.groupOrder>f.groupOrder)&&(f=I,C=_)}return[f,C]}_continueUndoInGroup(u,f){if(!u)return;const[,C]=this._findClosestUndoElementInGroup(u);if(C)return this._undo(C,0,f)}undo(u){if(u instanceof b.UndoRedoSource){const[,f]=this._findClosestUndoElementWithSource(u.id);return f?this._undo(f,u.id,!1):void 0}return typeof u=="string"?this._undo(u,0,!1):this._undo(this.getUriComparisonKey(u),0,!1)}_undo(u,f=0,C){if(!this._editStacks.has(u))return;const _=this._editStacks.get(u),E=_.getClosestPastElement();if(!E)return;if(E.groupId){const[T,A]=this._findClosestUndoElementInGroup(E.groupId);if(E!==T&&A)return this._undo(A,f,C)}if((E.sourceId!==f||E.confirmBeforeUndo)&&!C)return this._confirmAndContinueUndo(u,f,E);try{return E.type===1?this._workspaceUndo(u,E,C):this._resourceUndo(_,E,C)}finally{a&&this._print("undo")}}async _confirmAndContinueUndo(u,f,C){if((await this._dialogService.confirm({message:S.localize(11,null,C.label),primaryButton:S.localize(12,null),cancelButton:S.localize(13,null)})).confirmed)return this._undo(u,f,!0)}_findClosestRedoElementWithSource(u){if(!u)return[null,null];let f=null,C=null;for(const[_,E]of this._editStacks){const I=E.getClosestFutureElement();I&&I.sourceId===u&&(!f||I.sourceOrder0)return this._tryToSplitAndRedo(u,f,null,S.localize(16,null,f.label,E.join(", ")));const I=[];for(const T of C.editStacks)T.locked&&I.push(T.resourceLabel);return I.length>0?this._tryToSplitAndRedo(u,f,null,S.localize(17,null,f.label,I.join(", "))):C.isValid()?null:this._tryToSplitAndRedo(u,f,null,S.localize(18,null,f.label))}_workspaceRedo(u,f){const C=this._getAffectedEditStacks(f),_=this._checkWorkspaceRedo(u,f,C,!1);return _?_.returnValue:this._executeWorkspaceRedo(u,f,C)}async _executeWorkspaceRedo(u,f,C){let _;try{_=await this._invokeWorkspacePrepare(f)}catch(I){return this._onError(I,f)}const E=this._checkWorkspaceRedo(u,f,C,!0);if(E)return _.dispose(),E.returnValue;for(const I of C.editStacks)I.moveForward(f);return this._safeInvokeWithLocks(f,()=>f.actual.redo(),C,_,()=>this._continueRedoInGroup(f.groupId))}_resourceRedo(u,f){if(!f.isValid){u.flushAllElements();return}if(u.locked){const C=S.localize(19,null,f.label);this._notificationService.warn(C);return}return this._invokeResourcePrepare(f,C=>(u.moveForward(f),this._safeInvokeWithLocks(f,()=>f.actual.redo(),new d([u]),C,()=>this._continueRedoInGroup(f.groupId))))}_findClosestRedoElementInGroup(u){if(!u)return[null,null];let f=null,C=null;for(const[_,E]of this._editStacks){const I=E.getClosestFutureElement();I&&I.groupId===u&&(!f||I.groupOrder"u")return typeof t=="string"?{id:(0,k.basename)(t)}:o?e.EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE:e.UNKNOWN_EMPTY_WINDOW_WORKSPACE;const g=t;return g.configuration?{id:g.id,configPath:g.configuration}:g.folders.length===1?{id:g.id,uri:g.folders[0].uri}:{id:g.id}}e.toWorkspaceIdentifier=v;function b(t){const o=t;return typeof o?.id=="string"&&D.URI.isUri(o.configPath)}e.isWorkspaceIdentifier=b;class a{constructor(o,g,m,c,d){this._id=o,this._transient=m,this._configuration=c,this._ignorePathCasing=d,this._foldersMap=y.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0),this.folders=g}get folders(){return this._folders}set folders(o){this._folders=o,this.updateFoldersMap()}get id(){return this._id}get transient(){return this._transient}get configuration(){return this._configuration}set configuration(o){this._configuration=o}getFolder(o){return o&&this._foldersMap.findSubstr(o)||null}updateFoldersMap(){this._foldersMap=y.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0);for(const o of this.folders)this._foldersMap.set(o.uri,o)}toJSON(){return{id:this.id,folders:this.folders,transient:this.transient,configuration:this.configuration}}}e.Workspace=a;class n{constructor(o,g){this.raw=g,this.uri=o.uri,this.index=o.index,this.name=o.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}e.WorkspaceFolder=n,e.WORKSPACE_EXTENSION="code-workspace",e.WORKSPACE_FILTER=[{name:(0,L.localize)(0,null),extensions:[e.WORKSPACE_EXTENSION]}],e.STANDALONE_EDITOR_WORKSPACE_ID="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function i(t){return t.id===e.STANDALONE_EDITOR_WORKSPACE_ID}e.isStandaloneEditorWorkspace=i}),define(ne[936],se([1,0,6,141,42,2,17,16,21,674,28,14,56,34,26,171]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuController=void 0;let m=g=class{static get(s){return s.getContribution(g.ID)}constructor(s,l,r,h,u,f,C,_){this._contextMenuService=l,this._contextViewService=r,this._contextKeyService=h,this._keybindingService=u,this._menuService=f,this._configurationService=C,this._workspaceContextService=_,this._toDispose=new D.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=s,this._toDispose.add(this._editor.onContextMenu(E=>this._onContextMenu(E))),this._toDispose.add(this._editor.onMouseWheel(E=>{if(this._contextMenuIsBeingShownCount>0){const I=this._contextViewService.getContextViewElement(),T=E.srcElement;T.shadowRoot&&L.getShadowRoot(I)===T.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(E=>{this._editor.getOption(24)&&E.keyCode===58&&(E.preventDefault(),E.stopPropagation(),this.showContextMenu())}))}_onContextMenu(s){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),s.target.position&&!this._editor.getSelection().containsPosition(s.target.position)&&this._editor.setPosition(s.target.position);return}if(s.target.type===12||s.target.type===6&&s.target.detail.injectedText)return;if(s.event.preventDefault(),s.event.stopPropagation(),s.target.type===11)return this._showScrollbarContextMenu(s.event);if(s.target.type!==6&&s.target.type!==7&&s.target.type!==1)return;if(this._editor.focus(),s.target.position){let r=!1;for(const h of this._editor.getSelections())if(h.containsPosition(s.target.position)){r=!0;break}r||this._editor.setPosition(s.target.position)}let l=null;s.target.type!==1&&(l=s.event),this.showContextMenu(l)}showContextMenu(s){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const l=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?b.MenuId.SimpleEditorContext:b.MenuId.EditorContext);l.length>0&&this._doShowContextMenu(l,s)}_getMenuActions(s,l){const r=[],h=this._menuService.createMenu(l,this._contextKeyService),u=h.getActions({arg:s.uri});h.dispose();for(const f of u){const[,C]=f;let _=0;for(const E of C)if(E instanceof b.SubmenuItemAction){const I=this._getMenuActions(s,E.item.submenu);I.length>0&&(r.push(new y.SubmenuAction(E.id,E.label,I)),_++)}else r.push(E),_++;_&&r.push(new y.Separator)}return r.length&&r.pop(),r}_doShowContextMenu(s,l=null){if(!this._editor.hasModel())return;const r=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let h=l;if(!h){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const f=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),C=L.getDomNodePagePosition(this._editor.getDomNode()),_=C.left+f.left,E=C.top+f.top+f.height;h={x:_,y:E}}const u=this._editor.getOption(127)&&!S.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:u?this._editor.getDomNode():void 0,getAnchor:()=>h,getActions:()=>s,getActionViewItem:f=>{const C=this._keybindingFor(f);if(C)return new k.ActionViewItem(f,f,{label:!0,keybinding:C.getLabel(),isMenu:!0});const _=f;return typeof _.getActionViewItem=="function"?_.getActionViewItem():new k.ActionViewItem(f,f,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:f=>this._keybindingFor(f),onHide:f=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:r})}})}_showScrollbarContextMenu(s){if(!this._editor.hasModel()||(0,o.isStandaloneEditorWorkspace)(this._workspaceContextService.getWorkspace()))return;const l=this._editor.getOption(73);let r=0;const h=E=>({id:`menu-action-${++r}`,label:E.label,tooltip:"",class:void 0,enabled:typeof E.enabled>"u"?!0:E.enabled,checked:E.checked,run:E.run}),u=(E,I)=>new y.SubmenuAction(`menu-action-${++r}`,E,I,void 0),f=(E,I,T,A,R)=>{if(!I)return h({label:E,enabled:I,run:()=>{}});const M=P=>()=>{this._configurationService.updateValue(T,P)},N=[];for(const P of R)N.push(h({label:P.label,checked:A===P.value,run:M(P.value)}));return u(E,N)},C=[];C.push(h({label:v.localize(0,null),checked:l.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!l.enabled)}})),C.push(new y.Separator),C.push(h({label:v.localize(1,null),enabled:l.enabled,checked:l.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!l.renderCharacters)}})),C.push(f(v.localize(2,null),l.enabled,"editor.minimap.size",l.size,[{label:v.localize(3,null),value:"proportional"},{label:v.localize(4,null),value:"fill"},{label:v.localize(5,null),value:"fit"}])),C.push(f(v.localize(6,null),l.enabled,"editor.minimap.showSlider",l.showSlider,[{label:v.localize(7,null),value:"mouseover"},{label:v.localize(8,null),value:"always"}]));const _=this._editor.getOption(127)&&!S.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:_?this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>C,onHide:E=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(s){return this._keybindingService.lookupKeybinding(s.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};e.ContextMenuController=m,m.ID="editor.contrib.contextmenu",e.ContextMenuController=m=g=De([he(1,n.IContextMenuService),he(2,n.IContextViewService),he(3,a.IContextKeyService),he(4,i.IKeybindingService),he(5,b.IMenuService),he(6,t.IConfigurationService),he(7,o.IWorkspaceContextService)],m);class c extends p.EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:v.localize(9,null),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:w.EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(s,l){var r;(r=m.get(l))===null||r===void 0||r.showContextMenu()}}(0,p.registerEditorContribution)(m.ID,m,2),(0,p.registerEditorAction)(c)}),define(ne[396],se([1,0,13,179,2,113,47,48,22,18,678,171]),function(ee,e,L,k,y,D,S,p,w,v,b,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultPasteProvidersFeature=e.DefaultDropProvidersFeature=void 0;const n=(0,b.localize)(0,null);class i{async provideDocumentPasteEdits(r,h,u,f,C){const _=await this.getEdit(u,C);return _?{insertText:_.insertText,label:_.label,detail:_.detail,handledMimeType:_.handledMimeType,yieldTo:_.yieldTo}:void 0}async provideDocumentOnDropEdits(r,h,u,f){const C=await this.getEdit(u,f);return C?{insertText:C.insertText,label:C.label,handledMimeType:C.handledMimeType,yieldTo:C.yieldTo}:void 0}}class t extends i{constructor(){super(...arguments),this.id="text",this.dropMimeTypes=[D.Mimes.text],this.pasteMimeTypes=[D.Mimes.text]}async getEdit(r,h){const u=r.get(D.Mimes.text);if(!u||r.has(D.Mimes.uriList))return;const f=await u.asString();return{handledMimeType:D.Mimes.text,label:(0,b.localize)(1,null),detail:n,insertText:f}}}class o extends i{constructor(){super(...arguments),this.id="uri",this.dropMimeTypes=[D.Mimes.uriList],this.pasteMimeTypes=[D.Mimes.uriList]}async getEdit(r,h){const u=await c(r);if(!u.length||h.isCancellationRequested)return;let f=0;const C=u.map(({uri:E,originalText:I})=>E.scheme===S.Schemas.file?E.fsPath:(f++,I)).join(" ");let _;return f>0?_=u.length>1?(0,b.localize)(2,null):(0,b.localize)(3,null):_=u.length>1?(0,b.localize)(4,null):(0,b.localize)(5,null),{handledMimeType:D.Mimes.uriList,insertText:C,label:_,detail:n}}}let g=class extends i{constructor(r){super(),this._workspaceContextService=r,this.id="relativePath",this.dropMimeTypes=[D.Mimes.uriList],this.pasteMimeTypes=[D.Mimes.uriList]}async getEdit(r,h){const u=await c(r);if(!u.length||h.isCancellationRequested)return;const f=(0,L.coalesce)(u.map(({uri:C})=>{const _=this._workspaceContextService.getWorkspaceFolder(C);return _?(0,p.relativePath)(_.uri,C):void 0}));if(f.length)return{handledMimeType:D.Mimes.uriList,insertText:f.join(" "),label:u.length>1?(0,b.localize)(6,null):(0,b.localize)(7,null),detail:n}}};g=De([he(0,a.IWorkspaceContextService)],g);class m{constructor(){this.id="html",this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:D.Mimes.text}]}async provideDocumentPasteEdits(r,h,u,f,C){if(f.trigger!=="explicit"&&f.only!==this.id)return;const _=u.get("text/html"),E=await _?.asString();if(!(!E||C.isCancellationRequested))return{insertText:E,yieldTo:this._yieldTo,label:(0,b.localize)(8,null),detail:n}}}async function c(l){const r=l.get(D.Mimes.uriList);if(!r)return[];const h=await r.asString(),u=[];for(const f of k.UriList.parse(h))try{u.push({uri:w.URI.parse(f),originalText:f})}catch{}return u}let d=class extends y.Disposable{constructor(r,h){super(),this._register(r.documentOnDropEditProvider.register("*",new t)),this._register(r.documentOnDropEditProvider.register("*",new o)),this._register(r.documentOnDropEditProvider.register("*",new g(h)))}};e.DefaultDropProvidersFeature=d,e.DefaultDropProvidersFeature=d=De([he(0,v.ILanguageFeaturesService),he(1,a.IWorkspaceContextService)],d);let s=class extends y.Disposable{constructor(r,h){super(),this._register(r.documentPasteEditProvider.register("*",new t)),this._register(r.documentPasteEditProvider.register("*",new o)),this._register(r.documentPasteEditProvider.register("*",new g(h))),this._register(r.documentPasteEditProvider.register("*",new m))}};e.DefaultPasteProvidersFeature=s,e.DefaultPasteProvidersFeature=s=De([he(0,v.ILanguageFeaturesService),he(1,a.IWorkspaceContextService)],s)}),define(ne[937],se([1,0,16,21,135,387,396,676]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(D.CopyPasteController.ID,D.CopyPasteController,0),(0,y.registerEditorFeature)(S.DefaultPasteProvidersFeature),(0,L.registerEditorCommand)(new class extends L.EditorCommand{constructor(){super({id:D.changePasteTypeCommandId,precondition:D.pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(w,v,b){var a;return(a=D.CopyPasteController.get(v))===null||a===void 0?void 0:a.changePasteType()}}),(0,L.registerEditorAction)(class extends L.EditorAction{constructor(){super({id:"editor.action.pasteAs",label:p.localize(0,null),alias:"Paste As...",precondition:k.EditorContextKeys.writable,metadata:{description:"Paste as",args:[{name:"args",schema:{type:"object",properties:{id:{type:"string",description:p.localize(1,null)}}}}]}})}run(w,v,b){var a;const n=typeof b?.id=="string"?b.id:void 0;return(a=D.CopyPasteController.get(v))===null||a===void 0?void 0:a.pasteAs(n)}}),(0,L.registerEditorAction)(class extends L.EditorAction{constructor(){super({id:"editor.action.pasteAsText",label:p.localize(2,null),alias:"Paste as Text",precondition:k.EditorContextKeys.writable})}run(w,v,b){var a;return(a=D.CopyPasteController.get(v))===null||a===void 0?void 0:a.pasteAs("text")}})}),define(ne[938],se([1,0,16,251,135,396,679,101,37,916]),function(ee,e,L,k,y,D,S,p,w,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(v.DropIntoEditorController.ID,v.DropIntoEditorController,2),(0,L.registerEditorCommand)(new class extends L.EditorCommand{constructor(){super({id:v.changeDropTypeCommandId,precondition:v.dropWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(b,a,n){var i;(i=v.DropIntoEditorController.get(a))===null||i===void 0||i.changeDropType()}}),(0,y.registerEditorFeature)(D.DefaultDropProvidersFeature),w.Registry.as(p.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{[v.defaultProviderConfig]:{type:"object",scope:5,description:S.localize(0,null),default:{},additionalProperties:{type:"string"}}}})}),define(ne[939],se([1,0,597,98,48,11,178,33,120,724,171]),function(ee,e,L,k,y,D,S,p,w,v,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RandomBasedVariableResolver=e.WorkspaceBasedVariableResolver=e.TimeBasedVariableResolver=e.CommentBasedVariableResolver=e.ClipboardBasedVariableResolver=e.ModelBasedVariableResolver=e.SelectionBasedVariableResolver=e.CompositeSnippetVariableResolver=e.KnownSnippetVariableNames=void 0,e.KnownSnippetVariableNames=Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class a{constructor(s){this._delegates=s}resolve(s){for(const l of this._delegates){const r=l.resolve(s);if(r!==void 0)return r}}}e.CompositeSnippetVariableResolver=a;class n{constructor(s,l,r,h){this._model=s,this._selection=l,this._selectionIdx=r,this._overtypingCapturer=h}resolve(s){const{name:l}=s;if(l==="SELECTION"||l==="TM_SELECTED_TEXT"){let r=this._model.getValueInRange(this._selection)||void 0,h=this._selection.startLineNumber!==this._selection.endLineNumber;if(!r&&this._overtypingCapturer){const u=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);u&&(r=u.value,h=u.multiline)}if(r&&h&&s.snippet){const u=this._model.getLineContent(this._selection.startLineNumber),f=(0,D.getLeadingWhitespace)(u,0,this._selection.startColumn-1);let C=f;s.snippet.walk(E=>E===s?!1:(E instanceof w.Text&&(C=(0,D.getLeadingWhitespace)((0,D.splitLines)(E.value).pop())),!0));const _=(0,D.commonPrefixLength)(C,f);r=r.replace(/(\r\n|\r|\n)(.*)/g,(E,I,T)=>`${I}${C.substr(_)}${T}`)}return r}else{if(l==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(l==="TM_CURRENT_WORD"){const r=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return r&&r.word||void 0}else{if(l==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(l==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(l==="CURSOR_INDEX")return String(this._selectionIdx);if(l==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}e.SelectionBasedVariableResolver=n;class i{constructor(s,l){this._labelService=s,this._model=l}resolve(s){const{name:l}=s;if(l==="TM_FILENAME")return k.basename(this._model.uri.fsPath);if(l==="TM_FILENAME_BASE"){const r=k.basename(this._model.uri.fsPath),h=r.lastIndexOf(".");return h<=0?r:r.slice(0,h)}else{if(l==="TM_DIRECTORY")return k.dirname(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel((0,y.dirname)(this._model.uri));if(l==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(l==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}e.ModelBasedVariableResolver=i;class t{constructor(s,l,r,h){this._readClipboardText=s,this._selectionIdx=l,this._selectionCount=r,this._spread=h}resolve(s){if(s.name!=="CLIPBOARD")return;const l=this._readClipboardText();if(l){if(this._spread){const r=l.split(/\r\n|\n|\r/).filter(h=>!(0,D.isFalsyOrWhitespace)(h));if(r.length===this._selectionCount)return r[this._selectionIdx]}return l}}}e.ClipboardBasedVariableResolver=t;let o=class{constructor(s,l,r){this._model=s,this._selection=l,this._languageConfigurationService=r}resolve(s){const{name:l}=s,r=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),h=this._languageConfigurationService.getLanguageConfiguration(r).comments;if(h){if(l==="LINE_COMMENT")return h.lineCommentToken||void 0;if(l==="BLOCK_COMMENT_START")return h.blockCommentStartToken||void 0;if(l==="BLOCK_COMMENT_END")return h.blockCommentEndToken||void 0}}};e.CommentBasedVariableResolver=o,e.CommentBasedVariableResolver=o=De([he(2,p.ILanguageConfigurationService)],o);class g{constructor(){this._date=new Date}resolve(s){const{name:l}=s;if(l==="CURRENT_YEAR")return String(this._date.getFullYear());if(l==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(l==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(l==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(l==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(l==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(l==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(l==="CURRENT_DAY_NAME")return g.dayNames[this._date.getDay()];if(l==="CURRENT_DAY_NAME_SHORT")return g.dayNamesShort[this._date.getDay()];if(l==="CURRENT_MONTH_NAME")return g.monthNames[this._date.getMonth()];if(l==="CURRENT_MONTH_NAME_SHORT")return g.monthNamesShort[this._date.getMonth()];if(l==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(l==="CURRENT_TIMEZONE_OFFSET"){const r=this._date.getTimezoneOffset(),h=r>0?"-":"+",u=Math.trunc(Math.abs(r/60)),f=u<10?"0"+u:u,C=Math.abs(r)-u*60,_=C<10?"0"+C:C;return h+f+":"+_}}}e.TimeBasedVariableResolver=g,g.dayNames=[v.localize(0,null),v.localize(1,null),v.localize(2,null),v.localize(3,null),v.localize(4,null),v.localize(5,null),v.localize(6,null)],g.dayNamesShort=[v.localize(7,null),v.localize(8,null),v.localize(9,null),v.localize(10,null),v.localize(11,null),v.localize(12,null),v.localize(13,null)],g.monthNames=[v.localize(14,null),v.localize(15,null),v.localize(16,null),v.localize(17,null),v.localize(18,null),v.localize(19,null),v.localize(20,null),v.localize(21,null),v.localize(22,null),v.localize(23,null),v.localize(24,null),v.localize(25,null)],g.monthNamesShort=[v.localize(26,null),v.localize(27,null),v.localize(28,null),v.localize(29,null),v.localize(30,null),v.localize(31,null),v.localize(32,null),v.localize(33,null),v.localize(34,null),v.localize(35,null),v.localize(36,null),v.localize(37,null)];class m{constructor(s){this._workspaceService=s}resolve(s){if(!this._workspaceService)return;const l=(0,b.toWorkspaceIdentifier)(this._workspaceService.getWorkspace());if(!(0,b.isEmptyWorkspaceIdentifier)(l)){if(s.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(l);if(s.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(l)}}_resolveWorkspaceName(s){if((0,b.isSingleFolderWorkspaceIdentifier)(s))return k.basename(s.uri.path);let l=k.basename(s.configPath.path);return l.endsWith(b.WORKSPACE_EXTENSION)&&(l=l.substr(0,l.length-b.WORKSPACE_EXTENSION.length-1)),l}_resoveWorkspacePath(s){if((0,b.isSingleFolderWorkspaceIdentifier)(s))return(0,L.normalizeDriveLetter)(s.uri.fsPath);const l=k.basename(s.configPath.path);let r=s.configPath.fsPath;return r.endsWith(l)&&(r=r.substr(0,r.length-l.length-1)),r?(0,L.normalizeDriveLetter)(r):"/"}}e.WorkspaceBasedVariableResolver=m;class c{resolve(s){const{name:l}=s;if(l==="RANDOM")return Math.random().toString().slice(-6);if(l==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(l==="UUID")return(0,S.generateUuid)()}}e.RandomBasedVariableResolver=c}),define(ne[397],se([1,0,13,2,11,68,5,23,33,38,166,171,120,939,485]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";var t;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetSession=e.OneSnippet=void 0;class o{constructor(d,s,l){this._editor=d,this._snippet=s,this._snippetLineLeadingWhitespace=l,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,L.groupBy)(s.placeholders,n.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}initialize(d){this._offset=d.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const d=this._editor.getModel();this._editor.changeDecorations(s=>{for(const l of this._snippet.placeholders){const r=this._snippet.offset(l),h=this._snippet.fullLen(l),u=S.Range.fromPositions(d.getPositionAt(this._offset+r),d.getPositionAt(this._offset+r+h)),f=l.isFinalTabstop?o._decor.inactiveFinal:o._decor.inactive,C=s.addDecoration(u,f);this._placeholderDecorations.set(l,C)}})}move(d){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const r=[];for(const h of this._placeholderGroups[this._placeholderGroupsIdx])if(h.transform){const u=this._placeholderDecorations.get(h),f=this._editor.getModel().getDecorationRange(u),C=this._editor.getModel().getValueInRange(f),_=h.transform.resolve(C).split(/\r\n|\r|\n/);for(let E=1;E<_.length;E++)_[E]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+_[E]);r.push(D.EditOperation.replace(f,_.join(this._editor.getModel().getEOL())))}r.length>0&&this._editor.executeEdits("snippet.placeholderTransform",r)}let s=!1;d===!0&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,s=!0);const l=this._editor.getModel().changeDecorations(r=>{const h=new Set,u=[];for(const f of this._placeholderGroups[this._placeholderGroupsIdx]){const C=this._placeholderDecorations.get(f),_=this._editor.getModel().getDecorationRange(C);u.push(new p.Selection(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn)),s=s&&this._hasPlaceholderBeenCollapsed(f),r.changeDecorationOptions(C,f.isFinalTabstop?o._decor.activeFinal:o._decor.active),h.add(f);for(const E of this._snippet.enclosingPlaceholders(f)){const I=this._placeholderDecorations.get(E);r.changeDecorationOptions(I,E.isFinalTabstop?o._decor.activeFinal:o._decor.active),h.add(E)}}for(const[f,C]of this._placeholderDecorations)h.has(f)||r.changeDecorationOptions(C,f.isFinalTabstop?o._decor.inactiveFinal:o._decor.inactive);return u});return s?this.move(d):l??[]}_hasPlaceholderBeenCollapsed(d){let s=d;for(;s;){if(s instanceof n.Placeholder){const l=this._placeholderDecorations.get(s);if(this._editor.getModel().getDecorationRange(l).isEmpty()&&s.toString().length>0)return!0}s=s.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[d]=this._snippet.placeholders;if(d.isFinalTabstop&&this._snippet.rightMostDescendant===d)return!0}return!1}computePossibleSelections(){const d=new Map;for(const s of this._placeholderGroups){let l;for(const r of s){if(r.isFinalTabstop)break;l||(l=[],d.set(r.index,l));const h=this._placeholderDecorations.get(r),u=this._editor.getModel().getDecorationRange(h);if(!u){d.delete(r.index);break}l.push(u)}}return d}get activeChoice(){if(!this._placeholderDecorations)return;const d=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!d?.choice)return;const s=this._placeholderDecorations.get(d);if(!s)return;const l=this._editor.getModel().getDecorationRange(s);if(l)return{range:l,choice:d.choice}}get hasChoice(){let d=!1;return this._snippet.walk(s=>(d=s instanceof n.Choice,!d)),d}merge(d){const s=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(l=>{for(const r of this._placeholderGroups[this._placeholderGroupsIdx]){const h=d.shift();console.assert(h._offset!==-1),console.assert(!h._placeholderDecorations);const u=h._snippet.placeholderInfo.last.index;for(const C of h._snippet.placeholderInfo.all)C.isFinalTabstop?C.index=r.index+(u+1)/this._nestingLevel:C.index=r.index+C.index/this._nestingLevel;this._snippet.replace(r,h._snippet.children);const f=this._placeholderDecorations.get(r);l.removeDecoration(f),this._placeholderDecorations.delete(r);for(const C of h._snippet.placeholders){const _=h._snippet.offset(C),E=h._snippet.fullLen(C),I=S.Range.fromPositions(s.getPositionAt(h._offset+_),s.getPositionAt(h._offset+_+E)),T=l.addDecoration(I,o._decor.inactive);this._placeholderDecorations.set(C,T)}}this._placeholderGroups=(0,L.groupBy)(this._snippet.placeholders,n.Placeholder.compareByIndex)})}}e.OneSnippet=o,o._decor={active:v.ModelDecorationOptions.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:v.ModelDecorationOptions.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:v.ModelDecorationOptions.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:v.ModelDecorationOptions.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const g={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let m=t=class{static adjustWhitespace(d,s,l,r,h){const u=d.getLineContent(s.lineNumber),f=(0,y.getLeadingWhitespace)(u,0,s.column-1);let C;return r.walk(_=>{if(!(_ instanceof n.Text)||_.parent instanceof n.Choice||h&&!h.has(_))return!0;const E=_.value.split(/\r\n|\r|\n/);if(l){const T=r.offset(_);if(T===0)E[0]=d.normalizeIndentation(E[0]);else{C=C??r.toString();const A=C.charCodeAt(T-1);(A===10||A===13)&&(E[0]=d.normalizeIndentation(f+E[0]))}for(let A=1;AB.get(a.IWorkspaceContextService)),R=d.invokeWithinContext(B=>new i.ModelBasedVariableResolver(B.get(b.ILabelService),T)),M=()=>f,N=T.getValueInRange(t.adjustSelection(T,d.getSelection(),l,0)),P=T.getValueInRange(t.adjustSelection(T,d.getSelection(),0,r)),F=T.getLineFirstNonWhitespaceColumn(d.getSelection().positionLineNumber),O=d.getSelections().map((B,W)=>({selection:B,idx:W})).sort((B,W)=>S.Range.compareRangesUsingStarts(B.selection,W.selection));for(const{selection:B,idx:W}of O){let V=t.adjustSelection(T,B,l,0),z=t.adjustSelection(T,B,0,r);N!==T.getValueInRange(V)&&(V=B),P!==T.getValueInRange(z)&&(z=B);const K=B.setStartPosition(V.startLineNumber,V.startColumn).setEndPosition(z.endLineNumber,z.endColumn),j=new n.SnippetParser().parse(s,!0,h),x=K.getStartPosition(),re=t.adjustWhitespace(T,x,u||W>0&&F!==T.getLineFirstNonWhitespaceColumn(B.positionLineNumber),j);j.resolveVariables(new i.CompositeSnippetVariableResolver([R,new i.ClipboardBasedVariableResolver(M,W,O.length,d.getOption(79)==="spread"),new i.SelectionBasedVariableResolver(T,B,W,C),new i.CommentBasedVariableResolver(T,B,_),new i.TimeBasedVariableResolver,new i.WorkspaceBasedVariableResolver(A),new i.RandomBasedVariableResolver])),E[W]=D.EditOperation.replace(K,j.toString()),E[W].identifier={major:W,minor:0},E[W]._isTracked=!0,I[W]=new o(d,j,re)}return{edits:E,snippets:I}}static createEditsAndSnippetsFromEdits(d,s,l,r,h,u,f){if(!d.hasModel()||s.length===0)return{edits:[],snippets:[]};const C=[],_=d.getModel(),E=new n.SnippetParser,I=new n.TextmateSnippet,T=new i.CompositeSnippetVariableResolver([d.invokeWithinContext(R=>new i.ModelBasedVariableResolver(R.get(b.ILabelService),_)),new i.ClipboardBasedVariableResolver(()=>h,0,d.getSelections().length,d.getOption(79)==="spread"),new i.SelectionBasedVariableResolver(_,d.getSelection(),0,u),new i.CommentBasedVariableResolver(_,d.getSelection(),f),new i.TimeBasedVariableResolver,new i.WorkspaceBasedVariableResolver(d.invokeWithinContext(R=>R.get(a.IWorkspaceContextService))),new i.RandomBasedVariableResolver]);s=s.sort((R,M)=>S.Range.compareRangesUsingStarts(R.range,M.range));let A=0;for(let R=0;R0){const W=s[R-1].range,V=S.Range.fromPositions(W.getEndPosition(),M.getStartPosition()),z=new n.Text(_.getValueInRange(V));I.appendChild(z),A+=z.value.length}const P=E.parseFragment(N,I);t.adjustWhitespace(_,M.getStartPosition(),!0,I,new Set(P)),I.resolveVariables(T);const F=I.toString(),O=F.slice(A);A=F.length;const B=D.EditOperation.replace(M,O);B.identifier={major:R,minor:0},B._isTracked=!0,C.push(B)}return E.ensureFinalTabstop(I,l,!0),{edits:C,snippets:[new o(d,I,"")]}}constructor(d,s,l=g,r){this._editor=d,this._template=s,this._options=l,this._languageConfigurationService=r,this._templateMerges=[],this._snippets=[]}dispose(){(0,k.dispose)(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:d,snippets:s}=typeof this._template=="string"?t.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):t.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=s,this._editor.executeEdits("snippet",d,l=>{const r=l.filter(h=>!!h.identifier);for(let h=0;hp.Selection.fromPositions(h.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(d,s=g){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,d]);const{edits:l,snippets:r}=t.createEditsAndSnippetsFromSelections(this._editor,d,s.overwriteBefore,s.overwriteAfter,!0,s.adjustWhitespace,s.clipboardText,s.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",l,h=>{const u=h.filter(C=>!!C.identifier);for(let C=0;Cp.Selection.fromPositions(C.range.getEndPosition()))})}next(){const d=this._move(!0);this._editor.setSelections(d),this._editor.revealPositionInCenterIfOutsideViewport(d[0].getPosition())}prev(){const d=this._move(!1);this._editor.setSelections(d),this._editor.revealPositionInCenterIfOutsideViewport(d[0].getPosition())}_move(d){const s=[];for(const l of this._snippets){const r=l.move(d);s.push(...r)}return s}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const d=this._editor.getSelections();if(d.length{h.push(...r.get(u))})}d.sort(S.Range.compareRangesUsingStarts);for(const[l,r]of s){if(r.length!==d.length){s.delete(l);continue}r.sort(S.Range.compareRangesUsingStarts);for(let h=0;h0}};e.SnippetSession=m,e.SnippetSession=m=t=De([he(3,w.ILanguageConfigurationService)],m)}),define(ne[202],se([1,0,2,20,16,9,21,33,18,144,723,14,60,397]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";var t;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetController2=void 0;const o={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let g=t=class{static get(d){return d.getContribution(t.ID)}constructor(d,s,l,r,h){this._editor=d,this._logService=s,this._languageFeaturesService=l,this._languageConfigurationService=h,this._snippetListener=new L.DisposableStore,this._modelVersionId=-1,this._inSnippet=t.InSnippetMode.bindTo(r),this._hasNextTabstop=t.HasNextTabstop.bindTo(r),this._hasPrevTabstop=t.HasPrevTabstop.bindTo(r)}dispose(){var d;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(d=this._session)===null||d===void 0||d.dispose(),this._snippetListener.dispose()}insert(d,s){try{this._doInsert(d,typeof s>"u"?o:{...o,...s})}catch(l){this.cancel(),this._logService.error(l),this._logService.error("snippet_error"),this._logService.error("insert_template=",d),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(d,s){var l;if(this._editor.hasModel()){if(this._snippetListener.clear(),s.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof d!="string"&&this.cancel(),this._session?((0,k.assertType)(typeof d=="string"),this._session.merge(d,s)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new i.SnippetSession(this._editor,d,s,this._languageConfigurationService),this._session.insert()),s.undoStopAfter&&this._editor.getModel().pushStackElement(),!((l=this._session)===null||l===void 0)&&l.hasChoice){const r={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(E,I)=>{if(!this._session||E!==this._editor.getModel()||!D.Position.equals(this._editor.getPosition(),I))return;const{activeChoice:T}=this._session;if(!T||T.choice.options.length===0)return;const A=E.getValueInRange(T.range),R=!!T.choice.options.find(N=>N.value===A),M=[];for(let N=0;N{u?.dispose(),f=!1},_=()=>{f||(u=this._languageFeaturesService.completionProvider.register({language:h.getLanguageId(),pattern:h.uri.fsPath,scheme:h.uri.scheme,exclusive:!0},r),this._snippetListener.add(u),f=!0)};this._choiceCompletions={provider:r,enable:_,disable:C}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(r=>r.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var d;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:s}=this._session;if(!s||!this._choiceCompletions){(d=this._choiceCompletions)===null||d===void 0||d.disable(),this._currentChoice=void 0;return}this._currentChoice!==s.choice&&(this._currentChoice=s.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{(0,v.showSimpleSuggestions)(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(d=!1){var s;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(s=this._session)===null||s===void 0||s.dispose(),this._session=void 0,this._modelVersionId=-1,d&&this._editor.setSelections([this._editor.getSelection()])}prev(){var d;(d=this._session)===null||d===void 0||d.prev(),this._updateState()}next(){var d;(d=this._session)===null||d===void 0||d.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};e.SnippetController2=g,g.ID="snippetController2",g.InSnippetMode=new a.RawContextKey("inSnippetMode",!1,(0,b.localize)(0,null)),g.HasNextTabstop=new a.RawContextKey("hasNextTabstop",!1,(0,b.localize)(1,null)),g.HasPrevTabstop=new a.RawContextKey("hasPrevTabstop",!1,(0,b.localize)(2,null)),e.SnippetController2=g=t=De([he(1,n.ILogService),he(2,w.ILanguageFeaturesService),he(3,a.IContextKeyService),he(4,p.ILanguageConfigurationService)],g),(0,y.registerEditorContribution)(g.ID,g,4);const m=y.EditorCommand.bindToContribution(g.get);(0,y.registerEditorCommand)(new m({id:"jumpToNextSnippetPlaceholder",precondition:a.ContextKeyExpr.and(g.InSnippetMode,g.HasNextTabstop),handler:c=>c.next(),kbOpts:{weight:130,kbExpr:S.EditorContextKeys.editorTextFocus,primary:2}})),(0,y.registerEditorCommand)(new m({id:"jumpToPrevSnippetPlaceholder",precondition:a.ContextKeyExpr.and(g.InSnippetMode,g.HasPrevTabstop),handler:c=>c.prev(),kbOpts:{weight:130,kbExpr:S.EditorContextKeys.editorTextFocus,primary:1026}})),(0,y.registerEditorCommand)(new m({id:"leaveSnippet",precondition:g.InSnippetMode,handler:c=>c.cancel(!0),kbOpts:{weight:130,kbExpr:S.EditorContextKeys.editorTextFocus,primary:9,secondary:[1033]}})),(0,y.registerEditorCommand)(new m({id:"acceptSnippet",precondition:g.InSnippetMode,handler:c=>c.finish()}))}),define(ne[940],se([1,0,62,12,2,32,11,20,68,9,5,23,30,33,189,807,223,140,202,25,8]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSecondaryEdits=e.InlineCompletionsModel=e.VersionIdChangeReason=void 0;var l;(function(C){C[C.Undo=0]="Undo",C[C.Redo=1]="Redo",C[C.AcceptWord=2]="AcceptWord",C[C.Other=3]="Other"})(l||(e.VersionIdChangeReason=l={}));let r=class extends y.Disposable{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(_,E,I,T,A,R,M,N,P,F,O,B){super(),this.textModel=_,this.selectedSuggestItem=E,this.textModelVersionId=I,this._positions=T,this._debounceValue=A,this._suggestPreviewEnabled=R,this._suggestPreviewMode=M,this._inlineSuggestMode=N,this._enabled=P,this._instantiationService=F,this._commandService=O,this._languageConfigurationService=B,this._source=this._register(this._instantiationService.createInstance(o.InlineCompletionsSource,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=(0,D.observableValue)(this,!1),this._forceUpdateSignal=(0,D.observableSignal)("forceUpdate"),this._selectedInlineCompletionId=(0,D.observableValue)(this,void 0),this._primaryPosition=(0,D.derived)(this,V=>{var z;return(z=this._positions.read(V)[0])!==null&&z!==void 0?z:new v.Position(1,1)}),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([l.Redo,l.Undo,l.AcceptWord]),this._fetchInlineCompletions=(0,D.derivedHandleChanges)({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:n.InlineCompletionTriggerKind.Automatic}),handleChange:(V,z)=>(V.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(V.change)?z.preserveCurrentCompletion=!0:V.didChange(this._forceUpdateSignal)&&(z.inlineCompletionTriggerKind=V.change),!0)},(V,z)=>{if(this._forceUpdateSignal.read(V),!(this._enabled.read(V)&&this.selectedSuggestItem.read(V)||this._isActive.read(V))){this._source.cancelUpdate();return}this.textModelVersionId.read(V);const j=this.selectedInlineCompletion.get(),x=z.preserveCurrentCompletion||j?.forwardStable?j:void 0,re=this._source.suggestWidgetInlineCompletions.get(),ie=this.selectedSuggestItem.read(V);if(re&&!ie){const Y=this._source.inlineCompletions.get();(0,D.transaction)(le=>{(!Y||re.request.versionId>Y.request.versionId)&&this._source.inlineCompletions.set(re.clone(),le),this._source.clearSuggestWidgetInlineCompletions(le)})}const J=this._primaryPosition.read(V),X={triggerKind:z.inlineCompletionTriggerKind,selectedSuggestionInfo:ie?.toSelectedSuggestionInfo()};return this._source.fetch(J,X,x)}),this._filteredInlineCompletionItems=(0,D.derived)(this,V=>{const z=this._source.inlineCompletions.read(V);if(!z)return[];const K=this._primaryPosition.read(V);return z.inlineCompletions.filter(x=>x.isVisible(this.textModel,K,V))}),this.selectedInlineCompletionIndex=(0,D.derived)(this,V=>{const z=this._selectedInlineCompletionId.read(V),K=this._filteredInlineCompletionItems.read(V),j=this._selectedInlineCompletionId===void 0?-1:K.findIndex(x=>x.semanticId===z);return j===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):j}),this.selectedInlineCompletion=(0,D.derived)(this,V=>{const z=this._filteredInlineCompletionItems.read(V),K=this.selectedInlineCompletionIndex.read(V);return z[K]}),this.lastTriggerKind=this._source.inlineCompletions.map(this,V=>V?.request.context.triggerKind),this.inlineCompletionsCount=(0,D.derived)(this,V=>{if(this.lastTriggerKind.read(V)===n.InlineCompletionTriggerKind.Explicit)return this._filteredInlineCompletionItems.read(V).length}),this.state=(0,D.derivedOpts)({owner:this,equalityComparer:(V,z)=>!V||!z?V===z:(0,t.ghostTextsOrReplacementsEqual)(V.ghostTexts,z.ghostTexts)&&V.inlineCompletion===z.inlineCompletion&&V.suggestItem===z.suggestItem},V=>{var z,K;const j=this.textModel,x=this.selectedSuggestItem.read(V);if(x){const re=x.toSingleTextEdit().removeCommonPrefix(j),ie=this._computeAugmentation(re,V);if(!this._suggestPreviewEnabled.read(V)&&!ie)return;const X=(z=ie?.edit)!==null&&z!==void 0?z:re,Y=ie?ie.edit.text.length-re.text.length:0,le=this._suggestPreviewMode.read(V),de=this._positions.read(V),ge=[X,...h(this.textModel,de,X)],pe=ge.map((U,Z)=>U.computeGhostText(j,le,de[Z],Y)).filter(p.isDefined),Q=(K=pe[0])!==null&&K!==void 0?K:new t.GhostText(X.range.endLineNumber,[]);return{edits:ge,primaryGhostText:Q,ghostTexts:pe,inlineCompletion:ie?.completion,suggestItem:x}}else{if(!this._isActive.read(V))return;const re=this.selectedInlineCompletion.read(V);if(!re)return;const ie=re.toSingleTextEdit(V),J=this._inlineSuggestMode.read(V),X=this._positions.read(V),Y=[ie,...h(this.textModel,X,ie)],le=Y.map((de,ge)=>de.computeGhostText(j,J,X[ge],0)).filter(p.isDefined);return le[0]?{edits:Y,primaryGhostText:le[0],ghostTexts:le,inlineCompletion:re,suggestItem:void 0}:void 0}}),this.ghostTexts=(0,D.derivedOpts)({owner:this,equalityComparer:t.ghostTextsOrReplacementsEqual},V=>{const z=this.state.read(V);if(z)return z.ghostTexts}),this.primaryGhostText=(0,D.derivedOpts)({owner:this,equalityComparer:t.ghostTextOrReplacementEquals},V=>{const z=this.state.read(V);if(z)return z?.primaryGhostText}),this._register((0,D.recomputeInitiallyAndOnChange)(this._fetchInlineCompletions));let W;this._register((0,D.autorun)(V=>{var z,K;const j=this.state.read(V),x=j?.inlineCompletion;if(x?.semanticId!==W?.semanticId&&(W=x,x)){const re=x.inlineCompletion,ie=re.source;(K=(z=ie.provider).handleItemDidShow)===null||K===void 0||K.call(z,ie.inlineCompletions,re.sourceInlineCompletion,re.insertText)}}))}async trigger(_){this._isActive.set(!0,_),await this._fetchInlineCompletions.get()}async triggerExplicitly(_){(0,D.subtransaction)(_,E=>{this._isActive.set(!0,E),this._forceUpdateSignal.trigger(E,n.InlineCompletionTriggerKind.Explicit)}),await this._fetchInlineCompletions.get()}stop(_){(0,D.subtransaction)(_,E=>{this._isActive.set(!1,E),this._source.clear(E)})}_computeAugmentation(_,E){const I=this.textModel,T=this._source.suggestWidgetInlineCompletions.read(E),A=T?T.inlineCompletions:[this.selectedInlineCompletion.read(E)].filter(p.isDefined);return(0,L.mapFindFirst)(A,M=>{let N=M.toSingleTextEdit(E);return N=N.removeCommonPrefix(I,b.Range.fromPositions(N.range.getStartPosition(),_.range.getEndPosition())),N.augments(_)?{completion:M,edit:N}:void 0})}async _deltaSelectedInlineCompletionIndex(_){await this.triggerExplicitly();const E=this._filteredInlineCompletionItems.get()||[];if(E.length>0){const I=(this.selectedInlineCompletionIndex.get()+_+E.length)%E.length;this._selectedInlineCompletionId.set(E[I].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(_){var E;if(_.getModel()!==this.textModel)throw new k.BugIndicatingError;const I=this.state.get();if(!I||I.primaryGhostText.isEmpty()||!I.inlineCompletion)return;const T=I.inlineCompletion.toInlineCompletion(void 0);if(_.pushUndoStop(),T.snippetInfo)_.executeEdits("inlineSuggestion.accept",[w.EditOperation.replaceMove(T.range,""),...T.additionalTextEdits]),_.setPosition(T.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),(E=c.SnippetController2.get(_))===null||E===void 0||E.insert(T.snippetInfo.snippet,{undoStopBefore:!1});else{const A=I.edits,R=f(A).map(M=>a.Selection.fromPositions(M));_.executeEdits("inlineSuggestion.accept",[...A.map(M=>w.EditOperation.replaceMove(M.range,M.text)),...T.additionalTextEdits]),_.setSelections(R,"inlineCompletionAccept")}T.command&&T.source.addRef(),(0,D.transaction)(A=>{this._source.clear(A),this._isActive.set(!1,A)}),T.command&&(await this._commandService.executeCommand(T.command.id,...T.command.arguments||[]).then(void 0,k.onUnexpectedExternalError),T.source.removeRef())}async acceptNextWord(_){await this._acceptNext(_,(E,I)=>{const T=this.textModel.getLanguageIdAtPosition(E.lineNumber,E.column),A=this._languageConfigurationService.getLanguageConfiguration(T),R=new RegExp(A.wordDefinition.source,A.wordDefinition.flags.replace("g","")),M=I.match(R);let N=0;M&&M.index!==void 0?M.index===0?N=M[0].length:N=M.index:N=I.length;const F=/\s+/g.exec(I);return F&&F.index!==void 0&&F.index+F[0].length{const T=I.match(/\n/);return T&&T.index!==void 0?T.index+1:I.length})}async _acceptNext(_,E){if(_.getModel()!==this.textModel)throw new k.BugIndicatingError;const I=this.state.get();if(!I||I.primaryGhostText.isEmpty()||!I.inlineCompletion)return;const T=I.primaryGhostText,A=I.inlineCompletion.toInlineCompletion(void 0);if(A.snippetInfo||A.filterText!==A.insertText){await this.accept(_);return}const R=T.parts[0],M=new v.Position(T.lineNumber,R.column),N=R.text,P=E(M,N);if(P===N.length&&T.parts.length===1){this.accept(_);return}const F=N.substring(0,P),O=this._positions.get(),B=O[0];A.source.addRef();try{this._isAcceptingPartially=!0;try{_.pushUndoStop();const W=b.Range.fromPositions(B,M),V=_.getModel().getValueInRange(W)+F,z=new g.SingleTextEdit(W,V),K=[z,...h(this.textModel,O,z)],j=f(K).map(x=>a.Selection.fromPositions(x));_.executeEdits("inlineSuggestion.accept",K.map(x=>w.EditOperation.replaceMove(x.range,x.text))),_.setSelections(j,"inlineCompletionPartialAccept")}finally{this._isAcceptingPartially=!1}if(A.source.provider.handlePartialAccept){const W=b.Range.fromPositions(A.range.getStartPosition(),(0,m.addPositions)(M,(0,m.lengthOfText)(F))),V=_.getModel().getValueInRange(W,1);A.source.provider.handlePartialAccept(A.source.inlineCompletions,A.sourceInlineCompletion,V.length)}}finally{A.source.removeRef()}}handleSuggestAccepted(_){var E,I;const T=_.toSingleTextEdit().removeCommonPrefix(this.textModel),A=this._computeAugmentation(T,void 0);if(!A)return;const R=A.completion.inlineCompletion;(I=(E=R.source.provider).handlePartialAccept)===null||I===void 0||I.call(E,R.source.inlineCompletions,R.sourceInlineCompletion,T.text.length)}};e.InlineCompletionsModel=r,e.InlineCompletionsModel=r=De([he(9,s.IInstantiationService),he(10,d.ICommandService),he(11,i.ILanguageConfigurationService)],r);function h(C,_,E){if(_.length===1)return[];const I=_[0],T=_.slice(1),A=E.range.getStartPosition(),R=E.range.getEndPosition(),M=C.getValueInRange(b.Range.fromPositions(I,R)),N=(0,m.subtractPositions)(I,A);if(N.lineNumber<1)return(0,k.onUnexpectedError)(new k.BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0. + Invalid subtraction between ${I.toString()} and ${A.toString()}`)),[];const P=u(E.text,N);return T.map(F=>{const O=(0,m.addPositions)((0,m.subtractPositions)(F,A),R),B=C.getValueInRange(b.Range.fromPositions(F,O)),W=(0,S.commonPrefixLength)(M,B),V=b.Range.fromPositions(F,F.delta(0,W));return new g.SingleTextEdit(V,P)})}e.getSecondaryEdits=h;function u(C,_){let E="";const I=(0,S.splitLinesIncludeSeparators)(C);for(let T=_.lineNumber-1;Tb.Range.compareRangesUsingStarts(T.range,A.range)),E=(0,m.getNewRanges)(_.apply(C));return _.inverse().apply(E).map(T=>T.getEndPosition())}}),define(ne[398],se([1,0,15,19,12,7,2,11,23,123,319,107,26,14,60,61,318,144,18,73,20,246,202,248]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestModel=e.LineContext=void 0;class f{static shouldAutoTrigger(T){if(!T.hasModel())return!1;const A=T.getModel(),R=T.getPosition();A.tokenization.tokenizeIfCheap(R.lineNumber);const M=A.getWordAtPosition(R);return!(!M||M.endColumn!==R.column&&M.startColumn+1!==R.column||!isNaN(Number(M.word)))}constructor(T,A,R){this.leadingLineContent=T.getLineContent(A.lineNumber).substr(0,A.column-1),this.leadingWord=T.getWordUntilPosition(A),this.lineNumber=A.lineNumber,this.column=A.column,this.triggerOptions=R}}e.LineContext=f;function C(I,T,A){if(!T.getContextKeyValue(l.InlineCompletionContextKeys.inlineSuggestionVisible.key))return!0;const R=T.getContextKeyValue(l.InlineCompletionContextKeys.suppressSuggestions.key);return R!==void 0?!R:!I.getOption(62).suppressSuggestions}function _(I,T,A){if(!T.getContextKeyValue("inlineSuggestionVisible"))return!0;const R=T.getContextKeyValue(l.InlineCompletionContextKeys.suppressSuggestions.key);return R!==void 0?!R:!I.getOption(62).suppressSuggestions}let E=u=class{constructor(T,A,R,M,N,P,F,O,B){this._editor=T,this._editorWorkerService=A,this._clipboardService=R,this._telemetryService=M,this._logService=N,this._contextKeyService=P,this._configurationService=F,this._languageFeaturesService=O,this._envService=B,this._toDispose=new S.DisposableStore,this._triggerCharacterListener=new S.DisposableStore,this._triggerQuickSuggest=new L.TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new S.DisposableStore,this._onDidCancel=new D.Emitter,this._onDidTrigger=new D.Emitter,this._onDidSuggest=new D.Emitter,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new w.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let W=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{W=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{W=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(V=>{W||this._onCursorChange(V)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!W&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){(0,S.dispose)(this._triggerCharacterListener),(0,S.dispose)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(91)||!this._editor.hasModel()||!this._editor.getOption(121))return;const T=new Map;for(const R of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const M of R.triggerCharacters||[]){let N=T.get(M);N||(N=new Set,N.add((0,m.getSnippetSuggestSupport)()),T.set(M,N)),N.add(R)}const A=R=>{var M;if(!_(this._editor,this._contextKeyService,this._configurationService)||f.shouldAutoTrigger(this._editor))return;if(!R){const F=this._editor.getPosition();R=this._editor.getModel().getLineContent(F.lineNumber).substr(0,F.column-1)}let N="";(0,p.isLowSurrogate)(R.charCodeAt(R.length-1))?(0,p.isHighSurrogate)(R.charCodeAt(R.length-2))&&(N=R.substr(R.length-2)):N=R.charAt(R.length-1);const P=T.get(N);if(P){const F=new Map;if(this._completionModel)for(const[O,B]of this._completionModel.getItemsByProvider())P.has(O)||F.set(O,B);this.trigger({auto:!0,triggerKind:1,triggerCharacter:N,retrigger:!!this._completionModel,clipboardText:(M=this._completionModel)===null||M===void 0?void 0:M.clipboardText,completionOptions:{providerFilter:P,providerItemsToReuse:F}})}};this._triggerCharacterListener.add(this._editor.onDidType(A)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>A()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(T=!1){var A;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(A=this._requestToken)===null||A===void 0||A.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:T}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(T){if(!this._editor.hasModel())return;const A=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!T.selection.isEmpty()||T.reason!==0&&T.reason!==3||T.source!=="keyboard"&&T.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&T.reason===0?(A.containsRange(this._currentSelection)||A.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&T.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var T;m.QuickSuggestionsOptions.isAllOff(this._editor.getOption(89))||this._editor.getOption(118).snippetsPreventQuickSuggestions&&(!((T=r.SnippetController2.get(this._editor))===null||T===void 0)&&T.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!f.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const A=this._editor.getModel(),R=this._editor.getPosition(),M=this._editor.getOption(89);if(!m.QuickSuggestionsOptions.isAllOff(M)){if(!m.QuickSuggestionsOptions.isAllOn(M)){A.tokenization.tokenizeIfCheap(R.lineNumber);const N=A.tokenization.getLineTokens(R.lineNumber),P=N.getStandardTokenType(N.findTokenIndexAtOffset(Math.max(R.column-1-1,0)));if(m.QuickSuggestionsOptions.valueFor(M,P)!=="on")return}C(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(A)&&this.trigger({auto:!0})}},this._editor.getOption(90)))}_refilterCompletionItems(){(0,s.assertType)(this._editor.hasModel()),(0,s.assertType)(this._triggerState!==void 0);const T=this._editor.getModel(),A=this._editor.getPosition(),R=new f(T,A,{...this._triggerState,refilter:!0});this._onNewContext(R)}trigger(T){var A,R,M,N,P,F;if(!this._editor.hasModel())return;const O=this._editor.getModel(),B=new f(O,this._editor.getPosition(),T);this.cancel(T.retrigger),this._triggerState=T,this._onDidTrigger.fire({auto:T.auto,shy:(A=T.shy)!==null&&A!==void 0?A:!1,position:this._editor.getPosition()}),this._context=B;let W={triggerKind:(R=T.triggerKind)!==null&&R!==void 0?R:0};T.triggerCharacter&&(W={triggerKind:1,triggerCharacter:T.triggerCharacter}),this._requestToken=new k.CancellationTokenSource;const V=this._editor.getOption(112);let z=1;switch(V){case"top":z=0;break;case"bottom":z=2;break}const{itemKind:K,showDeprecated:j}=u.createSuggestFilter(this._editor),x=new m.CompletionOptions(z,(N=(M=T.completionOptions)===null||M===void 0?void 0:M.kindFilter)!==null&&N!==void 0?N:K,(P=T.completionOptions)===null||P===void 0?void 0:P.providerFilter,(F=T.completionOptions)===null||F===void 0?void 0:F.providerItemsToReuse,j),re=b.WordDistance.create(this._editorWorkerService,this._editor),ie=(0,m.provideSuggestionItems)(this._languageFeaturesService.completionProvider,O,this._editor.getPosition(),x,W,this._requestToken.token);Promise.all([ie,re]).then(async([J,X])=>{var Y;if((Y=this._requestToken)===null||Y===void 0||Y.dispose(),!this._editor.hasModel())return;let le=T?.clipboardText;if(!le&&J.needsClipboard&&(le=await this._clipboardService.readText()),this._triggerState===void 0)return;const de=this._editor.getModel(),ge=new f(de,this._editor.getPosition(),T),pe={...d.FuzzyScoreOptions.default,firstMatchCanBeWeak:!this._editor.getOption(118).matchOnWordStartOnly};if(this._completionModel=new g.CompletionModel(J.items,this._context.column,{leadingLineContent:ge.leadingLineContent,characterCountDelta:ge.column-this._context.column},X,this._editor.getOption(118),this._editor.getOption(112),pe,le),this._completionDisposables.add(J.disposable),this._onNewContext(ge),this._reportDurationsTelemetry(J.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const Q of J.items)Q.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${Q.provider._debugDisplayName}`,Q.completion)}).catch(y.onUnexpectedError)}_reportDurationsTelemetry(T){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(T)}),this._logService.debug("suggest.durations.json",T)})}static createSuggestFilter(T){const A=new Set;T.getOption(112)==="none"&&A.add(27);const M=T.getOption(118);return M.showMethods||A.add(0),M.showFunctions||A.add(1),M.showConstructors||A.add(2),M.showFields||A.add(3),M.showVariables||A.add(4),M.showClasses||A.add(5),M.showStructs||A.add(6),M.showInterfaces||A.add(7),M.showModules||A.add(8),M.showProperties||A.add(9),M.showEvents||A.add(10),M.showOperators||A.add(11),M.showUnits||A.add(12),M.showValues||A.add(13),M.showConstants||A.add(14),M.showEnums||A.add(15),M.showEnumMembers||A.add(16),M.showKeywords||A.add(17),M.showWords||A.add(18),M.showColors||A.add(19),M.showFiles||A.add(20),M.showReferences||A.add(21),M.showColors||A.add(22),M.showFolders||A.add(23),M.showTypeParameters||A.add(24),M.showSnippets||A.add(27),M.showUsers||A.add(25),M.showIssues||A.add(26),{itemKind:A,showDeprecated:M.showDeprecated}}_onNewContext(T){if(this._context){if(T.lineNumber!==this._context.lineNumber){this.cancel();return}if((0,p.getLeadingWhitespace)(T.leadingLineContent)!==(0,p.getLeadingWhitespace)(this._context.leadingLineContent)){this.cancel();return}if(T.columnthis._context.leadingWord.startColumn){if(f.shouldAutoTrigger(this._editor)&&this._context){const R=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:R}})}return}if(T.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&T.leadingWord.word.length!==0){const A=new Map,R=new Set;for(const[M,N]of this._completionModel.getItemsByProvider())N.length>0&&N[0].container.incomplete?R.add(M):A.set(M,N);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:R,providerItemsToReuse:A}})}else{const A=this._completionModel.lineContext;let R=!1;if(this._completionModel.lineContext={leadingLineContent:T.leadingLineContent,characterCountDelta:T.column-this._context.column},this._completionModel.items.length===0){const M=f.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(M&&this._context.leadingWord.endColumn0,R&&T.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:T.triggerOptions,isFrozen:R})}}}}};e.SuggestModel=E,e.SuggestModel=E=u=De([he(1,v.IEditorWorkerService),he(2,a.IClipboardService),he(3,o.ITelemetryService),he(4,t.ILogService),he(5,i.IContextKeyService),he(6,n.IConfigurationService),he(7,c.ILanguageFeaturesService),he(8,h.IEnvironmentService)],E)}),define(ne[399],se([1,0,44,13,19,12,7,127,2,17,63,20,131,16,68,9,5,21,202,120,365,780,727,25,14,8,60,144,779,573,398,574,922,61,48,114,6,38]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R,M,N,P,F,O){"use strict";var B;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerSuggestAction=e.SuggestController=void 0;const W=!1;class V{constructor(J,X){if(this._model=J,this._position=X,this._decorationOptions=O.ModelDecorationOptions.register({description:"suggest-line-suffix",stickiness:1}),J.getLineMaxColumn(X.lineNumber)!==X.column){const le=J.getOffsetAt(X),de=J.getPositionAt(le+1);J.changeDecorations(ge=>{this._marker&&ge.removeDecoration(this._marker),this._marker=ge.addDecoration(g.Range.fromPositions(X,de),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(J=>{J.removeDecoration(this._marker),this._marker=void 0})}delta(J){if(this._model.isDisposed()||this._position.lineNumber!==J.lineNumber)return 0;if(this._marker){const X=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(X.getStartPosition())-this._model.getOffsetAt(J)}else return this._model.getLineMaxColumn(J.lineNumber)-J.column}}let z=B=class{static get(J){return J.getContribution(B.ID)}constructor(J,X,Y,le,de,ge,pe){this._memoryService=X,this._commandService=Y,this._contextKeyService=le,this._instantiationService=de,this._logService=ge,this._telemetryService=pe,this._lineSuffix=new w.MutableDisposable,this._toDispose=new w.DisposableStore,this._selectors=new K(H=>H.priority),this._onWillInsertSuggestItem=new S.Emitter,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=J,this.model=de.createInstance(T.SuggestModel,this.editor),this._selectors.register({priority:0,select:(H,q,te)=>this._memoryService.select(H,q,te)});const Q=_.Context.InsertMode.bindTo(le);Q.set(J.getOption(118).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>Q.set(J.getOption(118).insertMode))),this.widget=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(J.getDomNode()),()=>{const H=this._instantiationService.createInstance(R.SuggestWidget,this.editor);this._toDispose.add(H),this._toDispose.add(H.onDidSelect(oe=>this._insertSuggestion(oe,0),this));const q=new I.CommitCharacterController(this.editor,H,this.model,oe=>this._insertSuggestion(oe,2));this._toDispose.add(q);const te=_.Context.MakesTextEdit.bindTo(this._contextKeyService),G=_.Context.HasInsertAndReplaceRange.bindTo(this._contextKeyService),$=_.Context.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,w.toDisposable)(()=>{te.reset(),G.reset(),$.reset()})),this._toDispose.add(H.onDidFocus(({item:oe})=>{const ae=this.editor.getPosition(),ue=oe.editStart.column,ce=ae.column;let fe=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!oe.completion.additionalTextEdits&&!(oe.completion.insertTextRules&4)&&ce-ue===oe.completion.insertText.length&&(fe=this.editor.getModel().getValueInRange({startLineNumber:ae.lineNumber,startColumn:ue,endLineNumber:ae.lineNumber,endColumn:ce})!==oe.completion.insertText),te.set(fe),G.set(!o.Position.equals(oe.editInsertEnd,oe.editReplaceEnd)),$.set(!!oe.provider.resolveCompletionItem||!!oe.completion.documentation||oe.completion.detail!==oe.completion.label)})),this._toDispose.add(H.onDetailsKeyDown(oe=>{if(oe.toKeyCodeChord().equals(new p.KeyCodeChord(!0,!1,!1,!1,33))||v.isMacintosh&&oe.toKeyCodeChord().equals(new p.KeyCodeChord(!1,!1,!1,!0,33))){oe.stopPropagation();return}oe.toKeyCodeChord().isModifierKey()||this.editor.focus()})),H})),this._overtypingCapturer=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(J.getDomNode()),()=>this._toDispose.add(new A.OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(J.getDomNode()),()=>this._toDispose.add(new E.SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(de.createInstance(l.WordContextKey,J)),this._toDispose.add(this.model.onDidTrigger(H=>{this.widget.value.showTriggered(H.auto,H.shy?250:50),this._lineSuffix.value=new V(this.editor.getModel(),H.position)})),this._toDispose.add(this.model.onDidSuggest(H=>{if(H.triggerOptions.shy)return;let q=-1;for(const G of this._selectors.itemsOrderedByPriorityDesc)if(q=G.select(this.editor.getModel(),this.editor.getPosition(),H.completionModel.items),q!==-1)break;if(q===-1&&(q=0),this.model.state===0)return;let te=!1;if(H.triggerOptions.auto){const G=this.editor.getOption(118);G.selectionMode==="never"||G.selectionMode==="always"?te=G.selectionMode==="never":G.selectionMode==="whenTriggerCharacter"?te=H.triggerOptions.triggerKind!==1:G.selectionMode==="whenQuickSuggestion"&&(te=H.triggerOptions.triggerKind===1&&!H.triggerOptions.refilter)}this.widget.value.showSuggestions(H.completionModel,q,H.isFrozen,H.triggerOptions.auto,te)})),this._toDispose.add(this.model.onDidCancel(H=>{H.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{W||(this.model.cancel(),this.model.clear())}));const U=_.Context.AcceptSuggestionsOnEnter.bindTo(le),Z=()=>{const H=this.editor.getOption(1);U.set(H==="on"||H==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>Z())),Z()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(J,X){if(!J||!J.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const Y=c.SnippetController2.get(this.editor);if(!Y)return;this._onWillInsertSuggestItem.fire({item:J.item});const le=this.editor.getModel(),de=le.getAlternativeVersionId(),{item:ge}=J,pe=[],Q=new y.CancellationTokenSource;X&1||this.editor.pushUndoStop();const U=this.getOverwriteInfo(ge,!!(X&8));this._memoryService.memorize(le,this.editor.getPosition(),ge);const Z=ge.isResolved;let H=-1,q=-1;if(Array.isArray(ge.completion.additionalTextEdits)){this.model.cancel();const G=n.StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",ge.completion.additionalTextEdits.map($=>{let oe=g.Range.lift($.range);if(oe.startLineNumber===ge.position.lineNumber&&oe.startColumn>ge.position.column){const ae=this.editor.getPosition().column-ge.position.column,ue=ae,ce=g.Range.spansMultipleLines(oe)?0:ae;oe=new g.Range(oe.startLineNumber,oe.startColumn+ue,oe.endLineNumber,oe.endColumn+ce)}return t.EditOperation.replaceMove(oe,$.text)})),G.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!Z){const G=new b.StopWatch;let $;const oe=le.onDidChangeContent(fe=>{if(fe.isFlush){Q.cancel(),oe.dispose();return}for(const ve of fe.changes){const Ce=g.Range.getEndPosition(ve.range);(!$||o.Position.isBefore(Ce,$))&&($=Ce)}}),ae=X;X|=2;let ue=!1;const ce=this.editor.onWillType(()=>{ce.dispose(),ue=!0,ae&2||this.editor.pushUndoStop()});pe.push(ge.resolve(Q.token).then(()=>{if(!ge.completion.additionalTextEdits||Q.token.isCancellationRequested)return;if($&&ge.completion.additionalTextEdits.some(ve=>o.Position.isBefore($,g.Range.getStartPosition(ve.range))))return!1;ue&&this.editor.pushUndoStop();const fe=n.StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",ge.completion.additionalTextEdits.map(ve=>t.EditOperation.replaceMove(g.Range.lift(ve.range),ve.text))),fe.restoreRelativeVerticalPositionOfCursor(this.editor),(ue||!(ae&2))&&this.editor.pushUndoStop(),!0}).then(fe=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",G.elapsed(),fe),q=fe===!0?1:fe===!1?0:-2}).finally(()=>{oe.dispose(),ce.dispose()}))}let{insertText:te}=ge.completion;if(ge.completion.insertTextRules&4||(te=d.SnippetParser.escape(te)),this.model.cancel(),Y.insert(te,{overwriteBefore:U.overwriteBefore,overwriteAfter:U.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(ge.completion.insertTextRules&1),clipboardText:J.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),X&2||this.editor.pushUndoStop(),ge.completion.command)if(ge.completion.command.id===j.id)this.model.trigger({auto:!0,retrigger:!0});else{const G=new b.StopWatch;pe.push(this._commandService.executeCommand(ge.completion.command.id,...ge.completion.command.arguments?[...ge.completion.command.arguments]:[]).catch($=>{ge.completion.extensionId?(0,D.onUnexpectedExternalError)($):(0,D.onUnexpectedError)($)}).finally(()=>{H=G.elapsed()}))}X&4&&this._alternatives.value.set(J,G=>{for(Q.cancel();le.canUndo();){de!==le.getAlternativeVersionId()&&le.undo(),this._insertSuggestion(G,3|(X&8?8:0));break}}),this._alertCompletionItem(ge),Promise.all(pe).finally(()=>{this._reportSuggestionAcceptedTelemetry(ge,le,Z,H,q),this.model.clear(),Q.dispose()})}_reportSuggestionAcceptedTelemetry(J,X,Y,le,de){var ge,pe,Q;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:(pe=(ge=J.extensionId)===null||ge===void 0?void 0:ge.value)!==null&&pe!==void 0?pe:"unknown",providerId:(Q=J.provider._debugDisplayName)!==null&&Q!==void 0?Q:"unknown",kind:J.completion.kind,basenameHash:(0,P.hash)((0,N.basename)(X.uri)).toString(16),languageId:X.getLanguageId(),fileExtension:(0,N.extname)(X.uri),resolveInfo:J.provider.resolveCompletionItem?Y?1:0:-1,resolveDuration:J.resolveDuration,commandDuration:le,additionalEditsAsync:de})}getOverwriteInfo(J,X){(0,a.assertType)(this.editor.hasModel());let Y=this.editor.getOption(118).insertMode==="replace";X&&(Y=!Y);const le=J.position.column-J.editStart.column,de=(Y?J.editReplaceEnd.column:J.editInsertEnd.column)-J.position.column,ge=this.editor.getPosition().column-J.position.column,pe=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:le+ge,overwriteAfter:de+pe}}_alertCompletionItem(J){if((0,k.isNonEmptyArray)(J.completion.additionalTextEdits)){const X=r.localize(0,null,J.textLabel,J.completion.additionalTextEdits.length);(0,L.alert)(X)}}triggerSuggest(J,X,Y){this.editor.hasModel()&&(this.model.trigger({auto:X??!1,completionOptions:{providerFilter:J,kindFilter:Y?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(J){if(!this.editor.hasModel())return;const X=this.editor.getPosition(),Y=()=>{X.equals(this.editor.getPosition())&&this._commandService.executeCommand(J.fallback)},le=de=>{if(de.completion.insertTextRules&4||de.completion.additionalTextEdits)return!0;const ge=this.editor.getPosition(),pe=de.editStart.column,Q=ge.column;return Q-pe!==de.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:ge.lineNumber,startColumn:pe,endLineNumber:ge.lineNumber,endColumn:Q})!==de.completion.insertText};S.Event.once(this.model.onDidTrigger)(de=>{const ge=[];S.Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{(0,w.dispose)(ge),Y()},void 0,ge),this.model.onDidSuggest(({completionModel:pe})=>{if((0,w.dispose)(ge),pe.items.length===0){Y();return}const Q=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),pe.items),U=pe.items[Q];if(!le(U)){Y();return}this.editor.pushUndoStop(),this._insertSuggestion({index:Q,item:U,model:pe},7)},void 0,ge)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(X,0),this.editor.focus()}acceptSelectedSuggestion(J,X){const Y=this.widget.value.getFocusedItem();let le=0;J&&(le|=4),X&&(le|=8),this._insertSuggestion(Y,le)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(J){return this._selectors.register(J)}};e.SuggestController=z,z.ID="editor.contrib.suggestController",e.SuggestController=z=B=De([he(1,s.ISuggestMemoryService),he(2,h.ICommandService),he(3,u.IContextKeyService),he(4,f.IInstantiationService),he(5,C.ILogService),he(6,M.ITelemetryService)],z);class K{constructor(J){this.prioritySelector=J,this._items=new Array}register(J){if(this._items.indexOf(J)!==-1)throw new Error("Value is already registered");return this._items.push(J),this._items.sort((X,Y)=>this.prioritySelector(Y)-this.prioritySelector(X)),{dispose:()=>{const X=this._items.indexOf(J);X>=0&&this._items.splice(X,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class j extends i.EditorAction{constructor(){super({id:j.id,label:r.localize(1,null),alias:"Trigger Suggest",precondition:u.ContextKeyExpr.and(m.EditorContextKeys.writable,m.EditorContextKeys.hasCompletionItemProvider,_.Context.Visible.toNegated()),kbOpts:{kbExpr:m.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(J,X,Y){const le=z.get(X);if(!le)return;let de;Y&&typeof Y=="object"&&Y.auto===!0&&(de=!0),le.triggerSuggest(void 0,de,void 0)}}e.TriggerSuggestAction=j,j.id="editor.action.triggerSuggest",(0,i.registerEditorContribution)(z.ID,z,2),(0,i.registerEditorAction)(j);const x=190,re=i.EditorCommand.bindToContribution(z.get);(0,i.registerEditorCommand)(new re({id:"acceptSelectedSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,_.Context.HasFocusedSuggestion),handler(ie){ie.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:u.ContextKeyExpr.and(_.Context.Visible,m.EditorContextKeys.textInputFocus),weight:x},{primary:3,kbExpr:u.ContextKeyExpr.and(_.Context.Visible,m.EditorContextKeys.textInputFocus,_.Context.AcceptSuggestionsOnEnter,_.Context.MakesTextEdit),weight:x}],menuOpts:[{menuId:_.suggestWidgetStatusbarMenu,title:r.localize(2,null),group:"left",order:1,when:_.Context.HasInsertAndReplaceRange.toNegated()},{menuId:_.suggestWidgetStatusbarMenu,title:r.localize(3,null),group:"left",order:1,when:u.ContextKeyExpr.and(_.Context.HasInsertAndReplaceRange,_.Context.InsertMode.isEqualTo("insert"))},{menuId:_.suggestWidgetStatusbarMenu,title:r.localize(4,null),group:"left",order:1,when:u.ContextKeyExpr.and(_.Context.HasInsertAndReplaceRange,_.Context.InsertMode.isEqualTo("replace"))}]})),(0,i.registerEditorCommand)(new re({id:"acceptAlternativeSelectedSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,m.EditorContextKeys.textInputFocus,_.Context.HasFocusedSuggestion),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(ie){ie.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:_.suggestWidgetStatusbarMenu,group:"left",order:2,when:u.ContextKeyExpr.and(_.Context.HasInsertAndReplaceRange,_.Context.InsertMode.isEqualTo("insert")),title:r.localize(5,null)},{menuId:_.suggestWidgetStatusbarMenu,group:"left",order:2,when:u.ContextKeyExpr.and(_.Context.HasInsertAndReplaceRange,_.Context.InsertMode.isEqualTo("replace")),title:r.localize(6,null)}]})),h.CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,i.registerEditorCommand)(new re({id:"hideSuggestWidget",precondition:_.Context.Visible,handler:ie=>ie.cancelSuggestWidget(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),(0,i.registerEditorCommand)(new re({id:"selectNextSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectNextSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,i.registerEditorCommand)(new re({id:"selectNextPageSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectNextPageSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),(0,i.registerEditorCommand)(new re({id:"selectLastSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectLastSuggestion()})),(0,i.registerEditorCommand)(new re({id:"selectPrevSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectPrevSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,i.registerEditorCommand)(new re({id:"selectPrevPageSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectPrevPageSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),(0,i.registerEditorCommand)(new re({id:"selectFirstSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,u.ContextKeyExpr.or(_.Context.MultipleSuggestions,_.Context.HasFocusedSuggestion.negate())),handler:ie=>ie.selectFirstSuggestion()})),(0,i.registerEditorCommand)(new re({id:"focusSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,_.Context.HasFocusedSuggestion.negate()),handler:ie=>ie.focusSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),(0,i.registerEditorCommand)(new re({id:"focusAndAcceptSuggestion",precondition:u.ContextKeyExpr.and(_.Context.Visible,_.Context.HasFocusedSuggestion.negate()),handler:ie=>{ie.focusSuggestion(),ie.acceptSelectedSuggestion(!0,!1)}})),(0,i.registerEditorCommand)(new re({id:"toggleSuggestionDetails",precondition:u.ContextKeyExpr.and(_.Context.Visible,_.Context.HasFocusedSuggestion),handler:ie=>ie.toggleSuggestionDetails(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:_.suggestWidgetStatusbarMenu,group:"right",order:1,when:u.ContextKeyExpr.and(_.Context.DetailsVisible,_.Context.CanResolve),title:r.localize(7,null)},{menuId:_.suggestWidgetStatusbarMenu,group:"right",order:1,when:u.ContextKeyExpr.and(_.Context.DetailsVisible.toNegated(),_.Context.CanResolve),title:r.localize(8,null)}]})),(0,i.registerEditorCommand)(new re({id:"toggleExplainMode",precondition:_.Context.Visible,handler:ie=>ie.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),(0,i.registerEditorCommand)(new re({id:"toggleSuggestionFocus",precondition:_.Context.Visible,handler:ie=>ie.toggleSuggestionFocus(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),(0,i.registerEditorCommand)(new re({id:"insertBestCompletion",precondition:u.ContextKeyExpr.and(m.EditorContextKeys.textInputFocus,u.ContextKeyExpr.equals("config.editor.tabCompletion","on"),l.WordContextKey.AtEnd,_.Context.Visible.toNegated(),E.SuggestAlternatives.OtherSuggestions.toNegated(),c.SnippetController2.InSnippetMode.toNegated()),handler:(ie,J)=>{ie.triggerSuggestAndAcceptBest((0,a.isObject)(J)?{fallback:"tab",...J}:{fallback:"tab"})},kbOpts:{weight:x,primary:2}})),(0,i.registerEditorCommand)(new re({id:"insertNextSuggestion",precondition:u.ContextKeyExpr.and(m.EditorContextKeys.textInputFocus,u.ContextKeyExpr.equals("config.editor.tabCompletion","on"),E.SuggestAlternatives.OtherSuggestions,_.Context.Visible.toNegated(),c.SnippetController2.InSnippetMode.toNegated()),handler:ie=>ie.acceptNextSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:2}})),(0,i.registerEditorCommand)(new re({id:"insertPrevSuggestion",precondition:u.ContextKeyExpr.and(m.EditorContextKeys.textInputFocus,u.ContextKeyExpr.equals("config.editor.tabCompletion","on"),E.SuggestAlternatives.OtherSuggestions,_.Context.Visible.toNegated(),c.SnippetController2.InSnippetMode.toNegated()),handler:ie=>ie.acceptPrevSuggestion(),kbOpts:{weight:x,kbExpr:m.EditorContextKeys.textInputFocus,primary:1026}})),(0,i.registerEditorAction)(class extends i.EditorAction{constructor(){super({id:"editor.action.resetSuggestSize",label:r.localize(9,null),alias:"Reset Suggest Widget Size",precondition:void 0})}run(ie,J){var X;(X=z.get(J))===null||X===void 0||X.resetWidgetSize()}})}),define(ne[941],se([1,0,7,2,9,5,30,120,397,399,32,223,13,62]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestItemInfo=e.SuggestWidgetAdaptor=void 0;class t extends k.Disposable{get selectedItem(){return this._selectedItem}constructor(c,d,s,l){super(),this.editor=c,this.suggestControllerPreselector=d,this.checkModelVersion=s,this.onWillAccept=l,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=(0,b.observableValue)(this,void 0),this._register(c.onKeyDown(h=>{h.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(c.onKeyUp(h=>{h.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const r=v.SuggestController.get(this.editor);if(r){this._register(r.registerSelector({priority:100,select:(f,C,_)=>{var E;(0,b.transaction)(N=>this.checkModelVersion(N));const I=this.editor.getModel();if(!I)return-1;const T=(E=this.suggestControllerPreselector())===null||E===void 0?void 0:E.removeCommonPrefix(I);if(!T)return-1;const A=y.Position.lift(C),R=_.map((N,P)=>{const O=o.fromSuggestion(r,I,A,N,this.isShiftKeyPressed).toSingleTextEdit().removeCommonPrefix(I),B=T.augments(O);return{index:P,valid:B,prefixLength:O.text.length,suggestItem:N}}).filter(N=>N&&N.valid&&N.prefixLength>0),M=(0,i.findFirstMaxBy)(R,(0,n.compareBy)(N=>N.prefixLength,n.numberComparator));return M?M.index:-1}}));let h=!1;const u=()=>{h||(h=!0,this._register(r.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(r.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(r.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(L.Event.once(r.model.onDidTrigger)(f=>{u()})),this._register(r.onWillInsertSuggestItem(f=>{const C=this.editor.getPosition(),_=this.editor.getModel();if(!C||!_)return;const E=o.fromSuggestion(r,_,C,f.item,this.isShiftKeyPressed);this.onWillAccept(E)}))}this.update(this._isActive)}update(c){const d=this.getSuggestItemInfo();(this._isActive!==c||!g(this._currentSuggestItemInfo,d))&&(this._isActive=c,this._currentSuggestItemInfo=d,(0,b.transaction)(s=>{this.checkModelVersion(s),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,s)}))}getSuggestItemInfo(){const c=v.SuggestController.get(this.editor);if(!c||!this.isSuggestWidgetVisible)return;const d=c.widget.value.getFocusedItem(),s=this.editor.getPosition(),l=this.editor.getModel();if(!(!d||!s||!l))return o.fromSuggestion(c,l,s,d.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const c=v.SuggestController.get(this.editor);c?.stopForceRenderingAbove()}forceRenderingAbove(){const c=v.SuggestController.get(this.editor);c?.forceRenderingAbove()}}e.SuggestWidgetAdaptor=t;class o{static fromSuggestion(c,d,s,l,r){let{insertText:h}=l.completion,u=!1;if(l.completion.insertTextRules&4){const C=new p.SnippetParser().parse(h);C.children.length<100&&w.SnippetSession.adjustWhitespace(d,s,!0,C),h=C.toString(),u=!0}const f=c.getOverwriteInfo(l,r);return new o(D.Range.fromPositions(s.delta(0,-f.overwriteBefore),s.delta(0,Math.max(f.overwriteAfter,0))),h,l.completion.kind,u)}constructor(c,d,s,l){this.range=c,this.insertText=d,this.completionItemKind=s,this.isSnippetText=l}equals(c){return this.range.equalsRange(c.range)&&this.insertText===c.insertText&&this.completionItemKind===c.completionItemKind&&this.isSnippetText===c.isSnippetText}toSelectedSuggestionInfo(){return new S.SelectedSuggestionInfo(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new a.SingleTextEdit(this.range,this.insertText)}}e.SuggestItemInfo=o;function g(m,c){return m===c?!0:!m||!c?!1:m.equals(c)}}),define(ne[271],se([1,0,6,44,2,32,197,9,80,18,222,349,246,263,940,941,706,124,25,26,14,8,34,277]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsController=void 0;let f=u=class extends y.Disposable{static get(E){return E.getContribution(u.ID)}constructor(E,I,T,A,R,M,N,P,F){super(),this.editor=E,this._instantiationService=I,this._contextKeyService=T,this._configurationService=A,this._commandService=R,this._debounceService=M,this._languageFeaturesService=N,this._accessibilitySignalService=P,this._keybindingService=F,this.model=this._register((0,D.disposableObservableValue)("inlineCompletionModel",void 0)),this._textModelVersionId=(0,D.observableValue)(this,-1),this._positions=(0,D.observableValue)(this,[new p.Position(1,1)]),this._suggestWidgetAdaptor=this._register(new o.SuggestWidgetAdaptor(this.editor,()=>{var V,z;return(z=(V=this.model.get())===null||V===void 0?void 0:V.selectedInlineCompletion.get())===null||z===void 0?void 0:z.toSingleTextEdit(void 0)},V=>this.updateObservables(V,t.VersionIdChangeReason.Other),V=>{(0,D.transaction)(z=>{var K;this.updateObservables(z,t.VersionIdChangeReason.Other),(K=this.model.get())===null||K===void 0||K.handleSuggestAccepted(V)})})),this._enabled=(0,D.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._fontFamily=(0,D.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._ghostTexts=(0,D.derived)(this,V=>{var z;const K=this.model.read(V);return(z=K?.ghostTexts.read(V))!==null&&z!==void 0?z:[]}),this._stablizedGhostTexts=C(this._ghostTexts,this._store),this._ghostTextWidgets=(0,h.mapObservableArrayCached)(this,this._stablizedGhostTexts,(V,z)=>z.add(this._instantiationService.createInstance(a.GhostTextWidget,this.editor,{ghostText:V,minReservedLineCount:(0,D.constObservable)(0),targetTextModel:this.model.map(K=>K?.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAccessibilitySignal=(0,D.observableSignal)(this),this._isReadonly=(0,D.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(91)),this._textModel=(0,D.observableFromEvent)(this.editor.onDidChangeModel,()=>this.editor.getModel()),this._textModelIfWritable=(0,D.derived)(V=>this._isReadonly.read(V)?void 0:this._textModel.read(V)),this._register(new n.InlineCompletionContextKeys(this._contextKeyService,this.model)),this._register((0,D.autorun)(V=>{const z=this._textModelIfWritable.read(V);(0,D.transaction)(K=>{if(this.model.set(void 0,K),this.updateObservables(K,t.VersionIdChangeReason.Other),z){const j=I.createInstance(t.InlineCompletionsModel,z,this._suggestWidgetAdaptor.selectedItem,this._textModelVersionId,this._positions,this._debounceValue,(0,D.observableFromEvent)(E.onDidChangeConfiguration,()=>E.getOption(118).preview),(0,D.observableFromEvent)(E.onDidChangeConfiguration,()=>E.getOption(118).previewMode),(0,D.observableFromEvent)(E.onDidChangeConfiguration,()=>E.getOption(62).mode),this._enabled);this.model.set(j,K)}})}));const O=this._register((0,L.createStyleSheet2)());this._register((0,D.autorun)(V=>{const z=this._fontFamily.read(V);O.setStyle(z===""||z==="default"?"":` +.monaco-editor .ghost-text-decoration, +.monaco-editor .ghost-text-decoration-preview, +.monaco-editor .ghost-text { + font-family: ${z}; +}`)}));const B=V=>{var z;return V.isUndoing?t.VersionIdChangeReason.Undo:V.isRedoing?t.VersionIdChangeReason.Redo:!((z=this.model.get())===null||z===void 0)&&z.isAcceptingPartially?t.VersionIdChangeReason.AcceptWord:t.VersionIdChangeReason.Other};this._register(E.onDidChangeModelContent(V=>(0,D.transaction)(z=>this.updateObservables(z,B(V))))),this._register(E.onDidChangeCursorPosition(V=>(0,D.transaction)(z=>{var K;this.updateObservables(z,t.VersionIdChangeReason.Other),(V.reason===3||V.source==="api")&&((K=this.model.get())===null||K===void 0||K.stop(z))}))),this._register(E.onDidType(()=>(0,D.transaction)(V=>{var z;this.updateObservables(V,t.VersionIdChangeReason.Other),this._enabled.get()&&((z=this.model.get())===null||z===void 0||z.trigger(V))}))),this._register(this._commandService.onDidExecuteCommand(V=>{new Set([S.CoreEditingCommands.Tab.id,S.CoreEditingCommands.DeleteLeft.id,S.CoreEditingCommands.DeleteRight.id,b.inlineSuggestCommitId,"acceptSelectedSuggestion"]).has(V.commandId)&&E.hasTextFocus()&&this._enabled.get()&&(0,D.transaction)(K=>{var j;(j=this.model.get())===null||j===void 0||j.trigger(K)})})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||E.getOption(62).keepOnBlur||i.InlineSuggestionHintsContentWidget.dropDownVisible||(0,D.transaction)(V=>{var z;(z=this.model.get())===null||z===void 0||z.stop(V)})})),this._register((0,D.autorun)(V=>{var z;const K=(z=this.model.read(V))===null||z===void 0?void 0:z.state.read(V);K?.suggestItem?K.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register((0,y.toDisposable)(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));let W;this._register((0,D.autorunHandleChanges)({handleChange:(V,z)=>(V.didChange(this._playAccessibilitySignal)&&(W=void 0),!0)},async V=>{this._playAccessibilitySignal.read(V);const z=this.model.read(V),K=z?.state.read(V);if(!z||!K||!K.inlineCompletion){W=void 0;return}if(K.inlineCompletion.semanticId!==W){W=K.inlineCompletion.semanticId;const j=z.textModel.getLineContent(K.primaryGhostText.lineNumber);this._accessibilitySignalService.playSignal(m.AccessibilitySignal.inlineSuggestion).then(()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(K.primaryGhostText.renderForScreenReader(j))})}})),this._register(new i.InlineCompletionsHintsWidget(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration(V=>{V.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(E){this._playAccessibilitySignal.trigger(E)}provideScreenReaderUpdate(E){const I=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),T=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let A;!I&&T&&this.editor.getOption(148)&&(A=(0,g.localize)(0,null,T.getAriaLabel())),A?(0,k.alert)(E+", "+A):(0,k.alert)(E)}updateObservables(E,I){var T,A,R;const M=this.editor.getModel();this._textModelVersionId.set((T=M?.getVersionId())!==null&&T!==void 0?T:-1,E,I),this._positions.set((R=(A=this.editor.getSelections())===null||A===void 0?void 0:A.map(N=>N.getPosition()))!==null&&R!==void 0?R:[new p.Position(1,1)],E)}shouldShowHoverAt(E){var I;const T=(I=this.model.get())===null||I===void 0?void 0:I.primaryGhostText.get();return T?T.parts.some(A=>E.containsPosition(new p.Position(T.lineNumber,A.column))):!1}shouldShowHoverAtViewZone(E){var I,T;return(T=(I=this._ghostTextWidgets.get()[0])===null||I===void 0?void 0:I.ownsViewZone(E))!==null&&T!==void 0?T:!1}};e.InlineCompletionsController=f,f.ID="editor.contrib.inlineCompletionsController",e.InlineCompletionsController=f=u=De([he(1,l.IInstantiationService),he(2,s.IContextKeyService),he(3,d.IConfigurationService),he(4,c.ICommandService),he(5,w.ILanguageFeatureDebounceService),he(6,v.ILanguageFeaturesService),he(7,m.IAccessibilitySignalService),he(8,r.IKeybindingService)],f);function C(_,E){const I=(0,D.observableValue)("result",[]),T=[];return E.add((0,D.autorun)(A=>{const R=_.read(A);(0,D.transaction)(M=>{if(R.length!==T.length){T.length=R.length;for(let N=0;NN.set(R[P],M))})})),I}}),define(ne[942],se([1,0,32,129,16,21,222,246,271,144,703,28,26,14]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleAlwaysShowInlineSuggestionToolbar=e.HideInlineCompletion=e.AcceptInlineCompletion=e.AcceptNextLineOfInlineCompletion=e.AcceptNextWordOfInlineCompletion=e.TriggerInlineSuggestionAction=e.ShowPreviousInlineSuggestionAction=e.ShowNextInlineSuggestionAction=void 0;class t extends y.EditorAction{constructor(){super({id:t.ID,label:b.localize(0,null),alias:"Show Next Inline Suggestion",precondition:i.ContextKeyExpr.and(D.EditorContextKeys.writable,p.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(h,u){var f;const C=w.InlineCompletionsController.get(u);(f=C?.model.get())===null||f===void 0||f.next()}}e.ShowNextInlineSuggestionAction=t,t.ID=S.showNextInlineSuggestionActionId;class o extends y.EditorAction{constructor(){super({id:o.ID,label:b.localize(1,null),alias:"Show Previous Inline Suggestion",precondition:i.ContextKeyExpr.and(D.EditorContextKeys.writable,p.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(h,u){var f;const C=w.InlineCompletionsController.get(u);(f=C?.model.get())===null||f===void 0||f.previous()}}e.ShowPreviousInlineSuggestionAction=o,o.ID=S.showPreviousInlineSuggestionActionId;class g extends y.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:b.localize(2,null),alias:"Trigger Inline Suggestion",precondition:D.EditorContextKeys.writable})}async run(h,u){const f=w.InlineCompletionsController.get(u);await(0,k.asyncTransaction)(async C=>{var _;await((_=f?.model.get())===null||_===void 0?void 0:_.triggerExplicitly(C)),f?.playAccessibilitySignal(C)})}}e.TriggerInlineSuggestionAction=g;class m extends y.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:b.localize(3,null),alias:"Accept Next Word Of Inline Suggestion",precondition:i.ContextKeyExpr.and(D.EditorContextKeys.writable,p.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:i.ContextKeyExpr.and(D.EditorContextKeys.writable,p.InlineCompletionContextKeys.inlineSuggestionVisible)},menuOpts:[{menuId:a.MenuId.InlineSuggestionToolbar,title:b.localize(4,null),group:"primary",order:2}]})}async run(h,u){var f;const C=w.InlineCompletionsController.get(u);await((f=C?.model.get())===null||f===void 0?void 0:f.acceptNextWord(C.editor))}}e.AcceptNextWordOfInlineCompletion=m;class c extends y.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:b.localize(5,null),alias:"Accept Next Line Of Inline Suggestion",precondition:i.ContextKeyExpr.and(D.EditorContextKeys.writable,p.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:a.MenuId.InlineSuggestionToolbar,title:b.localize(6,null),group:"secondary",order:2}]})}async run(h,u){var f;const C=w.InlineCompletionsController.get(u);await((f=C?.model.get())===null||f===void 0?void 0:f.acceptNextLine(C.editor))}}e.AcceptNextLineOfInlineCompletion=c;class d extends y.EditorAction{constructor(){super({id:S.inlineSuggestCommitId,label:b.localize(7,null),alias:"Accept Inline Suggestion",precondition:p.InlineCompletionContextKeys.inlineSuggestionVisible,menuOpts:[{menuId:a.MenuId.InlineSuggestionToolbar,title:b.localize(8,null),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:i.ContextKeyExpr.and(p.InlineCompletionContextKeys.inlineSuggestionVisible,D.EditorContextKeys.tabMovesFocus.toNegated(),p.InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize,v.Context.Visible.toNegated(),D.EditorContextKeys.hoverFocused.toNegated())}})}async run(h,u){var f;const C=w.InlineCompletionsController.get(u);C&&((f=C.model.get())===null||f===void 0||f.accept(C.editor),C.editor.focus())}}e.AcceptInlineCompletion=d;class s extends y.EditorAction{constructor(){super({id:s.ID,label:b.localize(9,null),alias:"Hide Inline Suggestion",precondition:p.InlineCompletionContextKeys.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(h,u){const f=w.InlineCompletionsController.get(u);(0,L.transaction)(C=>{var _;(_=f?.model.get())===null||_===void 0||_.stop(C)})}}e.HideInlineCompletion=s,s.ID="editor.action.inlineSuggest.hide";class l extends a.Action2{constructor(){super({id:l.ID,title:b.localize(10,null),f1:!1,precondition:void 0,menu:[{id:a.MenuId.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:i.ContextKeyExpr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(h,u){const f=h.get(n.IConfigurationService),_=f.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";f.updateValue("editor.inlineSuggest.showToolbar",_)}}e.ToggleAlwaysShowInlineSuggestionToolbar=l,l.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}),define(ne[943],se([1,0,6,58,2,32,5,43,93,271,263,108,704,71,8,57,61]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsHoverParticipant=e.InlineCompletionsHover=void 0;class m{constructor(s,l,r){this.owner=s,this.range=l,this.controller=r}isValidForHoverAnchor(s){return s.type===1&&this.range.startColumn<=s.range.startColumn&&this.range.endColumn>=s.range.endColumn}}e.InlineCompletionsHover=m;let c=class{constructor(s,l,r,h,u,f){this._editor=s,this._languageService=l,this._openerService=r,this.accessibilityService=h,this._instantiationService=u,this._telemetryService=f,this.hoverOrdinal=4}suggestHoverAnchor(s){const l=v.InlineCompletionsController.get(this._editor);if(!l)return null;const r=s.target;if(r.type===8){const h=r.detail;if(l.shouldShowHoverAtViewZone(h.viewZoneId))return new w.HoverForeignElementAnchor(1e3,this,S.Range.fromPositions(this._editor.getModel().validatePosition(h.positionBefore||h.position)),s.event.posx,s.event.posy,!1)}return r.type===7&&l.shouldShowHoverAt(r.range)?new w.HoverForeignElementAnchor(1e3,this,r.range,s.event.posx,s.event.posy,!1):r.type===6&&r.detail.mightBeForeignElement&&l.shouldShowHoverAt(r.range)?new w.HoverForeignElementAnchor(1e3,this,r.range,s.event.posx,s.event.posy,!1):null}computeSync(s,l){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const r=v.InlineCompletionsController.get(this._editor);return r&&r.shouldShowHoverAt(s.range)?[new m(this,s.range,r)]:[]}renderHoverParts(s,l){const r=new y.DisposableStore,h=l[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(s,h,r);const u=h.controller.model.get(),f=this._instantiationService.createInstance(b.InlineSuggestionHintsContentWidget,this._editor,!1,(0,D.constObservable)(null),u.selectedInlineCompletionIndex,u.inlineCompletionsCount,u.selectedInlineCompletion.map(C=>{var _;return(_=C?.inlineCompletion.source.inlineCompletions.commands)!==null&&_!==void 0?_:[]}));return s.fragment.appendChild(f.getDomNode()),u.triggerExplicitly(),r.add(f),r}renderScreenReaderText(s,l,r){const h=L.$,u=h("div.hover-row.markdown-hover"),f=L.append(u,h("div.hover-contents",{"aria-live":"assertive"})),C=r.add(new a.MarkdownRenderer({editor:this._editor},this._languageService,this._openerService)),_=E=>{r.add(C.onDidRenderAsync(()=>{f.className="hover-contents code-hover-contents",s.onContentsChanged()}));const I=n.localize(0,null),T=r.add(C.render(new k.MarkdownString().appendText(I).appendCodeblock("text",E)));f.replaceChildren(T.element)};r.add((0,D.autorun)(E=>{var I;const T=(I=l.controller.model.read(E))===null||I===void 0?void 0:I.primaryGhostText.read(E);if(T){const A=this._editor.getModel().getLineContent(T.lineNumber);_(T.renderForScreenReader(A))}else L.reset(f)})),s.fragment.appendChild(u)}};e.InlineCompletionsHoverParticipant=c,e.InlineCompletionsHoverParticipant=c=De([he(1,p.ILanguageService),he(2,o.IOpenerService),he(3,i.IAccessibilityService),he(4,t.IInstantiationService),he(5,g.ITelemetryService)],c)}),define(ne[944],se([1,0,16,93,942,943,271,28]),function(ee,e,L,k,y,D,S,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,L.registerEditorContribution)(S.InlineCompletionsController.ID,S.InlineCompletionsController,3),(0,L.registerEditorAction)(y.TriggerInlineSuggestionAction),(0,L.registerEditorAction)(y.ShowNextInlineSuggestionAction),(0,L.registerEditorAction)(y.ShowPreviousInlineSuggestionAction),(0,L.registerEditorAction)(y.AcceptNextWordOfInlineCompletion),(0,L.registerEditorAction)(y.AcceptNextLineOfInlineCompletion),(0,L.registerEditorAction)(y.AcceptInlineCompletion),(0,L.registerEditorAction)(y.HideInlineCompletion),(0,p.registerAction2)(y.ToggleAlwaysShowInlineSuggestionToolbar),k.HoverParticipantRegistry.register(D.InlineCompletionsHoverParticipant)}),define(ne[945],se([1,0,19,73,52,2,35,5,135,18,318,144,365,398,319,107]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestInlineCompletions=void 0;class g{constructor(s,l,r,h,u,f){this.range=s,this.insertText=l,this.filterText=r,this.additionalTextEdits=h,this.command=u,this.completion=f}}let m=class extends D.RefCountedDisposable{constructor(s,l,r,h,u,f){super(u.disposable),this.model=s,this.line=l,this.word=r,this.completionModel=h,this._suggestMemoryService=f}canBeReused(s,l,r){return this.model===s&&this.line===l&&this.word.word.length>0&&this.word.startColumn===r.startColumn&&this.word.endColumn=0&&_.resolve(L.CancellationToken.None)}return l}};m=De([he(5,n.ISuggestMemoryService)],m);let c=class extends D.Disposable{constructor(s,l,r,h){super(),this._languageFeatureService=s,this._clipboardService=l,this._suggestMemoryService=r,this._editorService=h,this._store.add(s.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(s,l,r,h){var u;if(r.selectedSuggestionInfo)return;let f;for(const M of this._editorService.listCodeEditors())if(M.getModel()===s){f=M;break}if(!f)return;const C=f.getOption(89);if(a.QuickSuggestionsOptions.isAllOff(C))return;s.tokenization.tokenizeIfCheap(l.lineNumber);const _=s.tokenization.getLineTokens(l.lineNumber),E=_.getStandardTokenType(_.findTokenIndexAtOffset(Math.max(l.column-1-1,0)));if(a.QuickSuggestionsOptions.valueFor(C,E)!=="inline")return;let I=s.getWordAtPosition(l),T;if(I?.word||(T=this._getTriggerCharacterInfo(s,l)),!I?.word&&!T||(I||(I=s.getWordUntilPosition(l)),I.endColumn!==l.column))return;let A;const R=s.getValueInRange(new p.Range(l.lineNumber,1,l.lineNumber,l.column));if(!T&&(!((u=this._lastResult)===null||u===void 0)&&u.canBeReused(s,l.lineNumber,I))){const M=new b.LineContext(R,l.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=M,this._lastResult.acquire(),A=this._lastResult}else{const M=await(0,a.provideSuggestionItems)(this._languageFeatureService.completionProvider,s,l,new a.CompletionOptions(void 0,i.SuggestModel.createSuggestFilter(f).itemKind,T?.providers),T&&{triggerKind:1,triggerCharacter:T.ch},h);let N;M.needsClipboard&&(N=await this._clipboardService.readText());const P=new b.CompletionModel(M.items,l.column,new b.LineContext(R,0),t.WordDistance.None,f.getOption(118),f.getOption(112),{boostFullMatch:!1,firstMatchCanBeWeak:!1},N);A=new m(s,l.lineNumber,I,P,M,this._suggestMemoryService)}return this._lastResult=A,A}handleItemDidShow(s,l){l.completion.resolve(L.CancellationToken.None)}freeInlineCompletions(s){s.release()}_getTriggerCharacterInfo(s,l){var r;const h=s.getValueInRange(p.Range.fromPositions({lineNumber:l.lineNumber,column:l.column-1},l)),u=new Set;for(const f of this._languageFeatureService.completionProvider.all(s))!((r=f.triggerCharacters)===null||r===void 0)&&r.includes(h)&&u.add(f);if(u.size!==0)return{providers:u,ch:h}}};e.SuggestInlineCompletions=c,e.SuggestInlineCompletions=c=De([he(0,v.ILanguageFeaturesService),he(1,o.IClipboardService),he(2,n.ISuggestMemoryService),he(3,S.ICodeEditorService)],c),(0,w.registerEditorFeature)(c)}),define(ne[400],se([1,0,8]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IWorkspaceTrustManagementService=void 0,e.IWorkspaceTrustManagementService=(0,L.createDecorator)("workspaceTrustManagementService")}),define(ne[946],se([1,0,15,27,58,2,17,11,16,36,38,304,123,43,342,93,258,855,735,26,8,57,72,82,400,490]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowExcludeOptions=e.DisableHighlightingOfNonBasicAsciiCharactersAction=e.DisableHighlightingOfInvisibleCharactersAction=e.DisableHighlightingOfAmbiguousCharactersAction=e.DisableHighlightingInStringsAction=e.DisableHighlightingInCommentsAction=e.UnicodeHighlighterHoverParticipant=e.UnicodeHighlighter=e.warningIcon=void 0,e.warningIcon=(0,h.registerIcon)("extensions-warning-message",k.Codicon.warning,c.localize(0,null));let f=class extends D.Disposable{constructor(ie,J,X,Y){super(),this._editor=ie,this._editorWorkerService=J,this._workspaceTrustService=X,this._highlighter=null,this._bannerClosed=!1,this._updateState=le=>{if(le&&le.hasMore){if(this._bannerClosed)return;const de=Math.max(le.ambiguousCharacterCount,le.nonBasicAsciiCharacterCount,le.invisibleCharacterCount);let ge;if(le.nonBasicAsciiCharacterCount>=de)ge={message:c.localize(1,null),command:new V};else if(le.ambiguousCharacterCount>=de)ge={message:c.localize(2,null),command:new B};else if(le.invisibleCharacterCount>=de)ge={message:c.localize(3,null),command:new W};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:ge.message,icon:e.warningIcon,actions:[{label:ge.command.shortLabel,href:`command:${ge.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(Y.createInstance(m.BannerController,ie)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=ie.getOption(125),this._register(X.onDidChangeTrust(le=>{this._updateHighlighter()})),this._register(ie.onDidChangeConfiguration(le=>{le.hasChanged(125)&&(this._options=ie.getOption(125),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const ie=C(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([ie.nonBasicASCII,ie.ambiguousCharacters,ie.invisibleCharacters].every(X=>X===!1))return;const J={nonBasicASCII:ie.nonBasicASCII,ambiguousCharacters:ie.ambiguousCharacters,invisibleCharacters:ie.invisibleCharacters,includeComments:ie.includeComments,includeStrings:ie.includeStrings,allowedCodePoints:Object.keys(ie.allowedCharacters).map(X=>X.codePointAt(0)),allowedLocales:Object.keys(ie.allowedLocales).map(X=>X==="_os"?new Intl.NumberFormat().resolvedOptions().locale:X==="_vscode"?S.language:X)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new _(this._editor,J,this._updateState,this._editorWorkerService):this._highlighter=new E(this._editor,J,this._updateState)}getDecorationInfo(ie){return this._highlighter?this._highlighter.getDecorationInfo(ie):null}};e.UnicodeHighlighter=f,f.ID="editor.contrib.unicodeHighlighter",e.UnicodeHighlighter=f=De([he(1,n.IEditorWorkerService),he(2,u.IWorkspaceTrustManagementService),he(3,s.IInstantiationService)],f);function C(re,ie){return{nonBasicASCII:ie.nonBasicASCII===v.inUntrustedWorkspace?!re:ie.nonBasicASCII,ambiguousCharacters:ie.ambiguousCharacters,invisibleCharacters:ie.invisibleCharacters,includeComments:ie.includeComments===v.inUntrustedWorkspace?!re:ie.includeComments,includeStrings:ie.includeStrings===v.inUntrustedWorkspace?!re:ie.includeStrings,allowedCharacters:ie.allowedCharacters,allowedLocales:ie.allowedLocales}}let _=class extends D.Disposable{constructor(ie,J,X,Y){super(),this._editor=ie,this._options=J,this._updateState=X,this._editorWorkerService=Y,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new L.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const ie=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(J=>{if(this._model.isDisposed()||this._model.getVersionId()!==ie)return;this._updateState(J);const X=[];if(!J.hasMore)for(const Y of J.ranges)X.push({range:Y,options:P.instance.getDecorationFromOptions(this._options)});this._decorations.set(X)})}getDecorationInfo(ie){if(!this._decorations.has(ie))return null;const J=this._editor.getModel();if(!(0,t.isModelDecorationVisible)(J,ie))return null;const X=J.getValueInRange(ie.range);return{reason:N(X,this._options),inComment:(0,t.isModelDecorationInComment)(J,ie),inString:(0,t.isModelDecorationInString)(J,ie)}}};_=De([he(3,n.IEditorWorkerService)],_);class E extends D.Disposable{constructor(ie,J,X){super(),this._editor=ie,this._options=J,this._updateState=X,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new L.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const ie=this._editor.getVisibleRanges(),J=[],X={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const Y of ie){const le=a.UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,Y);for(const de of le.ranges)X.ranges.push(de);X.ambiguousCharacterCount+=X.ambiguousCharacterCount,X.invisibleCharacterCount+=X.invisibleCharacterCount,X.nonBasicAsciiCharacterCount+=X.nonBasicAsciiCharacterCount,X.hasMore=X.hasMore||le.hasMore}if(!X.hasMore)for(const Y of X.ranges)J.push({range:Y,options:P.instance.getDecorationFromOptions(this._options)});this._updateState(X),this._decorations.set(J)}getDecorationInfo(ie){if(!this._decorations.has(ie))return null;const J=this._editor.getModel(),X=J.getValueInRange(ie.range);return(0,t.isModelDecorationVisible)(J,ie)?{reason:N(X,this._options),inComment:(0,t.isModelDecorationInComment)(J,ie),inString:(0,t.isModelDecorationInString)(J,ie)}:null}}const I=c.localize(4,null);let T=class{constructor(ie,J,X){this._editor=ie,this._languageService=J,this._openerService=X,this.hoverOrdinal=5}computeSync(ie,J){if(!this._editor.hasModel()||ie.type!==1)return[];const X=this._editor.getModel(),Y=this._editor.getContribution(f.ID);if(!Y)return[];const le=[],de=new Set;let ge=300;for(const pe of J){const Q=Y.getDecorationInfo(pe);if(!Q)continue;const Z=X.getValueInRange(pe.range).codePointAt(0),H=R(Z);let q;switch(Q.reason.kind){case 0:{(0,p.isBasicASCII)(Q.reason.confusableWith)?q=c.localize(5,null,H,R(Q.reason.confusableWith.codePointAt(0))):q=c.localize(6,null,H,R(Q.reason.confusableWith.codePointAt(0)));break}case 1:q=c.localize(7,null,H);break;case 2:q=c.localize(8,null,H);break}if(de.has(q))continue;de.add(q);const te={codePoint:Z,reason:Q.reason,inComment:Q.inComment,inString:Q.inString},G=c.localize(9,null),$=`command:${z.ID}?${encodeURIComponent(JSON.stringify(te))}`,oe=new y.MarkdownString("",!0).appendMarkdown(q).appendText(" ").appendLink($,G,I);le.push(new g.MarkdownHover(this,pe.range,[oe],!1,ge++))}return le}renderHoverParts(ie,J){return(0,g.renderMarkdownHovers)(ie,J,this._editor,this._languageService,this._openerService)}};e.UnicodeHighlighterHoverParticipant=T,e.UnicodeHighlighterHoverParticipant=T=De([he(1,i.ILanguageService),he(2,l.IOpenerService)],T);function A(re){return`U+${re.toString(16).padStart(4,"0")}`}function R(re){let ie=`\`${A(re)}\``;return p.InvisibleCharacters.isInvisibleCharacter(re)||(ie+=` "${`${M(re)}`}"`),ie}function M(re){return re===96?"`` ` ``":"`"+String.fromCodePoint(re)+"`"}function N(re,ie){return a.UnicodeTextModelHighlighter.computeUnicodeHighlightReason(re,ie)}class P{constructor(){this.map=new Map}getDecorationFromOptions(ie){return this.getDecoration(!ie.includeComments,!ie.includeStrings)}getDecoration(ie,J){const X=`${ie}${J}`;let Y=this.map.get(X);return Y||(Y=b.ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:ie,hideInStringTokens:J}),this.map.set(X,Y)),Y}}P.instance=new P;class F extends w.EditorAction{constructor(){super({id:B.ID,label:c.localize(11,null),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=c.localize(10,null)}async run(ie,J,X){const Y=ie?.get(d.IConfigurationService);Y&&this.runAction(Y)}async runAction(ie){await ie.updateValue(v.unicodeHighlightConfigKeys.includeComments,!1,2)}}e.DisableHighlightingInCommentsAction=F;class O extends w.EditorAction{constructor(){super({id:B.ID,label:c.localize(13,null),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=c.localize(12,null)}async run(ie,J,X){const Y=ie?.get(d.IConfigurationService);Y&&this.runAction(Y)}async runAction(ie){await ie.updateValue(v.unicodeHighlightConfigKeys.includeStrings,!1,2)}}e.DisableHighlightingInStringsAction=O;class B extends w.EditorAction{constructor(){super({id:B.ID,label:c.localize(15,null),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=c.localize(14,null)}async run(ie,J,X){const Y=ie?.get(d.IConfigurationService);Y&&this.runAction(Y)}async runAction(ie){await ie.updateValue(v.unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}}e.DisableHighlightingOfAmbiguousCharactersAction=B,B.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class W extends w.EditorAction{constructor(){super({id:W.ID,label:c.localize(17,null),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=c.localize(16,null)}async run(ie,J,X){const Y=ie?.get(d.IConfigurationService);Y&&this.runAction(Y)}async runAction(ie){await ie.updateValue(v.unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}}e.DisableHighlightingOfInvisibleCharactersAction=W,W.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class V extends w.EditorAction{constructor(){super({id:V.ID,label:c.localize(19,null),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=c.localize(18,null)}async run(ie,J,X){const Y=ie?.get(d.IConfigurationService);Y&&this.runAction(Y)}async runAction(ie){await ie.updateValue(v.unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}}e.DisableHighlightingOfNonBasicAsciiCharactersAction=V,V.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class z extends w.EditorAction{constructor(){super({id:z.ID,label:c.localize(20,null),alias:"Show Exclude Options",precondition:void 0})}async run(ie,J,X){const{codePoint:Y,reason:le,inString:de,inComment:ge}=X,pe=String.fromCodePoint(Y),Q=ie.get(r.IQuickInputService),U=ie.get(d.IConfigurationService);function Z(te){return p.InvisibleCharacters.isInvisibleCharacter(te)?c.localize(21,null,A(te)):c.localize(22,null,`${A(te)} "${pe}"`)}const H=[];if(le.kind===0)for(const te of le.notAmbiguousInLocales)H.push({label:c.localize(23,null,te),run:async()=>{j(U,[te])}});if(H.push({label:Z(Y),run:()=>K(U,[Y])}),ge){const te=new F;H.push({label:te.label,run:async()=>te.runAction(U)})}else if(de){const te=new O;H.push({label:te.label,run:async()=>te.runAction(U)})}if(le.kind===0){const te=new B;H.push({label:te.label,run:async()=>te.runAction(U)})}else if(le.kind===1){const te=new W;H.push({label:te.label,run:async()=>te.runAction(U)})}else if(le.kind===2){const te=new V;H.push({label:te.label,run:async()=>te.runAction(U)})}else x(le);const q=await Q.pick(H,{title:I});q&&await q.run()}}e.ShowExcludeOptions=z,z.ID="editor.action.unicodeHighlight.showExcludeOptions";async function K(re,ie){const J=re.getValue(v.unicodeHighlightConfigKeys.allowedCharacters);let X;typeof J=="object"&&J?X=J:X={};for(const Y of ie)X[String.fromCodePoint(Y)]=!0;await re.updateValue(v.unicodeHighlightConfigKeys.allowedCharacters,X,2)}async function j(re,ie){var J;const X=(J=re.inspect(v.unicodeHighlightConfigKeys.allowedLocales).user)===null||J===void 0?void 0:J.value;let Y;typeof X=="object"&&X?Y=Object.assign({},X):Y={};for(const le of ie)Y[le]=!0;await re.updateValue(v.unicodeHighlightConfigKeys.allowedLocales,Y,2)}function x(re){throw new Error(`Unexpected value: ${re}`)}(0,w.registerEditorAction)(B),(0,w.registerEditorAction)(W),(0,w.registerEditorAction)(V),(0,w.registerEditorAction)(z),(0,w.registerEditorContribution)(f.ID,f,1),o.HoverParticipantRegistry.register(T)}),define(ne[947],se([1,0,197,200,899,820,902,821,822,915,904,906,929,913,823,936,824,907,937,938,384,268,827,828,790,944,269,270,391,389,392,830,931,914,831,832,917,918,833,923,890,854,879,880,881,835,202,933,399,945,836,810,946,837,924,371,838,834,789,99,180]),function(ee,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[272],se([1,0,11,6,46,7,127,2,17,103,22,142,251,68,9,5,51,70,194,25,26,363,14,164,8,785,34,354,126,355,786,166,49,88,61,171,125,99,48,35,60,400,56,788,805,891,45,795,123,252,43,874,243,896,893,379,143,787,71,28,816,791,107,782,242,783,165,198,100,794,57,72,94,809,124,792,135,12,248,50,33,378,356,935,80,875,773,862]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R,M,N,P,F,O,B,W,V,z,K,j,x,re,ie,J,X,Y,le,de,ge,pe,Q,U,Z,H,q,te,G,$,oe,ae,ue,ce,fe,ve,Ce,Se,_e,Ie,Ne,Oe,xe,We,ye,Me,me,be){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServices=e.updateConfigurationService=e.StandaloneConfigurationService=e.StandaloneKeybindingService=e.StandaloneCommandService=e.StandaloneNotificationService=void 0;class Ae{constructor(Fe){this.disposed=!1,this.model=Fe,this._onWillDispose=new D.Emitter}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let Be=class{constructor(Fe){this.modelService=Fe}createModelReference(Fe){const Ve=this.modelService.getModel(Fe);return Ve?Promise.resolve(new p.ImmortalReference(new Ae(Ve))):Promise.reject(new Error("Model not found"))}};Be=De([he(0,g.IModelService)],Be);class Ke{show(){return Ke.NULL_PROGRESS_RUNNER}async showWhile(Fe,Ve){await Fe}}Ke.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class qe{withProgress(Fe,Ve,ze){return Ve({report:()=>{}})}}class Ge{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class st{async confirm(Fe){return{confirmed:this.doConfirm(Fe.message,Fe.detail),checkboxChecked:!1}}doConfirm(Fe,Ve){let ze=Fe;return Ve&&(ze=ze+` + +`+Ve),be.mainWindow.confirm(ze)}async prompt(Fe){var Ve,ze;let je;if(this.doConfirm(Fe.message,Fe.detail)){const Je=[...(Ve=Fe.buttons)!==null&&Ve!==void 0?Ve:[]];Fe.cancelButton&&typeof Fe.cancelButton!="string"&&typeof Fe.cancelButton!="boolean"&&Je.push(Fe.cancelButton),je=await((ze=Je[0])===null||ze===void 0?void 0:ze.run({checkboxChecked:!1}))}return{result:je}}async error(Fe,Ve){await this.prompt({type:v.default.Error,message:Fe,detail:Ve})}}class Xe{info(Fe){return this.notify({severity:v.default.Info,message:Fe})}warn(Fe){return this.notify({severity:v.default.Warning,message:Fe})}error(Fe){return this.notify({severity:v.default.Error,message:Fe})}notify(Fe){switch(Fe.severity){case v.default.Error:console.error(Fe.message);break;case v.default.Warning:console.warn(Fe.message);break;default:console.log(Fe.message);break}return Xe.NO_OP}prompt(Fe,Ve,ze,je){return Xe.NO_OP}status(Fe,Ve){return p.Disposable.None}}e.StandaloneNotificationService=Xe,Xe.NO_OP=new R.NoOpNotification;let ot=class{constructor(Fe){this._onWillExecuteCommand=new D.Emitter,this._onDidExecuteCommand=new D.Emitter,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=Fe}executeCommand(Fe,...Ve){const ze=d.CommandsRegistry.getCommand(Fe);if(!ze)return Promise.reject(new Error(`command '${Fe}' not found`));try{this._onWillExecuteCommand.fire({commandId:Fe,args:Ve});const je=this._instantiationService.invokeFunction.apply(this._instantiationService,[ze.handler,...Ve]);return this._onDidExecuteCommand.fire({commandId:Fe,args:Ve}),Promise.resolve(je)}catch(je){return Promise.reject(je)}}};e.StandaloneCommandService=ot,e.StandaloneCommandService=ot=De([he(0,u.IInstantiationService)],ot);let nt=class extends f.AbstractKeybindingService{constructor(Fe,Ve,ze,je,et,Je){super(Fe,Ve,ze,je,et),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const lt=ct=>{const St=new p.DisposableStore;St.add(k.addDisposableListener(ct,k.EventType.KEY_DOWN,yt=>{const Lt=new y.StandardKeyboardEvent(yt);this._dispatch(Lt,Lt.target)&&(Lt.preventDefault(),Lt.stopPropagation())})),St.add(k.addDisposableListener(ct,k.EventType.KEY_UP,yt=>{const Lt=new y.StandardKeyboardEvent(yt);this._singleModifierDispatch(Lt,Lt.target)&&Lt.preventDefault()})),this._domNodeListeners.push(new rt(ct,St))},tt=ct=>{for(let St=0;St{ct.getOption(61)||lt(ct.getContainerDomNode())},gt=ct=>{ct.getOption(61)||tt(ct.getContainerDomNode())};this._register(Je.onCodeEditorAdd(it)),this._register(Je.onCodeEditorRemove(gt)),Je.listCodeEditors().forEach(it);const ht=ct=>{lt(ct.getContainerDomNode())},wt=ct=>{tt(ct.getContainerDomNode())};this._register(Je.onDiffEditorAdd(ht)),this._register(Je.onDiffEditorRemove(wt)),Je.listDiffEditors().forEach(ht)}addDynamicKeybinding(Fe,Ve,ze,je){return(0,p.combinedDisposable)(d.CommandsRegistry.registerCommand(Fe,ze),this.addDynamicKeybindings([{keybinding:Ve,command:Fe,when:je}]))}addDynamicKeybindings(Fe){const Ve=Fe.map(ze=>{var je;return{keybinding:(0,S.decodeKeybinding)(ze.keybinding,w.OS),command:(je=ze.command)!==null&&je!==void 0?je:null,commandArgs:ze.commandArgs,when:ze.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(Ve),this.updateResolver(),(0,p.toDisposable)(()=>{for(let ze=0;zethis._log(ze))}return this._cachedResolver}_documentHasFocus(){return be.mainWindow.document.hasFocus()}_toNormalizedKeybindingItems(Fe,Ve){const ze=[];let je=0;for(const et of Fe){const Je=et.when||void 0,lt=et.keybinding;if(!lt)ze[je++]=new I.ResolvedKeybindingItem(void 0,et.command,et.commandArgs,Je,Ve,null,!1);else{const tt=T.USLayoutResolvedKeybinding.resolveKeybinding(lt,w.OS);for(const it of tt)ze[je++]=new I.ResolvedKeybindingItem(it,et.command,et.commandArgs,Je,Ve,null,!1)}}return ze}resolveKeyboardEvent(Fe){const Ve=new S.KeyCodeChord(Fe.ctrlKey,Fe.shiftKey,Fe.altKey,Fe.metaKey,Fe.keyCode);return new T.USLayoutResolvedKeybinding([Ve],w.OS)}};e.StandaloneKeybindingService=nt,e.StandaloneKeybindingService=nt=De([he(0,r.IContextKeyService),he(1,d.ICommandService),he(2,N.ITelemetryService),he(3,R.INotificationService),he(4,V.ILogService),he(5,W.ICodeEditorService)],nt);class rt extends p.Disposable{constructor(Fe,Ve){super(),this.domNode=Fe,this._register(Ve)}}function at($e){return $e&&typeof $e=="object"&&(!$e.overrideIdentifier||typeof $e.overrideIdentifier=="string")&&(!$e.resource||$e.resource instanceof b.URI)}class ut{constructor(){this._onDidChangeConfiguration=new D.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const Fe=new Oe.DefaultConfiguration;this._configuration=new l.Configuration(Fe.reload(),new l.ConfigurationModel,new l.ConfigurationModel,new l.ConfigurationModel),Fe.dispose()}getValue(Fe,Ve){const ze=typeof Fe=="string"?Fe:void 0,je=at(Fe)?Fe:at(Ve)?Ve:{};return this._configuration.getValue(ze,je,void 0)}updateValues(Fe){const Ve={data:this._configuration.toData()},ze=[];for(const je of Fe){const[et,Je]=je;this.getValue(et)!==Je&&(this._configuration.updateValue(et,Je),ze.push(et))}if(ze.length>0){const je=new l.ConfigurationChangeEvent({keys:ze,overrides:[]},Ve,this._configuration);je.source=8,this._onDidChangeConfiguration.fire(je)}return Promise.resolve()}updateValue(Fe,Ve,ze,je){return this.updateValues([[Fe,Ve]])}inspect(Fe,Ve={}){return this._configuration.inspect(Fe,Ve,void 0)}}e.StandaloneConfigurationService=ut;let dt=class{constructor(Fe,Ve,ze){this.configurationService=Fe,this.modelService=Ve,this.languageService=ze,this._onDidChangeConfiguration=new D.Emitter,this.configurationService.onDidChangeConfiguration(je=>{this._onDidChangeConfiguration.fire({affectedKeys:je.affectedKeys,affectsConfiguration:(et,Je)=>je.affectsConfiguration(Je)})})}getValue(Fe,Ve,ze){const je=t.Position.isIPosition(Ve)?Ve:null,et=je?typeof ze=="string"?ze:void 0:typeof Ve=="string"?Ve:void 0,Je=Fe?this.getLanguage(Fe,je):void 0;return typeof et>"u"?this.configurationService.getValue({resource:Fe,overrideIdentifier:Je}):this.configurationService.getValue(et,{resource:Fe,overrideIdentifier:Je})}getLanguage(Fe,Ve){const ze=this.modelService.getModel(Fe);return ze?Ve?ze.getLanguageIdAtPosition(Ve.lineNumber,Ve.column):ze.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(Fe)}};dt=De([he(0,s.IConfigurationService),he(1,g.IModelService),he(2,le.ILanguageService)],dt);let vt=class{constructor(Fe){this.configurationService=Fe}getEOL(Fe,Ve){const ze=this.configurationService.getValue("files.eol",{overrideIdentifier:Ve,resource:Fe});return ze&&typeof ze=="string"&&ze!=="auto"?ze:w.isLinux||w.isMacintosh?` +`:`\r +`}};vt=De([he(0,s.IConfigurationService)],vt);class mt{publicLog2(){}}class Le{constructor(){const Fe=b.URI.from({scheme:Le.SCHEME,authority:"model",path:"/"});this.workspace={id:P.STANDALONE_EDITOR_WORKSPACE_ID,folders:[new P.WorkspaceFolder({uri:Fe,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(Fe){return Fe&&Fe.scheme===Le.SCHEME?this.workspace.folders[0]:null}}Le.SCHEME="inmemory";function we($e,Fe,Ve){if(!Fe||!($e instanceof ut))return;const ze=[];Object.keys(Fe).forEach(je=>{(0,n.isEditorConfigurationKey)(je)&&ze.push([`editor.${je}`,Fe[je]]),Ve&&(0,n.isDiffEditorConfigurationKey)(je)&&ze.push([`diffEditor.${je}`,Fe[je]])}),ze.length>0&&$e.updateValues(ze)}e.updateConfigurationService=we;let Te=class{constructor(Fe){this._modelService=Fe}hasPreviewHandler(){return!1}async apply(Fe,Ve){const ze=Array.isArray(Fe)?Fe:a.ResourceEdit.convert(Fe),je=new Map;for(const lt of ze){if(!(lt instanceof a.ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const tt=this._modelService.getModel(lt.resource);if(!tt)throw new Error("bad edit - model not found");if(typeof lt.versionId=="number"&&tt.getVersionId()!==lt.versionId)throw new Error("bad state - model changed in the meantime");let it=je.get(tt);it||(it=[],je.set(tt,it)),it.push(i.EditOperation.replaceMove(o.Range.lift(lt.textEdit.range),lt.textEdit.text))}let et=0,Je=0;for(const[lt,tt]of je)lt.pushStackElement(),lt.pushEditOperations([],tt,()=>[]),lt.pushStackElement(),Je+=1,et+=tt.length;return{ariaSummary:L.format(O.StandaloneServicesNLS.bulkEditServiceSummary,et,Je),isApplied:et>0}}};Te=De([he(0,g.IModelService)],Te);class ke{getUriLabel(Fe,Ve){return Fe.scheme==="file"?Fe.fsPath:Fe.path}getUriBasenameLabel(Fe){return(0,B.basename)(Fe)}}let Ee=class extends j.ContextViewService{constructor(Fe,Ve){super(Fe),this._codeEditorService=Ve}showContextView(Fe,Ve,ze){if(!Ve){const je=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();je&&(Ve=je.getContainerDomNode())}return super.showContextView(Fe,Ve,ze)}};Ee=De([he(0,F.ILayoutService),he(1,W.ICodeEditorService)],Ee);class Re{constructor(){this._neverEmitter=new D.Emitter,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class Pe extends x.LanguageService{constructor(){super()}}class He extends We.LogService{constructor(){super(new V.ConsoleLogger)}}let Ue=class extends re.ContextMenuService{constructor(Fe,Ve,ze,je,et,Je){super(Fe,Ve,ze,je,et,Je),this.configure({blockMouse:!1})}};Ue=De([he(0,N.ITelemetryService),he(1,R.INotificationService),he(2,K.IContextViewService),he(3,C.IKeybindingService),he(4,te.IMenuService),he(5,r.IContextKeyService)],Ue);class Ze{async playSignal(Fe,Ve){}}(0,ie.registerSingleton)(s.IConfigurationService,ut,0),(0,ie.registerSingleton)(c.ITextResourceConfigurationService,dt,0),(0,ie.registerSingleton)(c.ITextResourcePropertiesService,vt,0),(0,ie.registerSingleton)(P.IWorkspaceContextService,Le,0),(0,ie.registerSingleton)(A.ILabelService,ke,0),(0,ie.registerSingleton)(N.ITelemetryService,mt,0),(0,ie.registerSingleton)(h.IDialogService,st,0),(0,ie.registerSingleton)(me.IEnvironmentService,Ge,0),(0,ie.registerSingleton)(R.INotificationService,Xe,0),(0,ie.registerSingleton)(Ce.IMarkerService,Se.MarkerService,0),(0,ie.registerSingleton)(le.ILanguageService,Pe,0),(0,ie.registerSingleton)(Z.IStandaloneThemeService,U.StandaloneThemeService,0),(0,ie.registerSingleton)(V.ILogService,He,0),(0,ie.registerSingleton)(g.IModelService,pe.ModelService,0),(0,ie.registerSingleton)(ge.IMarkerDecorationsService,de.MarkerDecorationsService,0),(0,ie.registerSingleton)(r.IContextKeyService,ae.ContextKeyService,0),(0,ie.registerSingleton)(M.IProgressService,qe,0),(0,ie.registerSingleton)(M.IEditorProgressService,Ke,0),(0,ie.registerSingleton)(Ne.IStorageService,Ne.InMemoryStorageService,0),(0,ie.registerSingleton)(X.IEditorWorkerService,Y.EditorWorkerService,0),(0,ie.registerSingleton)(a.IBulkEditService,Te,0),(0,ie.registerSingleton)(z.IWorkspaceTrustManagementService,Re,0),(0,ie.registerSingleton)(m.ITextModelService,Be,0),(0,ie.registerSingleton)(q.IAccessibilityService,H.AccessibilityService,0),(0,ie.registerSingleton)(ve.IListService,ve.ListService,0),(0,ie.registerSingleton)(d.ICommandService,ot,0),(0,ie.registerSingleton)(C.IKeybindingService,nt,0),(0,ie.registerSingleton)(Ie.IQuickInputService,Q.StandaloneQuickInputService,0),(0,ie.registerSingleton)(K.IContextViewService,Ee,0),(0,ie.registerSingleton)(_e.IOpenerService,J.OpenerService,0),(0,ie.registerSingleton)(oe.IClipboardService,$.BrowserClipboardService,0),(0,ie.registerSingleton)(K.IContextMenuService,Ue,0),(0,ie.registerSingleton)(te.IMenuService,G.MenuService,0),(0,ie.registerSingleton)(xe.IAccessibilitySignalService,Ze,0);var Ye;(function($e){const Fe=new fe.ServiceCollection;for(const[tt,it]of(0,ie.getSingletonServiceDescriptors)())Fe.set(tt,it);const Ve=new ce.InstantiationService(Fe,!0);Fe.set(u.IInstantiationService,Ve);function ze(tt){je||Je({});const it=Fe.get(tt);if(!it)throw new Error("Missing service "+tt);return it instanceof ue.SyncDescriptor?Ve.invokeFunction(gt=>gt.get(tt)):it}$e.get=ze;let je=!1;const et=new D.Emitter;function Je(tt){if(je)return Ve;je=!0;for(const[gt,ht]of(0,ie.getSingletonServiceDescriptors)())Fe.get(gt)||Fe.set(gt,ht);for(const gt in tt)if(tt.hasOwnProperty(gt)){const ht=(0,u.createDecorator)(gt);Fe.get(ht)instanceof ue.SyncDescriptor&&Fe.set(ht,tt[gt])}const it=(0,ye.getEditorFeatures)();for(const gt of it)try{Ve.createInstance(gt)}catch(ht){(0,Me.onUnexpectedError)(ht)}return et.fire(),Ve}$e.initialize=Je;function lt(tt){if(je)return tt();const it=new p.DisposableStore,gt=it.add(et.event(()=>{gt.dispose(),it.add(tt())}));return it}$e.withServices=lt})(Ye||(e.StandaloneServices=Ye={}))}),define(ne[948],se([1,0,44,2,35,200,295,272,143,28,25,26,14,56,8,34,49,24,71,99,107,88,51,43,378,81,33,18,266,124,50,91,249]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTextModel=e.StandaloneDiffEditor2=e.StandaloneEditor=e.StandaloneCodeEditor=void 0;let M=0,N=!1;function P(z){if(!z){if(N)return;N=!0}L.setARIAContainer(z||T.mainWindow.document.body)}let F=class extends D.CodeEditorWidget{constructor(K,j,x,re,ie,J,X,Y,le,de,ge,pe){const Q={...j};Q.ariaLabel=Q.ariaLabel||d.StandaloneCodeEditorNLS.editorViewAccessibleLabel,Q.ariaLabel=Q.ariaLabel+";"+d.StandaloneCodeEditorNLS.accessibilityHelpMessage,super(K,Q,{},x,re,ie,J,Y,le,de,ge,pe),X instanceof p.StandaloneKeybindingService?this._standaloneKeybindingService=X:this._standaloneKeybindingService=null,P(Q.ariaContainerElement),(0,A.setHoverDelegateFactory)((U,Z)=>x.createInstance(R.WorkbenchHoverDelegate,U,Z,{}))}addCommand(K,j,x){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const re="DYNAMIC_"+ ++M,ie=n.ContextKeyExpr.deserialize(x);return this._standaloneKeybindingService.addDynamicKeybinding(re,K,j,ie),re}createContextKey(K,j){return this._contextKeyService.createKey(K,j)}addAction(K){if(typeof K.id!="string"||typeof K.label!="string"||typeof K.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None;const j=K.id,x=K.label,re=n.ContextKeyExpr.and(n.ContextKeyExpr.equals("editorId",this.getId()),n.ContextKeyExpr.deserialize(K.precondition)),ie=K.keybindings,J=n.ContextKeyExpr.and(re,n.ContextKeyExpr.deserialize(K.keybindingContext)),X=K.contextMenuGroupId||null,Y=K.contextMenuOrder||0,le=(Q,...U)=>Promise.resolve(K.run(this,...U)),de=new k.DisposableStore,ge=this.getId()+":"+j;if(de.add(b.CommandsRegistry.registerCommand(ge,le)),X){const Q={command:{id:ge,title:x},when:re,group:X,order:Y};de.add(v.MenuRegistry.appendMenuItem(v.MenuId.EditorContext,Q))}if(Array.isArray(ie))for(const Q of ie)de.add(this._standaloneKeybindingService.addDynamicKeybinding(ge,Q,le,J));const pe=new S.InternalEditorAction(ge,x,x,void 0,re,(...Q)=>Promise.resolve(K.run(this,...Q)),this._contextKeyService);return this._actions.set(j,pe),de.add((0,k.toDisposable)(()=>{this._actions.delete(j)})),de}_triggerCommand(K,j){if(this._codeEditorService instanceof u.StandaloneCodeEditorService)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(K,j)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(K,j)}};e.StandaloneCodeEditor=F,e.StandaloneCodeEditor=F=De([he(2,t.IInstantiationService),he(3,y.ICodeEditorService),he(4,b.ICommandService),he(5,n.IContextKeyService),he(6,o.IKeybindingService),he(7,m.IThemeService),he(8,g.INotificationService),he(9,c.IAccessibilityService),he(10,C.ILanguageConfigurationService),he(11,_.ILanguageFeaturesService)],F);let O=class extends F{constructor(K,j,x,re,ie,J,X,Y,le,de,ge,pe,Q,U,Z){const H={...j};(0,p.updateConfigurationService)(de,H,!1);const q=Y.registerEditorContainer(K);typeof H.theme=="string"&&Y.setTheme(H.theme),typeof H.autoDetectHighContrast<"u"&&Y.setAutoDetectHighContrast(!!H.autoDetectHighContrast);const te=H.model;delete H.model,super(K,H,x,re,ie,J,X,Y,le,ge,U,Z),this._configurationService=de,this._standaloneThemeService=Y,this._register(q);let G;if(typeof te>"u"){const $=Q.getLanguageIdByMimeType(H.language)||H.language||f.PLAINTEXT_LANGUAGE_ID;G=W(pe,Q,H.value||"",$,void 0),this._ownsModel=!0}else G=te,this._ownsModel=!1;if(this._attachModel(G),G){const $={oldModelUrl:null,newModelUrl:G.uri};this._onDidChangeModel.fire($)}}dispose(){super.dispose()}updateOptions(K){(0,p.updateConfigurationService)(this._configurationService,K,!1),typeof K.theme=="string"&&this._standaloneThemeService.setTheme(K.theme),typeof K.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!K.autoDetectHighContrast),super.updateOptions(K)}_postDetachModelCleanup(K){super._postDetachModelCleanup(K),K&&this._ownsModel&&(K.dispose(),this._ownsModel=!1)}};e.StandaloneEditor=O,e.StandaloneEditor=O=De([he(2,t.IInstantiationService),he(3,y.ICodeEditorService),he(4,b.ICommandService),he(5,n.IContextKeyService),he(6,o.IKeybindingService),he(7,w.IStandaloneThemeService),he(8,g.INotificationService),he(9,a.IConfigurationService),he(10,c.IAccessibilityService),he(11,r.IModelService),he(12,h.ILanguageService),he(13,C.ILanguageConfigurationService),he(14,_.ILanguageFeaturesService)],O);let B=class extends E.DiffEditorWidget{constructor(K,j,x,re,ie,J,X,Y,le,de,ge,pe){const Q={...j};(0,p.updateConfigurationService)(Y,Q,!0);const U=J.registerEditorContainer(K);typeof Q.theme=="string"&&J.setTheme(Q.theme),typeof Q.autoDetectHighContrast<"u"&&J.setAutoDetectHighContrast(!!Q.autoDetectHighContrast),super(K,Q,{},re,x,ie,pe,de),this._configurationService=Y,this._standaloneThemeService=J,this._register(U)}dispose(){super.dispose()}updateOptions(K){(0,p.updateConfigurationService)(this._configurationService,K,!0),typeof K.theme=="string"&&this._standaloneThemeService.setTheme(K.theme),typeof K.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!K.autoDetectHighContrast),super.updateOptions(K)}_createInnerEditor(K,j,x){return K.createInstance(F,j,x)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(K,j,x){return this.getModifiedEditor().addCommand(K,j,x)}createContextKey(K,j){return this.getModifiedEditor().createContextKey(K,j)}addAction(K){return this.getModifiedEditor().addAction(K)}};e.StandaloneDiffEditor2=B,e.StandaloneDiffEditor2=B=De([he(2,t.IInstantiationService),he(3,n.IContextKeyService),he(4,y.ICodeEditorService),he(5,w.IStandaloneThemeService),he(6,g.INotificationService),he(7,a.IConfigurationService),he(8,i.IContextMenuService),he(9,l.IEditorProgressService),he(10,s.IClipboardService),he(11,I.IAccessibilitySignalService)],B);function W(z,K,j,x,re){if(j=j||"",!x){const ie=j.indexOf(` +`);let J=j;return ie!==-1&&(J=j.substring(0,ie)),V(z,j,K.createByFilepathOrFirstLine(re||null,J),re)}return V(z,j,K.createById(x),re)}e.createTextModel=W;function V(z,K,j,x){return z.createModel(K,j,x)}}),define(ne[949],se([1,0,50,2,11,22,341,16,35,800,36,153,241,183,30,43,33,81,162,40,51,217,777,948,272,143,28,25,14,34,100,57,901,496]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o,g,m,c,d,s,l,r,h,u,f,C,_,E,I,T,A,R){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createMonacoEditorAPI=e.registerEditorOpener=e.registerLinkOpener=e.registerCommand=e.remeasureFonts=e.setTheme=e.defineTheme=e.tokenize=e.colorizeModelLine=e.colorize=e.colorizeElement=e.createWebWorker=e.onDidChangeModelLanguage=e.onWillDisposeModel=e.onDidCreateModel=e.getModels=e.getModel=e.onDidChangeMarkers=e.getModelMarkers=e.removeAllMarkers=e.setModelMarkers=e.setModelLanguage=e.createModel=e.addKeybindingRules=e.addKeybindingRule=e.addEditorAction=e.addCommand=e.createMultiFileDiffEditor=e.createDiffEditor=e.getDiffEditors=e.getEditors=e.onDidCreateDiffEditor=e.onDidCreateEditor=e.create=void 0;function M(Ce,Se,_e){return u.StandaloneServices.initialize(_e||{}).createInstance(h.StandaloneEditor,Ce,Se)}e.create=M;function N(Ce){return u.StandaloneServices.get(w.ICodeEditorService).onCodeEditorAdd(_e=>{Ce(_e)})}e.onDidCreateEditor=N;function P(Ce){return u.StandaloneServices.get(w.ICodeEditorService).onDiffEditorAdd(_e=>{Ce(_e)})}e.onDidCreateDiffEditor=P;function F(){return u.StandaloneServices.get(w.ICodeEditorService).listCodeEditors()}e.getEditors=F;function O(){return u.StandaloneServices.get(w.ICodeEditorService).listDiffEditors()}e.getDiffEditors=O;function B(Ce,Se,_e){return u.StandaloneServices.initialize(_e||{}).createInstance(h.StandaloneDiffEditor2,Ce,Se)}e.createDiffEditor=B;function W(Ce,Se){const _e=u.StandaloneServices.initialize(Se||{});return new R.MultiDiffEditorWidget(Ce,{},_e)}e.createMultiFileDiffEditor=W;function V(Ce){if(typeof Ce.id!="string"||typeof Ce.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return _.CommandsRegistry.registerCommand(Ce.id,Ce.run)}e.addCommand=V;function z(Ce){if(typeof Ce.id!="string"||typeof Ce.label!="string"||typeof Ce.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const Se=E.ContextKeyExpr.deserialize(Ce.precondition),_e=(Ne,...Oe)=>p.EditorCommand.runEditorCommand(Ne,Oe,Se,(xe,We,ye)=>Promise.resolve(Ce.run(We,...ye))),Ie=new k.DisposableStore;if(Ie.add(_.CommandsRegistry.registerCommand(Ce.id,_e)),Ce.contextMenuGroupId){const Ne={command:{id:Ce.id,title:Ce.label},when:Se,group:Ce.contextMenuGroupId,order:Ce.contextMenuOrder||0};Ie.add(C.MenuRegistry.appendMenuItem(C.MenuId.EditorContext,Ne))}if(Array.isArray(Ce.keybindings)){const Ne=u.StandaloneServices.get(I.IKeybindingService);if(!(Ne instanceof u.StandaloneKeybindingService))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const Oe=E.ContextKeyExpr.and(Se,E.ContextKeyExpr.deserialize(Ce.keybindingContext));Ie.add(Ne.addDynamicKeybindings(Ce.keybindings.map(xe=>({keybinding:xe,command:Ce.id,when:Oe}))))}}return Ie}e.addEditorAction=z;function K(Ce){return j([Ce])}e.addKeybindingRule=K;function j(Ce){const Se=u.StandaloneServices.get(I.IKeybindingService);return Se instanceof u.StandaloneKeybindingService?Se.addDynamicKeybindings(Ce.map(_e=>({keybinding:_e.keybinding,command:_e.command,commandArgs:_e.commandArgs,when:E.ContextKeyExpr.deserialize(_e.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None)}e.addKeybindingRules=j;function x(Ce,Se,_e){const Ie=u.StandaloneServices.get(o.ILanguageService),Ne=Ie.getLanguageIdByMimeType(Se)||Se;return(0,h.createTextModel)(u.StandaloneServices.get(s.IModelService),Ie,Ce,Ne,_e)}e.createModel=x;function re(Ce,Se){const _e=u.StandaloneServices.get(o.ILanguageService),Ie=_e.getLanguageIdByMimeType(Se)||Se||m.PLAINTEXT_LANGUAGE_ID;Ce.setLanguage(_e.createById(Ie))}e.setModelLanguage=re;function ie(Ce,Se,_e){Ce&&u.StandaloneServices.get(T.IMarkerService).changeOne(Se,Ce.uri,_e)}e.setModelMarkers=ie;function J(Ce){u.StandaloneServices.get(T.IMarkerService).changeAll(Ce,[])}e.removeAllMarkers=J;function X(Ce){return u.StandaloneServices.get(T.IMarkerService).read(Ce)}e.getModelMarkers=X;function Y(Ce){return u.StandaloneServices.get(T.IMarkerService).onMarkerChanged(Ce)}e.onDidChangeMarkers=Y;function le(Ce){return u.StandaloneServices.get(s.IModelService).getModel(Ce)}e.getModel=le;function de(){return u.StandaloneServices.get(s.IModelService).getModels()}e.getModels=de;function ge(Ce){return u.StandaloneServices.get(s.IModelService).onModelAdded(Ce)}e.onDidCreateModel=ge;function pe(Ce){return u.StandaloneServices.get(s.IModelService).onModelRemoved(Ce)}e.onWillDisposeModel=pe;function Q(Ce){return u.StandaloneServices.get(s.IModelService).onModelLanguageChanged(_e=>{Ce({model:_e.model,oldLanguage:_e.oldLanguageId})})}e.onDidChangeModelLanguage=Q;function U(Ce){return(0,v.createWebWorker)(u.StandaloneServices.get(s.IModelService),u.StandaloneServices.get(g.ILanguageConfigurationService),Ce)}e.createWebWorker=U;function Z(Ce,Se){const _e=u.StandaloneServices.get(o.ILanguageService),Ie=u.StandaloneServices.get(f.IStandaloneThemeService);return r.Colorizer.colorizeElement(Ie,_e,Ce,Se).then(()=>{Ie.registerEditorContainer(Ce)})}e.colorizeElement=Z;function H(Ce,Se,_e){const Ie=u.StandaloneServices.get(o.ILanguageService);return u.StandaloneServices.get(f.IStandaloneThemeService).registerEditorContainer(L.mainWindow.document.body),r.Colorizer.colorize(Ie,Ce,Se,_e)}e.colorize=H;function q(Ce,Se,_e=4){return u.StandaloneServices.get(f.IStandaloneThemeService).registerEditorContainer(L.mainWindow.document.body),r.Colorizer.colorizeModelLine(Ce,Se,_e)}e.colorizeModelLine=q;function te(Ce){const Se=t.TokenizationRegistry.get(Ce);return Se||{getInitialState:()=>c.NullState,tokenize:(_e,Ie,Ne)=>(0,c.nullTokenize)(Ce,Ne)}}function G(Ce,Se){t.TokenizationRegistry.getOrCreate(Se);const _e=te(Se),Ie=(0,y.splitLines)(Ce),Ne=[];let Oe=_e.getInitialState();for(let xe=0,We=Ie.length;xe{var Oe;if(!Ie)return null;const xe=(Oe=_e.options)===null||Oe===void 0?void 0:Oe.selection;let We;return xe&&typeof xe.endLineNumber=="number"&&typeof xe.endColumn=="number"?We=xe:xe&&(We={lineNumber:xe.startLineNumber,column:xe.startColumn}),await Ce.openCodeEditor(Ie,_e.resource,We)?Ie:null})}e.registerEditorOpener=fe;function ve(){return{create:M,getEditors:F,getDiffEditors:O,onDidCreateEditor:N,onDidCreateDiffEditor:P,createDiffEditor:B,addCommand:V,addEditorAction:z,addKeybindingRule:K,addKeybindingRules:j,createModel:x,setModelLanguage:re,setModelMarkers:ie,getModelMarkers:X,removeAllMarkers:J,onDidChangeMarkers:Y,getModels:de,getModel:le,onDidCreateModel:ge,onWillDisposeModel:pe,onDidChangeModelLanguage:Q,createWebWorker:U,colorizeElement:Z,colorize:H,colorizeModelLine:q,tokenize:G,defineTheme:$,setTheme:oe,remeasureFonts:ae,registerCommand:ue,registerLinkOpener:ce,registerEditorOpener:fe,AccessibilitySupport:l.AccessibilitySupport,ContentWidgetPositionPreference:l.ContentWidgetPositionPreference,CursorChangeReason:l.CursorChangeReason,DefaultEndOfLine:l.DefaultEndOfLine,EditorAutoIndentStrategy:l.EditorAutoIndentStrategy,EditorOption:l.EditorOption,EndOfLinePreference:l.EndOfLinePreference,EndOfLineSequence:l.EndOfLineSequence,MinimapPosition:l.MinimapPosition,MouseTargetType:l.MouseTargetType,OverlayWidgetPositionPreference:l.OverlayWidgetPositionPreference,OverviewRulerLane:l.OverviewRulerLane,GlyphMarginLane:l.GlyphMarginLane,RenderLineNumbersType:l.RenderLineNumbersType,RenderMinimap:l.RenderMinimap,ScrollbarVisibility:l.ScrollbarVisibility,ScrollType:l.ScrollType,TextEditorCursorBlinkingStyle:l.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:l.TextEditorCursorStyle,TrackedRangeStickiness:l.TrackedRangeStickiness,WrappingIndent:l.WrappingIndent,InjectedTextCursorStops:l.InjectedTextCursorStops,PositionAffinity:l.PositionAffinity,ShowLightbulbIconMode:l.ShowLightbulbIconMode,ConfigurationChangedEvent:b.ConfigurationChangedEvent,BareFontInfo:n.BareFontInfo,FontInfo:n.FontInfo,TextModelResolvedOptions:d.TextModelResolvedOptions,FindMatch:d.FindMatch,ApplyUpdateResult:b.ApplyUpdateResult,EditorZoom:a.EditorZoom,createMultiFileDiffEditor:W,EditorType:i.EditorType,EditorOptions:b.EditorOptions}}e.createMonacoEditorAPI=ve}),define(ne[950],se([1,0,39,5,30,33,81,43,217,272,575,352,143,100,18,26]),function(ee,e,L,k,y,D,S,p,w,v,b,a,n,i,t,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createMonacoLanguagesAPI=e.registerInlayHintsProvider=e.registerInlineEditProvider=e.registerInlineCompletionsProvider=e.registerDocumentRangeSemanticTokensProvider=e.registerDocumentSemanticTokensProvider=e.registerSelectionRangeProvider=e.registerDeclarationProvider=e.registerFoldingRangeProvider=e.registerColorProvider=e.registerCompletionItemProvider=e.registerLinkProvider=e.registerOnTypeFormattingEditProvider=e.registerDocumentRangeFormattingEditProvider=e.registerDocumentFormattingEditProvider=e.registerCodeActionProvider=e.registerCodeLensProvider=e.registerTypeDefinitionProvider=e.registerImplementationProvider=e.registerDefinitionProvider=e.registerLinkedEditingRangeProvider=e.registerDocumentHighlightProvider=e.registerDocumentSymbolProvider=e.registerHoverProvider=e.registerSignatureHelpProvider=e.registerNewSymbolNameProvider=e.registerRenameProvider=e.registerReferenceProvider=e.setMonarchTokensProvider=e.setTokensProvider=e.registerTokensProviderFactory=e.setColorMap=e.TokenizationSupportAdapter=e.EncodedTokenizationSupportAdapter=e.setLanguageConfiguration=e.onLanguageEncountered=e.onLanguage=e.getEncodedLanguageId=e.getLanguages=e.register=void 0;function g(G){S.ModesRegistry.registerLanguage(G)}e.register=g;function m(){let G=[];return G=G.concat(S.ModesRegistry.getLanguages()),G}e.getLanguages=m;function c(G){return v.StandaloneServices.get(p.ILanguageService).languageIdCodec.encodeLanguageId(G)}e.getEncodedLanguageId=c;function d(G,$){return v.StandaloneServices.withServices(()=>{const ae=v.StandaloneServices.get(p.ILanguageService).onDidRequestRichLanguageFeatures(ue=>{ue===G&&(ae.dispose(),$())});return ae})}e.onLanguage=d;function s(G,$){return v.StandaloneServices.withServices(()=>{const ae=v.StandaloneServices.get(p.ILanguageService).onDidRequestBasicLanguageFeatures(ue=>{ue===G&&(ae.dispose(),$())});return ae})}e.onLanguageEncountered=s;function l(G,$){if(!v.StandaloneServices.get(p.ILanguageService).isRegisteredLanguageId(G))throw new Error(`Cannot set configuration for unknown language ${G}`);return v.StandaloneServices.get(D.ILanguageConfigurationService).register(G,$,100)}e.setLanguageConfiguration=l;class r{constructor($,oe){this._languageId=$,this._actual=oe}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize($,oe,ae){if(typeof this._actual.tokenize=="function")return h.adaptTokenize(this._languageId,this._actual,$,ae);throw new Error("Not supported!")}tokenizeEncoded($,oe,ae){const ue=this._actual.tokenizeEncoded($,ae);return new y.EncodedTokenizationResult(ue.tokens,ue.endState)}}e.EncodedTokenizationSupportAdapter=r;class h{constructor($,oe,ae,ue){this._languageId=$,this._actual=oe,this._languageService=ae,this._standaloneThemeService=ue}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens($,oe){const ae=[];let ue=0;for(let ce=0,fe=$.length;ce0&&ce[fe-1]===Ne)continue;let Oe=Ie.startIndex;Se===0?Oe=0:Oe{const ae=await Promise.resolve($.create());return ae?u(ae)?E(G,ae):new a.MonarchTokenizer(v.StandaloneServices.get(p.ILanguageService),v.StandaloneServices.get(n.IStandaloneThemeService),G,(0,b.compile)(G,ae),v.StandaloneServices.get(o.IConfigurationService)):null});return y.TokenizationRegistry.registerFactory(G,oe)}e.registerTokensProviderFactory=I;function T(G,$){if(!v.StandaloneServices.get(p.ILanguageService).isRegisteredLanguageId(G))throw new Error(`Cannot set tokens provider for unknown language ${G}`);return C($)?I(G,{create:()=>$}):y.TokenizationRegistry.register(G,E(G,$))}e.setTokensProvider=T;function A(G,$){const oe=ae=>new a.MonarchTokenizer(v.StandaloneServices.get(p.ILanguageService),v.StandaloneServices.get(n.IStandaloneThemeService),G,(0,b.compile)(G,ae),v.StandaloneServices.get(o.IConfigurationService));return C($)?I(G,{create:()=>$}):y.TokenizationRegistry.register(G,oe($))}e.setMonarchTokensProvider=A;function R(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).referenceProvider.register(G,$)}e.registerReferenceProvider=R;function M(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).renameProvider.register(G,$)}e.registerRenameProvider=M;function N(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).newSymbolNamesProvider.register(G,$)}e.registerNewSymbolNameProvider=N;function P(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).signatureHelpProvider.register(G,$)}e.registerSignatureHelpProvider=P;function F(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).hoverProvider.register(G,{provideHover:(ae,ue,ce)=>{const fe=ae.getWordAtPosition(ue);return Promise.resolve($.provideHover(ae,ue,ce)).then(ve=>{if(ve)return!ve.range&&fe&&(ve.range=new k.Range(ue.lineNumber,fe.startColumn,ue.lineNumber,fe.endColumn)),ve.range||(ve.range=new k.Range(ue.lineNumber,ue.column,ue.lineNumber,ue.column)),ve})}})}e.registerHoverProvider=F;function O(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentSymbolProvider.register(G,$)}e.registerDocumentSymbolProvider=O;function B(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentHighlightProvider.register(G,$)}e.registerDocumentHighlightProvider=B;function W(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).linkedEditingRangeProvider.register(G,$)}e.registerLinkedEditingRangeProvider=W;function V(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).definitionProvider.register(G,$)}e.registerDefinitionProvider=V;function z(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).implementationProvider.register(G,$)}e.registerImplementationProvider=z;function K(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).typeDefinitionProvider.register(G,$)}e.registerTypeDefinitionProvider=K;function j(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).codeLensProvider.register(G,$)}e.registerCodeLensProvider=j;function x(G,$,oe){return v.StandaloneServices.get(t.ILanguageFeaturesService).codeActionProvider.register(G,{providedCodeActionKinds:oe?.providedCodeActionKinds,documentation:oe?.documentation,provideCodeActions:(ue,ce,fe,ve)=>{const Se=v.StandaloneServices.get(i.IMarkerService).read({resource:ue.uri}).filter(_e=>k.Range.areIntersectingOrTouching(_e,ce));return $.provideCodeActions(ue,ce,{markers:Se,only:fe.only,trigger:fe.trigger},ve)},resolveCodeAction:$.resolveCodeAction})}e.registerCodeActionProvider=x;function re(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentFormattingEditProvider.register(G,$)}e.registerDocumentFormattingEditProvider=re;function ie(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentRangeFormattingEditProvider.register(G,$)}e.registerDocumentRangeFormattingEditProvider=ie;function J(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).onTypeFormattingEditProvider.register(G,$)}e.registerOnTypeFormattingEditProvider=J;function X(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).linkProvider.register(G,$)}e.registerLinkProvider=X;function Y(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).completionProvider.register(G,$)}e.registerCompletionItemProvider=Y;function le(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).colorProvider.register(G,$)}e.registerColorProvider=le;function de(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).foldingRangeProvider.register(G,$)}e.registerFoldingRangeProvider=de;function ge(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).declarationProvider.register(G,$)}e.registerDeclarationProvider=ge;function pe(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).selectionRangeProvider.register(G,$)}e.registerSelectionRangeProvider=pe;function Q(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentSemanticTokensProvider.register(G,$)}e.registerDocumentSemanticTokensProvider=Q;function U(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(G,$)}e.registerDocumentRangeSemanticTokensProvider=U;function Z(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).inlineCompletionsProvider.register(G,$)}e.registerInlineCompletionsProvider=Z;function H(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).inlineEditProvider.register(G,$)}e.registerInlineEditProvider=H;function q(G,$){return v.StandaloneServices.get(t.ILanguageFeaturesService).inlayHintsProvider.register(G,$)}e.registerInlayHintsProvider=q;function te(){return{register:g,getLanguages:m,onLanguage:d,onLanguageEncountered:s,getEncodedLanguageId:c,setLanguageConfiguration:l,setColorMap:_,registerTokensProviderFactory:I,setTokensProvider:T,setMonarchTokensProvider:A,registerReferenceProvider:R,registerRenameProvider:M,registerNewSymbolNameProvider:N,registerCompletionItemProvider:Y,registerSignatureHelpProvider:P,registerHoverProvider:F,registerDocumentSymbolProvider:O,registerDocumentHighlightProvider:B,registerLinkedEditingRangeProvider:W,registerDefinitionProvider:V,registerImplementationProvider:z,registerTypeDefinitionProvider:K,registerCodeLensProvider:j,registerCodeActionProvider:x,registerDocumentFormattingEditProvider:re,registerDocumentRangeFormattingEditProvider:ie,registerOnTypeFormattingEditProvider:J,registerLinkProvider:X,registerColorProvider:le,registerFoldingRangeProvider:de,registerDeclarationProvider:ge,registerSelectionRangeProvider:pe,registerDocumentSemanticTokensProvider:Q,registerDocumentRangeSemanticTokensProvider:U,registerInlineCompletionsProvider:Z,registerInlineEditProvider:H,registerInlayHintsProvider:q,DocumentHighlightKind:w.DocumentHighlightKind,CompletionItemKind:w.CompletionItemKind,CompletionItemTag:w.CompletionItemTag,CompletionItemInsertTextRule:w.CompletionItemInsertTextRule,SymbolKind:w.SymbolKind,SymbolTag:w.SymbolTag,IndentAction:w.IndentAction,CompletionTriggerKind:w.CompletionTriggerKind,SignatureHelpTriggerKind:w.SignatureHelpTriggerKind,InlayHintKind:w.InlayHintKind,InlineCompletionTriggerKind:w.InlineCompletionTriggerKind,InlineEditTriggerKind:w.InlineEditTriggerKind,CodeActionTriggerType:w.CodeActionTriggerType,NewSymbolNameTag:w.NewSymbolNameTag,FoldingRangeKind:y.FoldingRangeKind,SelectedSuggestionInfo:y.SelectedSuggestionInfo}}e.createMonacoLanguagesAPI=te}),define(ne[951],se([1,0,36,344,949,950,369]),function(ee,e,L,k,y,D,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.languages=e.editor=e.Token=e.Uri=e.MarkerTag=e.MarkerSeverity=e.SelectionDirection=e.Selection=e.Range=e.Position=e.KeyMod=e.KeyCode=e.Emitter=e.CancellationTokenSource=void 0,L.EditorOptions.wrappingIndent.defaultValue=0,L.EditorOptions.glyphMargin.defaultValue=!1,L.EditorOptions.autoIndent.defaultValue=3,L.EditorOptions.overviewRulerLanes.defaultValue=2,S.FormattingConflicts.setFormatterSelector((v,b,a)=>Promise.resolve(v[0]));const p=(0,k.createMonacoBaseAPI)();p.editor=(0,y.createMonacoEditorAPI)(),p.languages=(0,D.createMonacoLanguagesAPI)(),e.CancellationTokenSource=p.CancellationTokenSource,e.Emitter=p.Emitter,e.KeyCode=p.KeyCode,e.KeyMod=p.KeyMod,e.Position=p.Position,e.Range=p.Range,e.Selection=p.Selection,e.SelectionDirection=p.SelectionDirection,e.MarkerSeverity=p.MarkerSeverity,e.MarkerTag=p.MarkerTag,e.Uri=p.Uri,e.Token=p.Token,e.editor=p.editor,e.languages=p.languages;const w=globalThis.MonacoEnvironment;(w?.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=p),typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})});var pi=this&&this.__createBinding||(Object.create?function(ee,e,L,k){k===void 0&&(k=L);var y=Object.getOwnPropertyDescriptor(e,L);(!y||("get"in y?!e.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return e[L]}}),Object.defineProperty(ee,k,y)}:function(ee,e,L,k){k===void 0&&(k=L),ee[k]=e[L]}),vi=this&&this.__exportStar||function(ee,e){for(var L in ee)L!=="default"&&!Object.prototype.hasOwnProperty.call(e,L)&&pi(e,ee,L)};define(ne[953],se([1,0,951,947,839,840,812,883,884,843,934,886]),function(ee,e,L){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),vi(L,e)})}).call(this); + + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var y=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var a=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var D=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var l=(e,r,s,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of q(r))!M.call(e,o)&&o!==s&&g(e,o,{get:()=>r[o],enumerable:!(n=x(r,o))||n.enumerable});return e},p=(e,r,s)=>(l(e,r,"default"),s&&l(s,r,"default")),c=(e,r,s)=>(s=e!=null?y(A(e)):{},l(r||!e||!e.__esModule?g(s,"default",{value:e,enumerable:!0}):s,e));var v=D((w,d)=>{var b=c(a("vs/editor/editor.api"));d.exports=b});var t={};p(t,c(v()));var f={},m={},u=class e{static getOrCreate(r){return m[r]||(m[r]=new e(r)),m[r]}constructor(r){this._languageId=r,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((s,n)=>{this._lazyLoadPromiseResolve=s,this._lazyLoadPromiseReject=n})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,f[this._languageId].loader().then(r=>this._lazyLoadPromiseResolve(r),r=>this._lazyLoadPromiseReject(r))),this._lazyLoadPromise}};function i(e){let r=e.id;f[r]=e,t.languages.register(e);let s=u.getOrCreate(r);t.languages.registerTokensProviderFactory(r,{create:async()=>(await s.load()).language}),t.languages.onLanguageEncountered(r,async()=>{let n=await s.load();t.languages.setLanguageConfiguration(r,n.conf)})}i({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/abap/abap"],e,r)})});i({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/apex/apex"],e,r)})});i({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/azcli/azcli"],e,r)})});i({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bat/bat"],e,r)})});i({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bicep/bicep"],e,r)})});i({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cameligo/cameligo"],e,r)})});i({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/clojure/clojure"],e,r)})});i({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/coffee/coffee"],e,r)})});i({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csharp/csharp"],e,r)})});i({id:"csp",extensions:[],aliases:["CSP","csp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csp/csp"],e,r)})});i({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/css/css"],e,r)})});i({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cypher/cypher"],e,r)})});i({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dart/dart"],e,r)})});i({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dockerfile/dockerfile"],e,r)})});i({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ecl/ecl"],e,r)})});i({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/elixir/elixir"],e,r)})});i({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/flow9/flow9"],e,r)})});i({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/fsharp/fsharp"],e,r)})});i({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationBracket)});i({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationBracket)});i({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationDollar)});i({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationBracket)});i({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/go/go"],e,r)})});i({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/graphql/graphql"],e,r)})});i({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/handlebars/handlebars"],e,r)})});i({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/hcl/hcl"],e,r)})});i({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/html/html"],e,r)})});i({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ini/ini"],e,r)})});i({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/java/java"],e,r)})});i({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/javascript/javascript"],e,r)})});i({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/julia/julia"],e,r)})});i({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/kotlin/kotlin"],e,r)})});i({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/less/less"],e,r)})});i({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lexon/lexon"],e,r)})});i({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lua/lua"],e,r)})});i({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/liquid/liquid"],e,r)})});i({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/m3/m3"],e,r)})});i({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/markdown/markdown"],e,r)})});i({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mdx/mdx"],e,r)})});i({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mips/mips"],e,r)})});i({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/msdax/msdax"],e,r)})});i({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mysql/mysql"],e,r)})});i({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/objective-c/objective-c"],e,r)})});i({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascal/pascal"],e,r)})});i({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascaligo/pascaligo"],e,r)})});i({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/perl/perl"],e,r)})});i({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pgsql/pgsql"],e,r)})});i({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/php/php"],e,r)})});i({id:"pla",extensions:[".pla"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pla/pla"],e,r)})});i({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/postiats/postiats"],e,r)})});i({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powerquery/powerquery"],e,r)})});i({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powershell/powershell"],e,r)})});i({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/protobuf/protobuf"],e,r)})});i({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pug/pug"],e,r)})});i({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/python/python"],e,r)})});i({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/qsharp/qsharp"],e,r)})});i({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/r/r"],e,r)})});i({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/razor/razor"],e,r)})});i({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redis/redis"],e,r)})});i({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redshift/redshift"],e,r)})});i({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/restructuredtext/restructuredtext"],e,r)})});i({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ruby/ruby"],e,r)})});i({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/rust/rust"],e,r)})});i({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sb/sb"],e,r)})});i({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scala/scala"],e,r)})});i({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scheme/scheme"],e,r)})});i({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scss/scss"],e,r)})});i({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/shell/shell"],e,r)})});i({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/solidity/solidity"],e,r)})});i({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sophia/sophia"],e,r)})});i({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sparql/sparql"],e,r)})});i({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sql/sql"],e,r)})});i({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/st/st"],e,r)})});i({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/swift/swift"],e,r)})});i({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/tcl/tcl"],e,r)})});i({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/twig/twig"],e,r)})});i({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/typescript/typescript"],e,r)})});i({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/vb/vb"],e,r)})});i({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/wgsl/wgsl"],e,r)})});i({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\new Promise((e,r)=>{a(["vs/basic-languages/xml/xml"],e,r)})});i({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/yaml/yaml"],e,r)})});})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var C=Object.create;var g=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var l=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,r)=>(typeof require<"u"?require:n)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),M=(e,n)=>{for(var r in n)g(e,r,{get:n[r],enumerable:!0})},s=(e,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of b(n))!h.call(e,t)&&t!==r&&g(e,t,{get:()=>n[t],enumerable:!(a=S(n,t))||a.enumerable});return e},y=(e,n,r)=>(s(e,n,"default"),r&&s(r,n,"default")),w=(e,n,r)=>(r=e!=null?C(x(e)):{},s(n||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),P=e=>s(g({},"__esModule",{value:!0}),e);var v=I((k,D)=>{var O=w(l("vs/editor/editor.api"));D.exports=O});var R={};M(R,{cssDefaults:()=>p,lessDefaults:()=>f,scssDefaults:()=>c});var o={};y(o,w(v()));var i=class{constructor(n,r,a){this._onDidChange=new o.Emitter;this._languageId=n,this.setOptions(r),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(n){this.setOptions(n)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},d={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},u={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},p=new i("css",d,u),c=new i("scss",d,u),f=new i("less",d,u);o.languages.css={cssDefaults:p,lessDefaults:f,scssDefaults:c};function m(){return new Promise((e,n)=>{l(["vs/language/css/cssMode"],e,n)})}o.languages.onLanguage("less",()=>{m().then(e=>e.setupMode(f))});o.languages.onLanguage("scss",()=>{m().then(e=>e.setupMode(c))});o.languages.onLanguage("css",()=>{m().then(e=>e.setupMode(p))});return P(R);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/html/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var w=Object.create;var l=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),T=(e,n)=>{for(var t in n)l(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of H(n))!_.call(e,o)&&o!==t&&l(e,o,{get:()=>n[o],enumerable:!(r=R(n,o))||r.enumerable});return e},b=(e,n,t)=>(d(e,n,"default"),t&&d(t,n,"default")),v=(e,n,t)=>(t=e!=null?w(O(e)):{},d(n||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),A=e=>d(l({},"__esModule",{value:!0}),e);var C=k((z,h)=>{var E=v(f("vs/editor/editor.api"));h.exports=E});var V={};T(V,{handlebarDefaults:()=>M,handlebarLanguageService:()=>m,htmlDefaults:()=>x,htmlLanguageService:()=>c,razorDefaults:()=>I,razorLanguageService:()=>y,registerHTMLLanguageService:()=>s});var a={};b(a,v(C()));var p=class{constructor(n,t,r){this._onDidChange=new a.Emitter;this._languageId=n,this.setOptions(t),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},F={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},u={format:F,suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===i,documentFormattingEdits:e===i,documentRangeFormattingEdits:e===i}}var i="html",D="handlebars",L="razor",c=s(i,u,g(i)),x=c.defaults,m=s(D,u,g(D)),M=m.defaults,y=s(L,u,g(L)),I=y.defaults;a.languages.html={htmlDefaults:x,razorDefaults:I,handlebarDefaults:M,htmlLanguageService:c,handlebarLanguageService:m,razorLanguageService:y,registerHTMLLanguageService:s};function P(){return new Promise((e,n)=>{f(["vs/language/html/htmlMode"],e,n)})}function s(e,n=u,t=g(e)){let r=new p(e,n,t),o,S=a.languages.onLanguage(e,async()=>{o=(await P()).setupMode(r)});return{defaults:r,dispose(){S.dispose(),o?.dispose(),o=void 0}}}return A(V);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/json/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var y=Object.create;var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var s=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var O=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),v=(e,n)=>{for(var o in n)i(e,o,{get:n[o],enumerable:!0})},g=(e,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of h(n))!b.call(e,r)&&r!==o&&i(e,r,{get:()=>n[r],enumerable:!(a=f(n,r))||a.enumerable});return e};var m=(e,n,o)=>(o=e!=null?y(N(e)):{},g(n||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),x=e=>g(i({},"__esModule",{value:!0}),e);var u=O((J,c)=>{var A=m(s("vs/editor/editor.api"));c.exports=A});var C={};v(C,{getWorker:()=>S,jsonDefaults:()=>l});var t=m(u());var d=class{constructor(n,o,a){this._onDidChange=new t.Emitter;this._languageId=n,this.setDiagnosticsOptions(o),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},T={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},D={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},l=new d("json",T,D),S=()=>p().then(e=>e.getWorker());t.languages.json={jsonDefaults:l,getWorker:S};function p(){return new Promise((e,n)=>{s(["vs/language/json/jsonMode"],e,n)})}t.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});t.languages.onLanguage("json",()=>{p().then(e=>e.setupMode(l))});return x(C);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/typescript/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var N=Object.create;var d=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var c=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var w=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),A=(n,e)=>{for(var t in e)d(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of M(e))!F.call(n,r)&&r!==t&&d(n,r,{get:()=>e[r],enumerable:!(i=H(e,r))||i.enumerable});return n},D=(n,e,t)=>(g(n,e,"default"),t&&g(t,e,"default")),C=(n,e,t)=>(t=n!=null?N(R(n)):{},g(e||!n||!n.__esModule?d(t,"default",{value:n,enumerable:!0}):t,n)),W=n=>g(d({},"__esModule",{value:!0}),n);var _=w((B,E)=>{var V=C(c("vs/editor/editor.api"));E.exports=V});var T={};A(T,{JsxEmit:()=>f,ModuleKind:()=>b,ModuleResolutionKind:()=>O,NewLineKind:()=>y,ScriptTarget:()=>h,getJavaScriptWorker:()=>k,getTypeScriptWorker:()=>P,javascriptDefaults:()=>v,typescriptDefaults:()=>x,typescriptVersion:()=>I});var L="5.0.2";var l={};D(l,C(_()));var b=(s=>(s[s.None=0]="None",s[s.CommonJS=1]="CommonJS",s[s.AMD=2]="AMD",s[s.UMD=3]="UMD",s[s.System=4]="System",s[s.ES2015=5]="ES2015",s[s.ESNext=99]="ESNext",s))(b||{}),f=(a=>(a[a.None=0]="None",a[a.Preserve=1]="Preserve",a[a.React=2]="React",a[a.ReactNative=3]="ReactNative",a[a.ReactJSX=4]="ReactJSX",a[a.ReactJSXDev=5]="ReactJSXDev",a))(f||{}),y=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(y||{}),h=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(h||{}),O=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(O||{}),m=class{constructor(e,t,i,r,p){this._onDidChange=new l.Emitter;this._onDidExtraLibsChange=new l.Emitter;this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(r),this.setModeConfiguration(p),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let r=1;return this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(r=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let p=this._extraLibs[i];p&&p.version===r&&(delete this._extraLibs[i],this._removedExtraLibs[i]=r,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(let t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(let t of e){let i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,r=t.content,p=1;this._removedExtraLibs[i]&&(p=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:r,version:p}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}},I=L,S={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},x=new m({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),v=new m({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),P=()=>u().then(n=>n.getTypeScriptWorker()),k=()=>u().then(n=>n.getJavaScriptWorker());l.languages.typescript={ModuleKind:b,JsxEmit:f,NewLineKind:y,ScriptTarget:h,ModuleResolutionKind:O,typescriptVersion:I,typescriptDefaults:x,javascriptDefaults:v,getTypeScriptWorker:P,getJavaScriptWorker:k};function u(){return new Promise((n,e)=>{c(["vs/language/typescript/tsMode"],n,e)})}l.languages.onLanguage("typescript",()=>u().then(n=>n.setupTypeScript(x)));l.languages.onLanguage("javascript",()=>u().then(n=>n.setupJavaScript(v)));return W(T);})(); +return moduleExports; +}); + +define("vs/editor/editor.main", ["vs/editor/edcore.main","vs/basic-languages/monaco.contribution","vs/language/css/monaco.contribution","vs/language/html/monaco.contribution","vs/language/json/monaco.contribution","vs/language/typescript/monaco.contribution"], function(api) { return api; }); +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.de.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.de.js new file mode 100644 index 0000000..3410951 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.de.js @@ -0,0 +1,15 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.de",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["Eingabe"],"vs/base/browser/ui/findinput/findInputToggles":["Gro\xDF-/Kleinschreibung beachten","Nur ganzes Wort suchen","Regul\xE4ren Ausdruck verwenden"],"vs/base/browser/ui/findinput/replaceInput":["Eingabe","Gro\xDF-/Kleinschreibung beibehalten"],"vs/base/browser/ui/hover/hoverWidget":['\xDCberpr\xFCfen Sie dies in der barrierefreien Ansicht mit "{0}".','\xDCberpr\xFCfen Sie dies in der barrierefreien Ansicht \xFCber den Befehl "Barrierefreie Ansicht \xF6ffnen", der zurzeit nicht \xFCber eine Tastenzuordnung ausgel\xF6st werden kann.'],"vs/base/browser/ui/iconLabel/iconLabelHover":["Wird geladen..."],"vs/base/browser/ui/inputbox/inputBox":["Fehler: {0}","Warnung: {0}","Info: {0}"," oder {0} f\xFCr Verlauf"," ({0} f\xFCr Verlauf)","Gel\xF6schte Eingabe"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Ungebunden"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Auswahlfeld"],"vs/base/browser/ui/toolbar/toolbar":["Weitere Aktionen..."],"vs/base/browser/ui/tree/abstractTree":["Filter","Fuzzy\xFCbereinstimmung","Zum Filtern Text eingeben","Zum Suchen eingeben","Zum Suchen eingeben","Schlie\xDFen","Kein Element gefunden."],"vs/base/common/actions":["(leer)"],"vs/base/common/errorMessage":["{0}: {1}","Ein Systemfehler ist aufgetreten ({0}).","Ein unbekannter Fehler ist aufgetreten. Weitere Details dazu finden Sie im Protokoll.","Ein unbekannter Fehler ist aufgetreten. Weitere Details dazu finden Sie im Protokoll.","{0} ({1} Fehler gesamt)","Ein unbekannter Fehler ist aufgetreten. Weitere Details dazu finden Sie im Protokoll."],"vs/base/common/keybindingLabels":["STRG","UMSCHALTTASTE","ALT","Windows","STRG","UMSCHALTTASTE","ALT","Super","Steuern","UMSCHALTTASTE","Option","Befehl","Steuern","UMSCHALTTASTE","ALT","Windows","Steuern","UMSCHALTTASTE","ALT","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["Editor","Auf den Editor kann zurzeit nicht zugegriffen werden.","{0} Um den f\xFCr die Sprachausgabe optimierten Modus zu aktivieren, verwenden Sie {1}",'{0} Um den f\xFCr die Sprachausgabe optimierten Modus zu aktivieren, \xF6ffnen Sie die Schnellauswahl mit {1}, und f\xFChren Sie den Befehl "Barrierefreiheitsmodus der Bildschirmsprachausgabe umschalten" aus, der derzeit nicht \xFCber die Tastatur ausgel\xF6st werden kann.','{0} Weisen Sie eine Tastenzuordnung f\xFCr den Befehl "Barrierefreiheitsmodus der Sprachausgabe umschalten" zu, indem Sie mit auf den Editor f\xFCr Tastenzuordnungen zugreifen {1} und ihn ausf\xFChren.'],"vs/editor/browser/coreCommands":["Auch bei l\xE4ngeren Zeilen am Ende bleiben","Auch bei l\xE4ngeren Zeilen am Ende bleiben","Sekund\xE4re Cursor entfernt"],"vs/editor/browser/editorExtensions":["&&R\xFCckg\xE4ngig","R\xFCckg\xE4ngig","&&Wiederholen","Wiederholen","&&Alles ausw\xE4hlen","Alle ausw\xE4hlen"],"vs/editor/browser/widget/codeEditorWidget":["Die Anzahl der Cursor wurde auf {0} beschr\xE4nkt. Erw\xE4gen Sie die Verwendung von [Suchen und Ersetzen](https://code.visualstudio.com/docs/editor/codebasics#_find-und-ersetzen) f\xFCr gr\xF6\xDFere \xC4nderungen, oder erh\xF6hen Sie die Multicursorbegrenzungseinstellung des Editors.","Erh\xF6hen des Grenzwerts f\xFCr mehrere Cursor"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":['Symbol f\xFCr "Einf\xFCgen" im barrierefreien Diff-Viewer.','Symbol f\xFCr "Entfernen" im barrierefreien Diff-Viewer.','Symbol f\xFCr "Schlie\xDFen" im barrierefreien Diff-Viewer.',"Schlie\xDFen","Barrierefreier Diff-Viewer. Verwenden Sie den Pfeil nach oben und unten, um zu navigieren.","keine ge\xE4nderten Zeilen","1 Zeile ge\xE4ndert","{0} Zeilen ge\xE4ndert","Unterschied {0} von {1}: urspr\xFCngliche Zeile {2}, {3}, ge\xE4nderte Zeile {4}, {5}","leer","{0}: unver\xE4nderte Zeile {1}","{0} urspr\xFCngliche Zeile {1} ge\xE4nderte Zeile {2}","+ {0} ge\xE4nderte Zeile(n) {1}","\u2013 {0} Originalzeile {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" verwenden Sie {0}, um die Hilfe zur Barrierefreiheit zu \xF6ffnen."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["Gel\xF6schte Zeilen kopieren","Gel\xF6schte Zeile kopieren","Ge\xE4nderte Zeilen kopieren","Ge\xE4nderte Zeile kopieren","Gel\xF6schte Zeile kopieren ({0})","Ge\xE4nderte Zeile ({0}) kopieren","Diese \xC4nderung r\xFCckg\xE4ngig machen"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["Bei eingeschr\xE4nktem Speicherplatz Inlineansicht verwenden","Verschobene Codebl\xF6cke anzeigen","Barrierefreien Diff-Viewer \xF6ffnen",'"Unver\xE4nderte Bereiche reduzieren" umschalten','"Verschobene Codebl\xF6cke anzeigen" umschalten','"Bei eingeschr\xE4nktem Speicherplatz Inlineansicht verwenden" umschalten',"Diff-Editor","Seite wechseln","Vergleichsmodus beenden","Alle unver\xE4nderten Regionen reduzieren","Alle unver\xE4nderten Regionen anzeigen","Barrierefreier Diff-Viewer","Zum n\xE4chsten Unterschied wechseln","Zum vorherigen Unterschied wechseln"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["Unver\xE4nderten Bereich falten","Klicken oder ziehen Sie, um oben mehr anzuzeigen.","Unver\xE4nderte Regionen anzeigen","Klicken oder ziehen Sie, um unten mehr anzuzeigen.","{0} ausgeblendete Linien","Zum Auffalten doppelklicken"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["Code mit \xC4nderungen in Zeile {0}-{1} verschoben","Code mit \xC4nderungen aus Zeile {0}-{1} verschoben","Code in Zeile {0}-{1} verschoben","Code aus Zeile {0}-{1} verschoben"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["Ausgew\xE4hlte \xC4nderungen zur\xFCcksetzen","\xC4nderung zur\xFCcksetzen"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["Die Rahmenfarbe f\xFCr Text, der im Diff-Editor verschoben wurde.","Die aktive Rahmenfarbe f\xFCr Text, der im Diff-Editor verschoben wurde.","Die Farbe des Schattens um unver\xE4nderte Regionswidgets.","Zeilenformatierung f\xFCr Einf\xFCgungen im Diff-Editor","Zeilenformatierung f\xFCr Entfernungen im Diff-Editor"],"vs/editor/browser/widget/hoverWidget/hoverWidget":["Halten Sie die {0}-Taste gedr\xFCckt, um mit der Maus darauf zu zeigen."],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["Die Hintergrundfarbe des Diff-Editor-Headers","Die Hintergrundfarbe des Diff-Editors f\xFCr mehrere Dateien","Die Rahmenfarbe des Diff-Editors f\xFCr mehrere Dateien"],"vs/editor/common/config/editorConfigurationSchema":["Editor","Die Anzahl der Leerzeichen, denen ein Tabstopp entspricht. Diese Einstellung wird basierend auf dem Inhalt der Datei \xFCberschrieben, wenn {0} aktiviert ist.","Die Anzahl von Leerzeichen, die f\xFCr den Einzug oder \u201EtabSize\u201C verwendet werden, um den Wert aus \u201E#editor.tabSize#\u201C zu verwenden. Diese Einstellung wird basierend auf dem Dateiinhalt \xFCberschrieben, wenn \u201E#editor.detectIndentation#\u201C aktiviert ist.","F\xFCgt beim Dr\xFCcken der TAB-Taste Leerzeichen ein. Diese Einstellung wird basierend auf dem Inhalt der Datei \xFCberschrieben, wenn {0} aktiviert ist.","Steuert, ob {0} und {1} automatisch erkannt werden, wenn eine Datei basierend auf dem Dateiinhalt ge\xF6ffnet wird.","Nachfolgende automatisch eingef\xFCgte Leerzeichen entfernen","Spezielle Behandlung f\xFCr gro\xDFe Dateien zum Deaktivieren bestimmter speicherintensiver Funktionen.","Deaktivieren Sie Word-basierte Vorschl\xE4ge.","Nur W\xF6rter aus dem aktiven Dokument vorschlagen","W\xF6rter aus allen ge\xF6ffneten Dokumenten derselben Sprache vorschlagen","W\xF6rter aus allen ge\xF6ffneten Dokumenten vorschlagen","Steuert, ob Vervollst\xE4ndigungen auf Grundlage der W\xF6rter im Dokument berechnet werden sollen, und aus welchen Dokumenten sie berechnet werden sollen.","Die semantische Hervorhebung ist f\xFCr alle Farbdesigns aktiviert.","Die semantische Hervorhebung ist f\xFCr alle Farbdesigns deaktiviert.",'Die semantische Hervorhebung wird durch die Einstellung "semanticHighlighting" des aktuellen Farbdesigns konfiguriert.',"Steuert, ob die semantische Hervorhebung f\xFCr die Sprachen angezeigt wird, die sie unterst\xFCtzen.","Lassen Sie Peek-Editoren ge\xF6ffnet, auch wenn Sie auf ihren Inhalt doppelklicken oder auf die ESCAPETASTE klicken.","Zeilen, die diese L\xE4nge \xFCberschreiten, werden aus Leistungsgr\xFCnden nicht tokenisiert","Steuert, ob die Tokenisierung asynchron auf einem Webworker erfolgen soll.","Steuert, ob die asynchrone Tokenisierung protokolliert werden soll. Nur zum Debuggen.","Steuert, ob die asynchrone Tokenisierung anhand der Legacy-Hintergrundtokenisierung \xFCberpr\xFCft werden soll. Die Tokenisierung kann verlangsamt werden. Nur zum Debuggen.","Definiert die Klammersymbole, die den Einzug vergr\xF6\xDFern oder verkleinern.","Das \xF6ffnende Klammerzeichen oder die Zeichenfolgensequenz.","Das schlie\xDFende Klammerzeichen oder die Zeichenfolgensequenz.","Definiert die Klammerpaare, die durch ihre Schachtelungsebene farbig formatiert werden, wenn die Farbgebung f\xFCr das Klammerpaar aktiviert ist.","Das \xF6ffnende Klammerzeichen oder die Zeichenfolgensequenz.","Das schlie\xDFende Klammerzeichen oder die Zeichenfolgensequenz.","Timeout in Millisekunden, nach dem die Diff-Berechnung abgebrochen wird. Bei 0 wird kein Timeout verwendet.","Maximale Dateigr\xF6\xDFe in MB, f\xFCr die Diffs berechnet werden sollen. Verwenden Sie 0, um keinen Grenzwert zu setzen.","Steuert, ob der Diff-Editor die Unterschiede nebeneinander oder im Text anzeigt.","Wenn die Breite des Diff-Editors unter diesem Wert liegt, wird die Inlineansicht verwendet.","Wenn diese Option aktiviert ist und die Breite des Editors nicht ausreicht, wird die Inlineansicht verwendet.","Wenn diese Option aktiviert ist, zeigt der Diff-Editor Pfeile in seinem Glyphenrand an, um \xC4nderungen r\xFCckg\xE4ngig zu machen.","Wenn aktiviert, ignoriert der Diff-Editor \xC4nderungen an voran- oder nachgestellten Leerzeichen.",'Steuert, ob der Diff-Editor die Indikatoren "+" und "-" f\xFCr hinzugef\xFCgte/entfernte \xC4nderungen anzeigt.',"Steuert, ob der Editor CodeLens anzeigt.","Zeilenumbr\xFCche erfolgen nie.","Der Zeilenumbruch erfolgt an der Breite des Anzeigebereichs.","Zeilen werden gem\xE4\xDF der Einstellung \u201E{0}\u201C umbrochen.","Verwendet den Legacyvergleichsalgorithmus.","Verwendet den erweiterten Vergleichsalgorithmus.","Steuert, ob der Diff-Editor unver\xE4nderte Regionen anzeigt.","Steuert, wie viele Zeilen f\xFCr unver\xE4nderte Regionen verwendet werden.","Steuert, wie viele Zeilen als Mindestwert f\xFCr unver\xE4nderte Regionen verwendet werden.","Steuert, wie viele Zeilen beim Vergleich unver\xE4nderter Regionen als Kontext verwendet werden.","Steuert, ob der Diff-Editor erkannte Codeverschiebevorg\xE4nge anzeigen soll.","Steuert, ob der diff-Editor leere Dekorationen anzeigt, um anzuzeigen, wo Zeichen eingef\xFCgt oder gel\xF6scht wurden."],"vs/editor/common/config/editorOptions":["Verwenden Sie Plattform-APIs, um zu erkennen, wenn eine Sprachausgabe angef\xFCgt ist.","Optimieren Sie diese Option f\xFCr die Verwendung mit einer Sprachausgabe.","Hiermit wird angenommen, dass keine Sprachausgabe angef\xFCgt ist.","Steuert, ob die Benutzeroberfl\xE4che in einem Modus ausgef\xFChrt werden soll, in dem sie f\xFCr Sprachausgaben optimiert ist.","Steuert, ob beim Kommentieren ein Leerzeichen eingef\xFCgt wird.","Steuert, ob leere Zeilen bei Umschalt-, Hinzuf\xFCgungs- oder Entfernungsaktionen f\xFCr Zeilenkommentare ignoriert werden sollen.","Steuert, ob ein Kopiervorgang ohne Auswahl die aktuelle Zeile kopiert.","Steuert, ob der Cursor bei der Suche nach \xDCbereinstimmungen w\xE4hrend der Eingabe springt.","Suchzeichenfolge niemals aus der Editorauswahl seeden.","Suchzeichenfolge immer aus der Editorauswahl seeden, einschlie\xDFlich Wort an Cursorposition.","Suchzeichenfolge nur aus der Editorauswahl seeden.",'Steuert, ob f\xFCr die Suchzeichenfolge im Widget "Suche" ein Seeding aus der Auswahl des Editors ausgef\xFChrt wird.','"In Auswahl suchen" niemals automatisch aktivieren (Standard).','"In Auswahl suchen" immer automatisch aktivieren.','"In Auswahl suchen" automatisch aktivieren, wenn mehrere Inhaltszeilen ausgew\xE4hlt sind.','Steuert die Bedingung zum automatischen Aktivieren von "In Auswahl suchen".','Steuert, ob das Widget "Suche" die freigegebene Suchzwischenablage unter macOS lesen oder bearbeiten soll.','Steuert, ob das Suchwidget zus\xE4tzliche Zeilen im oberen Bereich des Editors hinzuf\xFCgen soll. Wenn die Option auf "true" festgelegt ist, k\xF6nnen Sie \xFCber die erste Zeile hinaus scrollen, wenn das Suchwidget angezeigt wird.',"Steuert, ob die Suche automatisch am Anfang (oder am Ende) neu gestartet wird, wenn keine weiteren \xDCbereinstimmungen gefunden werden.",'Hiermit werden Schriftligaturen (Schriftartfeatures "calt" und "liga") aktiviert/deaktiviert. \xC4ndern Sie diesen Wert in eine Zeichenfolge, um die CSS-Eigenschaft "font-feature-settings" detailliert zu steuern.','Explizite CSS-Eigenschaft "font-feature-settings". Stattdessen kann ein boolescher Wert \xFCbergeben werden, wenn nur Ligaturen aktiviert/deaktiviert werden m\xFCssen.','Hiermit werden Schriftligaturen oder Schriftartfeatures konfiguriert. Hierbei kann es sich entweder um einen booleschen Wert zum Aktivieren oder Deaktivieren von Ligaturen oder um eine Zeichenfolge f\xFCr den Wert der CSS-Eigenschaft "font-feature-settings" handeln.',"Aktiviert/deaktiviert die \xDCbersetzung von \u201Efont-weight\u201C in \u201Efont-variation-settings\u201C. \xC4ndern Sie dies in eine Zeichenfolge f\xFCr eine differenzierte Steuerung der CSS-Eigenschaft \u201Efont-variation-settings\u201C.","Explizite CSS-Eigenschaft \u201Efont-variation-settings\u201C. Stattdessen kann ein boolescher Wert eingeben werden, wenn nur \u201Efont-weight\u201C in \u201Efont-variation-settings\u201C \xFCbersetzt werden muss.","Konfiguriert Variationen der Schriftart. Kann entweder ein boolescher Wert zum Aktivieren/Deaktivieren der \xDCbersetzung von \u201Efont-weight\u201C in \u201Efont-variation-settings\u201C oder eine Zeichenfolge f\xFCr den Wert der CSS-Eigenschaft \u201Efont-variation-settings\u201C sein.","Legt die Schriftgr\xF6\xDFe in Pixeln fest.",'Es sind nur die Schl\xFCsselw\xF6rter "normal" und "bold" sowie Zahlen zwischen 1 und 1000 zul\xE4ssig.','Steuert die Schriftbreite. Akzeptiert die Schl\xFCsselw\xF6rter "normal" und "bold" sowie Zahlen zwischen 1 und 1000.',"Vorschauansicht der Ergebnisse anzeigen (Standardeinstellung)","Zum Hauptergebnis gehen und Vorschauansicht anzeigen","Wechseln Sie zum prim\xE4ren Ergebnis, und aktivieren Sie die Navigation ohne Vorschau zu anderen Ergebnissen.",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie "editor.editor.gotoLocation.multipleDefinitions" oder "editor.editor.gotoLocation.multipleImplementations".','Legt das Verhalten des Befehls "Gehe zu Definition" fest, wenn mehrere Zielpositionen vorhanden sind','Legt das Verhalten des Befehls "Gehe zur Typdefinition" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls "Gehe zu Deklaration" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls "Gehe zu Implementierungen", wenn mehrere Zielspeicherorte vorhanden sind','Legt das Verhalten des Befehls "Gehe zu Verweisen" fest, wenn mehrere Zielpositionen vorhanden sind','Die alternative Befehls-ID, die ausgef\xFChrt wird, wenn das Ergebnis von "Gehe zu Definition" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgef\xFChrt wird, wenn das Ergebnis von "Gehe zu Typdefinition" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgef\xFChrt wird, wenn das Ergebnis von "Gehe zu Deklaration" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgef\xFChrt wird, wenn das Ergebnis von "Gehe zu Implementatierung" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgef\xFChrt wird, wenn das Ergebnis von "Gehe zu Verweis" die aktuelle Position ist.',"Steuert, ob die Hovermarkierung angezeigt wird.","Steuert die Verz\xF6gerung in Millisekunden, nach der die Hovermarkierung angezeigt wird.","Steuert, ob die Hovermarkierung sichtbar bleiben soll, wenn der Mauszeiger dar\xFCber bewegt wird.",'Steuert die Verz\xF6gerung in Millisekunden, nach der die Hovermarkierung ausgeblendet wird. Erfordert die Aktivierung von "editor.hover.sticky".',"Zeigen Sie den Mauszeiger lieber \xFCber der Linie an, wenn Platz vorhanden ist.","Es wird angenommen, dass alle Zeichen gleich breit sind. Dies ist ein schneller Algorithmus, der f\xFCr Festbreitenschriftarten und bestimmte Alphabete (wie dem lateinischen), bei denen die Glyphen gleich breit sind, korrekt funktioniert.","Delegiert die Berechnung von Umbruchpunkten an den Browser. Dies ist ein langsamer Algorithmus, der bei gro\xDFen Dateien Code Freezes verursachen kann, aber in allen F\xE4llen korrekt funktioniert.",'Steuert den Algorithmus, der Umbruchpunkte berechnet. Beachten Sie, dass "advanced" im Barrierefreiheitsmodus f\xFCr eine optimale Benutzererfahrung verwendet wird.',"Codeaktionsmen\xFC deaktivieren.","Zeigt das Codeaktionsmen\xFC an, wenn sich der Cursor in Zeilen mit Code befindet.","Zeigt das Codeaktionsmen\xFC an, wenn sich der Cursor in Zeilen mit Code oder in leeren Zeilen befindet.","Aktiviert das Gl\xFChlampensymbol f\xFCr Codeaktionen im Editor.","Zeigt die geschachtelten aktuellen Bereiche w\xE4hrend des Bildlaufs am oberen Rand des Editors an.","Definiert die maximale Anzahl fixierter Zeilen, die angezeigt werden sollen.","Legt das Modell fest, das zur Bestimmung der zu fixierenden Zeilen verwendet wird. Existiert das Gliederungsmodell nicht, wird auf das Modell des Folding Providers zur\xFCckgegriffen, der wiederum auf das Einr\xFCckungsmodell zur\xFCckgreift. Diese Reihenfolge wird in allen drei F\xE4llen beachtet.","Hiermit aktivieren Sie das Scrollen mit fixiertem Bildlauf mit der horizontalen Scrollleiste des Editors.","Aktiviert die Inlay-Hinweise im Editor.","Inlay-Hinweise sind aktiviert","Inlay-Hinweise werden standardm\xE4\xDFig angezeigt und ausgeblendet, wenn Sie {0} gedr\xFCckt halten","Inlayhinweise sind standardm\xE4\xDFig ausgeblendet. Sie werden angezeigt, wenn {0} gedr\xFCckt gehalten wird.","Inlay-Hinweise sind deaktiviert","Steuert den Schriftgrad von Einlapphinweisen im Editor. Standardm\xE4\xDFig wird die {0} verwendet, wenn der konfigurierte Wert kleiner als {1} oder gr\xF6\xDFer als der Schriftgrad des Editors ist.",'Steuert die Schriftartfamilie von Einlapphinweisen im Editor. Bei Festlegung auf "leer" wird die {0} verwendet.',"Aktiviert den Abstand um die Inlay-Hinweise im Editor.",`Steuert die Zeilenh\xF6he. \r + \u2013 Verwenden Sie 0, um die Zeilenh\xF6he automatisch anhand des Schriftgrads zu berechnen.\r + \u2013 Werte zwischen 0 und 8 werden als Multiplikator mit dem Schriftgrad verwendet.\r + \u2013 Werte gr\xF6\xDFer oder gleich 8 werden als effektive Werte verwendet.`,"Steuert, ob die Minimap angezeigt wird.","Steuert, ob die Minimap automatisch ausgeblendet wird.","Die Minimap hat die gleiche Gr\xF6\xDFe wie der Editor-Inhalt (und kann scrollen).","Die Minimap wird bei Bedarf vergr\xF6\xDFert oder verkleinert, um die H\xF6he des Editors zu f\xFCllen (kein Scrollen).","Die Minimap wird bei Bedarf verkleinert, damit sie nicht gr\xF6\xDFer als der Editor ist (kein Scrollen).","Legt die Gr\xF6\xDFe der Minimap fest.","Steuert die Seite, wo die Minimap gerendert wird.","Steuert, wann der Schieberegler f\xFCr die Minimap angezeigt wird.","Ma\xDFstab des in der Minimap gezeichneten Inhalts: 1, 2 oder 3.","Die tats\xE4chlichen Zeichen in einer Zeile rendern im Gegensatz zu Farbbl\xF6cken.","Begrenzen Sie die Breite der Minimap, um nur eine bestimmte Anzahl von Spalten zu rendern.","Steuert den Abstand zwischen dem oberen Rand des Editors und der ersten Zeile.","Steuert den Abstand zwischen dem unteren Rand des Editors und der letzten Zeile.","Aktiviert ein Pop-up, das Dokumentation und Typ eines Parameters anzeigt w\xE4hrend Sie tippen.","Steuert, ob das Men\xFC mit Parameterhinweisen zyklisch ist oder sich am Ende der Liste schlie\xDFt.","Schnelle Vorschl\xE4ge werden im Vorschlagswidget angezeigt","Schnelle Vorschl\xE4ge werden als inaktiver Text angezeigt","Schnelle Vorschl\xE4ge sind deaktiviert","Schnellvorschl\xE4ge innerhalb von Zeichenfolgen aktivieren.","Schnellvorschl\xE4ge innerhalb von Kommentaren aktivieren.","Schnellvorschl\xE4ge au\xDFerhalb von Zeichenfolgen und Kommentaren aktivieren.","Steuert, ob Vorschl\xE4ge w\xE4hrend des Tippens automatisch angezeigt werden sollen. Dies kann bei der Eingabe von Kommentaren, Zeichenketten und anderem Code kontrolliert werden. Schnellvorschl\xE4ge k\xF6nnen so konfiguriert werden, dass sie als Geistertext oder mit dem Vorschlags-Widget angezeigt werden. Beachten Sie auch die '{0}'-Einstellung, die steuert, ob Vorschl\xE4ge durch Sonderzeichen ausgel\xF6st werden.","Zeilennummern werden nicht dargestellt.","Zeilennummern werden als absolute Zahl dargestellt.","Zeilennummern werden als Abstand in Zeilen an Cursorposition dargestellt.","Zeilennummern werden alle 10 Zeilen dargestellt.","Steuert die Anzeige von Zeilennummern.","Anzahl der Zeichen aus Festbreitenschriftarten, ab der dieses Editor-Lineal gerendert wird.","Farbe dieses Editor-Lineals.","Vertikale Linien nach einer bestimmten Anzahl von Monospacezeichen rendern. Verwenden Sie mehrere Werte f\xFCr mehrere Linien. Wenn das Array leer ist, werden keine Linien gerendert.","Die vertikale Bildlaufleiste wird nur bei Bedarf angezeigt.","Die vertikale Bildlaufleiste ist immer sichtbar.","Die vertikale Bildlaufleiste wird immer ausgeblendet.","Steuert die Sichtbarkeit der vertikalen Bildlaufleiste.","Die horizontale Bildlaufleiste wird nur bei Bedarf angezeigt.","Die horizontale Bildlaufleiste ist immer sichtbar.","Die horizontale Bildlaufleiste wird immer ausgeblendet.","Steuert die Sichtbarkeit der horizontalen Bildlaufleiste.","Die Breite der vertikalen Bildlaufleiste.","Die H\xF6he der horizontalen Bildlaufleiste.","Steuert, ob Klicks nach Seite scrollen oder zur Klickposition springen.","Wenn diese Option festgelegt ist, wird die Gr\xF6\xDFe des Editorinhalts nicht durch die horizontale Scrollleiste vergr\xF6\xDFert.","Legt fest, ob alle nicht einfachen ASCII-Zeichen hervorgehoben werden. Nur Zeichen zwischen U+0020 und U+007E, Tabulator, Zeilenvorschub und Wagenr\xFCcklauf gelten als einfache ASCII-Zeichen.","Legt fest, ob Zeichen, die nur als Platzhalter dienen oder \xFCberhaupt keine Breite haben, hervorgehoben werden.","Legt fest, ob Zeichen hervorgehoben werden, die mit einfachen ASCII-Zeichen verwechselt werden k\xF6nnen, mit Ausnahme derjenigen, die im aktuellen Gebietsschema des Benutzers \xFCblich sind.","Steuert, ob Zeichen in Kommentaren auch mit Unicode-Hervorhebung versehen werden sollen.","Steuert, ob Zeichen in Zeichenfolgen auch mit Unicode-Hervorhebung versehen werden sollen.","Definiert zul\xE4ssige Zeichen, die nicht hervorgehoben werden.","Unicodezeichen, die in zul\xE4ssigen Gebietsschemas \xFCblich sind, werden nicht hervorgehoben.","Steuert, ob Inline-Vorschl\xE4ge automatisch im Editor angezeigt werden.","Die Symbolleiste \u201EInline-Vorschlag\u201C anzeigen, wenn ein Inline-Vorschlag angezeigt wird.","Die Symbolleiste \u201EInline-Vorschlag\u201C anzeigen, wenn Sie mit dem Mauszeiger auf einen Inline-Vorschlag zeigen.","Die Inlinevorschlagssymbolleiste nie anzeigen.","Steuert, wann die Inlinevorschlagssymbolleiste angezeigt werden soll.","Steuert, wie Inlinevorschl\xE4ge mit dem Vorschlagswidget interagieren. Wenn diese Option aktiviert ist, wird das Vorschlagswidget nicht automatisch angezeigt, wenn Inlinevorschl\xE4ge verf\xFCgbar sind.","Steuert die Schriftfamilie der Inlinevorschl\xE4ge.","Steuert, ob Inlinebearbeitungen im Editor angezeigt werden.","Die Symbolleiste f\xFCr die Inlinebearbeitung anzeigen, wenn ein Inlinevorschlag angezeigt wird.","Die Symbolleiste f\xFCr die Inlinebearbeitung anzeigen, wenn Sie mit dem Mauszeiger auf einen Inlinevorschlag zeigen.","Die Symbolleiste f\xFCr die Inlinebearbeitung nie anzeigen.","Steuert, wann die Symbolleiste f\xFCr die Inlinebearbeitung angezeigt werden soll.","Steuert die Schriftfamilie der Inlinebearbeitung.","Steuert, ob der Hintergrund von Inlinebearbeitungen farbig dargestellt wird.","Steuert, ob die Klammerpaar-Farbgebung aktiviert ist oder nicht. Verwenden Sie {0}, um die Hervorhebungsfarben der Klammer zu \xFCberschreiben.","Steuert, ob jeder Klammertyp \xFCber einen eigenen unabh\xE4ngigen Farbpool verf\xFCgt.","Aktiviert Klammernpaarf\xFChrungslinien.","Aktiviert Klammernpaarf\xFChrungslinien nur f\xFCr das aktive Klammerpaar.","Deaktiviert Klammernpaarf\xFChrungslinien.","Steuert, ob F\xFChrungslinien f\xFCr Klammerpaare aktiviert sind oder nicht.","Aktiviert horizontale F\xFChrungslinien als Erg\xE4nzung zu vertikalen Klammernpaarf\xFChrungslinien.","Aktiviert horizontale F\xFChrungslinien nur f\xFCr das aktive Klammerpaar.","Deaktiviert horizontale F\xFChrungslinien f\xFCr Klammernpaare.","Steuert, ob horizontale F\xFChrungslinien f\xFCr Klammernpaare aktiviert sind oder nicht.","Steuert, ob der Editor das aktive Klammerpaar hervorheben soll.","Steuert, ob der Editor Einzugsf\xFChrungslinien rendern soll.","Hebt die aktive Einzugsf\xFChrung hervor.","Hebt die aktive Einzugshilfslinie hervor, selbst wenn Klammerhilfslinien hervorgehoben sind.","Heben Sie die aktive Einzugshilfslinie nicht hervor.","Steuert, ob der Editor die aktive Einzugsf\xFChrungslinie hevorheben soll.","Vorschlag einf\xFCgen, ohne den Text auf der rechten Seite des Cursors zu \xFCberschreiben","Vorschlag einf\xFCgen und Text auf der rechten Seite des Cursors \xFCberschreiben","Legt fest, ob W\xF6rter beim Akzeptieren von Vervollst\xE4ndigungen \xFCberschrieben werden. Beachten Sie, dass dies von Erweiterungen abh\xE4ngt, die f\xFCr dieses Features aktiviert sind.","Steuert, ob Filter- und Suchvorschl\xE4ge geringf\xFCgige Tippfehler ber\xFCcksichtigen.","Steuert, ob bei der Sortierung W\xF6rter priorisiert werden, die in der N\xE4he des Cursors stehen.",'Steuert, ob gespeicherte Vorschlagauswahlen in verschiedenen Arbeitsbereichen und Fenstern gemeinsam verwendet werden (daf\xFCr ist "#editor.suggestSelection#" erforderlich).',"W\xE4hlen Sie immer einen Vorschlag aus, wenn IntelliSense automatisch ausgel\xF6st wird.","W\xE4hlen Sie niemals einen Vorschlag aus, wenn IntelliSense automatisch ausgel\xF6st wird.","W\xE4hlen Sie einen Vorschlag nur aus, wenn IntelliSense aus einem Triggerzeichen ausgel\xF6st wird.","W\xE4hlen Sie einen Vorschlag nur aus, wenn Sie IntelliSense w\xE4hrend der Eingabe ausl\xF6sen.",'Steuert, ob ein Vorschlag ausgew\xE4hlt wird, wenn das Widget angezeigt wird. Beachten Sie, dass dies nur f\xFCr automatisch ausgel\xF6ste Vorschl\xE4ge gilt ("#editor.quickSuggestions#" und "#editor.suggestOnTriggerCharacters#"), und dass ein Vorschlag immer ausgew\xE4hlt wird, wenn er explizit aufgerufen wird, z. B. \xFCber STRG+LEERTASTE.','Steuert, ob ein aktiver Schnipsel verhindert, dass der Bereich "Schnelle Vorschl\xE4ge" angezeigt wird.',"Steuert, ob Symbole in Vorschl\xE4gen ein- oder ausgeblendet werden.","Steuert die Sichtbarkeit der Statusleiste unten im Vorschlagswidget.","Steuert, ob das Ergebnis des Vorschlags im Editor in der Vorschau angezeigt werden soll.","Steuert, ob Vorschlagsdetails inline mit der Bezeichnung oder nur im Detailwidget angezeigt werden.","Diese Einstellung ist veraltet. Die Gr\xF6\xDFe des Vorschlagswidgets kann jetzt ge\xE4ndert werden.",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie "editor.suggest.showKeywords" oder "editor.suggest.showSnippets".','Wenn aktiviert, zeigt IntelliSense "method"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "funktions"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "constructor"-Vorschl\xE4ge an.',"Wenn IntelliSense aktiviert ist, werden \u201Everaltete\u201C Vorschl\xE4ge angezeigt.","Wenn dies aktiviert ist, erfordert die IntelliSense-Filterung, dass das erste Zeichen mit einem Wortanfang \xFCbereinstimmt, z.\xA0B. \u201Ec\u201C in \u201EConsole\u201C oder \u201EWebContext\u201C, aber _nicht_ bei \u201Edescription\u201C. Wenn diese Option deaktiviert ist, zeigt IntelliSense mehr Ergebnisse an, sortiert sie aber weiterhin nach der \xDCbereinstimmungsqualit\xE4t.",'Wenn aktiviert, zeigt IntelliSense "field"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "variable"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "class"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "struct"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "interface"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "module"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "property"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "event"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "operator"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "unit"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "value"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "constant"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "enum"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "enumMember"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "keyword"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "text"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "color"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "file"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "reference"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "customcolor"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "folder"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "typeParameter"-Vorschl\xE4ge an.','Wenn aktiviert, zeigt IntelliSense "snippet"-Vorschl\xE4ge an.',"Wenn aktiviert, zeigt IntelliSense user-Vorschl\xE4ge an.","Wenn aktiviert, zeigt IntelliSense issues-Vorschl\xE4ge an.","Gibt an, ob f\xFChrende und nachstehende Leerzeichen immer ausgew\xE4hlt werden sollen.",'Gibt an, ob Unterw\xF6rter (z.\xA0B. "foo" in "fooBar" oder "foo_bar") ausgew\xE4hlt werden sollen.',"Kein Einzug. Umbrochene Zeilen beginnen bei Spalte 1.","Umbrochene Zeilen erhalten den gleichen Einzug wie das \xFCbergeordnete Element.","Umbrochene Zeilen erhalten + 1 Einzug auf das \xFCbergeordnete Element.","Umgebrochene Zeilen werden im Vergleich zum \xFCbergeordneten Element +2 einger\xFCckt.","Steuert die Einr\xFCckung der umbrochenen Zeilen.","Steuert, ob Sie eine Datei per Drag & Drop in einen Text-Editor ziehen k\xF6nnen, indem Sie die UMSCHALTTASTE gedr\xFCckt halten (anstatt die Datei in einem Editor zu \xF6ffnen).","Steuert, ob beim Ablegen von Dateien im Editor ein Widget angezeigt wird. Mit diesem Widget k\xF6nnen Sie steuern, wie die Datei ablegt wird.","Zeigt das Widget f\xFCr die Dropdownauswahl an, nachdem eine Datei im Editor abgelegt wurde.","Das Widget f\xFCr die Ablageauswahl wird nie angezeigt. Stattdessen wird immer der Standardablageanbieter verwendet.","Steuert, ob Sie Inhalte auf unterschiedliche Weise einf\xFCgen k\xF6nnen.","Steuert, ob beim Einf\xFCgen von Inhalt im Editor ein Widget angezeigt wird. Mit diesem Widget k\xF6nnen Sie steuern, wie die Datei eingef\xFCgt wird.","Das Widget f\xFCr die Einf\xFCgeauswahl anzeigen, nachdem der Inhalt in den Editor eingef\xFCgt wurde.","Das Widget f\xFCr die Einf\xFCgeauswahl wird nie angezeigt. Stattdessen wird immer das Standardeinf\xFCgeverhalten verwendet.",'Steuert, ob Vorschl\xE4ge \xFCber Commitzeichen angenommen werden sollen. In JavaScript kann ein Semikolon (";") beispielsweise ein Commitzeichen sein, das einen Vorschlag annimmt und dieses Zeichen eingibt.',"Einen Vorschlag nur mit der EINGABETASTE akzeptieren, wenn dieser eine \xC4nderung am Text vornimmt.","Steuert, ob Vorschl\xE4ge mit der EINGABETASTE (zus\xE4tzlich zur TAB-Taste) akzeptiert werden sollen. Vermeidet Mehrdeutigkeit zwischen dem Einf\xFCgen neuer Zeilen oder dem Annehmen von Vorschl\xE4gen.","Steuert die Anzahl von Zeilen im Editor, die von einer Sprachausgabe in einem Arbeitsschritt gelesen werden k\xF6nnen. Wenn eine Sprachausgabe erkannt wird, wird der Standardwert automatisch auf 500 festgelegt. Warnung: Ein Wert h\xF6her als der Standardwert, kann sich auf die Leistung auswirken.","Editor-Inhalt","Steuern Sie, ob Inlinevorschl\xE4ge von einer Sprachausgabe angek\xFCndigt werden.","Verwenden Sie Sprachkonfigurationen, um zu bestimmen, wann Klammern automatisch geschlossen werden sollen.","Schlie\xDFe Klammern nur automatisch, wenn der Cursor sich links von einem Leerzeichen befindet.","Steuert, ob der Editor automatisch Klammern schlie\xDFen soll, nachdem der Benutzer eine \xF6ffnende Klammer hinzugef\xFCgt hat.","Verwenden Sie Sprachkonfigurationen, um festzulegen, wann Kommentare automatisch geschlossen werden sollen.","Kommentare werden nur dann automatisch geschlossen, wenn sich der Cursor links von einem Leerraum befindet.","Steuert, ob der Editor Kommentare automatisch schlie\xDFen soll, nachdem die Benutzer*innen einen ersten Kommentar hinzugef\xFCgt haben.","Angrenzende schlie\xDFende Anf\xFChrungszeichen oder Klammern werden nur \xFCberschrieben, wenn sie automatisch eingef\xFCgt wurden.","Steuert, ob der Editor angrenzende schlie\xDFende Anf\xFChrungszeichen oder Klammern beim L\xF6schen entfernen soll.","Schlie\xDFende Anf\xFChrungszeichen oder Klammern werden nur \xFCberschrieben, wenn sie automatisch eingef\xFCgt wurden.","Steuert, ob der Editor schlie\xDFende Anf\xFChrungszeichen oder Klammern \xFCberschreiben soll.","Verwende die Sprachkonfiguration, um zu ermitteln, wann Anf\xFChrungsstriche automatisch geschlossen werden.","Schlie\xDFende Anf\xFChrungszeichen nur dann automatisch erg\xE4nzen, wenn der Cursor sich links von einem Leerzeichen befindet.","Steuert, ob der Editor Anf\xFChrungszeichen automatisch schlie\xDFen soll, nachdem der Benutzer ein \xF6ffnendes Anf\xFChrungszeichen hinzugef\xFCgt hat.","Der Editor f\xFCgt den Einzug nicht automatisch ein.","Der Editor beh\xE4lt den Einzug der aktuellen Zeile bei.","Der Editor beh\xE4lt den in der aktuellen Zeile definierten Einzug bei und beachtet f\xFCr Sprachen definierte Klammern.","Der Editor beh\xE4lt den Einzug der aktuellen Zeile bei, beachtet von Sprachen definierte Klammern und ruft spezielle onEnterRules-Regeln auf, die von Sprachen definiert wurden.","Der Editor beh\xE4lt den Einzug der aktuellen Zeile bei, beachtet die von Sprachen definierten Klammern, ruft von Sprachen definierte spezielle onEnterRules-Regeln auf und beachtet von Sprachen definierte indentationRules-Regeln.","Legt fest, ob der Editor den Einzug automatisch anpassen soll, wenn Benutzer Zeilen eingeben, einf\xFCgen, verschieben oder einr\xFCcken","Sprachkonfigurationen verwenden, um zu bestimmen, wann eine Auswahl automatisch umschlossen werden soll.","Mit Anf\xFChrungszeichen, nicht mit Klammern umschlie\xDFen.","Mit Klammern, nicht mit Anf\xFChrungszeichen umschlie\xDFen.","Steuert, ob der Editor die Auswahl beim Eingeben von Anf\xFChrungszeichen oder Klammern automatisch umschlie\xDFt.","Emuliert das Auswahlverhalten von Tabstoppzeichen, wenn Leerzeichen f\xFCr den Einzug verwendet werden. Die Auswahl wird an Tabstopps ausgerichtet.","Steuert, ob der Editor CodeLens anzeigt.","Steuert die Schriftfamilie f\xFCr CodeLens.","Steuert den Schriftgrad in Pixeln f\xFCr CodeLens. Bei Festlegung auf \u201E0, 90\xA0% von \u201E#editor.fontSize#\u201C verwendet.","Steuert, ob der Editor die Inline-Farbdecorators und die Farbauswahl rendern soll.","Farbauswahl sowohl beim Klicken als auch beim Daraufzeigen des Farbdekorators anzeigen","Farbauswahl beim Draufzeigen auf den Farbdekorator anzeigen","Farbauswahl beim Klicken auf den Farbdekorator anzeigen","Steuert die Bedingung, damit eine Farbauswahl aus einem Farbdekorator angezeigt wird.","Steuert die maximale Anzahl von Farb-Decorators, die in einem Editor gleichzeitig gerendert werden k\xF6nnen.","Zulassen, dass die Auswahl per Maus und Tasten die Spaltenauswahl durchf\xFChrt.","Steuert, ob Syntax-Highlighting in die Zwischenablage kopiert wird.","Steuert den Cursoranimationsstil.","Die Smooth Caret-Animation ist deaktiviert.","Die Smooth Caret-Animation ist nur aktiviert, wenn der Benutzer den Cursor mit einer expliziten Geste bewegt.","Die Smooth Caret-Animation ist immer aktiviert.","Steuert, ob die weiche Cursoranimation aktiviert werden soll.","Steuert den Cursor-Stil.","Steuert die Mindestanzahl sichtbarer f\xFChrender Zeilen\xA0(mindestens\xA00) und nachfolgender Zeilen\xA0(mindestens\xA01) um den Cursor. Dies wird in einigen anderen Editoren als \u201EscrollOff\u201C oder \u201EscrollOffset\u201C bezeichnet.",'"cursorSurroundingLines" wird nur erzwungen, wenn die Ausl\xF6sung \xFCber die Tastatur oder API erfolgt.','"cursorSurroundingLines" wird immer erzwungen.','Steuert, wann "#cursorSurroundingLines#" erzwungen werden soll.',"Steuert die Breite des Cursors, wenn `#editor.cursorStyle#` auf `line` festgelegt ist.","Steuert, ob der Editor das Verschieben einer Auswahl per Drag and Drop zul\xE4sst.","Verwenden Sie eine neue Rendering-Methode mit SVGs.","Verwenden Sie eine neue Rendering-Methode mit Schriftartzeichen.","Verwenden Sie die stabile Rendering-Methode.","Steuert, ob Leerzeichen mit einer neuen experimentellen Methode gerendert werden.","Multiplikator f\xFCr Scrollgeschwindigkeit bei Dr\xFCcken von ALT.","Steuert, ob Codefaltung im Editor aktiviert ist.","Verwenden Sie eine sprachspezifische Faltstrategie, falls verf\xFCgbar. Andernfalls wird eine einzugsbasierte verwendet.","Einzugsbasierte Faltstrategie verwenden.","Steuert die Strategie f\xFCr die Berechnung von Faltbereichen.","Steuert, ob der Editor eingefaltete Bereiche hervorheben soll.","Steuert, ob der Editor Importbereiche automatisch reduziert.","Die maximale Anzahl von faltbaren Regionen. Eine Erh\xF6hung dieses Werts kann dazu f\xFChren, dass der Editor weniger reaktionsf\xE4hig wird, wenn die aktuelle Quelle eine gro\xDFe Anzahl von faltbaren Regionen aufweist.","Steuert, ob eine Zeile aufgefaltet wird, wenn nach einer gefalteten Zeile auf den leeren Inhalt geklickt wird.","Steuert die Schriftfamilie.","Steuert, ob der Editor den eingef\xFCgten Inhalt automatisch formatieren soll. Es muss ein Formatierer vorhanden sein, der in der Lage ist, auch Dokumentbereiche zu formatieren.","Steuert, ob der Editor die Zeile nach der Eingabe automatisch formatieren soll.","Steuert, ob der Editor den vertikalen Glyphenrand rendert. Der Glyphenrand wird haupts\xE4chlich zum Debuggen verwendet.","Steuert, ob der Cursor im \xDCbersichtslineal ausgeblendet werden soll.","Legt den Abstand der Buchstaben in Pixeln fest.","Steuert, ob die verkn\xFCpfte Bearbeitung im Editor aktiviert ist. Abh\xE4ngig von der Sprache werden zugeh\xF6rige Symbole, z.\xA0B. HTML-Tags, w\xE4hrend der Bearbeitung aktualisiert.","Steuert, ob der Editor Links erkennen und anklickbar machen soll.","Passende Klammern hervorheben",'Ein Multiplikator, der f\xFCr die Mausrad-Bildlaufereignisse "deltaX" und "deltaY" verwendet werden soll.',"Schriftart des Editors vergr\xF6\xDFern, wenn das Mausrad verwendet und \u201ECmd\u201C gedr\xFCckt wird.","Schriftart des Editors vergr\xF6\xDFern, wenn das Mausrad verwendet und die STRG-TASTE gedr\xFCckt wird.","Mehrere Cursor zusammenf\xFChren, wenn sie sich \xFCberlappen.","Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.","Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.",'Der Modifizierer, der zum Hinzuf\xFCgen mehrerer Cursor mit der Maus verwendet werden soll. Die Mausgesten "Gehe zu Definition" und "Link \xF6ffnen" werden so angepasst, dass sie nicht mit dem [Multicursormodifizierer](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-Modifizierer) in Konflikt stehen.',"Jeder Cursor f\xFCgt eine Textzeile ein.","Jeder Cursor f\xFCgt den vollst\xE4ndigen Text ein.","Steuert das Einf\xFCgen, wenn die Zeilenanzahl des Einf\xFCgetexts der Cursor-Anzahl entspricht.","Steuert die maximale Anzahl von Cursorn, die sich gleichzeitig in einem aktiven Editor befindet.","Hebt keine Vorkommen hervor.","Hebt Vorkommen nur in der aktuellen Datei hervor.","Experimentell: Hebt Vorkommen in allen g\xFCltigen ge\xF6ffneten Dateien hervor.","Steuert, ob Vorkommen in ge\xF6ffneten Dateien hervorgehoben werden sollen.","Steuert, ob um das \xDCbersichtslineal ein Rahmen gezeichnet werden soll.","Struktur beim \xD6ffnen des Peek-Editors fokussieren","Editor fokussieren, wenn Sie den Peek-Editor \xF6ffnen","Steuert, ob der Inline-Editor oder die Struktur im Peek-Widget fokussiert werden soll.",'Steuert, ob die Mausgeste "Gehe zu Definition" immer das Vorschauwidget \xF6ffnet.',"Steuert die Verz\xF6gerung in Millisekunden nach der Schnellvorschl\xE4ge angezeigt werden.","Steuert, ob der Editor bei Eingabe automatisch eine Umbenennung vornimmt.",'Veraltet. Verwenden Sie stattdessen "editor.linkedEditing".',"Steuert, ob der Editor Steuerzeichen rendern soll.","Letzte Zeilennummer rendern, wenn die Datei mit einem Zeilenumbruch endet.","Hebt den Bundsteg und die aktuelle Zeile hervor.","Steuert, wie der Editor die aktuelle Zeilenhervorhebung rendern soll.","Steuert, ob der Editor die aktuelle Zeilenhervorhebung nur dann rendern soll, wenn der Fokus auf dem Editor liegt.","Leerraumzeichen werden gerendert mit Ausnahme der einzelnen Leerzeichen zwischen W\xF6rtern.","Hiermit werden Leerraumzeichen nur f\xFCr ausgew\xE4hlten Text gerendert.","Nur nachstehende Leerzeichen rendern","Steuert, wie der Editor Leerzeichen rendern soll.","Steuert, ob eine Auswahl abgerundete Ecken aufweisen soll.","Steuert die Anzahl der zus\xE4tzlichen Zeichen, nach denen der Editor horizontal scrollt.","Steuert, ob der Editor jenseits der letzten Zeile scrollen wird.","Nur entlang der vorherrschenden Achse scrollen, wenn gleichzeitig vertikal und horizontal gescrollt wird. Dadurch wird ein horizontaler Versatz beim vertikalen Scrollen auf einem Trackpad verhindert.","Steuert, ob die prim\xE4re Linux-Zwischenablage unterst\xFCtzt werden soll.","Steuert, ob der Editor \xDCbereinstimmungen hervorheben soll, die der Auswahl \xE4hneln.","Steuerelemente f\xFCr die Codefaltung immer anzeigen.","Zeigen Sie niemals die Faltungssteuerelemente an, und verringern Sie die Gr\xF6\xDFe des Bundstegs.","Steuerelemente f\xFCr die Codefaltung nur anzeigen, wenn sich die Maus \xFCber dem Bundsteg befindet.","Steuert, wann die Steuerungselemente f\xFCr die Codefaltung am Bundsteg angezeigt werden.","Steuert das Ausblenden von nicht verwendetem Code.","Steuert durchgestrichene veraltete Variablen.","Zeige Schnipselvorschl\xE4ge \xFCber den anderen Vorschl\xE4gen.","Schnipselvorschl\xE4ge unter anderen Vorschl\xE4gen anzeigen.","Zeige Schnipselvorschl\xE4ge mit anderen Vorschl\xE4gen.","Keine Schnipselvorschl\xE4ge anzeigen.","Steuert, ob Codeschnipsel mit anderen Vorschl\xE4gen angezeigt und wie diese sortiert werden.","Legt fest, ob der Editor Bildl\xE4ufe animiert ausf\xFChrt.","Steuert, ob f\xFCr Benutzer*innen, die eine Sprachausgabe nutzen, bei Anzeige einer Inlinevervollst\xE4ndigung ein Hinweis zur Barrierefreiheit angezeigt werden soll.","Schriftgrad f\xFCr das Vorschlagswidget. Bei Festlegung auf {0} wird der Wert von {1} verwendet.","Zeilenh\xF6he f\xFCr das Vorschlagswidget. Bei Festlegung auf {0} wird der Wert von {1} verwendet. Der Mindestwert ist 8.","Steuert, ob Vorschl\xE4ge automatisch angezeigt werden sollen, wenn Triggerzeichen eingegeben werden.","Immer den ersten Vorschlag ausw\xE4hlen.",'W\xE4hlen Sie die aktuellsten Vorschl\xE4ge aus, es sei denn, es wird ein Vorschlag durch eine weitere Eingabe ausgew\xE4hlt, z.B. "console.| -> console.log", weil "log" vor Kurzem abgeschlossen wurde.','W\xE4hlen Sie Vorschl\xE4ge basierend auf fr\xFCheren Pr\xE4fixen aus, die diese Vorschl\xE4ge abgeschlossen haben, z.B. "co -> console" und "con ->" const".',"Steuert, wie Vorschl\xE4ge bei Anzeige der Vorschlagsliste vorab ausgew\xE4hlt werden.","Die Tab-Vervollst\xE4ndigung f\xFCgt den passendsten Vorschlag ein, wenn auf Tab gedr\xFCckt wird.","Tab-Vervollst\xE4ndigungen deaktivieren.",'Codeschnipsel per Tab vervollst\xE4ndigen, wenn die Pr\xE4fixe \xFCbereinstimmen. Funktioniert am besten, wenn "quickSuggestions" deaktiviert sind.',"Tab-Vervollst\xE4ndigungen aktivieren.","Ungew\xF6hnliche Zeilenabschlusszeichen werden automatisch entfernt.","Ungew\xF6hnliche Zeilenabschlusszeichen werden ignoriert.","Zum Entfernen ungew\xF6hnlicher Zeilenabschlusszeichen wird eine Eingabeaufforderung angezeigt.","Entfernen Sie un\xFCbliche Zeilenabschlusszeichen, die Probleme verursachen k\xF6nnen.","Das Einf\xFCgen und L\xF6schen von Leerzeichen erfolgt nach Tabstopps.","Verwenden Sie die Standardregel f\xFCr Zeilenumbr\xFCche.","Trennstellen d\xFCrfen nicht f\xFCr Texte in Chinesisch/Japanisch/Koreanisch (CJK) verwendet werden. Das Verhalten von Nicht-CJK-Texten ist mit dem f\xFCr normales Verhalten identisch.","Steuert die Regeln f\xFCr Trennstellen, die f\xFCr Texte in Chinesisch/Japanisch/Koreanisch (CJK) verwendet werden.","Zeichen, die als Worttrennzeichen verwendet werden, wenn wortbezogene Navigationen oder Vorg\xE4nge ausgef\xFChrt werden.","Zeilenumbr\xFCche erfolgen nie.","Der Zeilenumbruch erfolgt an der Breite des Anzeigebereichs.",'Der Zeilenumbruch erfolgt bei "#editor.wordWrapColumn#".','Der Zeilenumbruch erfolgt beim Mindestanzeigebereich und "#editor.wordWrapColumn".',"Steuert, wie der Zeilenumbruch durchgef\xFChrt werden soll.",'Steuert die umschlie\xDFende Spalte des Editors, wenn "#editor.wordWrap#" den Wert "wordWrapColumn" oder "bounded" aufweist.',"Steuert, ob Inlinefarbdekorationen mithilfe des Standard-Dokumentfarbanbieters angezeigt werden sollen.","Steuert, ob der Editor Registerkarten empf\xE4ngt oder zur Navigation zur Workbench zur\xFCckgibt."],"vs/editor/common/core/editorColorRegistry":["Hintergrundfarbe zur Hervorhebung der Zeile an der Cursorposition.","Hintergrundfarbe f\xFCr den Rahmen um die Zeile an der Cursorposition.","Hintergrundfarbe der markierten Bereiche, wie z.B. Quick Open oder die Suche. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe f\xFCr den Rahmen um hervorgehobene Bereiche.",'Hintergrundfarbe des hervorgehobenen Symbols, z. B. "Gehe zu Definition" oder "Gehe zu n\xE4chster/vorheriger". Die Farbe darf nicht undurchsichtig sein, um zugrunde liegende Dekorationen nicht zu verbergen.',"Hintergrundfarbe des Rahmens um hervorgehobene Symbole","Farbe des Cursors im Editor.","Hintergrundfarbe vom Editor-Cursor. Erlaubt die Anpassung der Farbe von einem Zeichen, welches von einem Block-Cursor \xFCberdeckt wird.","Farbe der Leerzeichen im Editor.","Zeilennummernfarbe im Editor.","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor.",'"editorIndentGuide.background" ist veraltet. Verwenden Sie stattdessen "editorIndentGuide.background1".',"Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor.",'"editorIndentGuide.activeBackground" ist veraltet. Verwenden Sie stattdessen "editorIndentGuide.activeBackground1".',"Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (1).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (2).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (3).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (4).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (5).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im Editor (6).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (1).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (2).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (3).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (4).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (5).","Farbe der F\xFChrungslinien f\xFCr Einz\xFCge im aktiven Editor (6).","Zeilennummernfarbe der aktiven Editorzeile.",'Die ID ist veraltet. Verwenden Sie stattdessen "editorLineNumber.activeForeground".',"Zeilennummernfarbe der aktiven Editorzeile.","Die Farbe der letzten Editor-Zeile, wenn \u201Eeditor.renderFinalNewline\u201C auf \u201Eabgeblendet\u201C festgelegt ist.","Farbe des Editor-Lineals.","Vordergrundfarbe der CodeLens-Links im Editor","Hintergrundfarbe f\xFCr zusammengeh\xF6rige Klammern","Farbe f\xFCr zusammengeh\xF6rige Klammern","Farbe des Rahmens f\xFCr das \xDCbersicht-Lineal.","Hintergrundfarbe des Editor-\xDCbersichtslineals.","Hintergrundfarbe der Editorleiste. Die Leiste enth\xE4lt die Glyphenr\xE4nder und die Zeilennummern.","Rahmenfarbe unn\xF6tigen (nicht genutzten) Quellcodes im Editor.",'Deckkraft des unn\xF6tigen (nicht genutzten) Quellcodes im Editor. "#000000c0" rendert z.B. den Code mit einer Deckkraft von 75%. Verwenden Sie f\xFCr Designs mit hohem Kontrast das Farbdesign "editorUnnecessaryCode.border", um unn\xF6tigen Code zu unterstreichen statt ihn abzublenden.',"Rahmenfarbe des Ghost-Texts im Editor.","Vordergrundfarbe des Ghost-Texts im Editor.","Hintergrundfarbe des Ghost-Texts im Editor.","\xDCbersichtslinealmarkerfarbe f\xFCr das Hervorheben von Bereichen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","\xDCbersichtslineal-Markierungsfarbe f\xFCr Fehler.","\xDCbersichtslineal-Markierungsfarbe f\xFCr Warnungen.","\xDCbersichtslineal-Markierungsfarbe f\xFCr Informationen.","Vordergrundfarbe der Klammern (1). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der Klammern (2). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der Klammern (3). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der Klammern (4). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der Klammern (5). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der Klammern (6). Erfordert die Aktivierung der Farbgebung des Klammerpaars.","Vordergrundfarbe der unerwarteten Klammern.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (1). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (2). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (3). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (4). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (5). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der inaktiven Klammerpaar-Hilfslinien (6). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (1). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (2). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (3). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (4). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (5). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Hintergrundfarbe der aktiven Klammerpaar-Hilfslinien (6). Erfordert das Aktivieren von Klammerpaar-Hilfslinien.","Rahmenfarbe, die zum Hervorheben von Unicode-Zeichen verwendet wird.","Hintergrundfarbe, die zum Hervorheben von Unicode-Zeichen verwendet wird."],"vs/editor/common/editorContextKeys":["Gibt an, ob der Editor-Text den Fokus besitzt (Cursor blinkt).","Gibt an, ob der Editor oder ein Editor-Widget den Fokus besitzt (z.\xA0B. ob der Fokus sich im Suchwidget befindet).","Gibt an, ob ein Editor oder eine Rich-Text-Eingabe den Fokus besitzt (Cursor blinkt).","Gibt an, ob der Editor schreibgesch\xFCtzt ist","Gibt an, ob der Kontext ein Diff-Editor ist.","Gibt an, ob der Kontext ein eingebetteter Diff-Editor ist.","Gibt an, ob der Kontext ein Multi-Diff-Editor ist.","Gibt an, ob alle Dateien im Multi-Diff-Editor reduziert sind","Gibt an, ob der Diff-Editor \xC4nderungen aufweist.","Gibt an, ob ein verschobener Codeblock f\xFCr den Vergleich ausgew\xE4hlt wird.","Gibt an, ob der barrierefreie Diff-Viewer sichtbar ist.",'Gibt an, ob f\xFCr den Diff-Editor der Breakpoint f\xFCr das Rendern im Modus "Parallel" oder "Inline" erreicht wurde.','Gibt an, ob "editor.columnSelection" aktiviert ist.',"Gibt an, ob im Editor Text ausgew\xE4hlt ist.","Gibt an, ob der Editor \xFCber Mehrfachauswahl verf\xFCgt.","Gibt an, ob die TAB-TASTE den Fokus aus dem Editor verschiebt.","Gibt an, ob Hover im Editor sichtbar ist.","Gibt an, ob Daraufzeigen im Editor fokussiert ist.","Gibt an, ob der Fokus auf dem Fixierten Bildlauf liegt.","Gibt an, ob der Fixierte Bildlauf sichtbar ist.","Gibt an, ob der eigenst\xE4ndige Farbw\xE4hler sichtbar ist.","Gibt an, ob der eigenst\xE4ndige Farbw\xE4hler fokussiert ist.","Gibt an, ob der Editor Bestandteil eines gr\xF6\xDFeren Editors ist (z.\xA0B. Notebooks).","Der Sprachbezeichner des Editors.","Gibt an, ob der Editor \xFCber einen Vervollst\xE4ndigungselementanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Codeaktionsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen CodeLens-Anbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Definitionsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Deklarationsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Implementierungsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Typdefinitionsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Hoveranbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Dokumenthervorhebungsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Dokumentsymbolanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Verweisanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Umbenennungsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Signaturhilfeanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Inlinehinweisanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Dokumentformatierungsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber einen Anbieter f\xFCr Dokumentauswahlformatierung verf\xFCgt.","Gibt an, ob der Editor \xFCber mehrere Dokumentformatierungsanbieter verf\xFCgt.","Gibt an, ob der Editor \xFCber mehrere Anbieter f\xFCr Dokumentauswahlformatierung verf\xFCgt."],"vs/editor/common/languages":["Array","Boolescher Wert","Klasse","Konstante","Konstruktor","Enumeration","Enumerationsmember","Ereignis","Feld","Datei","Funktion","Schnittstelle","Schl\xFCssel","Methode","Modul","Namespace","NULL","Zahl","Objekt","Operator","Paket","Eigenschaft","Zeichenfolge","Struktur","Typparameter","Variable","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["Nur-Text"],"vs/editor/common/model/editStack":["Eingabe"],"vs/editor/common/standaloneStrings":["Entwickler: Token \xFCberpr\xFCfen","Gehe zu Zeile/Spalte...","Alle Anbieter f\xFCr den Schnellzugriff anzeigen","Befehlspalette","Befehle anzeigen und ausf\xFChren","Gehe zu Symbol...","Gehe zu Symbol nach Kategorie...","Editor-Inhalt","Dr\xFCcken Sie ALT + F1, um die Barrierefreiheitsoptionen aufzurufen.","Zu Design mit hohem Kontrast umschalten","{0} Bearbeitungen in {1} Dateien durchgef\xFChrt"],"vs/editor/common/viewLayout/viewLineRenderer":["Mehr anzeigen ({0})","{0} Zeichen"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["Auswahlanker",'Anker festgelegt bei "{0}:{1}"',"Auswahlanker festlegen","Zu Auswahlanker wechseln","Auswahl von Anker zu Cursor","Auswahlanker abbrechen"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\xDCbersichtslineal-Markierungsfarbe f\xFCr zusammengeh\xF6rige Klammern.","Gehe zu Klammer","Ausw\xE4hlen bis Klammer","Klammern entfernen","Gehe zu &&Klammer","Text ausw\xE4hlen und Klammern oder geschweifte Klammern einschlie\xDFen"],"vs/editor/contrib/caretOperations/browser/caretOperations":["Ausgew\xE4hlten Text nach links verschieben","Ausgew\xE4hlten Text nach rechts verschieben"],"vs/editor/contrib/caretOperations/browser/transpose":["Buchstaben austauschen"],"vs/editor/contrib/clipboard/browser/clipboard":["&&Ausschneiden","Ausschneiden","Ausschneiden","Ausschneiden","&&Kopieren","Kopieren","Kopieren","Kopieren","&&Einf\xFCgen","Einf\xFCgen","Einf\xFCgen","Einf\xFCgen","Mit Syntaxhervorhebung kopieren","Kopieren als","Kopieren als","Freigeben","Freigeben","Freigeben"],"vs/editor/contrib/codeAction/browser/codeAction":["Beim Anwenden der Code-Aktion ist ein unbekannter Fehler aufgetreten"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["Art der auszuf\xFChrenden Codeaktion","Legt fest, wann die zur\xFCckgegebenen Aktionen angewendet werden","Die erste zur\xFCckgegebene Codeaktion immer anwenden","Die erste zur\xFCckgegebene Codeaktion anwenden, wenn nur eine vorhanden ist","Zur\xFCckgegebene Codeaktionen nicht anwenden","Legt fest, ob nur bevorzugte Codeaktionen zur\xFCckgegeben werden sollen","Schnelle Problembehebung ...","Keine Codeaktionen verf\xFCgbar",'Keine bevorzugten Codeaktionen f\xFCr "{0}" verf\xFCgbar','Keine Codeaktionen f\xFCr "{0}" verf\xFCgbar',"Keine bevorzugten Codeaktionen verf\xFCgbar","Keine Codeaktionen verf\xFCgbar","Refactoring durchf\xFChren...",'Keine bevorzugten Refactorings f\xFCr "{0}" verf\xFCgbar','Keine Refactorings f\xFCr "{0}" verf\xFCgbar',"Keine bevorzugten Refactorings verf\xFCgbar","Keine Refactorings verf\xFCgbar","Quellaktion...",'Keine bevorzugten Quellaktionen f\xFCr "{0}" verf\xFCgbar','Keine Quellaktionen f\xFCr "{0}" verf\xFCgbar',"Keine bevorzugten Quellaktionen verf\xFCgbar","Keine Quellaktionen verf\xFCgbar","Importe organisieren","Keine Aktion zum Organisieren von Importen verf\xFCgbar","Alle korrigieren",'Aktion "Alle korrigieren" nicht verf\xFCgbar',"Automatisch korrigieren...","Keine automatischen Korrekturen verf\xFCgbar"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["Aktivieren/Deaktivieren Sie die Anzeige von Gruppenheadern im Codeaktionsmen\xFC.","Hiermit aktivieren/deaktivieren Sie die Anzeige der n\xE4chstgelegenen schnellen Problembehebung innerhalb einer Zeile, wenn derzeit keine Diagnose durchgef\xFChrt wird."],"vs/editor/contrib/codeAction/browser/codeActionController":["Kontext: {0} in Zeile {1} und Spalte {2}.","Deaktivierte Elemente ausblenden","Deaktivierte Elemente anzeigen"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["Weitere Aktionen...","Schnelle Problembehebung","Extrahieren","Inline","Erneut generieren","Verschieben","Umgeben mit","Quellaktion"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["Ausf\xFChren: {0}","Zeigt Codeaktionen an. Bevorzugte Schnellkorrektur verf\xFCgbar ({0})","Codeaktionen anzeigen ({0})","Codeaktionen anzeigen"],"vs/editor/contrib/codelens/browser/codelensController":["CodeLens-Befehle f\xFCr aktuelle Zeile anzeigen","Befehl ausw\xE4hlen"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["Zum Umschalten zwischen Farboptionen (rgb/hsl/hex) klicken","Symbol zum Schlie\xDFen des Farbw\xE4hlers"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&Eigenst\xE4ndige Farbw\xE4hler anzeigen oder fokussieren","Farbw\xE4hler ausblenden","Farbe mit eigenst\xE4ndigem Farbw\xE4hler einf\xFCgen","Eigenst\xE4ndige Farbw\xE4hler anzeigen oder konzentrieren"],"vs/editor/contrib/comment/browser/comment":["Zeilenkommentar umschalten","Zeilenkommen&&tar umschalten","Zeilenkommentar hinzuf\xFCgen","Zeilenkommentar entfernen","Blockkommentar umschalten","&&Blockkommentar umschalten"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Minimap","Zeichen rendern","Vertikale Gr\xF6\xDFe","Proportional","Ausf\xFCllen","Anpassen","Schieberegler","Maus \xFCber","Immer","Editor-Kontextmen\xFC anzeigen"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["Mit Cursor r\xFCckg\xE4ngig machen","Wiederholen mit Cursor"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["Einf\xFCgen als...","Die ID der Einf\xFCgebearbeitung, die angewendet werden soll. Wenn keine Angabe erfolgt, zeigt der Editor eine Auswahl an.","Als Text einf\xFCgen"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["Gibt an, ob das Einf\xFCgewidget angezeigt wird.","Einf\xFCgeoptionen anzeigen...","Es wurden keine Einf\xFCgebearbeitungen f\xFCr \u201E{0}\u201C gefunden.","Einf\xFCgehandler werden ausgef\xFChrt. Klicken Sie hier, um den Vorgang abzubrechen.","Einf\xFCgeaktion ausw\xE4hlen","Einf\xFCgehandler werden ausgef\xFChrt"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["Integriert","Nur-Text einf\xFCgen","URI einf\xFCgen","URI einf\xFCgen","Pfade einf\xFCgen","Pfad einf\xFCgen","Relative Pfade einf\xFCgen","Relativen Pfad einf\xFCgen","HTML einf\xFCgen"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["Konfiguriert den Standardablageanbieter f\xFCr den Inhalt eines vorgegebenen MIME-Typs."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["Gibt an, ob das Ablagewidget angezeigt wird.","Ablageoptionen anzeigen...","Drophandler werden ausgef\xFChrt. Klicken Sie hier, um den Vorgang abzubrechen."],"vs/editor/contrib/editorState/browser/keybindingCancellation":['Gibt an, ob der Editor einen abbrechbaren Vorgang ausf\xFChrt, z.\xA0B. "Verweisvorschau".'],"vs/editor/contrib/find/browser/findController":["Die Datei ist zu gro\xDF, um einen Vorgang zum Ersetzen aller Elemente auszuf\xFChren.","Suchen","&&Suchen","Mit Argumenten suchen","Mit Auswahl suchen","Weitersuchen","Vorheriges Element suchen","Zu \xDCbereinstimmung wechseln\xA0...","Keine \xDCbereinstimmungen. Versuchen Sie, nach etwas anderem zu suchen.","Geben Sie eine Zahl ein, um zu einer bestimmten \xDCbereinstimmung zu wechseln (zwischen\xA01 und {0}).","Zahl zwischen\xA01 und {0} eingeben","Zahl zwischen\xA01 und {0} eingeben","N\xE4chste Auswahl suchen","Vorherige Auswahl suchen","Ersetzen","&&Ersetzen"],"vs/editor/contrib/find/browser/findWidget":['Symbol f\xFCr "In Auswahl suchen" im Editor-Such-Widget.',"Symbol f\xFCr die Anzeige, dass das Editor-Such-Widget zugeklappt wurde.","Symbol f\xFCr die Anzeige, dass das Editor-Such-Widget aufgeklappt wurde.",'Symbol f\xFCr "Ersetzen" im Editor-Such-Widget.','Symbol f\xFCr "Alle ersetzen" im Editor-Such-Widget.','Symbol f\xFCr "Vorheriges Element suchen" im Editor-Such-Widget.','Symbol f\xFCr "N\xE4chstes Element suchen" im Editor-Such-Widget.',"Suchen/Ersetzen","Suchen","Suchen","Vorherige \xDCbereinstimmung","N\xE4chste \xDCbereinstimmung","In Auswahl suchen","Schlie\xDFen","Ersetzen","Ersetzen","Ersetzen","Alle ersetzen","Ersetzen umschalten","Nur die ersten {0} Ergebnisse wurden hervorgehoben, aber alle Suchoperationen werden auf dem gesamten Text durchgef\xFChrt.","{0} von {1}","Keine Ergebnisse","{0} gefunden",'{0} f\xFCr "{1}" gefunden','{0} f\xFCr "{1}" gefunden, bei {2}','{0} f\xFCr "{1}" gefunden','STRG+EINGABE f\xFCgt jetzt einen Zeilenumbruch ein, statt alles zu ersetzen. Sie k\xF6nnen die Tastenzuordnung f\xFCr "editor.action.replaceAll" \xE4ndern, um dieses Verhalten au\xDFer Kraft zu setzen.'],"vs/editor/contrib/folding/browser/folding":["Auffalten","Faltung rekursiv aufheben","Falten","Einklappung umschalten","Rekursiv falten","Alle Blockkommentare falten","Alle Regionen falten","Alle Regionen auffalten","Alle bis auf ausgew\xE4hlte falten","Alle bis auf ausgew\xE4hlte auffalten","Alle falten","Alle auffalten","Zur \xFCbergeordneten Reduzierung wechseln","Zum vorherigen Faltbereich wechseln","Zum n\xE4chsten Faltbereich wechseln","Faltungsbereich aus Auswahl erstellen","Manuelle Faltbereiche entfernen","Faltebene {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["Hintergrundfarbe hinter gefalteten Bereichen. Die Farbe darf nicht deckend sein, sodass zugrunde liegende Dekorationen nicht ausgeblendet werden.","Farbe des Faltsteuerelements im Editor-Bundsteg.","Symbol f\xFCr aufgeklappte Bereiche im Editor-Glyphenrand.","Symbol f\xFCr zugeklappte Bereiche im Editor-Glyphenrand.","Symbol f\xFCr manuell reduzierte Bereiche im Glyphenrand des Editors.","Symbol f\xFCr manuell erweiterte Bereiche im Glyphenrand des Editors.","Klicken Sie hier, um den Bereich zu erweitern.","Klicken Sie hier, um den Bereich zu reduzieren."],"vs/editor/contrib/fontZoom/browser/fontZoom":["Schriftgrad des Editors erh\xF6hen","Schriftgrad des Editors verringern","Editor-Schriftgrad zur\xFCcksetzen"],"vs/editor/contrib/format/browser/formatActions":["Dokument formatieren","Auswahl formatieren"],"vs/editor/contrib/gotoError/browser/gotoError":["Gehe zu n\xE4chstem Problem (Fehler, Warnung, Information)","Symbol f\xFCr den Marker zum Wechseln zum n\xE4chsten Element.","Gehe zu vorigem Problem (Fehler, Warnung, Information)","Symbol f\xFCr den Marker zum Wechseln zum vorherigen Element.","Gehe zu dem n\xE4chsten Problem in den Dateien (Fehler, Warnung, Info)","N\xE4chstes &&Problem","Gehe zu dem vorherigen Problem in den Dateien (Fehler, Warnung, Info)","Vorheriges &&Problem"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["Fehler","Warnung","Info","Hinweis","{0} bei {1}. ","{0} von {1} Problemen","{0} von {1} Problemen","Editormarkierung: Farbe bei Fehler des Navigationswidgets.","Hintergrund der Fehler\xFCberschrift des Markernavigationswidgets im Editor.","Editormarkierung: Farbe bei Warnung des Navigationswidgets.","Hintergrund der Warnungs\xFCberschrift des Markernavigationswidgets im Editor.","Editormarkierung: Farbe bei Information des Navigationswidgets.","Hintergrund der Informations\xFCberschrift des Markernavigationswidgets im Editor.","Editormarkierung: Hintergrund des Navigationswidgets."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["Vorschau","Definitionen",'Keine Definition gefunden f\xFCr "{0}".',"Keine Definition gefunden","Gehe &&zu Definition","Deklarationen",'Keine Deklaration f\xFCr "{0}" gefunden.',"Keine Deklaration gefunden.","Gehe zu &&Deklaration",'Keine Deklaration f\xFCr "{0}" gefunden.',"Keine Deklaration gefunden.","Typdefinitionen",'Keine Typendefinition gefunden f\xFCr "{0}"',"Keine Typendefinition gefunden","Zur &&Typdefinition wechseln","Implementierungen",'Keine Implementierung gefunden f\xFCr "{0}"',"Keine Implementierung gefunden","Gehe zu &&Implementierungen",'F\xFCr "{0}" wurden keine Verweise gefunden.',"Keine Referenzen gefunden","Gehe zu &&Verweisen","Verweise","Verweise","Speicherorte",'Keine Ergebnisse f\xFCr "{0}"',"Verweise","Gehe zu Definition","Definition an der Seite \xF6ffnen","Definition einsehen","Zur Deklaration wechseln","Vorschau f\xFCr Deklaration anzeigen","Zur Typdefinition wechseln","Vorschau der Typdefinition anzeigen","Gehe zu Implementierungen","Vorschau f\xFCr Implementierungen anzeigen","Gehe zu Verweisen","Vorschau f\xFCr Verweise anzeigen","Zum beliebigem Symbol wechseln"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["Klicken Sie, um {0} Definitionen anzuzeigen."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":['Gibt an, ob die Verweisvorschau sichtbar ist, z.\xA0B. "Verweisvorschau" oder "Definition einsehen".',"Wird geladen...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} Verweise","{0} Verweis","Verweise"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["Keine Vorschau verf\xFCgbar.","Keine Ergebnisse","Verweise"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["in {0} in Zeile {1} in Spalte {2}","{0} in {1} in Zeile {2} in Spalte {3}","1 Symbol in {0}, vollst\xE4ndiger Pfad {1}","{0} Symbole in {1}, vollst\xE4ndiger Pfad {2}","Es wurden keine Ergebnisse gefunden.","1 Symbol in {0} gefunden","{0} Symbole in {1} gefunden","{0} Symbole in {1} Dateien gefunden"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["Gibt an, ob Symbolpositionen vorliegen, bei denen die Navigation nur \xFCber die Tastatur m\xF6glich ist.","Symbol {0} von {1}, {2} f\xFCr n\xE4chstes","Symbol {0} von {1}"],"vs/editor/contrib/hover/browser/hover":["Anzeigen oder Fokus beim Daraufzeigen","Beim Daraufzeigen wird der Fokus nicht automatisch verwendet.","Beim Daraufzeigen wird nur dann den Fokus erhalten, wenn er bereits sichtbar ist.","Beim Daraufzeigen wird automatisch der Fokus erhalten, wenn er angezeigt wird.","Definitionsvorschauhover anzeigen","Bildlauf nach oben beim Daraufzeigen","Bildlauf nach unten beim Daraufzeigen","Bildlauf nach links beim Daraufzeigen","Bildlauf nach rechts beim Daraufzeigen","Eine Seite nach oben beim Daraufzeigen","Eine Seite nach unten beim Daraufzeigen","Gehe nach oben beim Daraufzeigen","Gehe nach unten beim Daraufzeigen"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["Wird geladen...","Das Rendering langer Zeilen wurde aus Leistungsgr\xFCnden angehalten. Dies kann \xFCber \u201Eeditor.stopRenderingLineAfter\u201C konfiguriert werden.","Die Tokenisierung wird bei langen Zeilen aus Leistungsgr\xFCnden \xFCbersprungen. Dies kann \xFCber \u201Eeditor.maxTokenizationLineLength\u201C konfiguriert werden."],"vs/editor/contrib/hover/browser/markerHoverParticipant":["Problem anzeigen","Keine Schnellkorrekturen verf\xFCgbar","Es wird nach Schnellkorrekturen gesucht...","Keine Schnellkorrekturen verf\xFCgbar","Schnelle Problembehebung ..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["Durch vorherigen Wert ersetzen","Durch n\xE4chsten Wert ersetzen"],"vs/editor/contrib/indentation/browser/indentation":["Einzug in Leerzeichen konvertieren","Einzug in Tabstopps konvertieren","Konfigurierte Tabulatorgr\xF6\xDFe","Standardregisterkartengr\xF6\xDFe","Aktuelle Registerkartengr\xF6\xDFe","Tabulatorgr\xF6\xDFe f\xFCr aktuelle Datei ausw\xE4hlen","Einzug mithilfe von Tabstopps","Einzug mithilfe von Leerzeichen","Anzeigegr\xF6\xDFe der Registerkarte \xE4ndern","Einzug aus Inhalt erkennen","Neuen Einzug f\xFCr Zeilen festlegen","Gew\xE4hlte Zeilen zur\xFCckziehen"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["Zum Einf\xFCgen doppelklicken","BEFEHL + Klicken","STRG + Klicken","OPTION + Klicken","ALT + Klicken","Wechseln Sie zu Definition ({0}), klicken Sie mit der rechten Maustaste, um weitere Informationen zu finden.","Gehe zu Definition ({0})","Befehl ausf\xFChren"],"vs/editor/contrib/inlineCompletions/browser/commands":["N\xE4chsten Inline-Vorschlag anzeigen","Vorherigen Inline-Vorschlag anzeigen","Inline-Vorschlag ausl\xF6sen","N\xE4chstes Wort des Inline-Vorschlags annehmen","Wort annehmen","N\xE4chste Zeile des Inlinevorschlags akzeptieren","Zeile annehmen","Inline-Vorschlag annehmen","Annehmen","Inlinevorschlag ausblenden","Symbolleiste immer anzeigen"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["Vorschlag:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["Gibt an, ob ein Inline-Vorschlag sichtbar ist.","Gibt an, ob der Inline-Vorschlag mit Leerzeichen beginnt.","Ob der Inline-Vorschlag mit Leerzeichen beginnt, das kleiner ist als das, was durch die Tabulatortaste eingef\xFCgt werden w\xFCrde","Gibt an, ob Vorschl\xE4ge f\xFCr den aktuellen Vorschlag unterdr\xFCckt werden sollen"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\xDCberpr\xFCfen Sie dies in der barrierefreien Ansicht ({0})."],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["Symbol f\xFCr die Anzeige des n\xE4chsten Parameterhinweises.","Symbol f\xFCr die Anzeige des vorherigen Parameterhinweises.","{0} ({1})","Zur\xFCck","Weiter"],"vs/editor/contrib/lineSelection/browser/lineSelection":["Zeilenauswahl erweitern"],"vs/editor/contrib/linesOperations/browser/linesOperations":["Zeile nach oben kopieren","Zeile nach oben &&kopieren","Zeile nach unten kopieren","Zeile nach unten ko&&pieren","Auswahl duplizieren","&&Auswahl duplizieren","Zeile nach oben verschieben","Zeile nach oben &&verschieben","Zeile nach unten verschieben","Zeile nach &&unten verschieben","Zeilen aufsteigend sortieren","Zeilen absteigend sortieren","Doppelte Zeilen l\xF6schen","Nachgestelltes Leerzeichen k\xFCrzen","Zeile l\xF6schen","Zeileneinzug","Zeile ausr\xFCcken","Zeile oben einf\xFCgen","Zeile unten einf\xFCgen","Alle \xFCbrigen l\xF6schen","Alle rechts l\xF6schen","Zeilen verkn\xFCpfen","Zeichen um den Cursor herum transponieren","In Gro\xDFbuchstaben umwandeln","In Kleinbuchstaben umwandeln","In gro\xDFe Anfangsbuchstaben umwandeln","In Snake Case umwandeln","In Camel-Fall transformieren","Verwandle dich in eine Kebab-H\xFClle"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["Verkn\xFCpfte Bearbeitung starten","Hintergrundfarbe, wenn der Editor automatisch nach Typ umbenennt."],"vs/editor/contrib/links/browser/links":["Fehler beim \xD6ffnen dieses Links, weil er nicht wohlgeformt ist: {0}","Fehler beim \xD6ffnen dieses Links, weil das Ziel fehlt.","Befehl ausf\xFChren","Link folgen","BEFEHL + Klicken","STRG + Klicken","OPTION + Klicken","alt + klicken",'F\xFChren Sie den Befehl "{0}" aus.',"Link \xF6ffnen"],"vs/editor/contrib/message/browser/messageController":["Gibt an, ob der Editor zurzeit eine Inlinenachricht anzeigt."],"vs/editor/contrib/multicursor/browser/multicursor":["Hinzugef\xFCgter Cursor: {0}","Hinzugef\xFCgte Cursor: {0}","Cursor oberhalb hinzuf\xFCgen","Cursor oberh&&alb hinzuf\xFCgen","Cursor unterhalb hinzuf\xFCgen","Cursor unterhal&&b hinzuf\xFCgen","Cursor an Zeilenenden hinzuf\xFCgen","C&&ursor an Zeilenenden hinzuf\xFCgen","Cursor am Ende hinzuf\xFCgen","Cursor am Anfang hinzuf\xFCgen","Auswahl zur n\xE4chsten \xDCbereinstimmungssuche hinzuf\xFCgen","&&N\xE4chstes Vorkommen hinzuf\xFCgen","Letzte Auswahl zu vorheriger \xDCbereinstimmungssuche hinzuf\xFCgen","Vo&&rheriges Vorkommen hinzuf\xFCgen","Letzte Auswahl in n\xE4chste \xDCbereinstimmungssuche verschieben","Letzte Auswahl in vorherige \xDCbereinstimmungssuche verschieben","Alle Vorkommen ausw\xE4hlen und \xDCbereinstimmung suchen","Alle V&&orkommen ausw\xE4hlen","Alle Vorkommen \xE4ndern","Fokus auf n\xE4chsten Cursor","Fokussiert den n\xE4chsten Cursor","Fokus auf vorherigen Cursor","Fokussiert den vorherigen Cursor"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Parameterhinweise ausl\xF6sen"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["Symbol f\xFCr die Anzeige des n\xE4chsten Parameterhinweises.","Symbol f\xFCr die Anzeige des vorherigen Parameterhinweises.","{0}, Hinweis","Vordergrundfarbe des aktiven Elements im Parameterhinweis."],"vs/editor/contrib/peekView/browser/peekView":["Gibt an, ob der aktuelle Code-Editor in der Vorschau eingebettet ist.","Schlie\xDFen","Hintergrundfarbe des Titelbereichs der Peek-Ansicht.","Farbe des Titels in der Peek-Ansicht.","Farbe der Titelinformationen in der Peek-Ansicht.","Farbe der Peek-Ansichtsr\xE4nder und des Pfeils.","Hintergrundfarbe der Ergebnisliste in der Peek-Ansicht.","Vordergrundfarbe f\xFCr Zeilenknoten in der Ergebnisliste der Peek-Ansicht.","Vordergrundfarbe f\xFCr Dateiknoten in der Ergebnisliste der Peek-Ansicht.","Hintergrundfarbe des ausgew\xE4hlten Eintrags in der Ergebnisliste der Peek-Ansicht.","Vordergrundfarbe des ausgew\xE4hlten Eintrags in der Ergebnisliste der Peek-Ansicht.","Hintergrundfarbe des Peek-Editors.","Hintergrundfarbe der Leiste im Peek-Editor.","Die Hintergrundfarbe f\xFCr den \u201ESticky\u201C-Bildlaufeffekt im Editor f\xFCr die \u201EPeek\u201C-Ansicht.","Farbe f\xFCr \xDCbereinstimmungsmarkierungen in der Ergebnisliste der Peek-Ansicht.","Farbe f\xFCr \xDCbereinstimmungsmarkierungen im Peek-Editor.","Rahmen f\xFCr \xDCbereinstimmungsmarkierungen im Peek-Editor."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\xD6ffnen Sie zuerst einen Text-Editor, um zu einer Zeile zu wechseln.","Wechseln Sie zu Zeile {0} und Zeichen {1}.","Zu Zeile {0} wechseln.","Aktuelle Zeile: {0}, Zeichen: {1}. Geben Sie eine Zeilennummer zwischen 1 und {2} ein, zu der Sie navigieren m\xF6chten.","Aktuelle Zeile: {0}, Zeichen: {1}. Geben Sie eine Zeilennummer ein, zu der Sie navigieren m\xF6chten."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\xD6ffnen Sie zun\xE4chst einen Text-Editor mit Symbolinformationen, um zu einem Symbol zu navigieren.","Der aktive Text-Editor stellt keine Symbolinformationen bereit.","Keine \xFCbereinstimmenden Editorsymbole.","Keine Editorsymbole.","An der Seite \xF6ffnen","Unten \xF6ffnen","Symbole ({0})","Eigenschaften ({0})","Methoden ({0})","Funktionen ({0})","Konstruktoren ({0})","Variablen ({0})","Klassen ({0})","Strukturen ({0})","Ereignisse ({0})","Operatoren ({0})","Schnittstellen ({0})","Namespaces ({0})","Pakete ({0})","Typparameter ({0})","Module ({0})","Eigenschaften ({0})","Enumerationen ({0})","Enumerationsmember ({0})","Zeichenfolgen ({0})","Dateien ({0})","Arrays ({0})","Zahlen ({0})","Boolesche Werte ({0})","Objekte ({0})","Schl\xFCssel ({0})","Felder ({0})","Konstanten ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["Bearbeitung von schreibgesch\xFCtzter Eingabe nicht m\xF6glich","Ein Bearbeiten ist im schreibgesch\xFCtzten Editor nicht m\xF6glich"],"vs/editor/contrib/rename/browser/rename":["Kein Ergebnis.","Ein unbekannter Fehler ist beim Aufl\xF6sen der Umbenennung eines Ortes aufgetreten.","'{0}' wird in '{1}' umbenannt","{0} wird in {1} umbenannt.",'"{0}" erfolgreich in "{1}" umbenannt. Zusammenfassung: {2}',"Die rename-Funktion konnte die \xC4nderungen nicht anwenden.","Die rename-Funktion konnte die \xC4nderungen nicht berechnen.","Symbol umbenennen","M\xF6glichkeit aktivieren/deaktivieren, \xC4nderungen vor dem Umbenennen als Vorschau anzeigen zu lassen","N\xE4chsten Umbenennungsvorschlag fokussieren","Vorherigen Umbenennungsvorschlag fokussieren"],"vs/editor/contrib/rename/browser/renameInputField":["Gibt an, ob das Widget zum Umbenennen der Eingabe sichtbar ist.","Gibt an, ob das Widget zum Umbenennen der Eingabe fokussiert ist.","Benennen Sie die Eingabe um. Geben Sie einen neuen Namen ein, und dr\xFCcken Sie die EINGABETASTE, um den Commit auszuf\xFChren.","{0} zur Umbenennung, {1} zur Vorschau","{0} Vorschl\xE4ge zum Umbenennen erhalten"],"vs/editor/contrib/smartSelect/browser/smartSelect":["Auswahl aufklappen","Auswahl &&erweitern","Markierung verkleinern","Au&&swahl verkleinern"],"vs/editor/contrib/snippet/browser/snippetController2":["Gibt an, ob der Editor sich zurzeit im Schnipselmodus befindet.","Gibt an, ob ein n\xE4chster Tabstopp im Schnipselmodus vorhanden ist.","Gibt an, ob ein vorheriger Tabstopp im Schnipselmodus vorhanden ist.","Zum n\xE4chsten Platzhalter wechseln..."],"vs/editor/contrib/snippet/browser/snippetVariables":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","So","Mo","Di","Mi","Do","Fr","Sa","Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember","Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["Fixierten Bildlauf des Editors &&umschalten","Fixierter Bildlauf","&&Fixierter Bildlauf","&&Fokus fixierter Bildlauf","Fixierten Bildlauf f\xFCr Editor umschalten","Fokus auf Fixierten Bildlauf","N\xE4chste fixierte Zeile ausw\xE4hlen","Zuletzt gew\xE4hlte fixierte Zeile ausw\xE4hlen","Gehe zur fokussierten fixierten Zeile","Editor ausw\xE4hlen"],"vs/editor/contrib/suggest/browser/suggest":["Gibt an, ob ein Vorschlag fokussiert ist","Gibt an, ob Vorschlagsdetails sichtbar sind.","Gibt an, ob mehrere Vorschl\xE4ge zur Auswahl stehen.","Gibt an, ob das Einf\xFCgen des aktuellen Vorschlags zu einer \xC4nderung f\xFChrt oder ob bereits alles eingegeben wurde.","Gibt an, ob Vorschl\xE4ge durch Dr\xFCcken der EINGABETASTE eingef\xFCgt werden.","Gibt an, ob der aktuelle Vorschlag Verhalten zum Einf\xFCgen und Ersetzen aufweist.","Gibt an, ob Einf\xFCgen oder Ersetzen als Standardverhalten verwendet wird.","Gibt an, ob der aktuelle Vorschlag die Aufl\xF6sung weiterer Details unterst\xFCtzt."],"vs/editor/contrib/suggest/browser/suggestController":['Das Akzeptieren von "{0}" ergab {1} zus\xE4tzliche Bearbeitungen.',"Vorschlag ausl\xF6sen","Einf\xFCgen","Einf\xFCgen","Ersetzen","Ersetzen","Einf\xFCgen","weniger anzeigen","mehr anzeigen","Gr\xF6\xDFe des Vorschlagswidgets zur\xFCcksetzen"],"vs/editor/contrib/suggest/browser/suggestWidget":["Hintergrundfarbe des Vorschlagswidgets.","Rahmenfarbe des Vorschlagswidgets.","Vordergrundfarbe des Vorschlagswidgets.","Die Vordergrundfarbe des ausgew\xE4hlten Eintrags im Vorschlagswidget.","Die Vordergrundfarbe des Symbols des ausgew\xE4hlten Eintrags im Vorschlagswidget.","Hintergrundfarbe des ausgew\xE4hlten Eintrags im Vorschlagswidget.","Farbe der Trefferhervorhebung im Vorschlagswidget.","Die Farbe des Treffers wird im Vorschlagswidget hervorgehoben, wenn ein Element fokussiert wird.","Vordergrundfarbe des Status des Vorschlagswidgets.","Wird geladen...","Keine Vorschl\xE4ge.","Vorschlagen","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, Dokumente: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["Schlie\xDFen","Wird geladen..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["Symbol f\xFCr weitere Informationen im Vorschlags-Widget.","Weitere Informationen"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["Die Vordergrundfarbe f\xFCr Arraysymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr boolesche Symbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Klassensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Farbsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr konstante Symbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Konstruktorsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Enumeratorsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Enumeratormembersymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Ereignissymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Feldsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Dateisymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Ordnersymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Funktionssymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Schnittstellensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Schl\xFCsselsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Schl\xFCsselwortsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Methodensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Modulsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Namespacesymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr NULL-Symbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Zahlensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Objektsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Operatorsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Paketsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Eigenschaftensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Referenzsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Codeschnipselsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Zeichenfolgensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Struktursymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Textsymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Typparametersymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr Einheitensymbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt.","Die Vordergrundfarbe f\xFCr variable Symbole. Diese Symbole werden in den Widgets f\xFCr Gliederung, Breadcrumbs und Vorschl\xE4ge angezeigt."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Beim Dr\xFCcken auf Tab wird der Fokus jetzt auf das n\xE4chste fokussierbare Element verschoben","Beim Dr\xFCcken von Tab wird jetzt das Tabulator-Zeichen eingef\xFCgt","TAB-Umschalttaste verschiebt Fokus"],"vs/editor/contrib/tokenization/browser/tokenization":["Entwickler: Force Retokenize"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["Symbol, das mit einer Warnmeldung im Erweiterungs-Editor angezeigt wird.","Dieses Dokument enth\xE4lt viele nicht einfache ASCII-Unicode-Zeichen.","Dieses Dokument enth\xE4lt viele mehrdeutige Unicode-Zeichen.","Dieses Dokument enth\xE4lt viele unsichtbare Unicode-Zeichen.","Konfigurieren der Optionen f\xFCr die Unicode-Hervorhebung","Das Zeichen {0} kann mit dem Zeichen {1} verwechselt werden, was im Quellcode h\xE4ufiger vorkommt.","Das Zeichen {0} kann mit dem Zeichen {1} verwechselt werden, was im Quellcode h\xE4ufiger vorkommt.","Das Zeichen {0} ist nicht sichtbar.","Das Zeichen {0} ist kein einfaches ASCII-Zeichen.","Einstellungen anpassen","Hervorhebung in Kommentaren deaktivieren","Deaktivieren der Hervorhebung von Zeichen in Kommentaren","Hervorhebung in Zeichenfolgen deaktivieren","Deaktivieren der Hervorhebung von Zeichen in Zeichenfolgen","Mehrdeutige Hervorhebung deaktivieren","Deaktivieren der Hervorhebung von mehrdeutigen Zeichen","Unsichtbare Hervorhebung deaktivieren","Deaktivieren der Hervorhebung unsichtbarer Zeichen","Nicht-ASCII-Hervorhebung deaktivieren","Deaktivieren der Hervorhebung von nicht einfachen ASCII-Zeichen","Ausschlussoptionen anzeigen","{0} (unsichtbares Zeichen) von der Hervorhebung ausschlie\xDFen","{0} nicht hervorheben","Unicodezeichen zulassen, die in der Sprache \u201E{0}\u201C h\xE4ufiger vorkommen."],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["Ungew\xF6hnliche Zeilentrennzeichen","Ungew\xF6hnliche Zeilentrennzeichen erkannt",`Die Datei "{0}" enth\xE4lt mindestens ein ungew\xF6hnliches Zeilenabschlusszeichen, z. B. Zeilentrennzeichen (LS) oder Absatztrennzeichen (PS).\r +\r +Es wird empfohlen, sie aus der Datei zu entfernen. Dies kann \xFCber "editor.unusualLineTerminators" konfiguriert werden.`,"&&Ungew\xF6hnliche Zeilenabschlusszeichen entfernen","Ignorieren"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["Hintergrundfarbe eines Symbols beim Lesezugriff, z.B. beim Lesen einer Variablen. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe eines Symbols bei Schreibzugriff, z.B. beim Schreiben in eine Variable. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Die Hintergrundfarbe eines Textteils f\xFCr ein Symbol. Die Farbe darf nicht deckend sein, um zugrunde liegende Dekorationen nicht auszublenden.","Randfarbe eines Symbols beim Lesezugriff, wie etwa beim Lesen einer Variablen.","Randfarbe eines Symbols beim Schreibzugriff, wie etwa beim Schreiben einer Variablen.","Die Rahmenfarbe eines Textteils f\xFCr ein Symbol.","\xDCbersichtslinealmarkerfarbd f\xFCr das Hervorheben von Symbolen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","\xDCbersichtslinealmarkerfarbe f\xFCr Symbolhervorhebungen bei Schreibzugriff. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Die Markierungsfarbe des \xDCbersichtslineals eines Textteils f\xFCr ein Symbol. Die Farbe darf nicht deckend sein, um zugrunde liegende Dekorationen nicht auszublenden."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["Gehe zur n\xE4chsten Symbolhervorhebungen","Gehe zur vorherigen Symbolhervorhebungen","Symbol-Hervorhebung ein-/ausschalten"],"vs/editor/contrib/wordOperations/browser/wordOperations":["Wort l\xF6schen"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["Fehler in der Zeile","Fehler","Warnung in der Zeile","Warnung","Gefalteter Bereich in der Zeile","Gefaltet","Haltepunkt in der Zeile","Haltepunkt","Inlinevorschlag in der Zeile","Terminale schnelle Problembehebung","Schnelle Problembehebung","Debugger auf Haltepunkt beendet","Haltepunkt","Keine Inlay-Hinweise in der Zeile","Keine Inlay-Hinweise","Aufgabe abgeschlossen","Aufgabe abgeschlossen","Aufgabe fehlgeschlagen","Fehler bei Aufgabe","Terminalbefehl fehlgeschlagen","Befehl fehlgeschlagen","Terminalglocke","Terminalglocke","Notebookzelle abgeschlossen","Notebookzelle abgeschlossen","Notebookzelle fehlgeschlagen","Notebookzelle fehlgeschlagen","Vergleichslinie eingef\xFCgt","Vergleichslinie gel\xF6scht","Vergleichslinie ge\xE4ndert","Chatanfrage gesendet","Chatanfrage gesendet","Chatantwort empfangen","Chatantwort ausstehend","Chatantwort ausstehend","L\xF6schen","L\xF6schen","Speichern","Speichern","Format","Formatieren"],"vs/platform/action/common/actionCommonCategories":["Ansehen","Hilfe","Test","Datei","Einstellungen","Entwickler"],"vs/platform/actionWidget/browser/actionList":["{0} zum Anwenden, {1} f\xFCr die Vorschau","{0} zum Anwenden","{0} deaktiviert, Grund: {1}","Aktionswidget"],"vs/platform/actionWidget/browser/actionWidget":["Hintergrundfarbe f\xFCr umgeschaltete Aktionselemente in der Aktionsleiste.","Gibt an, ob die Aktionswidgetliste sichtbar ist.","Codeaktionswidget ausblenden","Vorherige Aktion ausw\xE4hlen","N\xE4chste Aktion ausw\xE4hlen","Ausgew\xE4hlte Aktion akzeptieren","Vorschau f\xFCr ausgew\xE4hlte Elemente anzeigen"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["Ausblenden","Men\xFC zur\xFCcksetzen"],"vs/platform/actions/common/menuService":['"{0}" ausblenden'],"vs/platform/configuration/common/configurationRegistry":["Au\xDFerkraftsetzungen f\xFCr die Standardsprachkonfiguration","Konfigurieren Sie Einstellungen, die f\xFCr die Sprache {0} \xFCberschrieben werden sollen.","Zu \xFCberschreibende Editor-Einstellungen f\xFCr eine Sprache konfigurieren.","Diese Einstellung unterst\xFCtzt keine sprachspezifische Konfiguration.","Zu \xFCberschreibende Editor-Einstellungen f\xFCr eine Sprache konfigurieren.","Diese Einstellung unterst\xFCtzt keine sprachspezifische Konfiguration.","Eine leere Eigenschaft kann nicht registriert werden.",'"{0}" kann nicht registriert werden. Stimmt mit dem Eigenschaftsmuster "\\\\[.*\\\\]$" zum Beschreiben sprachspezifischer Editor-Einstellungen \xFCberein. Verwenden Sie den Beitrag "configurationDefaults".','{0}" kann nicht registriert werden. Diese Eigenschaft ist bereits registriert.','"{0}" kann nicht registriert werden. Die zugeordnete Richtlinie {1} ist bereits bei {2} registriert.'],"vs/platform/contextkey/browser/contextKeyService":["Ein Befehl, der Informationen zu Kontextschl\xFCsseln zur\xFCckgibt"],"vs/platform/contextkey/common/contextkey":["Leerer Kontextschl\xFCsselausdruck","Haben Sie vergessen, einen Ausdruck zu schreiben? Sie k\xF6nnen auch \u201Efalse\u201C oder \u201Etrue\u201C festlegen, um immer auf \u201Efalse\u201C oder \u201Etrue\u201C auszuwerten.","\u201Ein\u201C nach \u201Enot\u201C.","schlie\xDFende Klammer \u201E)\u201C","Unerwartetes Token","Haben Sie vergessen, && oder || vor dem Token einzuf\xFCgen?","Unerwartetes Ende des Ausdrucks.","Haben Sie vergessen, einen Kontextschl\xFCssel zu setzen?",`Erwartet: {0}\r +Empfangen: \u201E{1}\u201C.`],"vs/platform/contextkey/common/contextkeys":["Gibt an, ob macOS als Betriebssystem verwendet wird.","Gibt an, ob Linux als Betriebssystem verwendet wird.","Gibt an, ob Windows als Betriebssystem verwendet wird.","Gibt an, ob es sich bei der Plattform um einen Webbrowser handelt.","Gibt an, ob macOS auf einer Nicht-Browser-Plattform als Betriebssystem verwendet wird.","Gibt an, ob iOS als Betriebssystem verwendet wird.","Gibt an, ob es sich bei der Plattform um einen mobilen Webbrowser handelt.","Qualit\xE4tstyp des VS Codes","Gibt an, ob sich der Tastaturfokus in einem Eingabefeld befindet."],"vs/platform/contextkey/common/scanner":["Meinten Sie {0}?","Meinten Sie {0} oder {1}?","Meinten Sie {0}, {1} oder {2}?","Haben Sie vergessen, das Anf\xFChrungszeichen zu \xF6ffnen oder zu schlie\xDFen?","Haben Sie vergessen, das Zeichen \u201E/\u201C (Schr\xE4gstrich) zu escapen? Setzen Sie zwei Backslashes davor, um es zu escapen, z. B. \u201E\\\\/\u201C."],"vs/platform/history/browser/contextScopedHistoryWidget":["Gibt an, ob Vorschl\xE4ge sichtbar sind."],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) wurde gedr\xFCckt. Es wird auf die zweite Taste in der Kombination gewartet...","({0}) wurde gedr\xFCckt. Es wird auf die zweite Taste in der Kombination gewartet...","Die Tastenkombination ({0}, {1}) ist kein Befehl.","Die Tastenkombination ({0}, {1}) ist kein Befehl."],"vs/platform/list/browser/listService":["Workbench","Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.","Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.",'Der Modifizierer zum Hinzuf\xFCgen eines Elements in B\xE4umen und Listen zu einer Mehrfachauswahl mit der Maus (zum Beispiel im Explorer, in ge\xF6ffneten Editoren und in der SCM-Ansicht). Die Mausbewegung "Seitlich \xF6ffnen" wird \u2013 sofern unterst\xFCtzt \u2013 so angepasst, dass kein Konflikt mit dem Modifizierer f\xFCr Mehrfachauswahl entsteht.',"Steuert, wie Elemente in Strukturen und Listen mithilfe der Maus ge\xF6ffnet werden (sofern unterst\xFCtzt). Bei \xFCbergeordneten Elementen, deren untergeordnete Elemente sich in Strukturen befinden, steuert diese Einstellung, ob ein Einfachklick oder ein Doppelklick das \xFCbergeordnete Elemente erweitert. Beachten Sie, dass einige Strukturen und Listen diese Einstellung ggf. ignorieren, wenn sie nicht zutrifft.","Steuert, ob Listen und Strukturen ein horizontales Scrollen in der Workbench unterst\xFCtzen. Warnung: Das Aktivieren dieser Einstellung kann sich auf die Leistung auswirken.","Steuert, ob Klicks in der Bildlaufleiste Seite f\xFCr Seite scrollen.","Steuert den Struktureinzug in Pixeln.","Steuert, ob die Struktur Einzugsf\xFChrungslinien rendern soll.","Steuert, ob Listen und Strukturen einen optimierten Bildlauf verwenden.",'Ein Multiplikator, der f\xFCr die Mausrad-Bildlaufereignisse "deltaX" und "deltaY" verwendet werden soll.',"Multiplikator f\xFCr Scrollgeschwindigkeit bei Dr\xFCcken von ALT.","Elemente beim Suchen hervorheben. Die Navigation nach oben und unten durchl\xE4uft dann nur die markierten Elemente.","Filterelemente bei der Suche.","Steuert den Standardsuchmodus f\xFCr Listen und Strukturen in der Workbench.","Bei der einfachen Tastaturnavigation werden Elemente in den Fokus genommen, die mit der Tastatureingabe \xFCbereinstimmen. Die \xDCbereinstimmungen gelten nur f\xFCr Pr\xE4fixe.","Hervorheben von Tastaturnavigationshervorgebungselemente, die mit der Tastatureingabe \xFCbereinstimmen. Beim nach oben und nach unten Navigieren werden nur die hervorgehobenen Elemente durchlaufen.","Durch das Filtern der Tastaturnavigation werden alle Elemente herausgefiltert und ausgeblendet, die nicht mit der Tastatureingabe \xFCbereinstimmen.",'Steuert die Tastaturnavigation in Listen und Strukturen in der Workbench. Kann "simple" (einfach), "highlight" (hervorheben) und "filter" (filtern) sein.',"Bitte verwenden Sie stattdessen \u201Eworkbench.list.defaultFindMode\u201C und \u201Eworkbench.list.typeNavigationMode\u201C.","Verwenden Sie bei der Suche eine Fuzzy\xFCbereinstimmung.","Verwenden Sie bei der Suche eine zusammenh\xE4ngende \xDCbereinstimmung.","Steuert den Typ der \xDCbereinstimmung, der beim Durchsuchen von Listen und Strukturen in der Workbench verwendet wird.","Steuert, wie Strukturordner beim Klicken auf die Ordnernamen erweitert werden. Beachten Sie, dass einige Strukturen und Listen diese Einstellung ggf. ignorieren, wenn sie nicht zutrifft.","Steuert, ob fester Bildlauf in Strukturen aktiviert ist.",'Steuert die Anzahl der festen Elemente, die in der Struktur angezeigt werden, wenn "#workbench.tree.enableStickyScroll#" aktiviert ist.','Steuert die Funktionsweise der Typnavigation in Listen und Strukturen in der Workbench. Bei einer Festlegung auf "trigger" beginnt die Typnavigation, sobald der Befehl "list.triggerTypeNavigation" ausgef\xFChrt wird.'],"vs/platform/markers/common/markers":["Fehler","Warnung","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["zuletzt verwendet","\xE4hnliche Befehle","h\xE4ufig verwendet","andere Befehle","\xE4hnliche Befehle","{0}, {1}",'Der Befehl "{0}" hat zu einem Fehler gef\xFChrt.'],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["Zur\xFCck","Dr\xFCcken Sie die EINGABETASTE, um Ihre Eingabe zu best\xE4tigen, oder ESC, um den Vorgang abzubrechen.","{0}/{1}","Nehmen Sie eine Eingabe vor, um die Ergebnisse einzugrenzen."],"vs/platform/quickinput/browser/quickInputController":["Aktivieren Sie alle Kontrollk\xE4stchen","{0} Ergebnisse","{0} ausgew\xE4hlt","OK","Benutzerdefiniert","Zur\xFCck ({0})","Zur\xFCck"],"vs/platform/quickinput/browser/quickInputList":["Schnelleingabe"],"vs/platform/quickinput/browser/quickInputUtils":['Klicken, um den Befehl "{0}" auszuf\xFChren'],"vs/platform/theme/common/colorRegistry":["Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente \xFCberschrieben wird.","Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente \xFCberschrieben wird.","Allgemeine Vordergrundfarbe f\xFCr Fehlermeldungen. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente \xFCberschrieben wird.","Vordergrundfarbe f\xFCr Beschreibungstexte, die weitere Informationen anzeigen, z.B. f\xFCr eine Beschriftung.","Die f\xFCr Symbole in der Workbench verwendete Standardfarbe.","Allgemeine Rahmenfarbe f\xFCr fokussierte Elemente. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente \xFCberschrieben wird.","Ein zus\xE4tzlicher Rahmen um Elemente, mit dem diese von anderen getrennt werden, um einen gr\xF6\xDFeren Kontrast zu erreichen.","Ein zus\xE4tzlicher Rahmen um aktive Elemente, mit dem diese von anderen getrennt werden, um einen gr\xF6\xDFeren Kontrast zu erreichen.","Hintergrundfarbe der Textauswahl in der Workbench (z.B. f\xFCr Eingabefelder oder Textbereiche). Diese Farbe gilt nicht f\xFCr die Auswahl im Editor.","Farbe f\xFCr Text-Trennzeichen.","Vordergrundfarbe f\xFCr Links im Text.","Vordergrundfarbe f\xFCr angeklickte Links im Text und beim Zeigen darauf mit der Maus.","Vordergrundfarbe f\xFCr vorformatierte Textsegmente.","Hintergrundfarbe f\xFCr vorformatierte Textsegmente.","Hintergrundfarbe f\xFCr Blockzitate im Text.","Rahmenfarbe f\xFCr blockquote-Elemente im Text.","Hintergrundfarbe f\xFCr Codebl\xF6cke im Text.","Schattenfarbe von Widgets wie zum Beispiel Suchen/Ersetzen innerhalb des Editors.","Die Rahmenfarbe von Widgets, z.\xA0B. Suchen/Ersetzen im Editor.","Hintergrund f\xFCr Eingabefeld.","Vordergrund f\xFCr Eingabefeld.","Rahmen f\xFCr Eingabefeld.","Rahmenfarbe f\xFCr aktivierte Optionen in Eingabefeldern.","Hintergrundfarbe f\xFCr aktivierte Optionen in Eingabefeldern.","Hintergrundfarbe beim Daraufzeigen f\xFCr Optionen in Eingabefeldern.","Vordergrundfarbe f\xFCr aktivierte Optionen in Eingabefeldern.","Eingabefeld-Vordergrundfarbe f\xFCr Platzhaltertext.","Hintergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Information.","Vordergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Information.","Rahmenfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Information.","Hintergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Warnung.","Vordergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Warnung.","Rahmenfarbe bei der Eingabevalidierung f\xFCr den Schweregrad der Warnung.","Hintergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad des Fehlers.","Vordergrundfarbe bei der Eingabevalidierung f\xFCr den Schweregrad des Fehlers.","Rahmenfarbe bei der Eingabevalidierung f\xFCr den Schweregrad des Fehlers.","Hintergrund f\xFCr Dropdown.","Hintergrund f\xFCr Dropdownliste.","Vordergrund f\xFCr Dropdown.","Rahmen f\xFCr Dropdown.","Vordergrundfarbe der Schaltfl\xE4che.","Farbe des Schaltfl\xE4chentrennzeichens.","Hintergrundfarbe der Schaltfl\xE4che.","Hintergrundfarbe der Schaltfl\xE4che, wenn darauf gezeigt wird.","Rahmenfarbe der Schaltfl\xE4che.","Sekund\xE4re Vordergrundfarbe der Schaltfl\xE4che.","Hintergrundfarbe der sekund\xE4ren Schaltfl\xE4che.","Hintergrundfarbe der sekund\xE4ren Schaltfl\xE4che beim Daraufzeigen.","Hintergrundfarbe f\xFCr Badge. Badges sind kurze Info-Texte, z.B. f\xFCr Anzahl Suchergebnisse.","Vordergrundfarbe f\xFCr Badge. Badges sind kurze Info-Texte, z.B. f\xFCr Anzahl Suchergebnisse.","Schatten der Scrollleiste, um anzuzeigen, dass die Ansicht gescrollt wird.","Hintergrundfarbe vom Scrollbar-Schieber","Hintergrundfarbe des Schiebereglers, wenn darauf gezeigt wird.","Hintergrundfarbe des Schiebereglers, wenn darauf geklickt wird.","Hintergrundfarbe des Fortschrittbalkens, der f\xFCr zeitintensive Vorg\xE4nge angezeigt werden kann.","Hintergrundfarbe f\xFCr Fehlertext im Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Vordergrundfarbe von Fehlerunterstreichungen im Editor.","Wenn festgelegt, wird die Farbe doppelter Unterstreichungen f\xFCr Fehler im Editor angezeigt.","Hintergrundfarbe f\xFCr Warnungstext im Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Vordergrundfarbe von Warnungsunterstreichungen im Editor.","Wenn festgelegt, wird die Farbe doppelter Unterstreichungen f\xFCr Warnungen im Editor angezeigt.","Hintergrundfarbe f\xFCr Infotext im Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Vordergrundfarbe von Informationsunterstreichungen im Editor.","Wenn festgelegt, wird die Farbe doppelter Unterstreichungen f\xFCr Infos im Editor angezeigt.","Vordergrundfarbe der Hinweisunterstreichungen im Editor.","Wenn festgelegt, wird die Farbe doppelter Unterstreichungen f\xFCr Hinweise im Editor angezeigt.","Rahmenfarbe aktiver Trennleisten.","Hintergrundfarbe des Editors.","Standardvordergrundfarbe des Editors.","Hintergrundfarbe des fixierten Bildlaufs im Editor","Hintergrundfarbe des fixierten Bildlaufs beim Daraufzeigen im Editor","Rahmenfarbe des fixierten Bildlaufs im Editor"," Schattenfarbe des fixierten Bildlaufs im Editor","Hintergrundfarbe von Editor-Widgets wie zum Beispiel Suchen/Ersetzen.","Vordergrundfarbe f\xFCr Editorwidgets wie Suchen/Ersetzen.","Rahmenfarbe von Editorwigdets. Die Farbe wird nur verwendet, wenn f\xFCr das Widget ein Rahmen verwendet wird und die Farbe nicht von einem Widget \xFCberschrieben wird.","Rahmenfarbe der Gr\xF6\xDFenanpassungsleiste von Editorwigdets. Die Farbe wird nur verwendet, wenn f\xFCr das Widget ein Gr\xF6\xDFenanpassungsrahmen verwendet wird und die Farbe nicht von einem Widget au\xDFer Kraft gesetzt wird.","Schnellauswahl der Hintergrundfarbe. Im Widget f\xFCr die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Vordergrundfarbe der Schnellauswahl. Im Widget f\xFCr die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Hintergrundfarbe f\xFCr den Titel der Schnellauswahl. Im Widget f\xFCr die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Schnellauswahlfarbe f\xFCr das Gruppieren von Bezeichnungen.","Schnellauswahlfarbe f\xFCr das Gruppieren von Rahmen.","Die Hintergrundfarbe der Tastenbindungsbeschriftung. Die Tastenbindungsbeschriftung wird verwendet, um eine Tastenkombination darzustellen.","Die Vordergrundfarbe der Tastenbindungsbeschriftung. Die Tastenbindungsbeschriftung wird verwendet, um eine Tastenkombination darzustellen.","Die Rahmenfarbe der Tastenbindungsbeschriftung. Die Tastenbindungsbeschriftung wird verwendet, um eine Tastenkombination darzustellen.","Die Rahmenfarbe der Schaltfl\xE4che der Tastenbindungsbeschriftung. Die Tastenbindungsbeschriftung wird verwendet, um eine Tastenkombination darzustellen.","Farbe der Editor-Auswahl.","Farbe des gew\xE4hlten Text f\xFCr einen hohen Kontrast","Die Farbe der Auswahl befindet sich in einem inaktiven Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegende Dekorationen verdeckt.","Farbe f\xFCr Bereiche mit dem gleichen Inhalt wie die Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Randfarbe f\xFCr Bereiche, deren Inhalt der Auswahl entspricht.","Farbe des aktuellen Suchergebnisses.","Farbe der anderen Suchergebnisse. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Farbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.","Randfarbe des aktuellen Suchergebnisses.","Randfarbe der anderen Suchtreffer.","Rahmenfarbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Farbe der Abfrage\xFCbereinstimmungen des Such-Editors","Rahmenfarbe der Abfrage\xFCbereinstimmungen des Such-Editors","Farbe des Texts in der Abschlussmeldung des Such-Viewlets.","Hervorhebung unterhalb des Worts, f\xFCr das ein Hoverelement angezeigt wird. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe des Editor-Mauszeigers.","Vordergrundfarbe des Editor-Mauszeigers","Rahmenfarbe des Editor-Mauszeigers.","Hintergrundfarbe der Hoverstatusleiste des Editors.","Farbe der aktiven Links.","Vordergrundfarbe f\xFCr Inlinehinweise","Hintergrundfarbe f\xFCr Inlinehinweise","Vordergrundfarbe von Inlinehinweisen f\xFCr Typen","Hintergrundfarbe von Inlinehinweisen f\xFCr Typen","Vordergrundfarbe von Inlinehinweisen f\xFCr Parameter","Hintergrundfarbe von Inlinehinweisen f\xFCr Parameter",'Die f\xFCr das Aktionssymbol "Gl\xFChbirne" verwendete Farbe.','Die f\xFCr das Aktionssymbol "Automatische Gl\xFChbirnenkorrektur" verwendete Farbe.',"Die Farbe, die f\xFCr das KI-Symbol der Gl\xFChbirne verwendet wird.","Hintergrundfarbe f\xFCr eingef\xFCgten Text. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe f\xFCr Text, der entfernt wurde. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe f\xFCr eingef\xFCgte Zeilen. Die Farbe darf nicht deckend sein, um zugrunde liegende Dekorationen nicht auszublenden.","Hintergrundfarbe f\xFCr Zeilen, die entfernt wurden. Die Farbe darf nicht deckend sein, um zugrunde liegende Dekorationen nicht auszublenden.","Hintergrundfarbe f\xFCr den Rand, an dem Zeilen eingef\xFCgt wurden.","Hintergrundfarbe f\xFCr den Rand, an dem die Zeilen entfernt wurden.","Vordergrund des Diff-\xDCbersichtslineals f\xFCr eingef\xFCgten Inhalt.","Vordergrund des Diff-\xDCbersichtslineals f\xFCr entfernten Inhalt.","Konturfarbe f\xFCr eingef\xFCgten Text.","Konturfarbe f\xFCr entfernten Text.","Die Rahmenfarbe zwischen zwei Text-Editoren.","Farbe der diagonalen F\xFCllung des Vergleichs-Editors. Die diagonale F\xFCllung wird in Ansichten mit parallelem Vergleich verwendet.","Die Hintergrundfarbe von unver\xE4nderten Bl\xF6cken im Diff-Editor.","Die Vordergrundfarbe von unver\xE4nderten Bl\xF6cken im Diff-Editor.","Die Hintergrundfarbe des unver\xE4nderten Codes im Diff-Editor.","Hintergrundfarbe der Liste/Struktur f\xFCr das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur f\xFCr das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Konturfarbe der Liste/Struktur f\xFCr das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Umrissfarbe der Liste/des Baums f\xFCr das fokussierte Element, wenn die Liste/der Baum aktiv und ausgew\xE4hlt ist. Eine aktive Liste/Baum hat Tastaturfokus, eine inaktive nicht.","Hintergrundfarbe der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe des Symbols der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrundfarbe der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Baumstruktur inaktiv ist. Eine aktive Liste/Baumstruktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe des Symbols der Liste/Struktur f\xFCr das ausgew\xE4hlte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrundfarbe der Liste/Struktur f\xFCr das fokussierte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Konturfarbe der Liste/Struktur f\xFCr das fokussierte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.","Vordergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.","Hintergrund f\xFCr Drag & Drop auflisten/strukturieren, wenn Elemente bei Verwendung der Maus \xFCber Elemente verschoben werden.","Rahmenfarbe f\xFCr Drag & Drop auflisten/strukturieren, wenn Elemente bei Verwendung der Maus zwischen Elementen verschoben werden.","Vordergrundfarbe der Liste/Struktur zur Trefferhervorhebung beim Suchen innerhalb der Liste/Struktur.","Die Vordergrundfarbe der Liste/Struktur des Treffers hebt aktiv fokussierte Elemente hervor, wenn innerhalb der Liste / der Struktur gesucht wird.","Vordergrundfarbe einer Liste/Struktur f\xFCr ung\xFCltige Elemente, z.B. ein nicht ausgel\xF6ster Stamm im Explorer.","Vordergrundfarbe f\xFCr Listenelemente, die Fehler enthalten.","Vordergrundfarbe f\xFCr Listenelemente, die Warnungen enthalten.","Hintergrundfarbe des Typfilterwidgets in Listen und Strukturen.","Konturfarbe des Typfilterwidgets in Listen und Strukturen.","Konturfarbe des Typfilterwidgets in Listen und Strukturen, wenn es keine \xDCbereinstimmungen gibt.","Schattenfarbe des Typfilterwidgets in Listen und Strukturen.","Hintergrundfarbe der gefilterten \xDCbereinstimmung","Rahmenfarbe der gefilterten \xDCbereinstimmung","Strukturstrichfarbe f\xFCr die Einzugsf\xFChrungslinien.","Strukturstrichfarbe f\xFCr die Einzugslinien, die nicht aktiv sind.","Tabellenrahmenfarbe zwischen Spalten.","Hintergrundfarbe f\xFCr ungerade Tabellenzeilen.","Hintergrundfarbe f\xFCr nicht hervorgehobene Listen-/Strukturelemente.","Hintergrundfarbe von Kontrollk\xE4stchenwidget.","Hintergrundfarbe des Kontrollk\xE4stchenwidgets, wenn das Element ausgew\xE4hlt ist, in dem es sich befindet.","Vordergrundfarbe von Kontrollk\xE4stchenwidget.","Rahmenfarbe von Kontrollk\xE4stchenwidget.","Rahmenfarbe des Kontrollk\xE4stchenwidgets, wenn das Element ausgew\xE4hlt ist, in dem es sich befindet.",'Verwenden Sie stattdessen "quickInputList.focusBackground".',"Die Hintergrundfarbe der Schnellauswahl f\xFCr das fokussierte Element.","Die Vordergrundfarbe des Symbols der Schnellauswahl f\xFCr das fokussierte Element.","Die Hintergrundfarbe der Schnellauswahl f\xFCr das fokussierte Element.","Rahmenfarbe von Men\xFCs.","Vordergrundfarbe von Men\xFCelementen.","Hintergrundfarbe von Men\xFCelementen.","Vordergrundfarbe des ausgew\xE4hlten Men\xFCelements im Men\xFC.","Hintergrundfarbe des ausgew\xE4hlten Men\xFCelements im Men\xFC.","Rahmenfarbe des ausgew\xE4hlten Men\xFCelements im Men\xFC.","Farbe eines Trenner-Men\xFCelements in Men\xFCs.","Symbolleistenhintergrund beim Bewegen der Maus \xFCber Aktionen","Symbolleistengliederung beim Bewegen der Maus \xFCber Aktionen","Symbolleistenhintergrund beim Halten der Maus \xFCber Aktionen","Hervorhebungs-Hintergrundfarbe eines Codeschnipsel-Tabstopps.","Hervorhebungs-Rahmenfarbe eines Codeschnipsel-Tabstopps.","Hervorhebungs-Hintergrundfarbe des letzten Tabstopps eines Codeschnipsels.","Rahmenfarbe zur Hervorhebung des letzten Tabstopps eines Codeschnipsels.","Farbe der Breadcrumb-Elemente, die den Fokus haben.","Hintergrundfarbe der Breadcrumb-Elemente.","Farbe der Breadcrumb-Elemente, die den Fokus haben.","Die Farbe der ausgew\xE4hlten Breadcrumb-Elemente.","Hintergrundfarbe des Breadcrumb-Auswahltools.","Hintergrund des aktuellen Headers in Inlinezusammenf\xFChrungskonflikten. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrund f\xFCr den aktuellen Inhalt in Inlinezusammenf\xFChrungskonflikten. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrund f\xFCr eingehende Header in Inlinezusammenf\xFChrungskonflikten. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrund f\xFCr eingehenden Inhalt in Inlinezusammenf\xFChrungskonflikten. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Headerhintergrund f\xFCr gemeinsame Vorg\xE4ngerelemente in Inlinezusammenf\xFChrungskonflikten. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrund des Inhalts gemeinsamer Vorg\xE4ngerelemente in Inlinezusammenf\xFChrungskonflikt. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Rahmenfarbe f\xFCr Kopfzeilen und die Aufteilung in Inline-Mergingkonflikten.","Aktueller \xDCbersichtslineal-Vordergrund f\xFCr Inline-Mergingkonflikte.","Eingehender \xDCbersichtslineal-Vordergrund f\xFCr Inline-Mergingkonflikte.","Hintergrund des \xDCbersichtslineals des gemeinsamen \xFCbergeordneten Elements bei Inlinezusammenf\xFChrungskonflikten.","\xDCbersichtslinealmarkerfarbe f\xFCr das Suchen von \xDCbereinstimmungen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","\xDCbersichtslinealmarkerfarbe f\xFCr das Hervorheben der Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Minimap-Markerfarbe f\xFCr gefundene \xDCbereinstimmungen.","Minimap-Markerfarbe f\xFCr wiederholte Editorauswahlen.","Minimap-Markerfarbe f\xFCr die Editorauswahl.","Minimapmarkerfarbe f\xFCr Informationen.","Minimapmarkerfarbe f\xFCr Warnungen","Minimapmarkerfarbe f\xFCr Fehler","Hintergrundfarbe der Minimap.","Deckkraft von Vordergrundelementen, die in der Minimap gerendert werden. Beispiel: \u201E#000000c0\u201C wird die Elemente mit einer Deckkraft von 75 % rendern.","Hintergrundfarbe des Minimap-Schiebereglers.","Hintergrundfarbe des Minimap-Schiebereglers beim Daraufzeigen.","Hintergrundfarbe des Minimap-Schiebereglers, wenn darauf geklickt wird.","Die Farbe, die f\xFCr das Problemfehlersymbol verwendet wird.","Die Farbe, die f\xFCr das Problemwarnsymbol verwendet wird.","Die Farbe, die f\xFCr das Probleminfosymbol verwendet wird.","Die in Diagrammen verwendete Vordergrundfarbe.","Die f\xFCr horizontale Linien in Diagrammen verwendete Farbe.","Die in Diagrammvisualisierungen verwendete Farbe Rot.","Die in Diagrammvisualisierungen verwendete Farbe Blau.","Die in Diagrammvisualisierungen verwendete Farbe Gelb.","Die in Diagrammvisualisierungen verwendete Farbe Orange.","Die in Diagrammvisualisierungen verwendete Farbe Gr\xFCn.","Die in Diagrammvisualisierungen verwendete Farbe Violett."],"vs/platform/theme/common/iconRegistry":["Die ID der zu verwendenden Schriftart. Sofern nicht festgelegt, wird die zuerst definierte Schriftart verwendet.","Das der Symboldefinition zugeordnete Schriftzeichen.","Symbol f\xFCr Aktion zum Schlie\xDFen in Widgets","Symbol f\xFCr den Wechsel zur vorherigen Editor-Position.","Symbol f\xFCr den Wechsel zur n\xE4chsten Editor-Position."],"vs/platform/undoRedo/common/undoRedoService":["Die folgenden Dateien wurden geschlossen und auf dem Datentr\xE4ger ge\xE4ndert: {0}.","Die folgenden Dateien wurden auf inkompatible Weise ge\xE4ndert: {0}.",'"{0}" konnte nicht f\xFCr alle Dateien r\xFCckg\xE4ngig gemacht werden. {1}','"{0}" konnte nicht f\xFCr alle Dateien r\xFCckg\xE4ngig gemacht werden. {1}','"{0}" konnte nicht f\xFCr alle Dateien r\xFCckg\xE4ngig gemacht werden, da \xC4nderungen an {1} vorgenommen wurden.','"{0}" konnte nicht f\xFCr alle Dateien r\xFCckg\xE4ngig gemacht werden, weil bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen f\xFCr "{1}" durchgef\xFChrt wird.','"{0}" konnte nicht f\xFCr alle Dateien r\xFCckg\xE4ngig gemacht werden, weil in der Zwischenzeit bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen durchgef\xFChrt wurde.','M\xF6chten Sie "{0}" f\xFCr alle Dateien r\xFCckg\xE4ngig machen?',"&&In {0} Dateien r\xFCckg\xE4ngig machen","&&Datei r\xFCckg\xE4ngig machen",'"{0}" konnte nicht r\xFCckg\xE4ngig gemacht werden, weil bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen durchgef\xFChrt wird.','M\xF6chten Sie "{0}" r\xFCckg\xE4ngig machen?',"&&Ja","Nein",'"{0}" konnte nicht in allen Dateien wiederholt werden. {1}','"{0}" konnte nicht in allen Dateien wiederholt werden. {1}','"{0}" konnte nicht in allen Dateien wiederholt werden, da \xC4nderungen an {1} vorgenommen wurden.','"{0}" konnte nicht f\xFCr alle Dateien wiederholt werden, weil bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen f\xFCr "{1}" durchgef\xFChrt wird.','"{0}" konnte nicht f\xFCr alle Dateien wiederholt werden, weil in der Zwischenzeit bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen durchgef\xFChrt wurde.','"{0}" konnte nicht wiederholt werden, weil bereits ein Vorgang zum R\xFCckg\xE4ngigmachen oder Wiederholen durchgef\xFChrt wird.'],"vs/platform/workspace/common/workspace":["Codearbeitsbereich"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.de.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.es.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.es.js new file mode 100644 index 0000000..1784a68 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.es.js @@ -0,0 +1,15 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.es",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["entrada"],"vs/base/browser/ui/findinput/findInputToggles":["Coincidir may\xFAsculas y min\xFAsculas","Solo palabras completas","Usar expresi\xF3n regular"],"vs/base/browser/ui/findinput/replaceInput":["entrada","Conservar may/min"],"vs/base/browser/ui/hover/hoverWidget":["Inspeccione esto en la vista accesible con {0}.","Inspeccione esto en la vista accesible mediante el comando Abrir vista accesible, que actualmente no se puede desencadenar mediante el enlace de teclado."],"vs/base/browser/ui/iconLabel/iconLabelHover":["Cargando..."],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Advertencia: {0}","Informaci\xF3n: {0}"," o {0} para el historial"," ({0} para el historial)","Entrada borrada"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Sin enlazar"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Seleccionar cuadro"],"vs/base/browser/ui/toolbar/toolbar":["M\xE1s Acciones..."],"vs/base/browser/ui/tree/abstractTree":["Filtrar","Coincidencia aproximada","Escriba texto para filtrar","Escriba texto para buscar","Escriba texto para buscar","Cerrar","No se encontraron elementos."],"vs/base/common/actions":["(vac\xEDo)"],"vs/base/common/errorMessage":["{0}: {1}","Error del sistema ({0})","Se ha producido un error desconocido. Consulte el registro para obtener m\xE1s detalles.","Se ha producido un error desconocido. Consulte el registro para obtener m\xE1s detalles.","{0} ({1} errores en total)","Se ha producido un error desconocido. Consulte el registro para obtener m\xE1s detalles."],"vs/base/common/keybindingLabels":["Ctrl","May\xFAs","Alt","Windows","Ctrl","May\xFAs","Alt","Super","Control","May\xFAs","Opci\xF3n","Comando","Control","May\xFAs","Alt","Windows","Control","May\xFAs","Alt","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["editor","No se puede acceder al editor en este momento.","{0} Para habilitar el modo optimizado para lectores de pantalla, use {1}","{0} Para habilitar el modo optimizado para lector de pantalla, abra la selecci\xF3n r\xE1pida con {1} y ejecute el comando Alternar modo de accesibilidad del lector de pantalla, que actualmente no se puede desencadenar mediante el teclado.","{0} Para asignar un enlace de teclado para el comando Alternar modo de accesibilidad del lector de pantalla, acceda al editor de enlaces de teclado con {1} y ejec\xFAtelo."],"vs/editor/browser/coreCommands":["Anclar al final incluso cuando se vayan a l\xEDneas m\xE1s largas","Anclar al final incluso cuando se vayan a l\xEDneas m\xE1s largas","Cursores secundarios quitados"],"vs/editor/browser/editorExtensions":["&&Deshacer","Deshacer","&&Rehacer","Rehacer","&&Seleccionar todo","Seleccionar todo"],"vs/editor/browser/widget/codeEditorWidget":["El n\xFAmero de cursores se ha limitado a {0}. Considere la posibilidad de usar [buscar y reemplazar](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) para realizar cambios mayores o aumentar la configuraci\xF3n del l\xEDmite de varios cursores del editor.","Aumentar el l\xEDmite de varios cursores"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":['Icono de "Insertar" en el visor de diferencias accesible.','Icono de "Quitar" en el visor de diferencias accesible.','Icono de "Cerrar" en el visor de diferencias accesible.',"Cerrar","Visor de diferencias accesible. Utilice la flecha hacia arriba y hacia abajo para navegar.","no se han cambiado l\xEDneas","1 l\xEDnea cambiada","{0} l\xEDneas cambiadas","Diferencia {0} de {1}: l\xEDnea original {2}, {3}, l\xEDnea modificada {4}, {5}","vac\xEDo","{0} l\xEDnea sin cambios {1}","{0} l\xEDnea original {1} l\xEDnea modificada {2}","+ {0} l\xEDnea modificada {1}","- {0} l\xEDnea original {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" use {0} para abrir la ayuda de accesibilidad."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["Copiar l\xEDneas eliminadas","Copiar l\xEDnea eliminada","Copiar l\xEDneas cambiadas","Copiar l\xEDnea cambiada","Copiar la l\xEDnea eliminada ({0})","Copiar l\xEDnea cambiada ({0})","Revertir este cambio"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["Uso de la vista insertada cuando el espacio es limitado","Mostrar bloques de c\xF3digo movidos","Abrir visor de diferencias accesibles","Alternar contraer regiones sin cambios","Alternar Mostrar bloques de c\xF3digo movidos","Alternar el uso de la vista insertada cuando el espacio es limitado","Editor de diferencias","Lado del conmutador","Salir de la comparaci\xF3n de movimientos","Contraer todas las regiones sin cambios","Mostrar todas las regiones sin cambios","Visor de diferencias accesibles","Ir a la siguiente diferencia","Ir a la diferencia anterior"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["Plegar la regi\xF3n sin cambios","Haga clic o arrastre para mostrar m\xE1s arriba","Mostrar regi\xF3n sin cambios","Hacer clic o arrastrar para mostrar m\xE1s abajo","{0} l\xEDneas ocultas","Doble clic para desplegar"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["C\xF3digo movido con cambios en la l\xEDnea {0}-{1}","C\xF3digo movido con cambios de la l\xEDnea {0}-{1}","C\xF3digo movido a la l\xEDnea {0}-{1}","C\xF3digo movido de la l\xEDnea {0}-{1}"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["Revertir los cambios seleccionados","Revertir el cambio"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["Color del borde del texto que se movi\xF3 en el editor de diferencias.","Color del borde de texto activo que se movi\xF3 en el editor de diferencias.","Color de la sombra paralela en torno a los widgets de regi\xF3n sin cambios.","Decoraci\xF3n de l\xEDnea para las inserciones en el editor de diferencias.","Decoraci\xF3n de l\xEDnea para las eliminaciones en el editor de diferencias."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["Mantenga presionada la tecla {0} para pasar el mouse"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["Color de fondo del encabezado del editor de diferencias","Color de fondo del editor de diferencias de varios archivos","Color de borde del editor de diferencias de varios archivos"],"vs/editor/common/config/editorConfigurationSchema":["Editor","El n\xFAmero de espacios a los que equivale una tabulaci\xF3n. Este valor se invalida en funci\xF3n del contenido del archivo cuando {0} est\xE1 activado.",'N\xFAmero de espacios usados para la sangr\xEDa o "tabSize" para usar el valor de "#editor.tabSize#". Esta configuraci\xF3n se invalida en funci\xF3n del contenido del archivo cuando "#editor.detectIndentation#" est\xE1 activado.','Insertar espacios al presionar "TAB". Este valor se invalida en funci\xF3n del contenido del archivo cuando {0} est\xE1 activado.',"Controla si {0} y {1} se detectan autom\xE1ticamente al abrir un archivo en funci\xF3n del contenido de este.","Quitar el espacio en blanco final autoinsertado.","Manejo especial para archivos grandes para desactivar ciertas funciones de memoria intensiva.","Desactivar sugerencias basadas en Word.","Sugerir palabras solo del documento activo.","Sugerir palabras de todos los documentos abiertos del mismo idioma.","Sugerir palabras de todos los documentos abiertos.","Controla si las finalizaciones se deben calcular en funci\xF3n de las palabras del documento y desde qu\xE9 documentos se calculan.","El resaltado sem\xE1ntico est\xE1 habilitado para todos los temas de color.","El resaltado sem\xE1ntico est\xE1 deshabilitado para todos los temas de color.",'El resaltado sem\xE1ntico est\xE1 configurado con el valor "semanticHighlighting" del tema de color actual.',"Controla si se muestra semanticHighlighting para los idiomas que lo admiten.",'Mantiene abiertos los editores interactivos, incluso al hacer doble clic en su contenido o presionar "Escape".',"Las lineas por encima de esta longitud no se tokenizar\xE1n por razones de rendimiento.","Controla si la tokenizaci\xF3n debe producirse de forma asincr\xF3nica en un rol de trabajo.","Controla si se debe registrar la tokenizaci\xF3n asincr\xF3nica. Solo para depuraci\xF3n.","Controla si se debe comprobar la tokenizaci\xF3n asincr\xF3nica con la tokenizaci\xF3n en segundo plano heredada. Puede ralentizar la tokenizaci\xF3n. Solo para depuraci\xF3n.","Define los corchetes que aumentan o reducen la sangr\xEDa.","Secuencia de cadena o corchete de apertura.","Secuencia de cadena o corchete de cierre.","Define los pares de corchetes coloreados por su nivel de anidamiento si est\xE1 habilitada la coloraci\xF3n de par de corchetes.","Secuencia de cadena o corchete de apertura.","Secuencia de cadena o corchete de cierre.","Tiempo de espera en milisegundos despu\xE9s del cual se cancela el c\xE1lculo de diferencias. Utilice 0 para no usar tiempo de espera.","Tama\xF1o m\xE1ximo de archivo en MB para el que calcular diferencias. Use 0 para no limitar.","Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.","Si el ancho del editor de diferencias es menor que este valor, se usa la vista insertada.","Si est\xE1 habilitada y el ancho del editor es demasiado peque\xF1o, se usa la vista en l\xEDnea.","Cuando est\xE1 habilitado, el editor de diferencias muestra flechas en su margen de glifo para revertir los cambios.","Cuando est\xE1 habilitado, el editor de diferencias omite los cambios en los espacios en blanco iniciales o finales.","Controla si el editor de diferencias muestra los indicadores +/- para los cambios agregados o quitados.","Controla si el editor muestra CodeLens.","Las l\xEDneas no se ajustar\xE1n nunca.","Las l\xEDneas se ajustar\xE1n en el ancho de la ventanilla.","Las l\xEDneas se ajustar\xE1n en funci\xF3n de la configuraci\xF3n de {0}.","Usa el algoritmo de diferenciaci\xF3n heredado.","Usa el algoritmo de diferenciaci\xF3n avanzada.","Controla si el editor de diferencias muestra las regiones sin cambios.","Controla cu\xE1ntas l\xEDneas se usan para las regiones sin cambios.","Controla cu\xE1ntas l\xEDneas se usan como m\xEDnimo para las regiones sin cambios.","Controla cu\xE1ntas l\xEDneas se usan como contexto al comparar regiones sin cambios.","Controlar si el editor de diferencias debe mostrar los movimientos de c\xF3digo detectados.","Controla si el editor de diferencias muestra decoraciones vac\xEDas para ver d\xF3nde se insertan o eliminan los caracteres."],"vs/editor/common/config/editorOptions":["Usar las API de la plataforma para detectar cu\xE1ndo se conecta un lector de pantalla.","Optimizar para usar con un lector de pantalla.","Supongamos que no hay un lector de pantalla conectado.","Controla si la interfaz de usuario debe ejecutarse en un modo en el que est\xE9 optimizada para lectores de pantalla.","Controla si se inserta un car\xE1cter de espacio al comentar.","Controla si las l\xEDneas vac\xEDas deben ignorarse con la opci\xF3n de alternar, agregar o quitar acciones para los comentarios de l\xEDnea.","Controla si al copiar sin selecci\xF3n se copia la l\xEDnea actual.","Controla si el cursor debe saltar para buscar coincidencias mientras se escribe.","Nunca inicializar la cadena de b\xFAsqueda desde la selecci\xF3n del editor.","Siempre inicializar la cadena de b\xFAsqueda desde la selecci\xF3n del editor, incluida la palabra en la posici\xF3n del cursor.","Solo inicializar la cadena de b\xFAsqueda desde la selecci\xF3n del editor.","Controla si la cadena de b\xFAsqueda del widget de b\xFAsqueda se inicializa desde la selecci\xF3n del editor.","No activar nunca Buscar en selecci\xF3n autom\xE1ticamente (predeterminado).","Activar siempre Buscar en selecci\xF3n autom\xE1ticamente.","Activar Buscar en la selecci\xF3n autom\xE1ticamente cuando se seleccionen varias l\xEDneas de contenido.","Controla la condici\xF3n para activar la b\xFAsqueda en la selecci\xF3n de forma autom\xE1tica.","Controla si el widget de b\xFAsqueda debe leer o modificar el Portapapeles de b\xFAsqueda compartido en macOS.","Controla si Encontrar widget debe agregar m\xE1s l\xEDneas en la parte superior del editor. Si es true, puede desplazarse m\xE1s all\xE1 de la primera l\xEDnea cuando Encontrar widget est\xE1 visible.","Controla si la b\xFAsqueda se reinicia autom\xE1ticamente desde el principio (o el final) cuando no se encuentran m\xE1s coincidencias.",'Habilita o deshabilita las ligaduras tipogr\xE1ficas (caracter\xEDsticas de fuente "calt" y "liga"). C\xE1mbielo a una cadena para el control espec\xEDfico de la propiedad de CSS "font-feature-settings".','Propiedad de CSS "font-feature-settings" expl\xEDcita. En su lugar, puede pasarse un valor booleano si solo es necesario activar o desactivar las ligaduras.','Configura las ligaduras tipogr\xE1ficas o las caracter\xEDsticas de fuente. Puede ser un valor booleano para habilitar o deshabilitar las ligaduras o bien una cadena para el valor de la propiedad "font-feature-settings" de CSS.',"Habilita o deshabilita la traducci\xF3n del grosor de font-weight a font-variation-settings. Cambie esto a una cadena para el control espec\xEDfico de la propiedad CSS 'font-variation-settings'.","Propiedad CSS expl\xEDcita 'font-variation-settings'. En su lugar, se puede pasar un valor booleano si solo es necesario traducir font-weight a font-variation-settings.","Configura variaciones de fuente. Puede ser un booleano para habilitar o deshabilitar la traducci\xF3n de font-weight a font-variation-settings o una cadena para el valor de la propiedad CSS 'font-variation-settings'.","Controla el tama\xF1o de fuente en p\xEDxeles.",'Solo se permiten las palabras clave "normal" y "negrita" o los n\xFAmeros entre 1 y 1000.','Controla el grosor de la fuente. Acepta las palabras clave "normal" y "negrita" o los n\xFAmeros entre 1 y 1000.',"Mostrar vista de inspecci\xF3n de los resultados (predeterminado)","Ir al resultado principal y mostrar una vista de inspecci\xF3n","Vaya al resultado principal y habilite la navegaci\xF3n sin peek para otros",'Esta configuraci\xF3n est\xE1 en desuso. Use configuraciones separadas como "editor.editor.gotoLocation.multipleDefinitions" o "editor.editor.gotoLocation.multipleImplementations" en su lugar.','Controla el comportamiento del comando "Ir a definici\xF3n" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a definici\xF3n de tipo" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a declaraci\xF3n" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a implementaciones" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a referencias" cuando existen varias ubicaciones de destino.','Identificador de comando alternativo que se ejecuta cuando el resultado de "Ir a definici\xF3n" es la ubicaci\xF3n actual.','Id. de comando alternativo que se est\xE1 ejecutando cuando el resultado de "Ir a definici\xF3n de tipo" es la ubicaci\xF3n actual.','Id. de comando alternativo que se est\xE1 ejecutando cuando el resultado de "Ir a declaraci\xF3n" es la ubicaci\xF3n actual.','Id. de comando alternativo que se est\xE1 ejecutando cuando el resultado de "Ir a implementaci\xF3n" es la ubicaci\xF3n actual.','Identificador de comando alternativo que se ejecuta cuando el resultado de "Ir a referencia" es la ubicaci\xF3n actual.',"Controla si se muestra la informaci\xF3n al mantener el puntero sobre un elemento.","Controla el retardo en milisegundos despu\xE9s del cual se muestra la informaci\xF3n al mantener el puntero sobre un elemento.","Controla si la informaci\xF3n que aparece al mantener el puntero sobre un elemento permanece visible al mover el mouse sobre este.","Controla el retraso en milisegundos despu\xE9s del cual se oculta el desplazamiento. Requiere que se habilite `editor.hover.sticky`.","Preferir mostrar los desplazamientos por encima de la l\xEDnea, si hay espacio.","Se supone que todos los caracteres son del mismo ancho. Este es un algoritmo r\xE1pido que funciona correctamente para fuentes monoespaciales y ciertos scripts (como caracteres latinos) donde los glifos tienen el mismo ancho.","Delega el c\xE1lculo de puntos de ajuste en el explorador. Es un algoritmo lento, que podr\xEDa causar bloqueos para archivos grandes, pero funciona correctamente en todos los casos.","Controla el algoritmo que calcula los puntos de ajuste. Tenga en cuenta que, en el modo de accesibilidad, se usar\xE1 el modo avanzado para obtener la mejor experiencia.","Deshabilite el men\xFA de acci\xF3n de c\xF3digo.","Muestra el men\xFA de acci\xF3n del c\xF3digo cuando el cursor est\xE1 en l\xEDneas con c\xF3digo.","Muestra el men\xFA de acci\xF3n de c\xF3digo cuando el cursor est\xE1 en l\xEDneas con c\xF3digo o en l\xEDneas vac\xEDas.","Habilita la bombilla de acci\xF3n de c\xF3digo en el editor.","Muestra los \xE1mbitos actuales anidados durante el desplazamiento en la parte superior del editor.","Define el n\xFAmero m\xE1ximo de l\xEDneas r\xE1pidas que se mostrar\xE1n.","Define el modelo que se va a usar para determinar qu\xE9 l\xEDneas se van a pegar. Si el modelo de esquema no existe, recurrir\xE1 al modelo del proveedor de plegado que recurre al modelo de sangr\xEDa. Este orden se respeta en los tres casos.","Habilite el desplazamiento de desplazamiento r\xE1pido con la barra de desplazamiento horizontal del editor.","Habilita las sugerencias de incrustaci\xF3n en el editor.","Las sugerencias de incrustaci\xF3n est\xE1n habilitadas","Las sugerencias de incrustaci\xF3n se muestran de forma predeterminada y se ocultan cuando se mantiene presionado {0}","Las sugerencias de incrustaci\xF3n est\xE1n ocultas de forma predeterminada y se muestran al mantener presionado {0}","Las sugerencias de incrustaci\xF3n est\xE1n deshabilitadas","Controla el tama\xF1o de fuente de las sugerencias de incrustaci\xF3n en el editor. Como valor predeterminado, se usa {0} cuando el valor configurado es menor que {1} o mayor que el tama\xF1o de fuente del editor.","Controla la familia de fuentes de sugerencias de incrustaci\xF3n en el editor. Cuando se establece en vac\xEDo, se usa el {0}.","Habilita el relleno alrededor de las sugerencias de incrustaci\xF3n en el editor.",`Controla el alto de l\xEDnea. \r + - Use 0 para calcular autom\xE1ticamente el alto de l\xEDnea a partir del tama\xF1o de la fuente.\r + - Los valores entre 0 y 8 se usar\xE1n como multiplicador con el tama\xF1o de fuente.\r + - Los valores mayores o igual que 8 se usar\xE1n como valores efectivos.`,"Controla si se muestra el minimapa.","Controla si el minimapa se oculta autom\xE1ticamente.","El minimapa tiene el mismo tama\xF1o que el contenido del editor (y podr\xEDa desplazarse).","El minimapa se estirar\xE1 o reducir\xE1 seg\xFAn sea necesario para ocupar la altura del editor (sin desplazamiento).","El minimapa se reducir\xE1 seg\xFAn sea necesario para no ser nunca m\xE1s grande que el editor (sin desplazamiento).","Controla el tama\xF1o del minimapa.","Controla en qu\xE9 lado se muestra el minimapa.","Controla cu\xE1ndo se muestra el control deslizante del minimapa.","Escala del contenido dibujado en el minimapa: 1, 2 o 3.","Represente los caracteres reales en una l\xEDnea, por oposici\xF3n a los bloques de color.","Limite el ancho del minimapa para representar como mucho un n\xFAmero de columnas determinado.","Controla la cantidad de espacio entre el borde superior del editor y la primera l\xEDnea.","Controla el espacio entre el borde inferior del editor y la \xFAltima l\xEDnea.","Habilita un elemento emergente que muestra documentaci\xF3n de los par\xE1metros e informaci\xF3n de los tipos mientras escribe.","Controla si el men\xFA de sugerencias de par\xE1metros se cicla o se cierra al llegar al final de la lista.","Las sugerencias r\xE1pidas se muestran dentro del widget de sugerencias","Las sugerencias r\xE1pidas se muestran como texto fantasma","Las sugerencias r\xE1pidas est\xE1n deshabilitadas","Habilita sugerencias r\xE1pidas en las cadenas.","Habilita sugerencias r\xE1pidas en los comentarios.","Habilita sugerencias r\xE1pidas fuera de las cadenas y los comentarios.","Controla si las sugerencias deben mostrarse autom\xE1ticamente al escribir. Puede controlarse para la escritura en comentarios, cadenas y otro c\xF3digo. Las sugerencias r\xE1pidas pueden configurarse para mostrarse como texto fantasma o con el widget de sugerencias. Tenga tambi\xE9n en cuenta la configuraci\xF3n '{0}' que controla si las sugerencias son desencadenadas por caracteres especiales.","Los n\xFAmeros de l\xEDnea no se muestran.","Los n\xFAmeros de l\xEDnea se muestran como un n\xFAmero absoluto.","Los n\xFAmeros de l\xEDnea se muestran como distancia en l\xEDneas a la posici\xF3n del cursor.","Los n\xFAmeros de l\xEDnea se muestran cada 10 l\xEDneas.","Controla la visualizaci\xF3n de los n\xFAmeros de l\xEDnea.","N\xFAmero de caracteres monoespaciales en los que se representar\xE1 esta regla del editor.","Color de esta regla del editor.","Muestra reglas verticales despu\xE9s de un cierto n\xFAmero de caracteres monoespaciados. Usa m\xFAltiples valores para mostrar m\xFAltiples reglas. Si la matriz est\xE1 vac\xEDa, no se muestran reglas.","La barra de desplazamiento vertical estar\xE1 visible solo cuando sea necesario.","La barra de desplazamiento vertical estar\xE1 siempre visible.","La barra de desplazamiento vertical estar\xE1 siempre oculta.","Controla la visibilidad de la barra de desplazamiento vertical.","La barra de desplazamiento horizontal estar\xE1 visible solo cuando sea necesario.","La barra de desplazamiento horizontal estar\xE1 siempre visible.","La barra de desplazamiento horizontal estar\xE1 siempre oculta.","Controla la visibilidad de la barra de desplazamiento horizontal.","Ancho de la barra de desplazamiento vertical.","Altura de la barra de desplazamiento horizontal.","Controla si al hacer clic se desplaza por p\xE1gina o salta a la posici\xF3n donde se hace clic.","Cuando se establece, la barra de desplazamiento horizontal no aumentar\xE1 el tama\xF1o del contenido del editor.","Controla si se resaltan todos los caracteres ASCII no b\xE1sicos. Solo los caracteres entre U+0020 y U+007E, tabulaci\xF3n, avance de l\xEDnea y retorno de carro se consideran ASCII b\xE1sicos.","Controla si se resaltan los caracteres que solo reservan espacio o que no tienen ancho.","Controla si se resaltan caracteres que se pueden confundir con caracteres ASCII b\xE1sicos, excepto los que son comunes en la configuraci\xF3n regional del usuario actual.","Controla si los caracteres de los comentarios tambi\xE9n deben estar sujetos al resaltado Unicode.","Controla si los caracteres de las cadenas tambi\xE9n deben estar sujetos al resaltado Unicode.","Define los caracteres permitidos que no se resaltan.","Los caracteres Unicode que son comunes en las configuraciones regionales permitidas no se resaltan.","Controla si se deben mostrar autom\xE1ticamente las sugerencias alineadas en el editor.","Muestra la barra de herramientas de sugerencias insertadas cada vez que se muestra una sugerencia insertada.","Muestra la barra de herramientas de sugerencias insertadas al mantener el puntero sobre una sugerencia insertada.","No mostrar nunca la barra de herramientas de sugerencias insertadas.","Controla cu\xE1ndo mostrar la barra de herramientas de sugerencias insertadas.","Controla c\xF3mo interact\xFAan las sugerencias insertadas con el widget de sugerencias. Si se habilita, el widget de sugerencias no se muestra autom\xE1ticamente cuando hay sugerencias insertadas disponibles.","Controla la familia de fuentes de las sugerencias insertadas.","Controla si se van a mostrar las ediciones insertadas en el editor.","Muestra la barra de herramientas de edici\xF3n insertada cada vez que se muestra una sugerencia insertada.","Mostrar la barra de herramientas de edici\xF3n insertada al pasar el rat\xF3n por encima de una sugerencia insertada.","No mostrar nunca la barra de herramientas de edici\xF3n insertada.","Controla cu\xE1ndo mostrar la barra de herramientas de edici\xF3n insertada.","Controla la familia de fuentes de la edici\xF3n insertada.","Controla si se colorea el fondo de las ediciones insertadas.","Controla si est\xE1 habilitada o no la coloraci\xF3n de pares de corchetes. Use {0} para invalidar los colores de resaltado de corchete.","Controla si cada tipo de corchete tiene su propio grupo de colores independiente.","Habilita gu\xEDas de par de corchetes.","Habilita gu\xEDas de par de corchetes solo para el par de corchetes activo.","Deshabilita las gu\xEDas de par de corchetes.","Controla si est\xE1n habilitadas las gu\xEDas de pares de corchetes.","Habilita gu\xEDas horizontales como adici\xF3n a gu\xEDas de par de corchetes verticales.","Habilita gu\xEDas horizontales solo para el par de corchetes activo.","Deshabilita las gu\xEDas de par de corchetes horizontales.","Controla si est\xE1n habilitadas las gu\xEDas de pares de corchetes horizontales.","Controla si el editor debe resaltar el par de corchetes activo.","Controla si el editor debe representar gu\xEDas de sangr\xEDa.","Resalta la gu\xEDa de sangr\xEDa activa.","Resalta la gu\xEDa de sangr\xEDa activa incluso si se resaltan las gu\xEDas de corchetes.","No resalta la gu\xEDa de sangr\xEDa activa.","Controla si el editor debe resaltar la gu\xEDa de sangr\xEDa activa.","Inserte la sugerencia sin sobrescribir el texto a la derecha del cursor.","Inserte la sugerencia y sobrescriba el texto a la derecha del cursor.","Controla si las palabras se sobrescriben al aceptar la finalizaci\xF3n. Tenga en cuenta que esto depende de las extensiones que participan en esta caracter\xEDstica.","Controla si el filtrado y la ordenaci\xF3n de sugerencias se tienen en cuenta para los errores ortogr\xE1ficos peque\xF1os.","Controla si la ordenaci\xF3n mejora las palabras que aparecen cerca del cursor.",'Controla si las selecciones de sugerencias recordadas se comparten entre m\xFAltiples \xE1reas de trabajo y ventanas (necesita "#editor.suggestSelection#").',"Seleccione siempre una sugerencia cuando se desencadene IntelliSense autom\xE1ticamente.","Nunca seleccione una sugerencia cuando desencadene IntelliSense autom\xE1ticamente.","Seleccione una sugerencia solo cuando desencadene IntelliSense desde un car\xE1cter de desencadenador.","Seleccione una sugerencia solo cuando desencadene IntelliSense mientras escribe.","Controla si se selecciona una sugerencia cuando se muestra el widget. Tenga en cuenta que esto solo se aplica a las sugerencias desencadenadas autom\xE1ticamente (`#editor.quickSuggestions#` y `#editor.suggestOnTriggerCharacters#`) y que siempre se selecciona una sugerencia cuando se invoca expl\xEDcitamente, por ejemplo, a trav\xE9s de 'Ctrl+Espacio'.","Controla si un fragmento de c\xF3digo activo impide sugerencias r\xE1pidas.","Controla si mostrar u ocultar iconos en sugerencias.","Controla la visibilidad de la barra de estado en la parte inferior del widget de sugerencias.","Controla si se puede obtener una vista previa del resultado de la sugerencia en el editor.","Controla si los detalles de sugerencia se muestran incorporados con la etiqueta o solo en el widget de detalles.","La configuraci\xF3n est\xE1 en desuso. Ahora puede cambiarse el tama\xF1o del widget de sugerencias.",'Esta configuraci\xF3n est\xE1 en desuso. Use configuraciones separadas como "editor.suggest.showKeyword" o "editor.suggest.showSnippets" en su lugar.','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "method".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de "funci\xF3n".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "constructor".','Cuando se activa IntelliSense muestra sugerencias "obsoletas".','Cuando se activa el filtro IntelliSense se requiere que el primer car\xE1cter coincida con el inicio de una palabra. Por ejemplo, "c" en "Consola" o "WebContext" but _not_ on "descripci\xF3n". Si se desactiva, IntelliSense mostrar\xE1 m\xE1s resultados, pero los ordenar\xE1 seg\xFAn la calidad de la coincidencia.','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "field".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "variable".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "class".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "struct".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "interface".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "module".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "property".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "event".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "operator".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "unit".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de "value".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "constant".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "enum".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "enumMember".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "keyword".','Si est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "text".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de "color".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "file".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "reference".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "customcolor".','Si est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "folder".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "typeParameter".','Cuando est\xE1 habilitado, IntelliSense muestra sugerencias de tipo "snippet".',"Cuando est\xE1 habilitado, IntelliSense muestra sugerencias del usuario.","Cuando est\xE1 habilitado IntelliSense muestra sugerencias para problemas.","Indica si los espacios en blanco iniciales y finales deben seleccionarse siempre.",'Indica si se deben seleccionar las subpalabras (como "foo" en "fooBar" o "foo_bar").',"No hay sangr\xEDa. Las l\xEDneas ajustadas comienzan en la columna 1.","A las l\xEDneas ajustadas se les aplica la misma sangr\xEDa que al elemento primario.","A las l\xEDneas ajustadas se les aplica una sangr\xEDa de +1 respecto al elemento primario.","A las l\xEDneas ajustadas se les aplica una sangr\xEDa de +2 respecto al elemento primario.","Controla la sangr\xEDa de las l\xEDneas ajustadas.",'Controla si puede arrastrar y colocar un archivo en un editor de texto manteniendo presionada la tecla "May\xFAs" (en lugar de abrir el archivo en un editor).',"Controla si se muestra un widget al colocar archivos en el editor. Este widget le permite controlar c\xF3mo se coloca el archivo.","Muestra el widget del selector de colocaci\xF3n despu\xE9s de colocar un archivo en el editor.","No mostrar nunca el widget del selector de colocaci\xF3n. En su lugar, siempre se usa el proveedor de colocaci\xF3n predeterminado.","Controla si se puede pegar contenido de distintas formas.","Controla si se muestra un widget al pegar contenido en el editor. Este widget le permite controlar c\xF3mo se pega el archivo.","Muestra el widget del selector de pegado despu\xE9s de pegar contenido en el editor.","No mostrar nunca el widget del selector de pegado. En su lugar, siempre se usa el comportamiento de pegado predeterminado.",'Controla si se deben aceptar sugerencias en los caracteres de confirmaci\xF3n. Por ejemplo, en Javascript, el punto y coma (";") puede ser un car\xE1cter de confirmaci\xF3n que acepta una sugerencia y escribe ese car\xE1cter.','Aceptar solo una sugerencia con "Entrar" cuando realiza un cambio textual.','Controla si las sugerencias deben aceptarse con "Entrar", adem\xE1s de "TAB". Ayuda a evitar la ambig\xFCedad entre insertar nuevas l\xEDneas o aceptar sugerencias.',"Controla el n\xFAmero de l\xEDneas del editor que pueden ser le\xEDdas por un lector de pantalla a la vez. Cuando detectamos un lector de pantalla, fijamos autom\xE1ticamente el valor por defecto en 500. Advertencia: esto tiene una implicaci\xF3n de rendimiento para n\xFAmeros mayores que el predeterminado.","Contenido del editor","Controlar si un lector de pantalla anuncia sugerencias insertadas.","Utilizar las configuraciones del lenguaje para determinar cu\xE1ndo cerrar los corchetes autom\xE1ticamente.","Cerrar autom\xE1ticamente los corchetes cuando el cursor est\xE9 a la izquierda de un espacio en blanco.","Controla si el editor debe cerrar autom\xE1ticamente los corchetes despu\xE9s de que el usuario agregue un corchete de apertura.","Utilice las configuraciones de idioma para determinar cu\xE1ndo cerrar los comentarios autom\xE1ticamente.","Cerrar autom\xE1ticamente los comentarios solo cuando el cursor est\xE9 a la izquierda de un espacio en blanco.","Controla si el editor debe cerrar autom\xE1ticamente los comentarios despu\xE9s de que el usuario agregue un comentario de apertura.","Quite los corchetes o las comillas de cierre adyacentes solo si se insertaron autom\xE1ticamente.","Controla si el editor debe quitar los corchetes o las comillas de cierre adyacentes al eliminar.","Escriba en las comillas o los corchetes solo si se insertaron autom\xE1ticamente.","Controla si el editor debe escribir entre comillas o corchetes.","Utilizar las configuraciones del lenguaje para determinar cu\xE1ndo cerrar las comillas autom\xE1ticamente. ","Cerrar autom\xE1ticamente las comillas cuando el cursor est\xE9 a la izquierda de un espacio en blanco. ","Controla si el editor debe cerrar autom\xE1ticamente las comillas despu\xE9s de que el usuario agrega uma comilla de apertura.","El editor no insertar\xE1 la sangr\xEDa autom\xE1ticamente.","El editor mantendr\xE1 la sangr\xEDa de la l\xEDnea actual.","El editor respetar\xE1 la sangr\xEDa de la l\xEDnea actual y los corchetes definidos por el idioma.","El editor mantendr\xE1 la sangr\xEDa de la l\xEDnea actual, respetar\xE1 los corchetes definidos por el idioma e invocar\xE1 onEnterRules especiales definidos por idiomas.","El editor respetar\xE1 la sangr\xEDa de la l\xEDnea actual, los corchetes definidos por idiomas y las reglas indentationRules definidas por idiomas, adem\xE1s de invocar reglas onEnterRules especiales.","Controla si el editor debe ajustar autom\xE1ticamente la sangr\xEDa mientras los usuarios escriben, pegan, mueven o sangran l\xEDneas.","Use las configuraciones de idioma para determinar cu\xE1ndo delimitar las selecciones autom\xE1ticamente.","Envolver con comillas, pero no con corchetes.","Envolver con corchetes, pero no con comillas.","Controla si el editor debe rodear autom\xE1ticamente las selecciones al escribir comillas o corchetes.","Emula el comportamiento de selecci\xF3n de los caracteres de tabulaci\xF3n al usar espacios para la sangr\xEDa. La selecci\xF3n se aplicar\xE1 a las tabulaciones.","Controla si el editor muestra CodeLens.","Controla la familia de fuentes para CodeLens.",'Controla el tama\xF1o de fuente de CodeLens en p\xEDxeles. Cuando se establece en 0, se usa el 90\xA0% de "#editor.fontSize#".',"Controla si el editor debe representar el Selector de colores y los elementos Decorator de color en l\xEDnea.","Hacer que el selector de colores aparezca tanto al hacer clic como al mantener el puntero sobre el decorador de color","Hacer que el selector de colores aparezca al pasar el puntero sobre el decorador de color","Hacer que el selector de colores aparezca al hacer clic en el decorador de color","Controla la condici\xF3n para que un selector de colores aparezca de un decorador de color","Controla el n\xFAmero m\xE1ximo de decoradores de color que se pueden representar en un editor a la vez.","Habilite que la selecci\xF3n con el mouse y las teclas est\xE9 realizando la selecci\xF3n de columnas.","Controla si el resaltado de sintaxis debe ser copiado al portapapeles.","Controla el estilo de animaci\xF3n del cursor.","La animaci\xF3n del s\xEDmbolo de intercalaci\xF3n suave est\xE1 deshabilitada.","La animaci\xF3n de s\xEDmbolo de intercalaci\xF3n suave solo se habilita cuando el usuario mueve el cursor con un gesto expl\xEDcito.","La animaci\xF3n de s\xEDmbolo de intercalaci\xF3n suave siempre est\xE1 habilitada.","Controla si la animaci\xF3n suave del cursor debe estar habilitada.","Controla el estilo del cursor.",'Controla el n\xFAmero m\xEDnimo de l\xEDneas iniciales visibles (m\xEDnimo 0) y l\xEDneas finales (m\xEDnimo 1) que rodean el cursor. Se conoce como "scrollOff" o "scrollOffset" en otros editores.','Solo se aplica "cursorSurroundingLines" cuando se desencadena mediante el teclado o la API.','"cursorSurroundingLines" se aplica siempre.','Controla cuando se debe aplicar "#cursorSurroundingLines#".','Controla el ancho del cursor cuando "#editor.cursorStyle#" se establece en "line".',"Controla si el editor debe permitir mover las selecciones mediante arrastrar y colocar.","Use un nuevo m\xE9todo de representaci\xF3n con svgs.","Use un nuevo m\xE9todo de representaci\xF3n con caracteres de fuente.","Use el m\xE9todo de representaci\xF3n estable.","Controla si los espacios en blanco se representan con un nuevo m\xE9todo experimental.",'Multiplicador de la velocidad de desplazamiento al presionar "Alt".',"Controla si el editor tiene el plegado de c\xF3digo habilitado.","Utilice una estrategia de plegado espec\xEDfica del idioma, si est\xE1 disponible, de lo contrario la basada en sangr\xEDa.","Utilice la estrategia de plegado basada en sangr\xEDa.","Controla la estrategia para calcular rangos de plegado.","Controla si el editor debe destacar los rangos plegados.","Permite controlar si el editor contrae autom\xE1ticamente los rangos de importaci\xF3n.","N\xFAmero m\xE1ximo de regiones plegables. Si aumenta este valor, es posible que el editor tenga menos capacidad de respuesta cuando el origen actual tiene un gran n\xFAmero de regiones plegables.","Controla si al hacer clic en el contenido vac\xEDo despu\xE9s de una l\xEDnea plegada se desplegar\xE1 la l\xEDnea.","Controla la familia de fuentes.","Controla si el editor debe dar formato autom\xE1ticamente al contenido pegado. Debe haber disponible un formateador capaz de aplicar formato a un rango dentro de un documento. ","Controla si el editor debe dar formato a la l\xEDnea autom\xE1ticamente despu\xE9s de escribirla.","Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuraci\xF3n.","Controla si el cursor debe ocultarse en la regla de informaci\xF3n general.","Controla el espacio entre letras en p\xEDxeles.","Controla si el editor tiene habilitada la edici\xF3n vinculada. Dependiendo del lenguaje, los s\xEDmbolos relacionados (por ejemplo, las etiquetas HTML) se actualizan durante la edici\xF3n.","Controla si el editor debe detectar v\xEDnculos y hacerlos interactivos.","Resaltar par\xE9ntesis coincidentes.",'Se usar\xE1 un multiplicador en los eventos de desplazamiento de la rueda del mouse "deltaX" y "deltaY". ',"Acercar la fuente del editor al usar la rueda del mouse y mantener pulsado 'Cmd'.",'Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona "Ctrl".',"Combinar varios cursores cuando se solapan.",'Se asigna a "Control" en Windows y Linux y a "Comando" en macOS.','Se asigna a "Alt" en Windows y Linux y a "Opci\xF3n" en macOS.',"El modificador que se usar\xE1 para agregar varios cursores con el mouse. Los gestos del mouse Ir a definici\xF3n y Abrir v\xEDnculo se adaptar\xE1n de modo que no entren en conflicto con el [modificador multicursor](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Cada cursor pega una \xFAnica l\xEDnea del texto.","Cada cursor pega el texto completo.","Controla el pegado cuando el recuento de l\xEDneas del texto pegado coincide con el recuento de cursores.","Controla el n\xFAmero m\xE1ximo de cursores que puede haber en un editor activo a la vez.","No resalta las repeticiones.","Resalta las repeticiones solo en el archivo actual.","Experimental: Resalta las repeticiones en todos los archivos abiertos v\xE1lidos.","Controla si las repeticiones deben resaltarse en los archivos abiertos.","Controla si debe dibujarse un borde alrededor de la regla de informaci\xF3n general.","Enfocar el \xE1rbol al abrir la inspecci\xF3n","Enfocar el editor al abrir la inspecci\xF3n","Controla si se debe enfocar el editor en l\xEDnea o el \xE1rbol en el widget de vista.","Controla si el gesto del mouse Ir a definici\xF3n siempre abre el widget interactivo.","Controla el retraso, en milisegundos, tras el cual aparecer\xE1n sugerencias r\xE1pidas.","Controla si el editor cambia el nombre autom\xE1ticamente en el tipo.",'En desuso. Utilice "editor.linkedEditing" en su lugar.',"Controla si el editor debe representar caracteres de control.","Representar el n\xFAmero de la \xFAltima l\xEDnea cuando el archivo termina con un salto de l\xEDnea.","Resalta el medianil y la l\xEDnea actual.","Controla c\xF3mo debe representar el editor el resaltado de l\xEDnea actual.","Controla si el editor debe representar el resaltado de la l\xEDnea actual solo cuando el editor est\xE1 enfocado.","Representa caracteres de espacio en blanco, excepto los espacios individuales entre palabras.","Represente los caracteres de espacio en blanco solo en el texto seleccionado.","Representa solo los caracteres de espacio en blanco al final.","Controla la forma en que el editor debe representar los caracteres de espacio en blanco.","Controla si las selecciones deber\xEDan tener las esquinas redondeadas.","Controla el n\xFAmero de caracteres adicionales a partir del cual el editor se desplazar\xE1 horizontalmente.","Controla si el editor seguir\xE1 haciendo scroll despu\xE9s de la \xFAltima l\xEDnea.","Despl\xE1cese solo a lo largo del eje predominante cuando se desplace vertical y horizontalmente al mismo tiempo. Evita la deriva horizontal cuando se desplaza verticalmente en un trackpad.","Controla si el portapapeles principal de Linux debe admitirse.","Controla si el editor debe destacar las coincidencias similares a la selecci\xF3n.","Mostrar siempre los controles de plegado.","No mostrar nunca los controles de plegado y reducir el tama\xF1o del medianil.","Mostrar solo los controles de plegado cuando el mouse est\xE1 sobre el medianil.","Controla cu\xE1ndo se muestran los controles de plegado en el medianil.","Controla el fundido de salida del c\xF3digo no usado.","Controla las variables en desuso tachadas.","Mostrar sugerencias de fragmentos de c\xF3digo por encima de otras sugerencias.","Mostrar sugerencias de fragmentos de c\xF3digo por debajo de otras sugerencias.","Mostrar sugerencias de fragmentos de c\xF3digo con otras sugerencias.","No mostrar sugerencias de fragmentos de c\xF3digo.","Controla si se muestran los fragmentos de c\xF3digo con otras sugerencias y c\xF3mo se ordenan.","Controla si el editor se desplazar\xE1 con una animaci\xF3n.","Controla si se debe proporcionar la sugerencia de accesibilidad a los usuarios del lector de pantalla cuando se muestra una finalizaci\xF3n insertada.","Tama\xF1o de fuente del widget de sugerencias. Cuando se establece en {0}, se usa el valor de {1}.","Alto de l\xEDnea para el widget de sugerencias. Cuando se establece en {0}, se usa el valor de {1}. El valor m\xEDnimo es 8.","Controla si deben aparecer sugerencias de forma autom\xE1tica al escribir caracteres desencadenadores.","Seleccionar siempre la primera sugerencia.",'Seleccione sugerencias recientes a menos que al escribir m\xE1s se seleccione una, por ejemplo, "console.| -> console.log" porque "log" se ha completado recientemente.','Seleccione sugerencias basadas en prefijos anteriores que han completado esas sugerencias, por ejemplo, "co -> console" y "con -> const".',"Controla c\xF3mo se preseleccionan las sugerencias cuando se muestra la lista,","La pesta\xF1a se completar\xE1 insertando la mejor sugerencia de coincidencia encontrada al presionar la pesta\xF1a","Deshabilitar los complementos para pesta\xF1as.","La pesta\xF1a se completa con fragmentos de c\xF3digo cuando su prefijo coincide. Funciona mejor cuando las 'quickSuggestions' no est\xE1n habilitadas.","Habilita completar pesta\xF1as.","Los terminadores de l\xEDnea no habituales se quitan autom\xE1ticamente.","Los terminadores de l\xEDnea no habituales se omiten.","Advertencia de terminadores de l\xEDnea inusuales que se quitar\xE1n.","Quite los terminadores de l\xEDnea inusuales que podr\xEDan provocar problemas.","La inserci\xF3n y eliminaci\xF3n del espacio en blanco sigue a las tabulaciones.","Use la regla de salto de l\xEDnea predeterminada.","Los saltos de palabra no deben usarse para texto chino, japon\xE9s o coreano (CJK). El comportamiento del texto distinto a CJK es el mismo que el normal.","Controla las reglas de salto de palabra usadas para texto chino, japon\xE9s o coreano (CJK).","Caracteres que se usar\xE1n como separadores de palabras al realizar operaciones o navegaciones relacionadas con palabras.","Las l\xEDneas no se ajustar\xE1n nunca.","Las l\xEDneas se ajustar\xE1n en el ancho de la ventanilla.",'Las l\xEDneas se ajustar\xE1n al valor de "#editor.wordWrapColumn#". ','Las l\xEDneas se ajustar\xE1n al valor que sea inferior: el tama\xF1o de la ventanilla o el valor de "#editor.wordWrapColumn#".',"Controla c\xF3mo deben ajustarse las l\xEDneas.",'Controla la columna de ajuste del editor cuando "#editor.wordWrap#" es "wordWrapColumn" o "bounded".',"Controla si las decoraciones de color en l\xEDnea deben mostrarse con el proveedor de colores del documento predeterminado.","Controla si el editor recibe las pesta\xF1as o las aplaza al \xE1rea de trabajo para la navegaci\xF3n."],"vs/editor/common/core/editorColorRegistry":["Color de fondo para la l\xEDnea resaltada en la posici\xF3n del cursor.","Color de fondo del borde alrededor de la l\xEDnea en la posici\xF3n del cursor.","Color de fondo de rangos resaltados, como en abrir r\xE1pido y encontrar caracter\xEDsticas. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo del borde alrededor de los intervalos resaltados.","Color de fondo del s\xEDmbolo destacado, como Ir a definici\xF3n o Ir al siguiente/anterior s\xEDmbolo. El color no debe ser opaco para no ocultar la decoraci\xF3n subyacente.","Color de fondo del borde alrededor de los s\xEDmbolos resaltados.","Color del cursor del editor.","Color de fondo del cursor de edici\xF3n. Permite personalizar el color del caracter solapado por el bloque del cursor.","Color de los caracteres de espacio en blanco del editor.","Color de n\xFAmeros de l\xEDnea del editor.","Color de las gu\xEDas de sangr\xEDa del editor.",'"editorIndentGuide.background" est\xE1 en desuso. Use "editorIndentGuide.background1" en su lugar.',"Color de las gu\xEDas de sangr\xEDa activas del editor.",'"editorIndentGuide.activeBackground" est\xE1 en desuso. Use "editorIndentGuide.activeBackground1" en su lugar.',"Color de las gu\xEDas de sangr\xEDa del editor (1).","Color de las gu\xEDas de sangr\xEDa del editor (2).","Color de las gu\xEDas de sangr\xEDa del editor (3).","Color de las gu\xEDas de sangr\xEDa del editor (4).","Color de las gu\xEDas de sangr\xEDa del editor (5).","Color de las gu\xEDas de sangr\xEDa del editor (6).","Color de las gu\xEDas de sangr\xEDa del editor activo (1).","Color de las gu\xEDas de sangr\xEDa del editor activo (2).","Color de las gu\xEDas de sangr\xEDa del editor activo (3).","Color de las gu\xEDas de sangr\xEDa del editor activo (4).","Color de las gu\xEDas de sangr\xEDa del editor activo (5).","Color de las gu\xEDas de sangr\xEDa del editor activo (6).","Color del n\xFAmero de l\xEDnea activa en el editor","ID es obsoleto. Usar en lugar 'editorLineNumber.activeForeground'. ","Color del n\xFAmero de l\xEDnea activa en el editor","Color de la l\xEDnea final del editor cuando editor.renderFinalNewline se establece en atenuado.","Color de las reglas del editor","Color principal de lentes de c\xF3digo en el editor","Color de fondo tras corchetes coincidentes","Color de bloques con corchetes coincidentes","Color del borde de la regla de visi\xF3n general.","Color de fondo de la regla de informaci\xF3n general del editor.","Color de fondo del margen del editor. Este espacio contiene los m\xE1rgenes de glifos y los n\xFAmeros de l\xEDnea.","Color del borde de c\xF3digo fuente innecesario (sin usar) en el editor.",`Opacidad de c\xF3digo fuente innecesario (sin usar) en el editor. Por ejemplo, "#000000c0" representar\xE1 el c\xF3digo con un 75 % de opacidad. Para temas de alto contraste, utilice el color del tema 'editorUnnecessaryCode.border' para resaltar el c\xF3digo innecesario en vez de atenuarlo.`,"Color del borde del texto fantasma en el editor.","Color de primer plano del texto fantasma en el editor.","Color de fondo del texto fantasma en el editor.","Color de marcador de regla general para los destacados de rango. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de marcador de regla de informaci\xF3n general para errores. ","Color de marcador de regla de informaci\xF3n general para advertencias.","Color de marcador de regla de informaci\xF3n general para mensajes informativos. ","Color de primer plano de los corchetes (1). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de los corchetes (2). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de los corchetes (3). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de los corchetes (4). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de los corchetes (5). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de los corchetes (6). Requiere que se habilite la coloraci\xF3n del par de corchetes.","Color de primer plano de corchetes inesperados.","Color de fondo de las gu\xEDas de par de corchetes inactivos (1). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes inactivos (2). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes inactivos (3). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes inactivos (4). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes inactivos (5). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes inactivos (6). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de pares de corchetes activos (1). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes activos (2). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de pares de corchetes activos (3). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes activos (4). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes activos (5). Requiere habilitar gu\xEDas de par de corchetes.","Color de fondo de las gu\xEDas de par de corchetes activos (6). Requiere habilitar gu\xEDas de par de corchetes.","Color de borde usado para resaltar caracteres Unicode.","Color de borde usado para resaltar caracteres unicode."],"vs/editor/common/editorContextKeys":["Si el texto del editor tiene el foco (el cursor parpadea)","Si el editor o un widget del editor tiene el foco (por ejemplo, el foco est\xE1 en el widget de b\xFAsqueda)","Si un editor o una entrada de texto enriquecido tienen el foco (el cursor parpadea)","Si el editor es de solo lectura","Si el contexto es un editor de diferencias","Si el contexto es un editor de diferencias incrustado","Si el contexto es un editor de diferencias m\xFAltiples","Si todos los archivos del editor de diferencias m\xFAltiples est\xE1n contra\xEDdos","Si el editor de diferencias tiene cambios","Indica si se selecciona un bloque de c\xF3digo movido para la comparaci\xF3n","Si el visor de diferencias accesible est\xE1 visible","Indica si se alcanza el punto de interrupci\xF3n insertado en paralelo del editor de diferencias",'Si "editor.columnSelection" se ha habilitado',"Si el editor tiene texto seleccionado","Si el editor tiene varias selecciones",'Si "Tabulaci\xF3n" mover\xE1 el foco fuera del editor',"Si el mantenimiento del puntero del editor es visible","Si se centra el desplazamiento del editor","Si el desplazamiento permanente est\xE1 centrado","Si el desplazamiento permanente est\xE1 visible","Si el selector de colores independiente est\xE1 visible","Si el selector de colores independiente est\xE1 centrado","Si el editor forma parte de otro m\xE1s grande (por ejemplo, blocs de notas)","Identificador de idioma del editor","Si el editor tiene un proveedor de elementos de finalizaci\xF3n","Si el editor tiene un proveedor de acciones de c\xF3digo","Si el editor tiene un proveedor de CodeLens","Si el editor tiene un proveedor de definiciones","Si el editor tiene un proveedor de declaraciones","Si el editor tiene un proveedor de implementaci\xF3n","Si el editor tiene un proveedor de definiciones de tipo","Si el editor tiene un proveedor de contenido con mantenimiento del puntero","Si el editor tiene un proveedor de resaltado de documentos","Si el editor tiene un proveedor de s\xEDmbolos de documentos","Si el editor tiene un proveedor de referencia","Si el editor tiene un proveedor de cambio de nombre","Si el editor tiene un proveedor de ayuda de signatura","Si el editor tiene un proveedor de sugerencias insertadas","Si el editor tiene un proveedor de formatos de documento","Si el editor tiene un proveedor de formatos de selecci\xF3n de documentos","Si el editor tiene varios proveedores de formatos del documento","Si el editor tiene varios proveedores de formato de la selecci\xF3n de documentos"],"vs/editor/common/languages":["matriz","booleano","clase","constante","constructor","enumeraci\xF3n","miembro de la enumeraci\xF3n","evento","campo","archivo","funci\xF3n","interfaz","clave","m\xE9todo","m\xF3dulo","espacio de nombres","NULL","n\xFAmero","objeto","operador","paquete","propiedad","cadena","estructura","par\xE1metro de tipo","variable","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["Texto sin formato"],"vs/editor/common/model/editStack":["Escribiendo"],"vs/editor/common/standaloneStrings":["Desarrollador: inspeccionar tokens","Vaya a L\xEDnea/Columna...","Mostrar todos los proveedores de acceso r\xE1pido","Paleta de comandos","Mostrar y ejecutar comandos","Ir a s\xEDmbolo...","Ir a s\xEDmbolo por categor\xEDa...","Contenido del editor","Presione Alt+F1 para ver las opciones de accesibilidad.","Alternar tema de contraste alto","{0} ediciones realizadas en {1} archivos"],"vs/editor/common/viewLayout/viewLineRenderer":["Mostrar m\xE1s ({0})","{0} caracteres"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["Delimitador de la selecci\xF3n","Delimitador establecido en {0}:{1}","Establecer el delimitador de la selecci\xF3n","Ir al delimitador de la selecci\xF3n","Seleccionar desde el delimitador hasta el cursor","Cancelar el delimitador de la selecci\xF3n"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["Resumen color de marcador de regla para corchetes.","Ir al corchete","Seleccionar para corchete","Quitar corchetes","Ir al &&corchete","Se selecciona el texto que est\xE1 dentro, incluyendo los corchetes o las llaves"],"vs/editor/contrib/caretOperations/browser/caretOperations":["Mover el texto seleccionado a la izquierda","Mover el texto seleccionado a la derecha"],"vs/editor/contrib/caretOperations/browser/transpose":["Transponer letras"],"vs/editor/contrib/clipboard/browser/clipboard":["Cor&&tar","Cortar","Cortar","Cortar","&&Copiar","Copiar","Copiar","Copiar","&&Pegar","Pegar","Pegar","Pegar","Copiar con resaltado de sintaxis","Copiar como","Copiar como","Compartir","Compartir","Compartir"],"vs/editor/contrib/codeAction/browser/codeAction":["Se ha producido un error desconocido al aplicar la acci\xF3n de c\xF3digo"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["Tipo de la acci\xF3n de c\xF3digo que se va a ejecutar.","Controla cu\xE1ndo se aplican las acciones devueltas.","Aplicar siempre la primera acci\xF3n de c\xF3digo devuelto.","Aplicar la primera acci\xF3n de c\xF3digo devuelta si solo hay una.","No aplique las acciones de c\xF3digo devuelto.","Controla si solo se deben devolver las acciones de c\xF3digo preferidas.","Correcci\xF3n R\xE1pida","No hay acciones de c\xF3digo disponibles",'No hay acciones de c\xF3digo preferidas para "{0}" disponibles','No hay ninguna acci\xF3n de c\xF3digo para "{0}" disponible.',"No hay acciones de c\xF3digo preferidas disponibles","No hay acciones de c\xF3digo disponibles","Refactorizar...",'No hay refactorizaciones preferidas de "{0}" disponibles','No hay refactorizaciones de "{0}" disponibles',"No hay ninguna refactorizaci\xF3n favorita disponible.","No hay refactorizaciones disponibles","Acci\xF3n de c\xF3digo fuente...",'No hay acciones de origen preferidas para "{0}" disponibles','No hay ninguna acci\xF3n de c\xF3digo fuente para "{0}" disponible.',"No hay ninguna acci\xF3n de c\xF3digo fuente favorita disponible.","No hay acciones de origen disponibles","Organizar Importaciones","No hay acciones de importaci\xF3n disponibles","Corregir todo","No est\xE1 disponible la acci\xF3n de corregir todo","Corregir autom\xE1ticamente...","No hay autocorrecciones disponibles"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["Activar/desactivar la visualizaci\xF3n de los encabezados de los grupos en el men\xFA de Acci\xF3n de c\xF3digo.","Habilita o deshabilita la visualizaci\xF3n de la correcci\xF3n r\xE1pida m\xE1s cercana dentro de una l\xEDnea cuando no est\xE1 actualmente en un diagn\xF3stico."],"vs/editor/contrib/codeAction/browser/codeActionController":["Contexto: {0} en la l\xEDnea {1} y columna {2}.","Ocultar deshabilitado","Mostrar elementos deshabilitados"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["M\xE1s Acciones...","Correcci\xF3n r\xE1pida","Extraer","Insertado","Reescribir","Mover","Delimitar con","Acci\xF3n de origen"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["Ejecutar: {0}","Mostrar acciones de c\xF3digo. Correcci\xF3n r\xE1pida preferida disponible ({0})","Mostrar acciones de c\xF3digo ({0})","Mostrar acciones de c\xF3digo"],"vs/editor/contrib/codelens/browser/codelensController":["Mostrar comandos de lente de c\xF3digo para la l\xEDnea actual","Seleccionar un comando"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["Haga clic para alternar las opciones de color (rgb/hsl/hex)","Icono para cerrar el selector de colores"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&Mostrar o centrar Selector de colores independientes","Ocultar la Selector de colores","Insertar color con Selector de colores independiente","Mostrar o centrar Selector de colores independientes"],"vs/editor/contrib/comment/browser/comment":["Alternar comentario de l\xEDnea","&&Alternar comentario de l\xEDnea","Agregar comentario de l\xEDnea","Quitar comentario de l\xEDnea","Alternar comentario de bloque","Alternar &&bloque de comentario"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Minimapa","Representar caracteres","Tama\xF1o vertical","Proporcional","Relleno","Ajustar","Control deslizante","Pasar el mouse","Siempre","Mostrar men\xFA contextual del editor"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["Cursor Deshacer","Cursor Rehacer"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["Pegar como...","Id. de la edici\xF3n pegada que se intenta aplicar. Si no se proporciona, el editor mostrar\xE1 un selector.","Pegar como texto"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["Si se muestra el widget de pegado","Mostrar opciones de pegado...","No se encontraron ediciones de pegado para '{0}'","Ejecutando controladores de pegado. Haga clic para cancelar.","Seleccionar acci\xF3n pegar","Ejecutando controladores de pegado"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["Integrado","Insertar texto sin formato","Insertar URIs","Insertar URI","Insertar rutas de acceso","Insertar ruta de acceso","Insertar rutas de acceso relativas","Insertar ruta de acceso relativa","Insertar HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["Configura el proveedor de colocaci\xF3n predeterminado que se usar\xE1 para el contenido de un tipo MIME determinado."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["Si se muestra el widget de colocaci\xF3n","Mostrar opciones de colocaci\xF3n...","Ejecutando controladores de colocaci\xF3n. Haga clic para cancelar."],"vs/editor/contrib/editorState/browser/keybindingCancellation":['Indica si el editor ejecuta una operaci\xF3n que se puede cancelar como, por ejemplo, "Inspeccionar referencias"'],"vs/editor/contrib/find/browser/findController":["El archivo es demasiado grande para realizar una operaci\xF3n de reemplazar todo.","Buscar","&&Buscar","B\xFAsqueda con argumentos","Buscar con selecci\xF3n","Buscar siguiente","Buscar anterior","Ir a Coincidencia...","No hay coincidencias. Intente buscar otra cosa.","Escriba un n\xFAmero para ir a una coincidencia espec\xEDfica (entre 1 y {0})","Escriba un n\xFAmero entre 1 y {0}","Escriba un n\xFAmero entre 1 y {0}","Buscar selecci\xF3n siguiente","Buscar selecci\xF3n anterior","Reemplazar","&&Reemplazar"],"vs/editor/contrib/find/browser/findWidget":['Icono para "Buscar en selecci\xF3n" en el widget de b\xFAsqueda del editor.',"Icono para indicar que el widget de b\xFAsqueda del editor est\xE1 contra\xEDdo.","Icono para indicar que el widget de b\xFAsqueda del editor est\xE1 expandido.",'Icono para "Reemplazar" en el widget de b\xFAsqueda del editor.','Icono para "Reemplazar todo" en el widget de b\xFAsqueda del editor.','Icono para "Buscar anterior" en el widget de b\xFAsqueda del editor.','Icono para "Buscar siguiente" en el widget de b\xFAsqueda del editor.',"Buscar y reemplazar","Buscar","Buscar","Coincidencia anterior","Coincidencia siguiente","Buscar en selecci\xF3n","Cerrar","Reemplazar","Reemplazar","Reemplazar","Reemplazar todo","Alternar reemplazar","S\xF3lo los primeros {0} resultados son resaltados, pero todas las operaciones de b\xFAsqueda trabajan en todo el texto.","{0} de {1}","No hay resultados","Encontrados: {0}",'{0} encontrado para "{1}"','{0} encontrado para "{1}", en {2}','{0} encontrado para "{1}"',"Ctrl+Entrar ahora inserta un salto de l\xEDnea en lugar de reemplazar todo. Puede modificar el enlace de claves para editor.action.replaceAll para invalidar este comportamiento."],"vs/editor/contrib/folding/browser/folding":["Desplegar","Desplegar de forma recursiva","Plegar","Alternar plegado","Plegar de forma recursiva","Cerrar todos los comentarios de bloque","Plegar todas las regiones","Desplegar Todas las Regiones","Plegar todas excepto las seleccionadas","Desplegar todas excepto las seleccionadas","Plegar todo","Desplegar todo","Ir al plegado primario","Ir al rango de plegado anterior","Ir al rango de plegado siguiente","Crear rango de plegado a partir de la selecci\xF3n","Quitar rangos de plegado manuales","Nivel de plegamiento {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["Color de fondo detr\xE1s de los rangos plegados. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del control plegable en el medianil del editor.","Icono de rangos expandidos en el margen de glifo del editor.","Icono de rangos contra\xEDdos en el margen de glifo del editor.","Icono de intervalos contra\xEDdos manualmente en el margen del glifo del editor.","Icono de intervalos expandidos manualmente en el margen del glifo del editor.","Haga clic para expandir el rango.","Haga clic para contraer el intervalo."],"vs/editor/contrib/fontZoom/browser/fontZoom":["Aumentar el tama\xF1o de fuente del editor","Disminuir el tama\xF1o de fuente del editor","Restablecer tama\xF1o de fuente del editor"],"vs/editor/contrib/format/browser/formatActions":["Dar formato al documento","Dar formato a la selecci\xF3n"],"vs/editor/contrib/gotoError/browser/gotoError":["Ir al siguiente problema (Error, Advertencia, Informaci\xF3n)","Icono para ir al marcador siguiente.","Ir al problema anterior (Error, Advertencia, Informaci\xF3n)","Icono para ir al marcador anterior.","Ir al siguiente problema en Archivos (Error, Advertencia, Informaci\xF3n)","Siguiente &&problema","Ir al problema anterior en Archivos (Error, Advertencia, Informaci\xF3n)","Anterior &&problema"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["Error","Advertencia","Informaci\xF3n","Sugerencia","{0} en {1}. ","{0} de {1} problemas","{0} de {1} problema","Color de los errores del widget de navegaci\xF3n de marcadores del editor.","Fondo del encabezado del error del widget de navegaci\xF3n del marcador de editor.","Color de las advertencias del widget de navegaci\xF3n de marcadores del editor.","Fondo del encabezado de la advertencia del widget de navegaci\xF3n del marcador de editor.","Color del widget informativo marcador de navegaci\xF3n en el editor.","Fondo del encabezado de informaci\xF3n del widget de navegaci\xF3n del marcador de editor.","Fondo del widget de navegaci\xF3n de marcadores del editor."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["Ver","Definiciones",'No se encontr\xF3 ninguna definici\xF3n para "{0}"',"No se encontr\xF3 ninguna definici\xF3n","Ir a &&definici\xF3n","Declaraciones","No se encontr\xF3 ninguna definici\xF3n para '{0}'","No se encontr\xF3 ninguna declaraci\xF3n","Ir a &&declaraci\xF3n","No se encontr\xF3 ninguna definici\xF3n para '{0}'","No se encontr\xF3 ninguna declaraci\xF3n","Definiciones de tipo",'No se encontr\xF3 ninguna definici\xF3n de tipo para "{0}"',"No se encontr\xF3 ninguna definici\xF3n de tipo","Ir a la definici\xF3n de &&tipo","Implementaciones",'No se encontr\xF3 ninguna implementaci\xF3n para "{0}"',"No se encontr\xF3 ninguna implementaci\xF3n","Ir a &&implementaciones",'No se ha encontrado ninguna referencia para "{0}".',"No se encontraron referencias","Ir a &&referencias","Referencias","Referencias","Ubicaciones",'No hay resultados para "{0}"',"Referencias","Ir a definici\xF3n","Abrir definici\xF3n en el lateral","Ver la definici\xF3n sin salir","Ir a Definici\xF3n","Inspeccionar Definici\xF3n","Ir a la definici\xF3n de tipo","Inspeccionar definici\xF3n de tipo","Ir a Implementaciones","Inspeccionar implementaciones","Ir a Referencias","Inspeccionar Referencias","Ir a cualquier s\xEDmbolo"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["Haga clic para mostrar {0} definiciones."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":['Indica si est\xE1 visible la inspecci\xF3n de referencias, como "Inspecci\xF3n de referencias" o "Ver la definici\xF3n sin salir".',"Cargando...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} referencias","{0} referencia","Referencias"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["vista previa no disponible","No hay resultados","Referencias"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["en {0} en la l\xEDnea {1} en la columna {2}","{0} en {1} en la l\xEDnea {2} en la columna {3}","1 s\xEDmbolo en {0}, ruta de acceso completa {1}","{0} s\xEDmbolos en {1}, ruta de acceso completa {2}","No se encontraron resultados","Encontr\xF3 1 s\xEDmbolo en {0}","Encontr\xF3 {0} s\xEDmbolos en {1}","Encontr\xF3 {0} s\xEDmbolos en {1} archivos"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["Indica si hay ubicaciones de s\xEDmbolos a las que se pueda navegar solo con el teclado.","S\xEDmbolo {0} de {1}, {2} para el siguiente","S\xEDmbolo {0} de {1}"],"vs/editor/contrib/hover/browser/hover":["Mostrar o centrarse al mantener el puntero","El cuadro del elemento sobre el que se ha pasado el rat\xF3n se enfocar\xE1 autom\xE1ticamente.","El cuadro del elemento sobre el que se ha pasado el rat\xF3n se enfocar\xE1 solo si ya est\xE1 visible.","Se enfocar\xE1 el cuadro que aparece cuando se pasa el rat\xF3n por encima de un elemento.","Mostrar vista previa de la definici\xF3n que aparece al mover el puntero","Desplazar hacia arriba al mantener el puntero","Desplazar hacia abajo al mantener el puntero","Desplazar al mantener el puntero a la izquierda","Desplazar al mantener el puntero a la derecha","Desplazamiento de p\xE1gina hacia arriba","Desplazamiento de p\xE1gina hacia abajo","Ir al puntero superior","Ir a la parte inferior al mantener el puntero"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["Cargando...",'Representaci\xF3n en pausa durante una l\xEDnea larga por motivos de rendimiento. Esto se puede configurar mediante "editor.stopRenderingLineAfter".','Por motivos de rendimiento, la tokenizaci\xF3n se omite con filas largas. Esta opci\xF3n se puede configurar con "editor.maxTokenizationLineLength".'],"vs/editor/contrib/hover/browser/markerHoverParticipant":["Ver el problema","No hay correcciones r\xE1pidas disponibles","Buscando correcciones r\xE1pidas...","No hay correcciones r\xE1pidas disponibles","Correcci\xF3n R\xE1pida"],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["Reemplazar con el valor anterior","Reemplazar con el valor siguiente"],"vs/editor/contrib/indentation/browser/indentation":["Convertir sangr\xEDa en espacios","Convertir sangr\xEDa en tabulaciones","Tama\xF1o de tabulaci\xF3n configurado","Tama\xF1o de tabulaci\xF3n predeterminado","Tama\xF1o de tabulaci\xF3n actual","Seleccionar tama\xF1o de tabulaci\xF3n para el archivo actual","Aplicar sangr\xEDa con tabulaciones","Aplicar sangr\xEDa con espacios","Cambiar tama\xF1o de visualizaci\xF3n de tabulaci\xF3n","Detectar sangr\xEDa del contenido","Volver a aplicar sangr\xEDa a l\xEDneas","Volver a aplicar sangr\xEDa a l\xEDneas seleccionadas"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["Haga doble clic para insertar","cmd + clic","ctrl + clic","opci\xF3n + clic","alt + clic","Ir a Definici\xF3n ({0}), haga clic con el bot\xF3n derecho para obtener m\xE1s informaci\xF3n","Ir a Definici\xF3n ({0})","Ejecutar comando"],"vs/editor/contrib/inlineCompletions/browser/commands":["Mostrar sugerencia alineada siguiente","Mostrar sugerencia alineada anterior","Desencadenar sugerencia alineada","Aceptar la siguiente palabra de sugerencia insertada","Aceptar palabra","Aceptar la siguiente l\xEDnea de sugerencia insertada","Aceptar l\xEDnea","Aceptar la sugerencia insertada","Aceptar","Ocultar la sugerencia insertada","Mostrar siempre la barra de herramientas"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["Sugerencia:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["Si una sugerencia alineada est\xE1 visible","Si la sugerencia alineada comienza con un espacio en blanco","Si la sugerencia insertada comienza con un espacio en blanco menor que lo que se insertar\xEDa mediante tabulaci\xF3n","Si las sugerencias deben suprimirse para la sugerencia actual"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["Inspeccionar esto en la vista accesible ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["Icono para mostrar la sugerencia de par\xE1metro siguiente.","Icono para mostrar la sugerencia de par\xE1metro anterior.","{0} ({1})","Anterior","Siguiente"],"vs/editor/contrib/lineSelection/browser/lineSelection":["Expandir selecci\xF3n de l\xEDnea"],"vs/editor/contrib/linesOperations/browser/linesOperations":["Copiar l\xEDnea arriba","&&Copiar l\xEDnea arriba","Copiar l\xEDnea abajo","Co&&piar l\xEDnea abajo","Selecci\xF3n duplicada","&&Duplicar selecci\xF3n","Mover l\xEDnea hacia arriba","Mo&&ver l\xEDnea arriba","Mover l\xEDnea hacia abajo","Mover &&l\xEDnea abajo","Ordenar l\xEDneas en orden ascendente","Ordenar l\xEDneas en orden descendente","Eliminar l\xEDneas duplicadas","Recortar espacio final","Eliminar l\xEDnea","Sangr\xEDa de l\xEDnea","Anular sangr\xEDa de l\xEDnea","Insertar l\xEDnea arriba","Insertar l\xEDnea debajo","Eliminar todo a la izquierda","Eliminar todo lo que est\xE1 a la derecha","Unir l\xEDneas","Transponer caracteres alrededor del cursor","Transformar a may\xFAsculas","Transformar a min\xFAsculas","Transformar en Title Case","Transformar en Snake Case","Transformar a may\xFAsculas y min\xFAsculas Camel","Transformar en caso Kebab"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["Iniciar edici\xF3n vinculada","Color de fondo cuando el editor cambia el nombre autom\xE1ticamente al escribir."],"vs/editor/contrib/links/browser/links":["No se pudo abrir este v\xEDnculo porque no tiene un formato correcto: {0}","No se pudo abrir este v\xEDnculo porque falta el destino.","Ejecutar comando","Seguir v\xEDnculo","cmd + clic","ctrl + clic","opci\xF3n + clic","alt + clic","Ejecutar el comando {0}","Abrir v\xEDnculo"],"vs/editor/contrib/message/browser/messageController":["Indica si el editor muestra actualmente un mensaje insertado"],"vs/editor/contrib/multicursor/browser/multicursor":["Cursor agregado: {0}","Cursores agregados: {0}","Agregar cursor arriba","&&Agregar cursor arriba","Agregar cursor debajo","A&&gregar cursor abajo","A\xF1adir cursores a finales de l\xEDnea","Agregar c&&ursores a extremos de l\xEDnea","A\xF1adir cursores a la parte inferior","A\xF1adir cursores a la parte superior","Agregar selecci\xF3n hasta la siguiente coincidencia de b\xFAsqueda","Agregar &&siguiente repetici\xF3n","Agregar selecci\xF3n hasta la anterior coincidencia de b\xFAsqueda","Agregar r&&epetici\xF3n anterior","Mover \xFAltima selecci\xF3n hasta la siguiente coincidencia de b\xFAsqueda","Mover \xFAltima selecci\xF3n hasta la anterior coincidencia de b\xFAsqueda","Seleccionar todas las repeticiones de coincidencia de b\xFAsqueda","Seleccionar todas las &&repeticiones","Cambiar todas las ocurrencias","Enfocar el siguiente cursor","Centra el cursor siguiente","Enfocar cursor anterior","Centra el cursor anterior"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Sugerencias para par\xE1metros Trigger"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["Icono para mostrar la sugerencia de par\xE1metro siguiente.","Icono para mostrar la sugerencia de par\xE1metro anterior.","{0}, sugerencia","Color de primer plano del elemento activo en la sugerencia de par\xE1metro."],"vs/editor/contrib/peekView/browser/peekView":["Indica si el editor de c\xF3digo actual est\xE1 incrustado en la inspecci\xF3n.","Cerrar","Color de fondo del \xE1rea de t\xEDtulo de la vista de inspecci\xF3n.","Color del t\xEDtulo de la vista de inpecci\xF3n.","Color de la informaci\xF3n del t\xEDtulo de la vista de inspecci\xF3n.","Color de los bordes y la flecha de la vista de inspecci\xF3n.","Color de fondo de la lista de resultados de vista de inspecci\xF3n.","Color de primer plano de los nodos de inspecci\xF3n en la lista de resultados.","Color de primer plano de los archivos de inspecci\xF3n en la lista de resultados.","Color de fondo de la entrada seleccionada en la lista de resultados de vista de inspecci\xF3n.","Color de primer plano de la entrada seleccionada en la lista de resultados de vista de inspecci\xF3n.","Color de fondo del editor de vista de inspecci\xF3n.","Color de fondo del margen en el editor de vista de inspecci\xF3n.","Color de fondo del desplazamiento permanente en el editor de vista de inspecci\xF3n.","Buscar coincidencia con el color de resaltado de la lista de resultados de vista de inspecci\xF3n.","Buscar coincidencia del color de resultado del editor de vista de inspecci\xF3n.","Hacer coincidir el borde resaltado en el editor de vista previa."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["Abra primero un editor de texto para ir a una l\xEDnea.","Vaya a la l\xEDnea {0} y al car\xE1cter {1}.","Ir a la l\xEDnea {0}.","L\xEDnea actual: {0}, Car\xE1cter: {1}. Escriba un n\xFAmero de l\xEDnea entre 1 y {2} a los que navegar.","L\xEDnea actual: {0}, Car\xE1cter: {1}. Escriba un n\xFAmero de l\xEDnea al que navegar."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["Para ir a un s\xEDmbolo, primero abra un editor de texto con informaci\xF3n de s\xEDmbolo.","El editor de texto activo no proporciona informaci\xF3n de s\xEDmbolos.","No hay ning\xFAn s\xEDmbolo del editor coincidente.","No hay s\xEDmbolos del editor.","Abrir en el lateral","Abrir en la parte inferior","s\xEDmbolos ({0})","propiedades ({0})","m\xE9todos ({0})","funciones ({0})","constructores ({0})","variables ({0})","clases ({0})","estructuras ({0})","eventos ({0})","operadores ({0})","interfaces ({0})","espacios de nombres ({0})","paquetes ({0})","par\xE1metros de tipo ({0})","m\xF3dulos ({0})","propiedades ({0})","enumeraciones ({0})","miembros de enumeraci\xF3n ({0})","cadenas ({0})","archivos ({0})","matrices ({0})","n\xFAmeros ({0})","booleanos ({0})","objetos ({0})","claves ({0})","campos ({0})","constantes ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["No se puede editar en la entrada de solo lectura","No se puede editar en un editor de s\xF3lo lectura"],"vs/editor/contrib/rename/browser/rename":["No hay ning\xFAn resultado.","Error desconocido al resolver el cambio de nombre de la ubicaci\xF3n","Cambiando el nombre de '{0}' a '{1}'","Cambiar el nombre de {0} a {1}","Nombre cambiado correctamente de '{0}' a '{1}'. Resumen: {2}","No se pudo cambiar el nombre a las ediciones de aplicaci\xF3n","No se pudo cambiar el nombre de las ediciones de c\xE1lculo","Cambiar el nombre del s\xEDmbolo","Activar/desactivar la capacidad de previsualizar los cambios antes de cambiar el nombre","Enfocar la siguiente sugerencia de cambio de nombre","Enfocar sugerencia de cambio de nombre anterior"],"vs/editor/contrib/rename/browser/renameInputField":["Indica si el widget de cambio de nombre de entrada est\xE1 visible.","Si el widget de entrada de cambio de nombre est\xE1 enfocado","Cambie el nombre de la entrada. Escriba el nuevo nombre y presione Entrar para confirmar.","{0} para cambiar de nombre, {1} para obtener una vista previa","Se han recibido {0} sugerencias de cambio de nombre"],"vs/editor/contrib/smartSelect/browser/smartSelect":["Expandir selecci\xF3n","&&Expandir selecci\xF3n","Reducir la selecci\xF3n","&&Reducir selecci\xF3n"],"vs/editor/contrib/snippet/browser/snippetController2":["Indica si el editor actual est\xE1 en modo de fragmentos de c\xF3digo.","Indica si hay una tabulaci\xF3n siguiente cuando se est\xE1 en modo de fragmentos de c\xF3digo.","Si hay una tabulaci\xF3n anterior cuando se est\xE1 en modo de fragmentos de c\xF3digo.","Ir al marcador de posici\xF3n siguiente..."],"vs/editor/contrib/snippet/browser/snippetVariables":["Domingo","Lunes","Martes","Mi\xE9rcoles","Jueves","Viernes","S\xE1bado","Dom","Lun","Mar","Mi\xE9","Jue","Vie","S\xE1b","Enero","Febrero","Marzo","Abril","May","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre","Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["&&Alternar desplazamiento permanente del editor","Desplazamiento permanente","&&Desplazamiento permanente","&&Desplazamiento permanente de foco","Alternar desplazamiento Sticky del editor","Desplazamiento permanente de foco","Seleccionar la siguiente l\xEDnea de desplazamiento r\xE1pida","Seleccionar la l\xEDnea de desplazamiento r\xE1pida anterior","Ir a la l\xEDnea de desplazamiento r\xE1pida con foco","Seleccionar el Editor"],"vs/editor/contrib/suggest/browser/suggest":["Si alguna sugerencia tiene el foco","Indica si los detalles de las sugerencias est\xE1n visibles.","Indica si hay varias sugerencias para elegir.","Indica si la inserci\xF3n de la sugerencia actual genera un cambio o si ya se ha escrito todo.","Indica si se insertan sugerencias al presionar Entrar.","Indica si la sugerencia actual tiene el comportamiento de inserci\xF3n y reemplazo.","Indica si el comportamiento predeterminado es insertar o reemplazar.","Indica si la sugerencia actual admite la resoluci\xF3n de m\xE1s detalles."],"vs/editor/contrib/suggest/browser/suggestController":['Aceptando "{0}" ediciones adicionales de {1} realizadas',"Sugerencias para Trigger","Insertar","Insertar","Reemplazar","Reemplazar","Insertar","mostrar menos","mostrar m\xE1s","Restablecer tama\xF1o del widget de sugerencias"],"vs/editor/contrib/suggest/browser/suggestWidget":["Color de fondo del widget sugerido.","Color de borde del widget sugerido.","Color de primer plano del widget sugerido.","Color de primer plano de le entrada seleccionada del widget de sugerencias.","Color de primer plano del icono de la entrada seleccionada en el widget de sugerencias.","Color de fondo de la entrada seleccionada del widget sugerido.","Color del resaltado coincidido en el widget sugerido.","Color de los resaltados de coincidencia en el widget de sugerencias cuando se enfoca un elemento.","Color de primer plano del estado del widget sugerido.","Cargando...","No hay sugerencias.","Sugerir","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, documentos: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["Cerrar","Cargando..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["Icono para obtener m\xE1s informaci\xF3n en el widget de sugerencias.","Leer m\xE1s"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["Color de primer plano de los s\xEDmbolos de matriz. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos booleanos. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de clase. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de color. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos constantes. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de constructor. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de enumerador. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de miembro del enumerador. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de evento. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de campo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de archivo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de carpeta. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de funci\xF3n. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de interfaz. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de claves. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de palabra clave. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de m\xE9todo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de m\xF3dulo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de espacio de nombres. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos nulos. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano para los s\xEDmbolos num\xE9ricos. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de objeto. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano para los s\xEDmbolos del operador. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de paquete. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de propiedad. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de referencia. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de fragmento de c\xF3digo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de cadena. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de estructura. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de texto. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano para los s\xEDmbolos de par\xE1metro de tipo. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos de unidad. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias.","Color de primer plano de los s\xEDmbolos variables. Estos s\xEDmbolos aparecen en el contorno, la ruta de navegaci\xF3n y el widget de sugerencias."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Presionando la pesta\xF1a ahora mover\xE1 el foco al siguiente elemento enfocable.","Presionando la pesta\xF1a ahora insertar\xE1 el car\xE1cter de tabulaci\xF3n","Alternar tecla de tabulaci\xF3n para mover el punto de atenci\xF3n"],"vs/editor/contrib/tokenization/browser/tokenization":["Desarrollador: forzar nueva aplicaci\xF3n de token"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["Icono que se muestra con un mensaje de advertencia en el editor de extensiones.","Este documento contiene muchos caracteres Unicode ASCII no b\xE1sicos","Este documento contiene muchos caracteres Unicode ambiguos","Este documento contiene muchos caracteres Unicode invisibles","Configurar opciones de resaltado Unicode","El car\xE1cter {0} podr\xEDa confundirse con el car\xE1cter ASCII {1}, que es m\xE1s com\xFAn en el c\xF3digo fuente.","El car\xE1cter {0} podr\xEDa confundirse con el car\xE1cter {1}, que es m\xE1s com\xFAn en el c\xF3digo fuente.","El car\xE1cter {0} es invisible.","El car\xE1cter {0} no es un car\xE1cter ASCII b\xE1sico.","Ajustar la configuraci\xF3n","Deshabilitar resaltado en comentarios","Deshabilitar resaltado de caracteres en comentarios","Deshabilitar resaltado en cadenas","Deshabilitar resaltado de caracteres en cadenas","Deshabilitar resaltado ambiguo","Deshabilitar el resaltado de caracteres ambiguos","Deshabilitar resaltado invisible","Deshabilitar el resaltado de caracteres invisibles","Deshabilitar resaltado que no es ASCII","Deshabilitar el resaltado de caracteres ASCII no b\xE1sicos","Mostrar opciones de exclusi\xF3n","Excluir {0} (car\xE1cter invisible) de que se resalte","Excluir {0} de ser resaltado",'Permite caracteres Unicode m\xE1s comunes en el idioma "{0}".'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["Terminadores de l\xEDnea inusuales","Se han detectado terminadores de l\xEDnea inusuales",`Este archivo "{0}" contiene uno o m\xE1s caracteres de terminaci\xF3n de l\xEDnea inusuales, como el separador de l\xEDnea (LS) o el separador de p\xE1rrafo (PS).\r +\r +Se recomienda eliminarlos del archivo. Esto puede configurarse mediante "editor.unusualLineTerminators".`,"&&Quitar terminadores de l\xEDnea inusuales","Omitir"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["Color de fondo de un s\xEDmbolo durante el acceso de lectura, como la lectura de una variable. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo de un s\xEDmbolo durante el acceso de escritura, como escribir en una variable. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo de la presencia textual para un s\xEDmbolo. Para evitar ocultar cualquier decoraci\xF3n subyacente, el color no debe ser opaco.","Color de fondo de un s\xEDmbolo durante el acceso de lectura; por ejemplo, cuando se lee una variable.","Color de fondo de un s\xEDmbolo durante el acceso de escritura; por ejemplo, cuando se escribe una variable.","Color de borde de una repetici\xF3n textual de un s\xEDmbolo.","Color del marcador de regla general para destacados de s\xEDmbolos. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de marcador de regla general para destacados de s\xEDmbolos de acceso de escritura. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del marcador de regla de informaci\xF3n general de una repetici\xF3n textual de un s\xEDmbolo. El color no debe ser opaco para no ocultar las decoraciones subyacentes."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["Ir al siguiente s\xEDmbolo destacado","Ir al s\xEDmbolo destacado anterior","Desencadenar los s\xEDmbolos destacados"],"vs/editor/contrib/wordOperations/browser/wordOperations":["Eliminar palabra"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["Error en la l\xEDnea","Error","Advertencia en la l\xEDnea","Advertencia","\xC1rea doblada en la l\xEDnea","Contra\xEDda","Punto de interrupci\xF3n en la l\xEDnea","Punto de interrupci\xF3n","Sugerencia insertada en la l\xEDnea","Correcci\xF3n r\xE1pida del terminal","Correcci\xF3n r\xE1pida","Depurador detenido en el punto de interrupci\xF3n","Punto de interrupci\xF3n","No hay sugerencias de incrustaci\xF3n en la l\xEDnea","No hay sugerencias de incrustaci\xF3n","Tarea completada.","Tarea completada.","Error en la tarea","Error en la tarea","Error del comando de terminal","Error del comando","Campana de terminal","Campana de terminal","Celda del bloc de notas completada","Celda del bloc de notas completada","Error en la celda del bloc de notas","Error en la celda del bloc de notas","L\xEDnea de diferencia insertada","L\xEDnea de diferencia eliminada","L\xEDnea de diferencia modificada","Se envi\xF3 una solicitud de chat","Se envi\xF3 una solicitud de chat","Respuesta de chat recibida","Respuesta de chat pendiente","Respuesta de chat pendiente","Borrar","Borrar","Guardar","Guardar","Formato","Formato"],"vs/platform/action/common/actionCommonCategories":["Ver","Ayuda","Probar","archivo","Preferencias","Desarrollador"],"vs/platform/actionWidget/browser/actionList":["{0} para aplicar, {1} para previsualizar","{0} para aplicar","{0}, Motivo de deshabilitaci\xF3n: {1}","Widget de acci\xF3n"],"vs/platform/actionWidget/browser/actionWidget":["Color de fondo de los elementos de acci\xF3n alternados en la barra de acciones.","Si la lista de widgets de acci\xF3n es visible","Ocultar el widget de acci\xF3n","Seleccione la acci\xF3n anterior","Seleccione la siguiente acci\xF3n","Aceptar la acci\xF3n seleccionada","Vista previa de la acci\xF3n seleccionada"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["Ocultar","Men\xFA Restablecer"],"vs/platform/actions/common/menuService":['Ocultar "{0}"'],"vs/platform/configuration/common/configurationRegistry":["La configuraci\xF3n del lenguaje predeterminada se reemplaza","Configure los valores que se invalidar\xE1n para el idioma {0}.","Establecer los valores de configuraci\xF3n que se reemplazar\xE1n para un lenguaje.","Esta configuraci\xF3n no admite la configuraci\xF3n por idioma.","Establecer los valores de configuraci\xF3n que se reemplazar\xE1n para un lenguaje.","Esta configuraci\xF3n no admite la configuraci\xF3n por idioma.","No se puede registrar una propiedad vac\xEDa.",`No se puede registrar "{0}". Coincide con el patr\xF3n de propiedad '\\\\[.*\\\\]$' para describir la configuraci\xF3n del editor espec\xEDfica del lenguaje. Utilice la contribuci\xF3n "configurationDefaults".`,'No se puede registrar "{0}". Esta propiedad ya est\xE1 registrada.','No se puede registrar "{0}". La directiva asociada {1} ya est\xE1 registrada con {2}.'],"vs/platform/contextkey/browser/contextKeyService":["Comando que devuelve informaci\xF3n sobre las claves de contexto"],"vs/platform/contextkey/common/contextkey":["Expresi\xF3n de clave de contexto vac\xEDa",'\xBFHa olvidado escribir una expresi\xF3n? tambi\xE9n puede poner "false" o "true" para evaluar siempre como false o true, respectivamente.',"'in' despu\xE9s de 'not'.","par\xE9ntesis de cierre ')'","Token inesperado","\xBFHa olvidado poner && o || antes del token?","Final de expresi\xF3n inesperado","\xBFHa olvidado poner una clave de contexto?",`Esperado: {0}\r +recibido: '{1}'.`],"vs/platform/contextkey/common/contextkeys":["Si el sistema operativo es macOS","Si el sistema operativo es Linux","Si el sistema operativo es Windows","Si la plataforma es un explorador web","Si el sistema operativo es macOS en una plataforma que no es de explorador","Si el sistema operativo es IOS","Si la plataforma es un explorador web m\xF3vil","Tipo de calidad de VS Code","Si el foco del teclado est\xE1 dentro de un cuadro de entrada"],"vs/platform/contextkey/common/scanner":["\xBFQuiso decir {0}?","\xBFQuiso decir {0} o {1}?","\xBFQuiso decir {0}, {1} o {2}?","\xBFHa olvidado abrir o cerrar la cita?",`\xBFHa olvidado escapar el car\xE1cter "/" (barra diagonal)?Coloque dos barras diagonales inversas antes de que escape, por ejemplo, '\\\\/'.`],"vs/platform/history/browser/contextScopedHistoryWidget":["Indica si las sugerencias est\xE1n visibles."],"vs/platform/keybinding/common/abstractKeybindingService":["Se presion\xF3 ({0}). Esperando la siguiente tecla...","Se ha presionado ({0}). Esperando la siguiente tecla...","La combinaci\xF3n de claves ({0}, {1}) no es un comando.","La combinaci\xF3n de claves ({0}, {1}) no es un comando."],"vs/platform/list/browser/listService":["\xC1rea de trabajo",'Se asigna a "Control" en Windows y Linux y a "Comando" en macOS.','Se asigna a "Alt" en Windows y Linux y a "Opci\xF3n" en macOS.',"El modificador que se utilizar\xE1 para agregar un elemento en los \xE1rboles y listas para una selecci\xF3n m\xFAltiple con el rat\xF3n (por ejemplo en el explorador, abiertos editores y vista de scm). Los gestos de rat\xF3n 'Abrir hacia' - si est\xE1n soportados - se adaptar\xE1n de forma tal que no tenga conflicto con el modificador m\xFAltiple.","Controla c\xF3mo abrir elementos en los \xE1rboles y las listas mediante el mouse (si se admite). Tenga en cuenta que algunos \xE1rboles y listas pueden optar por ignorar esta configuraci\xF3n si no es aplicable.","Controla si las listas y los \xE1rboles admiten el desplazamiento horizontal en el \xE1rea de trabajo. Advertencia: La activaci\xF3n de esta configuraci\xF3n repercute en el rendimiento.","Controla si los clics en la barra de desplazamiento se desplazan p\xE1gina por p\xE1gina.","Controla la sangr\xEDa de \xE1rbol en p\xEDxeles.","Controla si el \xE1rbol debe representar gu\xEDas de sangr\xEDa.","Controla si las listas y los \xE1rboles tienen un desplazamiento suave.",'Se usar\xE1 un multiplicador en los eventos de desplazamiento de la rueda del mouse "deltaX" y "deltaY". ','Multiplicador de la velocidad de desplazamiento al presionar "Alt".',"Resalta elementos al buscar. Navegar m\xE1s arriba o abajo pasar\xE1 solo por los elementos resaltados.","Filtre elementos al buscar.","Controla el modo de b\xFAsqueda predeterminado para listas y \xE1rboles en el \xE1rea de trabajo.","La navegaci\xF3n simple del teclado se centra en elementos que coinciden con la entrada del teclado. El emparejamiento se hace solo en prefijos.","Destacar la navegaci\xF3n del teclado resalta los elementos que coinciden con la entrada del teclado. M\xE1s arriba y abajo la navegaci\xF3n atravesar\xE1 solo los elementos destacados.","La navegaci\xF3n mediante el teclado de filtro filtrar\xE1 y ocultar\xE1 todos los elementos que no coincidan con la entrada del teclado.","Controla el estilo de navegaci\xF3n del teclado para listas y \xE1rboles en el \xE1rea de trabajo. Puede ser simple, resaltar y filtrar.",'Use "workbench.list.defaultFindMode" y "workbench.list.typeNavigationMode" en su lugar.',"Usar coincidencias aproximadas al buscar.","Use coincidencias contiguas al buscar.","Controla el tipo de coincidencia que se usa al buscar listas y \xE1rboles en el \xE1rea de trabajo.","Controla c\xF3mo se expanden las carpetas de \xE1rbol al hacer clic en sus nombres. Tenga en cuenta que algunos \xE1rboles y listas pueden optar por omitir esta configuraci\xF3n si no es aplicable.","Controla si el desplazamiento permanente est\xE1 habilitado en los \xE1rboles.","Controla el n\xFAmero de elementos permanentes que se muestran en el \xE1rbol cuando '#workbench.tree.enableStickyScroll#' est\xE1 habilitado.",'Controla el funcionamiento de la navegaci\xF3n por tipos en listas y \xE1rboles del \xE1rea de trabajo. Cuando se establece en "trigger", la navegaci\xF3n por tipos comienza una vez que se ejecuta el comando "list.triggerTypeNavigation".'],"vs/platform/markers/common/markers":["Error","Advertencia","Informaci\xF3n"],"vs/platform/quickinput/browser/commandsQuickAccess":["usado recientemente","comandos similares","usados habitualmente","otros comandos","comandos similares","{0}, {1}",'El comando "{0}" ha dado lugar a un error'],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["Atr\xE1s",'Presione "Entrar" para confirmar su entrada o "Esc" para cancelar',"{0}/{1}","Escriba para restringir los resultados."],"vs/platform/quickinput/browser/quickInputController":["Activar o desactivar todas las casillas","{0} resultados","{0} seleccionados","Aceptar","Personalizado","Atr\xE1s ({0})","Atr\xE1s"],"vs/platform/quickinput/browser/quickInputList":["Entrada r\xE1pida"],"vs/platform/quickinput/browser/quickInputUtils":['Haga clic en para ejecutar el comando "{0}"'],"vs/platform/theme/common/colorRegistry":["Color de primer plano general. Este color solo se usa si un componente no lo invalida.","Primer plano general de los elementos deshabilitados. Este color solo se usa si un componente no lo reemplaza.","Color de primer plano general para los mensajes de erroe. Este color solo se usa si un componente no lo invalida.","Color de primer plano para el texto descriptivo que proporciona informaci\xF3n adicional, por ejemplo para una etiqueta.","El color predeterminado para los iconos en el \xE1rea de trabajo.","Color de borde de los elementos con foco. Este color solo se usa si un componente no lo invalida.","Un borde adicional alrededor de los elementos para separarlos unos de otros y as\xED mejorar el contraste.","Un borde adicional alrededor de los elementos activos para separarlos unos de otros y as\xED mejorar el contraste.","El color de fondo del texto seleccionado en el \xE1rea de trabajo (por ejemplo, campos de entrada o \xE1reas de texto). Esto no se aplica a las selecciones dentro del editor.","Color para los separadores de texto.","Color de primer plano para los v\xEDnculos en el texto.","Color de primer plano para los enlaces de texto, al hacer clic o pasar el mouse sobre ellos.","Color de primer plano para los segmentos de texto con formato previo.","Color de fondo para segmentos de texto con formato previo.","Color de fondo para los bloques en texto.","Color de borde para los bloques en texto.","Color de fondo para los bloques de c\xF3digo en el texto.","Color de sombra de los widgets dentro del editor, como buscar/reemplazar","Color de borde de los widgets dentro del editor, como buscar/reemplazar","Fondo de cuadro de entrada.","Primer plano de cuadro de entrada.","Borde de cuadro de entrada.","Color de borde de opciones activadas en campos de entrada.","Color de fondo de las opciones activadas en los campos de entrada.","Color de fondo al pasar por encima de las opciones en los campos de entrada.","Color de primer plano de las opciones activadas en los campos de entrada.","Color de primer plano para el marcador de posici\xF3n de texto","Color de fondo de validaci\xF3n de entrada para gravedad de informaci\xF3n.","Color de primer plano de validaci\xF3n de entrada para informaci\xF3n de gravedad.","Color de borde de validaci\xF3n de entrada para gravedad de informaci\xF3n.","Color de fondo de validaci\xF3n de entrada para gravedad de advertencia.","Color de primer plano de validaci\xF3n de entrada para informaci\xF3n de advertencia.","Color de borde de validaci\xF3n de entrada para gravedad de advertencia.","Color de fondo de validaci\xF3n de entrada para gravedad de error.","Color de primer plano de validaci\xF3n de entrada para informaci\xF3n de error.","Color de borde de valdaci\xF3n de entrada para gravedad de error.","Fondo de lista desplegable.","Fondo de la lista desplegable.","Primer plano de lista desplegable.","Borde de lista desplegable.","Color de primer plano del bot\xF3n.","Color del separador de botones.","Color de fondo del bot\xF3n.","Color de fondo del bot\xF3n al mantener el puntero.","Color del borde del bot\xF3n","Color de primer plano del bot\xF3n secundario.","Color de fondo del bot\xF3n secundario.","Color de fondo del bot\xF3n secundario al mantener el mouse.","Color de fondo de la insignia. Las insignias son peque\xF1as etiquetas de informaci\xF3n, por ejemplo los resultados de un n\xFAmero de resultados.","Color de primer plano de la insignia. Las insignias son peque\xF1as etiquetas de informaci\xF3n, por ejemplo los resultados de un n\xFAmero de resultados.","Sombra de la barra de desplazamiento indica que la vista se ha despazado.","Color de fondo de control deslizante de barra de desplazamiento.","Color de fondo de barra de desplazamiento cursor cuando se pasar sobre el control.","Color de fondo de la barra de desplazamiento al hacer clic.","Color de fondo para la barra de progreso que se puede mostrar para las operaciones de larga duraci\xF3n.","Color de fondo del texto de error del editor. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de primer plano de squigglies de error en el editor.","Si se establece, color de subrayados dobles para errores en el editor.","Color de fondo del texto de advertencia del editor. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de primer plano de squigglies de advertencia en el editor.","Si se establece, color de subrayados dobles para advertencias en el editor.","Color de fondo del texto de informaci\xF3n del editor. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de primer plano de los subrayados ondulados informativos en el editor.","Si se establece, color de subrayados dobles para informaciones en el editor.","Color de primer plano de pista squigglies en el editor.","Si se establece, color de subrayados dobles para sugerencias en el editor.","Color de borde de los marcos activos.","Color de fondo del editor.","Color de primer plano predeterminado del editor.","Color de fondo del desplazamiento permanente en el editor","Color de fondo del desplazamiento permanente al mantener el mouse en el editor","Color de borde del desplazamiento permanente en el editor"," Color de sombra del desplazamiento permanente en el editor","Color de fondo del editor de widgets como buscar/reemplazar","Color de primer plano de los widgets del editor, como buscar y reemplazar.","Color de borde de los widgets del editor. El color solo se usa si el widget elige tener un borde y no invalida el color.","Color del borde de la barra de cambio de tama\xF1o de los widgets del editor. El color se utiliza solo si el widget elige tener un borde de cambio de tama\xF1o y si un widget no invalida el color.","Color de fondo del selector r\xE1pido. El widget del selector r\xE1pido es el contenedor para selectores como la paleta de comandos.","Color de primer plano del selector r\xE1pido. El widget del selector r\xE1pido es el contenedor para selectores como la paleta de comandos.","Color de fondo del t\xEDtulo del selector r\xE1pido. El widget del selector r\xE1pido es el contenedor para selectores como la paleta de comandos.","Selector de color r\xE1pido para la agrupaci\xF3n de etiquetas.","Selector de color r\xE1pido para la agrupaci\xF3n de bordes.","Color de fondo de etiqueta de enlace de teclado. La etiqueta enlace de teclado se usa para representar un m\xE9todo abreviado de teclado.","Color de primer plano de etiqueta de enlace de teclado. La etiqueta enlace de teclado se usa para representar un m\xE9todo abreviado de teclado.","Color del borde de la etiqueta de enlace de teclado. La etiqueta enlace de teclado se usa para representar un m\xE9todo abreviado de teclado.","Color del borde inferior de la etiqueta de enlace de teclado. La etiqueta enlace de teclado se usa para representar un m\xE9todo abreviado de teclado.","Color de la selecci\xF3n del editor.","Color del texto seleccionado para alto contraste.","Color de la selecci\xF3n en un editor inactivo. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color en las regiones con el mismo contenido que la selecci\xF3n. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de borde de las regiones con el mismo contenido que la selecci\xF3n.","Color de la coincidencia de b\xFAsqueda actual.","Color de los otros resultados de la b\xFAsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de la gama que limita la b\xFAsqueda. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de borde de la coincidencia de b\xFAsqueda actual.","Color de borde de otra b\xFAsqueda que coincide.","Color del borde de la gama que limita la b\xFAsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de las consultas coincidentes del Editor de b\xFAsqueda.","Color de borde de las consultas coincidentes del Editor de b\xFAsqueda.","Color del texto en el mensaje de finalizaci\xF3n del viewlet de b\xFAsqueda.","Destacar debajo de la palabra para la que se muestra un mensaje al mantener el mouse. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo al mantener el puntero en el editor.","Color de primer plano al mantener el puntero en el editor.","Color del borde al mantener el puntero en el editor.","Color de fondo de la barra de estado al mantener el puntero en el editor.","Color de los v\xEDnculos activos.","Color de primer plano de las sugerencias insertadas","Color de fondo de las sugerencias insertadas","Color de primer plano de las sugerencias insertadas para los tipos de letra","Color de fondo de las sugerencias insertadas para los tipos de letra","Color de primer plano de las sugerencias insertadas para los par\xE1metros","Color de fondo de las sugerencias insertadas para los par\xE1metros","El color utilizado para el icono de bombilla de acciones.","El color utilizado para el icono de la bombilla de acciones de correcci\xF3n autom\xE1tica.","El color utilizado para el icono de bombilla de inteligencia artificial.","Color de fondo para el texto que se insert\xF3. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo para el texto que se elimin\xF3. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo de las l\xEDneas insertadas. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo de las l\xEDneas que se quitaron. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo del margen donde se insertaron las l\xEDneas.","Color de fondo del margen donde se quitaron las l\xEDneas.","Primer plano de la regla de informaci\xF3n general de diferencias para el contenido insertado.","Primer plano de la regla de informaci\xF3n general de diferencias para el contenido quitado.","Color de contorno para el texto insertado.","Color de contorno para el texto quitado.","Color del borde entre ambos editores de texto.","Color de relleno diagonal del editor de diferencias. El relleno diagonal se usa en las vistas de diferencias en paralelo.","Color de fondo de los bloques sin modificar en el editor de diferencias.","Color de primer plano de los bloques sin modificar en el editor de diferencias.","Color de fondo del c\xF3digo sin modificar en el editor de diferencias.","Color de fondo de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de primer plano de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de contorno de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, pero no cuando est\xE1n inactivos.","Color de contorno de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n activos y seleccionados. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, pero no cuando est\xE1n inactivos.","Color de fondo de la lista o el \xE1rbol del elemento seleccionado cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de primer plano de la lista o el \xE1rbol del elemento seleccionado cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de primer plano del icono de lista o \xE1rbol del elemento seleccionado cuando la lista o el \xE1rbol est\xE1n activos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de fondo de la lista o el \xE1rbol del elemento seleccionado cuando la lista o el \xE1rbol est\xE1n inactivos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de primer plano de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol esta inactiva. Una lista o un \xE1rbol tiene el foco del teclado cuando est\xE1 activo, cuando esta inactiva no.","Color de primer plano del icono de lista o \xE1rbol del elemento seleccionado cuando la lista o el \xE1rbol est\xE1n inactivos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, cuando est\xE1n inactivos no.","Color de fondo de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n inactivos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, pero no cuando est\xE1n inactivos.","Color de contorno de la lista o el \xE1rbol del elemento con el foco cuando la lista o el \xE1rbol est\xE1n inactivos. Una lista o un \xE1rbol tienen el foco del teclado cuando est\xE1n activos, pero no cuando est\xE1n inactivos.","Fondo de la lista o el \xE1rbol al mantener el mouse sobre los elementos.","Color de primer plano de la lista o el \xE1rbol al pasar por encima de los elementos con el rat\xF3n.","Fondo de lista/\xE1rbol al arrastrar y colocar cuando se mueven elementos sobre otros elementos al usar el mouse.","Color del borde de lista o \xE1rbol al arrastrar y colocar cuando se mueven elementos entre otros elementos mediante el mouse.","Color de primer plano de la lista o el \xE1rbol de las coincidencias resaltadas al buscar dentro de la lista o el \xE1bol.","Color de primer plano de la lista o \xE1rbol de los elementos coincidentes en los elementos enfocados activamente cuando se busca dentro de la lista o \xE1rbol.","Color de primer plano de una lista o \xE1rbol para los elementos inv\xE1lidos, por ejemplo una raiz sin resolver en el explorador.","Color del primer plano de elementos de lista que contienen errores.","Color del primer plano de elementos de lista que contienen advertencias.","Color de fondo del widget de filtro de tipo en listas y \xE1rboles.","Color de contorno del widget de filtro de tipo en listas y \xE1rboles.","Color de contorno del widget de filtro de tipo en listas y \xE1rboles, cuando no hay coincidencias.","Color de sombra del widget de filtrado de escritura en listas y \xE1rboles.","Color de fondo de la coincidencia filtrada.","Color de borde de la coincidencia filtrada.","Color de trazo de \xE1rbol para las gu\xEDas de sangr\xEDa.","Color de trazo de \xE1rbol para las gu\xEDas de sangr\xEDa que no est\xE1n activas.","Color de borde de la tabla entre columnas.","Color de fondo para las filas de tabla impares.","Color de primer plano de lista/\xE1rbol para los elementos no enfatizados.","Color de fondo de la casilla de verificaci\xF3n del widget.","Color de fondo del widget de la casilla cuando se selecciona el elemento en el que se encuentra.","Color de primer plano del widget de la casilla de verificaci\xF3n.","Color del borde del widget de la casilla de verificaci\xF3n.","Color de borde del widget de la casilla cuando se selecciona el elemento en el que se encuentra.","Use quickInputList.focusBackground en su lugar.","Selector r\xE1pido del color de primer plano para el elemento con el foco.","Color de primer plano del icono del selector r\xE1pido para el elemento con el foco.","Color de fondo del selector r\xE1pido para el elemento con el foco.","Color del borde de los men\xFAs.","Color de primer plano de los elementos de men\xFA.","Color de fondo de los elementos de men\xFA.","Color de primer plano del menu para el elemento del men\xFA seleccionado.","Color de fondo del menu para el elemento del men\xFA seleccionado.","Color del borde del elemento seleccionado en los men\xFAs.","Color del separador del menu para un elemento del men\xFA.","El fondo de la barra de herramientas se perfila al pasar por encima de las acciones con el mouse.","La barra de herramientas se perfila al pasar por encima de las acciones con el mouse.","Fondo de la barra de herramientas al mantener el mouse sobre las acciones","Resaltado del color de fondo para una ficha de un fragmento de c\xF3digo.","Resaltado del color del borde para una ficha de un fragmento de c\xF3digo.","Resaltado del color de fondo para la \xFAltima ficha de un fragmento de c\xF3digo.","Resaltado del color del borde para la \xFAltima tabulaci\xF3n de un fragmento de c\xF3digo.","Color de los elementos de ruta de navegaci\xF3n que reciben el foco.","Color de fondo de los elementos de ruta de navegaci\xF3n","Color de los elementos de ruta de navegaci\xF3n que reciben el foco.","Color de los elementos de ruta de navegaci\xF3n seleccionados.","Color de fondo del selector de elementos de ruta de navegaci\xF3n.","Fondo del encabezado actual en los conflictos de combinaci\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Fondo de contenido actual en los conflictos de combinaci\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Fondo de encabezado entrante en los conflictos de combinaci\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Fondo de contenido entrante en los conflictos de combinaci\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Fondo de cabecera de elemento antecesor com\xFAn en conflictos de fusi\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Fondo de contenido antecesor com\xFAn en conflictos de combinaci\xF3n en l\xEDnea. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del borde en los encabezados y el divisor en conflictos de combinaci\xF3n alineados.","Primer plano de la regla de visi\xF3n general actual para conflictos de combinaci\xF3n alineados.","Primer plano de regla de visi\xF3n general de entrada para conflictos de combinaci\xF3n alineados.","Primer plano de la regla de visi\xF3n general de ancestros comunes para conflictos de combinaci\xF3n alineados.","Color del marcador de regla general para buscar actualizaciones. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del marcador de la regla general para los destacados de la selecci\xF3n. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de marcador de minimapa para coincidencias de b\xFAsqueda.","Color de marcador de minimapa para las selecciones del editor que se repiten.","Color del marcador de minimapa para la selecci\xF3n del editor.","Color del marcador de minimapa para informaci\xF3n.","Color del marcador de minimapa para advertencias.","Color del marcador de minimapa para errores.","Color de fondo del minimapa.",'Opacidad de los elementos de primer plano representados en el minimapa. Por ejemplo, "#000000c0" representar\xE1 los elementos con 75% de opacidad.',"Color de fondo del deslizador del minimapa.","Color de fondo del deslizador del minimapa al pasar el puntero.","Color de fondo del deslizador de minimapa al hacer clic en \xE9l.","Color utilizado para el icono de error de problemas.","Color utilizado para el icono de advertencia de problemas.","Color utilizado para el icono de informaci\xF3n de problemas.","Color de primer plano que se usa en los gr\xE1ficos.","Color que se usa para las l\xEDneas horizontales en los gr\xE1ficos.","Color rojo que se usa en las visualizaciones de gr\xE1ficos.","Color azul que se usa en las visualizaciones de gr\xE1ficos.","Color amarillo que se usa en las visualizaciones de gr\xE1ficos.","Color naranja que se usa en las visualizaciones de gr\xE1ficos.","Color verde que se usa en las visualizaciones de gr\xE1ficos.","Color p\xFArpura que se usa en las visualizaciones de gr\xE1ficos."],"vs/platform/theme/common/iconRegistry":["Identificador de la fuente que se va a usar. Si no se establece, se usa la fuente definida en primer lugar.","Car\xE1cter de fuente asociado a la definici\xF3n del icono.","Icono de la acci\xF3n de cierre en los widgets.","Icono para ir a la ubicaci\xF3n del editor anterior.","Icono para ir a la ubicaci\xF3n del editor siguiente."],"vs/platform/undoRedo/common/undoRedoService":["Se han cerrado los siguientes archivos y se han modificado en el disco: {0}.","Los siguientes archivos se han modificado de forma incompatible: {0}.",'No se pudo deshacer "{0}" en todos los archivos. {1}','No se pudo deshacer "{0}" en todos los archivos. {1}','No se pudo deshacer "{0}" en todos los archivos porque se realizaron cambios en {1}','No se pudo deshacer "{0}" en todos los archivos porque ya hay una operaci\xF3n de deshacer o rehacer en ejecuci\xF3n en {1}','No se pudo deshacer "{0}" en todos los archivos porque se produjo una operaci\xF3n de deshacer o rehacer mientras tanto','\xBFDesea deshacer "{0}" en todos los archivos?',"&&Deshacer en {0} archivos","Deshacer este &&archivo",'No se pudo deshacer "{0}" porque ya hay una operaci\xF3n de deshacer o rehacer en ejecuci\xF3n.','\xBFQuiere deshacer "{0}"?',"&&S\xED","No",'No se pudo rehacer "{0}" en todos los archivos. {1}','No se pudo rehacer "{0}" en todos los archivos. {1}','No se pudo volver a hacer "{0}" en todos los archivos porque se realizaron cambios en {1}','No se pudo rehacer "{0}" en todos los archivos porque ya hay una operaci\xF3n de deshacer o rehacer en ejecuci\xF3n en {1}','No se pudo rehacer "{0}" en todos los archivos porque se produjo una operaci\xF3n de deshacer o rehacer mientras tanto','No se pudo rehacer "{0}" porque ya hay una operaci\xF3n de deshacer o rehacer en ejecuci\xF3n.'],"vs/platform/workspace/common/workspace":["\xC1rea de trabajo de c\xF3digo"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.es.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.fr.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.fr.js new file mode 100644 index 0000000..48a55f2 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.fr.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.fr",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["entr\xE9e"],"vs/base/browser/ui/findinput/findInputToggles":["Respecter la casse","Mot entier","Utiliser une expression r\xE9guli\xE8re"],"vs/base/browser/ui/findinput/replaceInput":["entr\xE9e","Pr\xE9server la casse"],"vs/base/browser/ui/hover/hoverWidget":["Inspectez ceci dans l\u2019affichage accessible avec {0}.","Inspectez ceci dans l\u2019affichage accessible via la commande Open Accessible View qui ne peut pas \xEAtre d\xE9clench\xE9e via une combinaison de touches pour l\u2019instant."],"vs/base/browser/ui/iconLabel/iconLabelHover":["Chargement..."],"vs/base/browser/ui/inputbox/inputBox":["Erreur\xA0: {0}","Avertissement\xA0: {0}","Info\xA0: {0}"," ou {0} pour l'histoire"," ({0} pour l'histoire)","Entr\xE9e effac\xE9e"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Ind\xE9pendant"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Zone de s\xE9lection"],"vs/base/browser/ui/toolbar/toolbar":["Plus d'actions..."],"vs/base/browser/ui/tree/abstractTree":["Filtrer","Correspondance approximative","Type \xE0 filtrer","Entrer le texte \xE0 rechercher","Entrer le texte \xE0 rechercher","Fermer","Aucun \xE9l\xE9ment trouv\xE9."],"vs/base/common/actions":["(vide)"],"vs/base/common/errorMessage":["{0}: {1}","Une erreur syst\xE8me s'est produite ({0})","Une erreur inconnue s\u2019est produite. Veuillez consulter le journal pour plus de d\xE9tails.","Une erreur inconnue s\u2019est produite. Veuillez consulter le journal pour plus de d\xE9tails.","{0} ({1}\xA0erreurs au total)","Une erreur inconnue s\u2019est produite. Veuillez consulter le journal pour plus de d\xE9tails."],"vs/base/common/keybindingLabels":["Ctrl","Maj","Alt","Windows","Ctrl","Maj","Alt","Super","Contr\xF4le","Maj","Option","Commande","Contr\xF4le","Maj","Alt","Windows","Contr\xF4le","Maj","Alt","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\xE9diteur","L\u2019\xE9diteur n\u2019est pas accessible pour le moment.","{0} Pour activer le mode optimis\xE9 du lecteur d\u2019\xE9cran, utilisez {1}","{0} Pour activer le mode optimis\xE9 du lecteur d\u2019\xE9cran, ouvrez la s\xE9lection rapide avec {1} et ex\xE9cutez la commande Activer/D\xE9sactiver le mode d\u2019accessibilit\xE9 du lecteur d\u2019\xE9cran, qui n\u2019est pas d\xE9clenchable via le clavier pour le moment.","{0} Attribuez une combinaison de touches \xE0 la commande Activer/D\xE9sactiver le mode d\u2019accessibilit\xE9 du lecteur d\u2019\xE9cran en acc\xE9dant \xE0 l\u2019\xE9diteur de combinaisons de touches avec {1} et ex\xE9cutez-la."],"vs/editor/browser/coreCommands":["Aligner par rapport \xE0 la fin m\xEAme en cas de passage \xE0 des lignes plus longues","Aligner par rapport \xE0 la fin m\xEAme en cas de passage \xE0 des lignes plus longues","Curseurs secondaires supprim\xE9s"],"vs/editor/browser/editorExtensions":["Ann&&uler","Annuler","&&R\xE9tablir","R\xE9tablir","&&S\xE9lectionner tout","Tout s\xE9lectionner"],"vs/editor/browser/widget/codeEditorWidget":["Le nombre de curseurs a \xE9t\xE9 limit\xE9 \xE0 {0}. Envisagez d\u2019utiliser [rechercher et remplacer](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) pour les modifications plus importantes ou augmentez la limite du nombre de curseurs multiples du param\xE8tre.","Augmenter la limite de curseurs multiples"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["Ic\xF4ne \xAB Ins\xE9rer \xBB dans la visionneuse diff accessible.","Ic\xF4ne \xAB Supprimer \xBB dans la visionneuse diff accessible.","Ic\xF4ne de \xAB Fermer \xBB dans la visionneuse diff accessible.","Fermer","Visionneuse diff accessible. Utilisez les fl\xE8ches haut et bas pour naviguer.","aucune ligne chang\xE9e","1\xA0ligne chang\xE9e","{0}\xA0lignes chang\xE9es","Diff\xE9rence\xA0{0} sur\xA0{1}\xA0: ligne d'origine {2}, {3}, ligne modifi\xE9e {4}, {5}","vide","{0} ligne inchang\xE9e {1}","{0}\xA0ligne d'origine {1}\xA0ligne modifi\xE9e {2}","+ {0}\xA0ligne modifi\xE9e {1}","- {0} ligne d'origine {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" utilisez {0} pour ouvrir l\u2019aide sur l\u2019accessibilit\xE9."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["Copier les lignes supprim\xE9es","Copier la ligne supprim\xE9e","Copier les lignes modifi\xE9es","Copier la ligne modifi\xE9e","Copier la ligne supprim\xE9e ({0})","Copier la ligne modifi\xE9e ({0})","Annuler la modification"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["Utiliser la vue inline lorsque l'espace est limit\xE9","Afficher les blocs de code d\xE9plac\xE9s","Ouvrir la visionneuse diff accessible","Activer/d\xE9sactiver r\xE9duire les r\xE9gions inchang\xE9es","Activer/d\xE9sactiver l\u2019affichage des blocs de code d\xE9plac\xE9s","Activer/d\xE9sactiver Utiliser la vue inline lorsque l'espace est limit\xE9","\xC9diteur de diff\xE9rences","Changer de c\xF4t\xE9","Quitter Comparer le d\xE9placement","R\xE9duire toutes les r\xE9gions inchang\xE9es","Afficher toutes les r\xE9gions inchang\xE9es","Visionneuse Diff accessible","Acc\xE9der \xE0 la diff\xE9rence suivante","Acc\xE9der la diff\xE9rence pr\xE9c\xE9dente"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["Replier la r\xE9gion inchang\xE9e","Cliquez ou faites glisser pour afficher plus d'\xE9l\xE9ments au-dessus","Afficher la r\xE9gion inchang\xE9e","Cliquez ou faites glisser pour afficher plus d'\xE9l\xE9ments en dessous","{0} lignes masqu\xE9es","Double-cliquer pour d\xE9plier"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["Code d\xE9plac\xE9 avec des modifications vers la ligne {0}-{1}","Code d\xE9plac\xE9 avec des modifications \xE0 partir de la ligne {0}-{1}","Code d\xE9plac\xE9 vers la ligne {0}-{1}","Code d\xE9plac\xE9 \xE0 partir de la ligne {0}-{1}"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["R\xE9tablir les modifications s\xE9lectionn\xE9es","R\xE9tablir la modification"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["Couleur de bordure du texte d\xE9plac\xE9 dans l\u2019\xE9diteur de diff.","Couleur de bordure active du texte d\xE9plac\xE9 dans l\u2019\xE9diteur de diff\xE9rences.","Couleur de l\u2019ombre autour des widgets de r\xE9gion inchang\xE9s.","\xC9l\xE9ment d\xE9coratif de ligne pour les insertions dans l'\xE9diteur de diff\xE9rences.","\xC9l\xE9ment d\xE9coratif de ligne pour les suppressions dans l'\xE9diteur de diff\xE9rences."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["Maintenez la touche {0} enfonc\xE9e pour pointer avec la souris"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["Couleur d\u2019arri\xE8re-plan de l\u2019en-t\xEAte de l\u2019\xE9diteur de diff\xE9rences","Couleur d\u2019arri\xE8re-plan de l\u2019\xE9diteur de diff\xE9rences de fichiers multiples","Couleur de bordure de l\u2019\xE9diteur de diff\xE9rences de fichiers multiples"],"vs/editor/common/config/editorConfigurationSchema":["\xC9diteur","Le nombre d\u2019espaces auxquels une tabulation est \xE9gale. Ce param\xE8tre est substitu\xE9 bas\xE9 sur le contenu du fichier lorsque {0} est activ\xE9.",'Nombre d\u2019espaces utilis\xE9s pour la mise en retrait ou `"tabSize"` pour utiliser la valeur de `#editor.tabSize#`. Ce param\xE8tre est remplac\xE9 en fonction du contenu du fichier quand `#editor.detectIndentation#` est activ\xE9.',"Espaces ins\xE9r\xE9s quand vous appuyez sur la touche Tab. Ce param\xE8tre est remplac\xE9 en fonction du contenu du fichier quand {0} est activ\xE9.","Contr\xF4le si {0} et {1} sont automatiquement d\xE9tect\xE9s lors de l\u2019ouverture d\u2019un fichier en fonction de son contenu.","Supprimer l'espace blanc de fin ins\xE9r\xE9 automatiquement.","Traitement sp\xE9cial des fichiers volumineux pour d\xE9sactiver certaines fonctionnalit\xE9s utilisant beaucoup de m\xE9moire.","D\xE9sactivez les suggestions bas\xE9es sur Word.","Sugg\xE8re uniquement des mots dans le document actif.","Sugg\xE8re des mots dans tous les documents ouverts du m\xEAme langage.","Sugg\xE8re des mots dans tous les documents ouverts.","Contr\xF4le si les compl\xE9tions doivent \xEAtre calcul\xE9es en fonction des mots du document et \xE0 partir de quels documents elles sont calcul\xE9es.","Coloration s\xE9mantique activ\xE9e pour tous les th\xE8mes de couleur.","Coloration s\xE9mantique d\xE9sactiv\xE9e pour tous les th\xE8mes de couleur.","La coloration s\xE9mantique est configur\xE9e par le param\xE8tre 'semanticHighlighting' du th\xE8me de couleur actuel.","Contr\xF4le si semanticHighlighting est affich\xE9 pour les langages qui le prennent en charge.","Maintenir les \xE9diteurs d'aper\xE7u ouverts m\xEAme si l'utilisateur double-clique sur son contenu ou appuie sur la touche \xC9chap.","Les lignes plus longues que cette valeur ne sont pas tokenis\xE9es pour des raisons de performances","Contr\xF4le si la cr\xE9ation de jetons doit se produire de mani\xE8re asynchrone sur un worker web.","Contr\xF4le si la cr\xE9ation de jetons asynchrones doit \xEAtre journalis\xE9e. Pour le d\xE9bogage uniquement.","Contr\xF4le si la segmentation du texte en unit\xE9s lexicales asynchrones doit \xEAtre v\xE9rifi\xE9e par rapport \xE0 la segmentation du texte en unit\xE9s lexicales en arri\xE8re-plan h\xE9rit\xE9e. Peut ralentir la segmentation du texte en unit\xE9s lexicales. Pour le d\xE9bogage uniquement.","D\xE9finit les symboles de type crochet qui augmentent ou diminuent le retrait.","S\xE9quence de cha\xEEnes ou de caract\xE8res de crochets ouvrants.","S\xE9quence de cha\xEEnes ou de caract\xE8res de crochets fermants.","D\xE9finit les paires de crochets qui sont coloris\xE9es par leur niveau d\u2019imbrication si la colorisation des paires de crochets est activ\xE9e.","S\xE9quence de cha\xEEnes ou de caract\xE8res de crochets ouvrants.","S\xE9quence de cha\xEEnes ou de caract\xE8res de crochets fermants.","D\xE9lai d'expiration en millisecondes avant annulation du calcul de diff. Utilisez\xA00 pour supprimer le d\xE9lai d'expiration.","Taille de fichier maximale en Mo pour laquelle calculer les diff\xE9rences. Utilisez 0 pour ne pas avoir de limite.","Contr\xF4le si l'\xE9diteur de diff\xE9rences affiche les diff\xE9rences en mode c\xF4te \xE0 c\xF4te ou inline.","Si l'\xE9diteur de diff\xE9rences est moins large que cette valeur, la vue inline est utilis\xE9e.","Si cette option est activ\xE9e et que la largeur de l'\xE9diteur est trop \xE9troite, la vue inline est utilis\xE9e.","Lorsqu\u2019il est activ\xE9, l\u2019\xE9diteur de diff\xE9rences affiche des fl\xE8ches dans sa marge de glyphe pour r\xE9tablir les modifications.","Quand il est activ\xE9, l'\xE9diteur de diff\xE9rences ignore les changements d'espace blanc de d\xE9but ou de fin.","Contr\xF4le si l'\xE9diteur de diff\xE9rences affiche les indicateurs +/- pour les changements ajout\xE9s/supprim\xE9s .","Contr\xF4le si l'\xE9diteur affiche CodeLens.","Le retour automatique \xE0 la ligne n'est jamais effectu\xE9.","Le retour automatique \xE0 la ligne s'effectue en fonction de la largeur de la fen\xEAtre d'affichage.","Le retour automatique \xE0 la ligne d\xE9pend du param\xE8tre {0}.","Utilise l\u2019algorithme de comparaison h\xE9rit\xE9.","Utilise l\u2019algorithme de comparaison avanc\xE9.","Contr\xF4le si l'\xE9diteur de diff\xE9rences affiche les r\xE9gions inchang\xE9es.","Contr\xF4le le nombre de lignes utilis\xE9es pour les r\xE9gions inchang\xE9es.","Contr\xF4le le nombre de lignes utilis\xE9es comme minimum pour les r\xE9gions inchang\xE9es.","Contr\xF4le le nombre de lignes utilis\xE9es comme contexte lors de la comparaison des r\xE9gions inchang\xE9es.","Contr\xF4le si l\u2019\xE9diteur de diff\xE9rences doit afficher les d\xE9placements de code d\xE9tect\xE9s.","Contr\xF4le si l\u2019\xE9diteur de diff\xE9rences affiche des d\xE9corations vides pour voir o\xF9 les caract\xE8res ont \xE9t\xE9 ins\xE9r\xE9s ou supprim\xE9s."],"vs/editor/common/config/editorOptions":["Utilisez les API de la plateforme pour d\xE9tecter lorsqu'un lecteur d'\xE9cran est connect\xE9.","Optimiser pour une utilisation avec un lecteur d'\xE9cran.","Supposons qu\u2019aucun lecteur d\u2019\xE9cran ne soit connect\xE9.","Contr\xF4le si l\u2019interface utilisateur doit s\u2019ex\xE9cuter dans un mode o\xF9 elle est optimis\xE9e pour les lecteurs d\u2019\xE9cran.","Contr\xF4le si un espace est ins\xE9r\xE9 pour les commentaires.","Contr\xF4le si les lignes vides doivent \xEAtre ignor\xE9es avec des actions d'activation/de d\xE9sactivation, d'ajout ou de suppression des commentaires de ligne.","Contr\xF4le si la copie sans s\xE9lection permet de copier la ligne actuelle.","Contr\xF4le si le curseur doit sauter pour rechercher les correspondances lors de la saisie.","Ne lancez jamais la cha\xEEne de recherche dans la s\xE9lection de l\u2019\xE9diteur.","Toujours amorcer la cha\xEEne de recherche \xE0 partir de la s\xE9lection de l\u2019\xE9diteur, y compris le mot \xE0 la position du curseur.","Cha\xEEne de recherche initiale uniquement dans la s\xE9lection de l\u2019\xE9diteur.","D\xE9termine si la cha\xEEne de recherche dans le Widget Recherche est initialis\xE9e avec la s\xE9lection de l\u2019\xE9diteur.","Ne jamais activer automatiquement la recherche dans la s\xE9lection (par d\xE9faut).","Toujours activer automatiquement la recherche dans la s\xE9lection.","Activez Rechercher automatiquement dans la s\xE9lection quand plusieurs lignes de contenu sont s\xE9lectionn\xE9es.","Contr\xF4le la condition d'activation automatique de la recherche dans la s\xE9lection.","D\xE9termine si le Widget Recherche devrait lire ou modifier le presse-papiers de recherche partag\xE9 sur macOS.","Contr\xF4le si le widget Recherche doit ajouter des lignes suppl\xE9mentaires en haut de l'\xE9diteur. Quand la valeur est true, vous pouvez faire d\xE9filer au-del\xE0 de la premi\xE8re ligne si le widget Recherche est visible.","Contr\xF4le si la recherche red\xE9marre automatiquement depuis le d\xE9but (ou la fin) quand il n'existe aucune autre correspondance.","Active/d\xE9sactive les ligatures de police (fonctionnalit\xE9s de police 'calt' et 'liga'). Remplacez ceci par une cha\xEEne pour contr\xF4ler de mani\xE8re pr\xE9cise la propri\xE9t\xE9 CSS 'font-feature-settings'.","Propri\xE9t\xE9 CSS 'font-feature-settings' explicite. Vous pouvez passer une valeur bool\xE9enne \xE0 la place si vous devez uniquement activer/d\xE9sactiver les ligatures.","Configure les ligatures de police ou les fonctionnalit\xE9s de police. Il peut s'agir d'une valeur bool\xE9enne permettant d'activer/de d\xE9sactiver les ligatures, ou d'une cha\xEEne correspondant \xE0 la valeur de la propri\xE9t\xE9 CSS 'font-feature-settings'.","Active/d\xE9sactive la traduction de font-weight en font-variation-settings. Remplacez ce param\xE8tre par une cha\xEEne pour un contr\xF4le affin\xE9 de la propri\xE9t\xE9 CSS 'font-variation-settings'.","Propri\xE9t\xE9 CSS 'font-variation-settings' explicite. Une valeur bool\xE9enne peut \xEAtre pass\xE9e \xE0 la place si une seule valeur doit traduire font-weight en font-variation-settings.","Configure les variations de la police. Il peut s\u2019agir d\u2019une valeur bool\xE9enne pour activer/d\xE9sactiver la traduction de font-weight en font-variation-settings ou d\u2019une cha\xEEne pour la valeur de la propri\xE9t\xE9 CSS 'font-variation-settings'.","Contr\xF4le la taille de police en pixels.",'Seuls les mots cl\xE9s "normal" et "bold", ou les nombres compris entre\xA01 et\xA01\xA0000 sont autoris\xE9s.',`Contr\xF4le l'\xE9paisseur de police. Accepte les mots cl\xE9s "normal" et "bold", ou les nombres compris entre\xA01 et\xA01\xA0000.`,"Montrer l\u2019aper\xE7u des r\xE9sultats (par d\xE9faut)","Acc\xE9der au r\xE9sultat principal et montrer un aper\xE7u","Acc\xE9der au r\xE9sultat principal et activer l\u2019acc\xE8s sans aper\xE7u pour les autres","Ce param\xE8tre est d\xE9pr\xE9ci\xE9, utilisez des param\xE8tres distincts comme 'editor.editor.gotoLocation.multipleDefinitions' ou 'editor.editor.gotoLocation.multipleImplementations' \xE0 la place.","Contr\xF4le le comportement de la commande 'Atteindre la d\xE9finition' quand plusieurs emplacements cibles existent.","Contr\xF4le le comportement de la commande 'Atteindre la d\xE9finition de type' quand plusieurs emplacements cibles existent.","Contr\xF4le le comportement de la commande 'Atteindre la d\xE9claration' quand plusieurs emplacements cibles existent.","Contr\xF4le le comportement de la commande 'Atteindre les impl\xE9mentations' quand plusieurs emplacements cibles existent.","Contr\xF4le le comportement de la commande 'Atteindre les r\xE9f\xE9rences' quand plusieurs emplacements cibles existent.","ID de commande alternatif ex\xE9cut\xE9 quand le r\xE9sultat de 'Atteindre la d\xE9finition' est l'emplacement actuel.","ID de commande alternatif ex\xE9cut\xE9 quand le r\xE9sultat de 'Atteindre la d\xE9finition de type' est l'emplacement actuel.","ID de commande alternatif ex\xE9cut\xE9 quand le r\xE9sultat de 'Atteindre la d\xE9claration' est l'emplacement actuel.","ID de commande alternatif ex\xE9cut\xE9 quand le r\xE9sultat de 'Atteindre l'impl\xE9mentation' est l'emplacement actuel.","ID de commande alternatif ex\xE9cut\xE9 quand le r\xE9sultat de 'Atteindre la r\xE9f\xE9rence' est l'emplacement actuel.","Contr\xF4le si le pointage est affich\xE9.","Contr\xF4le le d\xE9lai en millisecondes, apr\xE8s lequel le survol est affich\xE9.","Contr\xF4le si le pointage doit rester visible quand la souris est d\xE9plac\xE9e au-dessus.","Contr\xF4le le d\xE9lai en millisecondes apr\xE8s lequel le survol est masqu\xE9. N\xE9cessite que \xAB editor.hover.sticky \xBB soit activ\xE9.","Pr\xE9f\xE9rez afficher les points au-dessus de la ligne, s\u2019il y a de l\u2019espace.","Suppose que tous les caract\xE8res ont la m\xEAme largeur. Il s'agit d'un algorithme rapide qui fonctionne correctement pour les polices \xE0 espacement fixe et certains scripts (comme les caract\xE8res latins) o\xF9 les glyphes ont la m\xEAme largeur.","D\xE9l\xE8gue le calcul des points de wrapping au navigateur. Il s'agit d'un algorithme lent qui peut provoquer le gel des grands fichiers, mais qui fonctionne correctement dans tous les cas.","Contr\xF4le l\u2019algorithme qui calcule les points d\u2019habillage. Notez qu\u2019en mode d\u2019accessibilit\xE9, les options avanc\xE9es sont utilis\xE9es pour une exp\xE9rience optimale.","D\xE9sactiver le menu d\u2019action du code.","Afficher le menu d\u2019action du code lorsque le curseur se trouve sur des lignes avec du code.","Afficher le menu d\u2019action du code lorsque le curseur se trouve sur des lignes avec du code ou sur des lignes vides.","Active l\u2019ampoule d\u2019action de code dans l\u2019\xE9diteur.","Affiche les \xE9tendues actives imbriqu\xE9s pendant le d\xE9filement en haut de l\u2019\xE9diteur.","D\xE9finit le nombre maximal de lignes r\xE9manentes \xE0 afficher.","D\xE9finit le mod\xE8le \xE0 utiliser pour d\xE9terminer les lignes \xE0 coller. Si le mod\xE8le hi\xE9rarchique n\u2019existe pas, il revient au mod\xE8le de fournisseur de pliage qui revient au mod\xE8le de mise en retrait. Cette demande est respect\xE9e dans les trois cas.","Activez le d\xE9filement de Sticky Scroll avec la barre de d\xE9filement horizontale de l'\xE9diteur.","Active les indicateurs inlay dans l\u2019\xE9diteur.","Les indicateurs d\u2019inlay sont activ\xE9s.","Les indicateurs d\u2019inlay sont affich\xE9s par d\xE9faut et masqu\xE9s lors de la conservation {0}","Les indicateurs d\u2019inlay sont masqu\xE9s par d\xE9faut et s\u2019affichent lorsque vous maintenez {0}","Les indicateurs d\u2019inlay sont d\xE9sactiv\xE9s.","Contr\xF4le la taille de police des indicateurs d\u2019inlay dans l\u2019\xE9diteur. Par d\xE9faut, le {0} est utilis\xE9 lorsque la valeur configur\xE9e est inf\xE9rieure \xE0 {1} ou sup\xE9rieure \xE0 la taille de police de l\u2019\xE9diteur.","Contr\xF4le la famille de polices des indicateurs d\u2019inlay dans l\u2019\xE9diteur. Lorsqu\u2019il est d\xE9fini sur vide, le {0} est utilis\xE9.","Active le remplissage autour des indicateurs d\u2019inlay dans l\u2019\xE9diteur.",`Contr\xF4le la hauteur de ligne. \r + - Utilisez 0 pour calculer automatiquement la hauteur de ligne \xE0 partir de la taille de police.\r + : les valeurs comprises entre 0 et 8 sont utilis\xE9es comme multiplicateur avec la taille de police.\r + : les valeurs sup\xE9rieures ou \xE9gales \xE0 8 seront utilis\xE9es comme valeurs effectives.`,"Contr\xF4le si la minimap est affich\xE9e.","Contr\xF4le si la minimap est masqu\xE9e automatiquement.","Le minimap a la m\xEAme taille que le contenu de l'\xE9diteur (d\xE9filement possible).","Le minimap s'agrandit ou se r\xE9duit selon les besoins pour remplir la hauteur de l'\xE9diteur (pas de d\xE9filement).","Le minimap est r\xE9duit si n\xE9cessaire pour ne jamais d\xE9passer la taille de l'\xE9diteur (pas de d\xE9filement).","Contr\xF4le la taille du minimap.","Contr\xF4le le c\xF4t\xE9 o\xF9 afficher la minimap.","Contr\xF4le quand afficher le curseur du minimap.","\xC9chelle du contenu dessin\xE9 dans le minimap\xA0: 1, 2\xA0ou\xA03.","Afficher les caract\xE8res r\xE9els sur une ligne par opposition aux blocs de couleur.","Limiter la largeur de la minimap pour afficher au plus un certain nombre de colonnes.","Contr\xF4le la quantit\xE9 d\u2019espace entre le bord sup\xE9rieur de l\u2019\xE9diteur et la premi\xE8re ligne.","Contr\xF4le la quantit\xE9 d'espace entre le bord inf\xE9rieur de l'\xE9diteur et la derni\xE8re ligne.","Active une fen\xEAtre contextuelle qui affiche de la documentation sur les param\xE8tres et des informations sur les types \xE0 mesure que vous tapez.","D\xE9termine si le menu de suggestions de param\xE8tres se ferme ou reviens au d\xE9but lorsque la fin de la liste est atteinte.","Des suggestions rapides s\u2019affichent dans le widget de suggestion","Les suggestions rapides s\u2019affichent sous forme de texte fant\xF4me","Les suggestions rapides sont d\xE9sactiv\xE9es","Activez les suggestions rapides dans les cha\xEEnes.","Activez les suggestions rapides dans les commentaires.","Activez les suggestions rapides en dehors des cha\xEEnes et des commentaires.","Contr\xF4le si les suggestions doivent s\u2019afficher automatiquement lors de la saisie. Cela peut \xEAtre contr\xF4l\xE9 pour la saisie dans des commentaires, des cha\xEEnes et d\u2019autres codes. Vous pouvez configurer la suggestion rapide pour qu\u2019elle s\u2019affiche sous forme de texte fant\xF4me ou avec le widget de suggestion. Tenez \xE9galement compte du param\xE8tre '{0}' qui contr\xF4le si des suggestions sont d\xE9clench\xE9es par des caract\xE8res sp\xE9ciaux.","Les num\xE9ros de ligne ne sont pas affich\xE9s.","Les num\xE9ros de ligne sont affich\xE9s en nombre absolu.","Les num\xE9ros de ligne sont affich\xE9s sous la forme de distance en lignes \xE0 la position du curseur.","Les num\xE9ros de ligne sont affich\xE9s toutes les 10 lignes.","Contr\xF4le l'affichage des num\xE9ros de ligne.","Nombre de caract\xE8res monospace auxquels cette r\xE8gle d'\xE9diteur effectue le rendu.","Couleur de cette r\xE8gle d'\xE9diteur.","Rendre les r\xE8gles verticales apr\xE8s un certain nombre de caract\xE8res \xE0 espacement fixe. Utiliser plusieurs valeurs pour plusieurs r\xE8gles. Aucune r\xE8gle n'est dessin\xE9e si le tableau est vide.","La barre de d\xE9filement verticale sera visible uniquement lorsque cela est n\xE9cessaire.","La barre de d\xE9filement verticale est toujours visible.","La barre de d\xE9filement verticale est toujours masqu\xE9e.","Contr\xF4le la visibilit\xE9 de la barre de d\xE9filement verticale.","La barre de d\xE9filement horizontale sera visible uniquement lorsque cela est n\xE9cessaire.","La barre de d\xE9filement horizontale est toujours visible.","La barre de d\xE9filement horizontale est toujours masqu\xE9e.","Contr\xF4le la visibilit\xE9 de la barre de d\xE9filement horizontale.","Largeur de la barre de d\xE9filement verticale.","Hauteur de la barre de d\xE9filement horizontale.","Contr\xF4le si les clics permettent de faire d\xE9filer par page ou d\u2019acc\xE9der \xE0 la position de clic.","Lorsqu'elle est d\xE9finie, la barre de d\xE9filement horizontale n'augmentera pas la taille du contenu de l'\xE9diteur.","Contr\xF4le si tous les caract\xE8res ASCII non basiques sont mis en surbrillance. Seuls les caract\xE8res compris entre U+0020 et U+007E, tabulation, saut de ligne et retour chariot sont consid\xE9r\xE9s comme des ASCII de base.","Contr\xF4le si les caract\xE8res qui r\xE9servent de l\u2019espace ou qui n\u2019ont pas de largeur sont mis en surbrillance.","Contr\xF4le si les caract\xE8res mis en surbrillance peuvent \xEAtre d\xE9concert\xE9s avec des caract\xE8res ASCII de base, \xE0 l\u2019exception de ceux qui sont courants dans les param\xE8tres r\xE9gionaux utilisateur actuels.","Contr\xF4le si les caract\xE8res des commentaires doivent \xE9galement faire l\u2019objet d\u2019une mise en surbrillance Unicode.","Contr\xF4le si les caract\xE8res des cha\xEEnes de texte doivent \xE9galement faire l\u2019objet d\u2019une mise en surbrillance Unicode.","D\xE9finit les caract\xE8res autoris\xE9s qui ne sont pas mis en surbrillance.","Les caract\xE8res Unicode communs aux param\xE8tres r\xE9gionaux autoris\xE9s ne sont pas mis en surbrillance.","Contr\xF4le si les suggestions en ligne doivent \xEAtre affich\xE9es automatiquement dans l\u2019\xE9diteur.","Afficher la barre d\u2019outils de suggestion en ligne chaque fois qu\u2019une suggestion inline est affich\xE9e.","Afficher la barre d\u2019outils de suggestion en ligne lorsque vous pointez sur une suggestion incluse.","N\u2019affichez jamais la barre d\u2019outils de suggestion en ligne.","Contr\xF4le quand afficher la barre d\u2019outils de suggestion incluse.","Contr\xF4le la fa\xE7on dont les suggestions inline interagissent avec le widget de suggestion. Si cette option est activ\xE9e, le widget de suggestion n\u2019est pas affich\xE9 automatiquement lorsque des suggestions inline sont disponibles.","Contr\xF4le la famille de polices des suggestions inlined.","Contr\xF4le s\u2019il faut afficher les modifications incluses dans l\u2019\xE9diteur.","Afficher la barre d\u2019outils de modification incluse chaque fois qu\u2019une suggestion incluse est affich\xE9e.","Afficher la barre d\u2019outils de modification incluse lorsque vous pointez sur une suggestion incluse.","Ne jamais afficher la barre d\u2019outils de modification incluse.","Contr\xF4le quand afficher la barre d\u2019outils d\u2019\xE9dition incluse.","Contr\xF4le la famille de polices de la modification incluse.","Contr\xF4le s\u2019il faut colorer l\u2019arri\xE8re-plan des modifications incluses.","Contr\xF4le si la colorisation des paires de crochets est activ\xE9e ou non. Utilisez {0} pour remplacer les couleurs de surbrillance des crochets.","Contr\xF4le si chaque type de crochet poss\xE8de son propre pool de couleurs ind\xE9pendant.","D\xE9sactive les rep\xE8res de paire de crochets.","Active les rep\xE8res de paire de crochets uniquement pour la paire de crochets actifs.","D\xE9sactive les rep\xE8res de paire de crochets.","Contr\xF4le si les guides de la paire de crochets sont activ\xE9s ou non.","Active les rep\xE8res horizontaux en plus des rep\xE8res de paire de crochets verticaux.","Active les rep\xE8res horizontaux uniquement pour la paire de crochets actifs.","D\xE9sactive les rep\xE8res de paire de crochets horizontaux.","Contr\xF4le si les guides de la paire de crochets horizontaux sont activ\xE9s ou non.","Contr\xF4le si l\u2019\xE9diteur doit mettre en surbrillance la paire de crochets actifs.","Contr\xF4le si l\u2019\xE9diteur doit afficher les guides de mise en retrait.","Met en surbrillance le guide de retrait actif.","Met en surbrillance le rep\xE8re de retrait actif m\xEAme si les rep\xE8res de crochet sont mis en surbrillance.","Ne mettez pas en surbrillance le rep\xE8re de retrait actif.","Contr\xF4le si l\u2019\xE9diteur doit mettre en surbrillance le guide de mise en retrait actif.","Ins\xE9rez une suggestion sans remplacer le texte \xE0 droite du curseur.","Ins\xE9rez une suggestion et remplacez le texte \xE0 droite du curseur.","Contr\xF4le si les mots sont remplac\xE9s en cas d'acceptation de la saisie semi-automatique. Notez que cela d\xE9pend des extensions adh\xE9rant \xE0 cette fonctionnalit\xE9.","D\xE9termine si le filtre et le tri des suggestions doivent prendre en compte les fautes de frappes mineures.","Contr\xF4le si le tri favorise les mots qui apparaissent \xE0 proximit\xE9 du curseur.","Contr\xF4le si les s\xE9lections de suggestion m\xE9moris\xE9es sont partag\xE9es entre plusieurs espaces de travail et fen\xEAtres (n\xE9cessite '#editor.suggestSelection#').","Toujours s\xE9lectionner une suggestion lors du d\xE9clenchement automatique d\u2019IntelliSense.","Ne jamais s\xE9lectionner une suggestion lors du d\xE9clenchement automatique d\u2019IntelliSense.","S\xE9lectionnez une suggestion uniquement lors du d\xE9clenchement d\u2019IntelliSense \xE0 partir d\u2019un caract\xE8re d\xE9clencheur.","S\xE9lectionnez une suggestion uniquement lors du d\xE9clenchement d\u2019IntelliSense au cours de la frappe.","Contr\xF4le si une suggestion est s\xE9lectionn\xE9e lorsque le widget s\u2019affiche. Notez que cela s\u2019applique uniquement aux suggestions d\xE9clench\xE9es automatiquement ('#editor.quickSuggestions#' et '#editor.suggestOnTriggerCharacters#') et qu\u2019une suggestion est toujours s\xE9lectionn\xE9e lorsqu\u2019elle est appel\xE9e explicitement, par exemple via 'Ctrl+Espace'.","Contr\xF4le si un extrait de code actif emp\xEAche les suggestions rapides.","Contr\xF4le s'il faut montrer ou masquer les ic\xF4nes dans les suggestions.","Contr\xF4le la visibilit\xE9 de la barre d'\xE9tat en bas du widget de suggestion.","Contr\xF4le si la sortie de la suggestion doit \xEAtre affich\xE9e en aper\xE7u dans l\u2019\xE9diteur.","D\xE9termine si les d\xE9tails du widget de suggestion sont inclus dans l\u2019\xE9tiquette ou uniquement dans le widget de d\xE9tails.","Ce param\xE8tre est d\xE9pr\xE9ci\xE9. Le widget de suggestion peut d\xE9sormais \xEAtre redimensionn\xE9.","Ce param\xE8tre est d\xE9pr\xE9ci\xE9, veuillez utiliser des param\xE8tres distincts comme 'editor.suggest.showKeywords' ou 'editor.suggest.showSnippets' \xE0 la place.","Si activ\xE9, IntelliSense montre des suggestions de type 'method'.","Si activ\xE9, IntelliSense montre des suggestions de type 'function'.","Si activ\xE9, IntelliSense montre des suggestions de type 'constructor'.","Si cette option est activ\xE9e, IntelliSense montre des suggestions `d\xE9pr\xE9ci\xE9es`.","Quand le filtrage IntelliSense est activ\xE9, le premier caract\xE8re correspond \xE0 un d\xE9but de mot, par exemple 'c' sur 'Console' ou 'WebContext', mais _not_ sur 'description'. Si d\xE9sactiv\xE9, IntelliSense affiche plus de r\xE9sultats, mais les trie toujours par qualit\xE9 de correspondance.","Si activ\xE9, IntelliSense montre des suggestions de type 'field'.","Si activ\xE9, IntelliSense montre des suggestions de type 'variable'.","Si activ\xE9, IntelliSense montre des suggestions de type 'class'.","Si activ\xE9, IntelliSense montre des suggestions de type 'struct'.","Si activ\xE9, IntelliSense montre des suggestions de type 'interface'.","Si activ\xE9, IntelliSense montre des suggestions de type 'module'.","Si activ\xE9, IntelliSense montre des suggestions de type 'property'.","Si activ\xE9, IntelliSense montre des suggestions de type 'event'.","Si activ\xE9, IntelliSense montre des suggestions de type 'operator'.","Si activ\xE9, IntelliSense montre des suggestions de type 'unit'.","Si activ\xE9, IntelliSense montre des suggestions de type 'value'.","Si activ\xE9, IntelliSense montre des suggestions de type 'constant'.","Si activ\xE9, IntelliSense montre des suggestions de type 'enum'.","Si activ\xE9, IntelliSense montre des suggestions de type 'enumMember'.","Si activ\xE9, IntelliSense montre des suggestions de type 'keyword'.","Si activ\xE9, IntelliSense montre des suggestions de type 'text'.","Si activ\xE9, IntelliSense montre des suggestions de type 'color'.","Si activ\xE9, IntelliSense montre des suggestions de type 'file'.","Si activ\xE9, IntelliSense montre des suggestions de type 'reference'.","Si activ\xE9, IntelliSense montre des suggestions de type 'customcolor'.","Si activ\xE9, IntelliSense montre des suggestions de type 'folder'.","Si activ\xE9, IntelliSense montre des suggestions de type 'typeParameter'.","Si activ\xE9, IntelliSense montre des suggestions de type 'snippet'.","Si activ\xE9, IntelliSense montre des suggestions de type 'utilisateur'.","Si activ\xE9, IntelliSense montre des suggestions de type 'probl\xE8mes'.","Indique si les espaces blancs de d\xE9but et de fin doivent toujours \xEAtre s\xE9lectionn\xE9s.","Indique si les sous-mots (tels que \xAB foo \xBB dans \xAB fooBar \xBB ou \xAB foo_bar \xBB) doivent \xEAtre s\xE9lectionn\xE9s.","Aucune mise en retrait. Les lignes envelopp\xE9es commencent \xE0 la colonne 1.","Les lignes envelopp\xE9es obtiennent la m\xEAme mise en retrait que le parent.","Les lignes justifi\xE9es obtiennent une mise en retrait +1 vers le parent.","Les lignes justifi\xE9es obtiennent une mise en retrait +2 vers le parent. ","Contr\xF4le la mise en retrait des lignes justifi\xE9es.","Contr\xF4le si vous pouvez glisser et d\xE9poser un fichier dans un \xE9diteur de texte en maintenant la touche \xAB\xA0Maj\xA0\xBB enfonc\xE9e (au lieu d\u2019ouvrir le fichier dans un \xE9diteur).","Contr\xF4le si un widget est affich\xE9 lors de l\u2019annulation de fichiers dans l\u2019\xE9diteur. Ce widget vous permet de contr\xF4ler la fa\xE7on dont le fichier est annul\xE9.","Afficher le widget du s\xE9lecteur de d\xE9p\xF4t apr\xE8s la suppression d\u2019un fichier dans l\u2019\xE9diteur.","Ne jamais afficher le widget du s\xE9lecteur de d\xE9p\xF4t. \xC0 la place, le fournisseur de d\xE9p\xF4t par d\xE9faut est toujours utilis\xE9.","Contr\xF4le si vous pouvez coller le contenu de diff\xE9rentes mani\xE8res.","Contr\xF4le l\u2019affichage d\u2019un widget lors du collage de contenu dans l\u2019\xE9diteur. Ce widget vous permet de contr\xF4ler la mani\xE8re dont le fichier est coll\xE9.","Afficher le widget du s\xE9lecteur de collage une fois le contenu coll\xE9 dans l\u2019\xE9diteur.","Ne jamais afficher le widget de s\xE9lection de collage. Au lieu de cela, le comportement de collage par d\xE9faut est toujours utilis\xE9.","Contr\xF4le si les suggestions doivent \xEAtre accept\xE9es sur les caract\xE8res de validation. Par exemple, en JavaScript, le point-virgule (`;`) peut \xEAtre un caract\xE8re de validation qui accepte une suggestion et tape ce caract\xE8re.","Accepter uniquement une suggestion avec 'Entr\xE9e' quand elle effectue une modification textuelle.","Contr\xF4le si les suggestions sont accept\xE9es apr\xE8s appui sur 'Entr\xE9e', en plus de 'Tab'. Permet d\u2019\xE9viter toute ambigu\xEFt\xE9 entre l\u2019insertion de nouvelles lignes et l'acceptation de suggestions.","Contr\xF4le le nombre de lignes de l\u2019\xE9diteur qu\u2019un lecteur d\u2019\xE9cran peut lire en une seule fois. Quand nous d\xE9tectons un lecteur d\u2019\xE9cran, nous d\xE9finissons automatiquement la valeur par d\xE9faut \xE0 500. Attention\xA0: Les valeurs sup\xE9rieures \xE0 la valeur par d\xE9faut peuvent avoir un impact important sur les performances.","Contenu de l'\xE9diteur","Contr\xF4lez si les suggestions incluses sont annonc\xE9es par un lecteur d\u2019\xE9cran.","Utilisez les configurations de langage pour d\xE9terminer quand fermer automatiquement les parenth\xE8ses.","Fermer automatiquement les parenth\xE8ses uniquement lorsque le curseur est \xE0 gauche de l\u2019espace.","Contr\xF4le si l\u2019\xE9diteur doit fermer automatiquement les parenth\xE8ses quand l\u2019utilisateur ajoute une parenth\xE8se ouvrante.","Utilisez les configurations de langage pour d\xE9terminer quand fermer automatiquement les commentaires.","Fermez automatiquement les commentaires seulement si le curseur est \xE0 gauche de l'espace.","Contr\xF4le si l'\xE9diteur doit fermer automatiquement les commentaires quand l'utilisateur ajoute un commentaire ouvrant.","Supprimez les guillemets ou crochets fermants adjacents uniquement s'ils ont \xE9t\xE9 ins\xE9r\xE9s automatiquement.","Contr\xF4le si l'\xE9diteur doit supprimer les guillemets ou crochets fermants adjacents au moment de la suppression.","Tapez avant les guillemets ou les crochets fermants uniquement s'ils sont automatiquement ins\xE9r\xE9s.","Contr\xF4le si l'\xE9diteur doit taper avant les guillemets ou crochets fermants.","Utilisez les configurations de langage pour d\xE9terminer quand fermer automatiquement les guillemets.","Fermer automatiquement les guillemets uniquement lorsque le curseur est \xE0 gauche de l\u2019espace.","Contr\xF4le si l\u2019\xE9diteur doit fermer automatiquement les guillemets apr\xE8s que l\u2019utilisateur ajoute un guillemet ouvrant.","L'\xE9diteur n'ins\xE8re pas de retrait automatiquement.","L'\xE9diteur conserve le retrait de la ligne actuelle.","L'\xE9diteur conserve le retrait de la ligne actuelle et honore les crochets d\xE9finis par le langage.","L'\xE9diteur conserve le retrait de la ligne actuelle, honore les crochets d\xE9finis par le langage et appelle des objets onEnterRules sp\xE9ciaux d\xE9finis par les langages.","L'\xE9diteur conserve le retrait de la ligne actuelle, honore les crochets d\xE9finis par le langage, appelle des objets onEnterRules sp\xE9ciaux d\xE9finis par les langages et honore les objets indentationRules d\xE9finis par les langages.","Contr\xF4le si l'\xE9diteur doit ajuster automatiquement le retrait quand les utilisateurs tapent, collent, d\xE9placent ou mettent en retrait des lignes.","Utilisez les configurations de langage pour d\xE9terminer quand entourer automatiquement les s\xE9lections.","Entourez avec des guillemets et non des crochets.","Entourez avec des crochets et non des guillemets.","Contr\xF4le si l'\xE9diteur doit automatiquement entourer les s\xE9lections quand l'utilisateur tape des guillemets ou des crochets.","\xC9mule le comportement des tabulations pour la s\xE9lection quand des espaces sont utilis\xE9s \xE0 des fins de mise en retrait. La s\xE9lection respecte les taquets de tabulation.","Contr\xF4le si l'\xE9diteur affiche CodeLens.","Contr\xF4le la famille de polices pour CodeLens.","Contr\xF4le la taille de police en pixels pour CodeLens. Quand la valeur est 0, 90\xA0% de '#editor.fontSize#' est utilis\xE9.","Contr\xF4le si l'\xE9diteur doit afficher les \xE9l\xE9ments d\xE9coratifs de couleurs inline et le s\xE9lecteur de couleurs.","Faire appara\xEEtre le s\xE9lecteur de couleurs au clic et au pointage de l\u2019\xE9l\xE9ment d\xE9coratif de couleurs","Faire appara\xEEtre le s\xE9lecteur de couleurs en survolant l\u2019\xE9l\xE9ment d\xE9coratif de couleurs","Faire appara\xEEtre le s\xE9lecteur de couleurs en cliquant sur l\u2019\xE9l\xE9ment d\xE9coratif de couleurs","Contr\xF4le la condition pour faire appara\xEEtre un s\xE9lecteur de couleurs \xE0 partir d\u2019un \xE9l\xE9ment d\xE9coratif de couleurs","Contr\xF4le le nombre maximal d\u2019\xE9l\xE9ments d\xE9coratifs de couleur qui peuvent \xEAtre rendus simultan\xE9ment dans un \xE9diteur.","Autoriser l'utilisation de la souris et des touches pour s\xE9lectionner des colonnes.","Contr\xF4le si la coloration syntaxique doit \xEAtre copi\xE9e dans le presse-papiers.","Contr\xF4ler le style d\u2019animation du curseur.","L\u2019animation de caret fluide est d\xE9sactiv\xE9e.","L\u2019animation de caret fluide est activ\xE9e uniquement lorsque l\u2019utilisateur d\xE9place le curseur avec un mouvement explicite.","L\u2019animation de caret fluide est toujours activ\xE9e.","Contr\xF4le si l'animation du point d'insertion doit \xEAtre activ\xE9e.","Contr\xF4le le style du curseur.","Contr\xF4le le nombre minimal de lignes de d\xE9but (0 minimum) et de fin (1 minimum) visibles autour du curseur. \xC9galement appel\xE9 \xAB\xA0scrollOff\xA0\xBB ou \xAB\xA0scrollOffset\xA0\xBB dans d'autres \xE9diteurs.","'cursorSurroundingLines' est appliqu\xE9 seulement s'il est d\xE9clench\xE9 via le clavier ou une API.","'cursorSurroundingLines' est toujours appliqu\xE9.","Contr\xF4le le moment o\xF9 #cursorSurroundingLines# doit \xEAtre appliqu\xE9.","D\xE9termine la largeur du curseur lorsque `#editor.cursorStyle#` est \xE0 `line`.","Contr\xF4le si l\u2019\xE9diteur autorise le d\xE9placement de s\xE9lections par glisser-d\xE9placer.","Utilisez une nouvelle m\xE9thode de rendu avec des SVG.","Utilisez une nouvelle m\xE9thode de rendu avec des caract\xE8res de police.","Utilisez la m\xE9thode de rendu stable.","Contr\xF4le si les espaces blancs sont rendus avec une nouvelle m\xE9thode exp\xE9rimentale.","Multiplicateur de vitesse de d\xE9filement quand vous appuyez sur 'Alt'.","Contr\xF4le si l'\xE9diteur a le pliage de code activ\xE9.","Utilisez une strat\xE9gie de pliage propre au langage, si disponible, sinon utilisez la strat\xE9gie bas\xE9e sur le retrait.","Utilisez la strat\xE9gie de pliage bas\xE9e sur le retrait.","Contr\xF4le la strat\xE9gie de calcul des plages de pliage.","Contr\xF4le si l'\xE9diteur doit mettre en \xE9vidence les plages pli\xE9es.","Contr\xF4le si l\u2019\xE9diteur r\xE9duit automatiquement les plages d\u2019importation.","Nombre maximal de r\xE9gions pliables. L\u2019augmentation de cette valeur peut r\xE9duire la r\xE9activit\xE9 de l\u2019\xE9diteur lorsque la source actuelle comprend un grand nombre de r\xE9gions pliables.","Contr\xF4le si le fait de cliquer sur le contenu vide apr\xE8s une ligne pli\xE9e d\xE9plie la ligne.","Contr\xF4le la famille de polices.","D\xE9termine si l\u2019\xE9diteur doit automatiquement mettre en forme le contenu coll\xE9. Un formateur doit \xEAtre disponible et \xEAtre capable de mettre en forme une plage dans un document.","Contr\xF4le si l\u2019\xE9diteur doit mettre automatiquement en forme la ligne apr\xE8s la saisie.","Contr\xF4le si l'\xE9diteur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au d\xE9bogage.","Contr\xF4le si le curseur doit \xEAtre masqu\xE9 dans la r\xE8gle de la vue d\u2019ensemble.","Contr\xF4le l'espacement des lettres en pixels.","Contr\xF4le si la modification li\xE9e est activ\xE9e dans l\u2019\xE9diteur. En fonction du langage, les symboles associ\xE9s, par exemple les balises HTML, sont mis \xE0 jour durant le processus de modification.","Contr\xF4le si l\u2019\xE9diteur doit d\xE9tecter les liens et les rendre cliquables.","Mettez en surbrillance les crochets correspondants.","Un multiplicateur \xE0 utiliser sur les `deltaX` et `deltaY` des \xE9v\xE9nements de d\xE9filement de roulette de souris.","Faites un zoom sur la police de l\u2019\xE9diteur quand l\u2019utilisateur fait tourner la roulette de la souris tout en maintenant la touche \xAB\xA0Cmd\xA0\xBB enfonc\xE9e.","Faire un zoom sur la police de l'\xE9diteur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche 'Ctrl' enfonc\xE9e.","Fusionnez plusieurs curseurs quand ils se chevauchent.","Mappe vers 'Contr\xF4le' dans Windows et Linux, et vers 'Commande' dans macOS.","Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.","Modificateur \xE0 utiliser pour ajouter plusieurs curseurs avec la souris. Les mouvements de la souris Atteindre la d\xE9finition et Ouvrir le lien s\u2019adaptent afin qu\u2019ils ne soient pas en conflit avec le [modificateur multicurseur](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modificateur).","Chaque curseur colle une seule ligne de texte.","Chaque curseur colle le texte en entier.","Contr\xF4le le collage quand le nombre de lignes du texte coll\xE9 correspond au nombre de curseurs.","Contr\xF4le le nombre maximal de curseurs pouvant se trouver dans un \xE9diteur actif \xE0 la fois.","Ne met pas en surbrillance les occurrences.","Met en surbrillance les occurrences uniquement dans le fichier actif.","Exp\xE9rimental : met en \xE9vidence les occurrences dans tous les fichiers ouverts valides.","Contr\xF4le si les occurrences doivent \xEAtre mises en \xE9vidence dans les fichiers ouverts.","Contr\xF4le si une bordure doit \xEAtre dessin\xE9e autour de la r\xE8gle de la vue d'ensemble.","Focus sur l'arborescence \xE0 l'ouverture de l'aper\xE7u","Placer le focus sur l'\xE9diteur \xE0 l'ouverture de l'aper\xE7u","Contr\xF4le s'il faut mettre le focus sur l'\xE9diteur inline ou sur l'arborescence dans le widget d'aper\xE7u.","Contr\xF4le si le geste de souris Acc\xE9der \xE0 la d\xE9finition ouvre toujours le widget d'aper\xE7u.","Contr\xF4le le d\xE9lai en millisecondes apr\xE8s lequel des suggestions rapides sont affich\xE9es.","Contr\xF4le si l'\xE9diteur renomme automatiquement selon le type.","D\xE9pr\xE9ci\xE9. Utilisez 'editor.linkedEditing' \xE0 la place.","Contr\xF4le si l\u2019\xE9diteur doit afficher les caract\xE8res de contr\xF4le.","Affichez le dernier num\xE9ro de ligne quand le fichier se termine par un saut de ligne.","Met en surbrillance la goutti\xE8re et la ligne actuelle.","Contr\xF4le la fa\xE7on dont l\u2019\xE9diteur doit afficher la mise en surbrillance de la ligne actuelle.","Contr\xF4le si l'\xE9diteur doit afficher la mise en surbrillance de la ligne actuelle uniquement quand il a le focus.","Affiche les espaces blancs \xE0 l'exception des espaces uniques entre les mots.","Afficher les espaces blancs uniquement sur le texte s\xE9lectionn\xE9.","Affiche uniquement les caract\xE8res correspondant aux espaces blancs de fin.","Contr\xF4le la fa\xE7on dont l\u2019\xE9diteur doit restituer les caract\xE8res espaces.","Contr\xF4le si les s\xE9lections doivent avoir des angles arrondis.","Contr\xF4le le nombre de caract\xE8res suppl\xE9mentaires, au-del\xE0 duquel l\u2019\xE9diteur d\xE9file horizontalement.","Contr\xF4le si l\u2019\xE9diteur d\xE9file au-del\xE0 de la derni\xE8re ligne.","Faites d\xE9filer uniquement le long de l'axe pr\xE9dominant quand le d\xE9filement est \xE0 la fois vertical et horizontal. Emp\xEAche la d\xE9rive horizontale en cas de d\xE9filement vertical sur un pav\xE9 tactile.","Contr\xF4le si le presse-papiers principal Linux doit \xEAtre pris en charge.","Contr\xF4le si l'\xE9diteur doit mettre en surbrillance les correspondances similaires \xE0 la s\xE9lection.","Affichez toujours les contr\xF4les de pliage.","N\u2019affichez jamais les contr\xF4les de pliage et r\xE9duisez la taille de la marge.","Affichez uniquement les contr\xF4les de pliage quand la souris est au-dessus de la reliure.","Contr\xF4le quand afficher les contr\xF4les de pliage sur la reliure.","Contr\xF4le la disparition du code inutile.","Contr\xF4le les variables d\xE9pr\xE9ci\xE9es barr\xE9es.","Afficher des suggestions d\u2019extraits au-dessus d\u2019autres suggestions.","Afficher des suggestions d\u2019extraits en-dessous d\u2019autres suggestions.","Afficher des suggestions d\u2019extraits avec d\u2019autres suggestions.","Ne pas afficher de suggestions d\u2019extrait de code.","Contr\xF4le si les extraits de code s'affichent en m\xEAme temps que d'autres suggestions, ainsi que leur mode de tri.","Contr\xF4le si l'\xE9diteur d\xE9file en utilisant une animation.","Contr\xF4le si l'indicateur d'accessibilit\xE9 doit \xEAtre fourni aux utilisateurs du lecteur d'\xE9cran lorsqu'une compl\xE9tion inline est affich\xE9e.","Taille de police pour le widget suggest. Lorsqu\u2019elle est d\xE9finie sur {0}, la valeur de {1} est utilis\xE9e.","Hauteur de ligne pour le widget suggest. Lorsqu\u2019elle est d\xE9finie sur {0}, la valeur de {1} est utilis\xE9e. La valeur minimale est 8.","Contr\xF4le si les suggestions devraient automatiquement s\u2019afficher lorsque vous tapez les caract\xE8res de d\xE9clencheur.","S\xE9lectionnez toujours la premi\xE8re suggestion.","S\xE9lectionnez les suggestions r\xE9centes sauf si une entr\xE9e ult\xE9rieure en a s\xE9lectionn\xE9 une, par ex., 'console.| -> console.log', car 'log' a \xE9t\xE9 effectu\xE9 r\xE9cemment.","S\xE9lectionnez des suggestions en fonction des pr\xE9fixes pr\xE9c\xE9dents qui ont compl\xE9t\xE9 ces suggestions, par ex., 'co -> console' et 'con -> const'.","Contr\xF4le comment les suggestions sont pr\xE9-s\xE9lectionn\xE9s lors de l\u2019affichage de la liste de suggestion.","La compl\xE9tion par tabulation ins\xE9rera la meilleure suggestion lorsque vous appuyez sur tab.","D\xE9sactiver les compl\xE9tions par tabulation.","Compl\xE9ter les extraits de code par tabulation lorsque leur pr\xE9fixe correspond. Fonctionne mieux quand les 'quickSuggestions' ne sont pas activ\xE9es.","Active les compl\xE9tions par tabulation","Les marques de fin de ligne inhabituelles sont automatiquement supprim\xE9es.","Les marques de fin de ligne inhabituelles sont ignor\xE9es.","Les marques de fin de ligne inhabituelles demandent \xE0 \xEAtre supprim\xE9es.","Supprimez les marques de fin de ligne inhabituelles susceptibles de causer des probl\xE8mes.","L'insertion et la suppression des espaces blancs suit les taquets de tabulation.","Utilisez la r\xE8gle de saut de ligne par d\xE9faut.","Les sauts de mots ne doivent pas \xEAtre utilis\xE9s pour le texte chinois/japonais/cor\xE9en (CJC). Le comportement du texte non CJC est identique \xE0 celui du texte normal.","Contr\xF4le les r\xE8gles de s\xE9parateur de mots utilis\xE9es pour le texte chinois/japonais/cor\xE9en (CJC).","Caract\xE8res utilis\xE9s comme s\xE9parateurs de mots durant la navigation ou les op\xE9rations bas\xE9es sur les mots","Le retour automatique \xE0 la ligne n'est jamais effectu\xE9.","Le retour automatique \xE0 la ligne s'effectue en fonction de la largeur de la fen\xEAtre d'affichage.","Les lignes seront termin\xE9es \xE0 `#editor.wordWrapColumn#`.","Les lignes seront termin\xE9es au minimum du viewport et `#editor.wordWrapColumn#`.","Contr\xF4le comment les lignes doivent \xEAtre limit\xE9es.","Contr\xF4le la colonne de terminaison de l\u2019\xE9diteur lorsque `#editor.wordWrap#` est \xE0 `wordWrapColumn` ou `bounded`.","Contr\xF4le si les d\xE9corations de couleur inline doivent \xEAtre affich\xE9es \xE0 l\u2019aide du fournisseur de couleurs de document par d\xE9faut","Contr\xF4le si l\u2019\xE9diteur re\xE7oit des onglets ou les reporte au banc d\u2019essai pour la navigation."],"vs/editor/common/core/editorColorRegistry":["Couleur d'arri\xE8re-plan de la mise en surbrillance de la ligne \xE0 la position du curseur.","Couleur d'arri\xE8re-plan de la bordure autour de la ligne \xE0 la position du curseur.","Couleur d'arri\xE8re-plan des plages mises en surbrillance, comme par les fonctionnalit\xE9s de recherche et Quick Open. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan de la bordure autour des plages mises en surbrillance.","Couleur d'arri\xE8re-plan du symbole mis en surbrillance, comme le symbole Atteindre la d\xE9finition ou Suivant/Pr\xE9c\xE9dent. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les d\xE9corations sous-jacentes.","Couleur d'arri\xE8re-plan de la bordure autour des symboles mis en surbrillance.","Couleur du curseur de l'\xE9diteur.","La couleur de fond du curseur de l'\xE9diteur. Permet de personnaliser la couleur d'un caract\xE8re survol\xE9 par un curseur de bloc.","Couleur des espaces blancs dans l'\xE9diteur.","Couleur des num\xE9ros de ligne de l'\xE9diteur.","Couleur des rep\xE8res de retrait de l'\xE9diteur.","'editorIndentGuide.background' est d\xE9conseill\xE9. Utilisez 'editorIndentGuide.background1' \xE0 la place.","Couleur des guides d'indentation de l'\xE9diteur actif","'editorIndentGuide.activeBackground' est d\xE9conseill\xE9. Utilisez 'editorIndentGuide.activeBackground1' \xE0 la place.","Couleur des rep\xE8res de retrait de l'\xE9diteur (1).","Couleur des rep\xE8res de retrait de l'\xE9diteur (2).","Couleur des rep\xE8res de retrait de l'\xE9diteur (3).","Couleur des rep\xE8res de retrait de l'\xE9diteur (4).","Couleur des rep\xE8res de retrait de l'\xE9diteur (5).","Couleur des rep\xE8res de retrait de l'\xE9diteur (6).","Couleur des repaires de retrait de l'\xE9diteur actifs (1).","Couleur des repaires de retrait de l'\xE9diteur actifs (2).","Couleur des repaires de retrait de l'\xE9diteur actifs (3).","Couleur des repaires de retrait de l'\xE9diteur actifs (4).","Couleur des repaires de retrait de l'\xE9diteur actifs (5).","Couleur des repaires de retrait de l'\xE9diteur actifs (6).","Couleur des num\xE9ros de lignes actives de l'\xE9diteur","L\u2019ID est d\xE9pr\xE9ci\xE9. Utilisez \xE0 la place 'editorLineNumber.activeForeground'.","Couleur des num\xE9ros de lignes actives de l'\xE9diteur","Couleur de la ligne finale de l\u2019\xE9diteur lorsque editor.renderFinalNewline est d\xE9fini sur gris\xE9.","Couleur des r\xE8gles de l'\xE9diteur","Couleur pour les indicateurs CodeLens","Couleur d'arri\xE8re-plan pour les accolades associ\xE9es","Couleur pour le contour des accolades associ\xE9es","Couleur de la bordure de la r\xE8gle d'aper\xE7u.","Couleur d\u2019arri\xE8re-plan de la r\xE8gle de vue d\u2019ensemble de l\u2019\xE9diteur.","Couleur de fond pour la bordure de l'\xE9diteur. La bordure contient les marges pour les symboles et les num\xE9ros de ligne.","Couleur de bordure du code source inutile (non utilis\xE9) dans l'\xE9diteur.","Opacit\xE9 du code source inutile (non utilis\xE9) dans l'\xE9diteur. Par exemple, '#000000c0' affiche le code avec une opacit\xE9 de 75\xA0%. Pour les th\xE8mes \xE0 fort contraste, utilisez la couleur de th\xE8me 'editorUnnecessaryCode.border' pour souligner le code inutile au lieu d'utiliser la transparence.","Couleur de bordure du texte fant\xF4me dans l\u2019\xE9diteur.","Couleur de premier plan du texte fant\xF4me dans l\u2019\xE9diteur.","Couleur de l\u2019arri\xE8re-plan du texte fant\xF4me dans l\u2019\xE9diteur","Couleur de marqueur de la r\xE8gle d'aper\xE7u pour la mise en surbrillance des plages. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur du marqueur de la r\xE8gle d'aper\xE7u pour les erreurs.","Couleur du marqueur de la r\xE8gle d'aper\xE7u pour les avertissements.","Couleur du marqueur de la r\xE8gle d'aper\xE7u pour les informations.","Couleur de premier plan des crochets (1). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des crochets (2). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des crochets (3). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des crochets (4). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des crochets (5). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des crochets (6). N\xE9cessite l\u2019activation de la coloration de la paire de crochets.","Couleur de premier plan des parenth\xE8ses inattendues","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (1). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (2). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (3). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (4). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (5). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets inactifs (6). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (1). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (2). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (3). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (4). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (5). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur d\u2019arri\xE8re-plan des rep\xE8res de paire de crochets actifs (6). N\xE9cessite l\u2019activation des rep\xE8res de paire de crochets.","Couleur de bordure utilis\xE9e pour mettre en surbrillance les caract\xE8res Unicode","Couleur de fond utilis\xE9e pour mettre en \xE9vidence les caract\xE8res unicode"],"vs/editor/common/editorContextKeys":["Indique si le texte de l'\xE9diteur a le focus (le curseur clignote)","Indique si l'\xE9diteur ou un widget de l'\xE9diteur a le focus (par exemple, le focus se trouve sur le widget de recherche)","Indique si un \xE9diteur ou une entr\xE9e de texte mis en forme a le focus (le curseur clignote)","Indique si l\u2019\xE9diteur est en lecture seule","Indique si le contexte est celui d'un \xE9diteur de diff\xE9rences","Indique si le contexte est celui d\u2019un \xE9diteur de diff\xE9rences int\xE9gr\xE9","Indique si le contexte est celui d'un \xE9diteur de diff\xE9rences multiples","Indique si tous les fichiers de l\u2019\xE9diteur de diff\xE9rences sont r\xE9duits","Indique si l\u2019\xE9diteur de diff\xE9rences a des modifications","Indique si un bloc de code d\xE9plac\xE9 est s\xE9lectionn\xE9 pour \xEAtre compar\xE9","Indique si la visionneuse diff accessible est visible","Indique si le point d'arr\xEAt Render Side by Side ou inline de l'\xE9diteur de diff\xE9rences est atteint","Indique si 'editor.columnSelection' est activ\xE9","Indique si du texte est s\xE9lectionn\xE9 dans l'\xE9diteur","Indique si l'\xE9diteur a plusieurs s\xE9lections","Indique si la touche Tab permet de d\xE9placer le focus hors de l'\xE9diteur","Indique si le pointage de l'\xE9diteur est visible","Indique si le pointage de l\u2019\xE9diteur est cibl\xE9","Indique si le d\xE9filement du pense-b\xEAte a le focus","Indique si le d\xE9filement du pense-b\xEAte est visible","Indique si le s\xE9lecteur de couleurs autonome est visible","Indique si le s\xE9lecteur de couleurs autonome est prioritaire","Indique si l'\xE9diteur fait partie d'un \xE9diteur plus important (par exemple Notebooks)","Identificateur de langage de l'\xE9diteur","Indique si l'\xE9diteur a un fournisseur d'\xE9l\xE9ments de compl\xE9tion","Indique si l'\xE9diteur a un fournisseur d'actions de code","Indique si l'\xE9diteur a un fournisseur d'informations CodeLens","Indique si l'\xE9diteur a un fournisseur de d\xE9finitions","Indique si l'\xE9diteur a un fournisseur de d\xE9clarations","Indique si l'\xE9diteur a un fournisseur d'impl\xE9mentation","Indique si l'\xE9diteur a un fournisseur de d\xE9finitions de type","Indique si l'\xE9diteur a un fournisseur de pointage","Indique si l'\xE9diteur a un fournisseur de mise en surbrillance pour les documents","Indique si l'\xE9diteur a un fournisseur de symboles pour les documents","Indique si l'\xE9diteur a un fournisseur de r\xE9f\xE9rence","Indique si l'\xE9diteur a un fournisseur de renommage","Indique si l'\xE9diteur a un fournisseur d'aide sur les signatures","Indique si l'\xE9diteur a un fournisseur d'indicateurs inline","Indique si l'\xE9diteur a un fournisseur de mise en forme pour les documents","Indique si l'\xE9diteur a un fournisseur de mise en forme de s\xE9lection pour les documents","Indique si l'\xE9diteur a plusieurs fournisseurs de mise en forme pour les documents","Indique si l'\xE9diteur a plusieurs fournisseurs de mise en forme de s\xE9lection pour les documents"],"vs/editor/common/languages":["tableau","bool\xE9en","classe","constante","constructeur","\xE9num\xE9ration","membre d'\xE9num\xE9ration","\xE9v\xE9nement","champ","fichier","fonction","interface","cl\xE9","m\xE9thode","module","espace de noms","NULL","nombre","objet","op\xE9rateur","package","propri\xE9t\xE9","cha\xEEne","struct","param\xE8tre de type","variable","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["Texte brut"],"vs/editor/common/model/editStack":["Frappe en cours"],"vs/editor/common/standaloneStrings":["D\xE9veloppeur\xA0: Inspecter les jetons","Acc\xE9der \xE0 la ligne/colonne...","Afficher tous les fournisseurs d'acc\xE8s rapide","Palette de commandes","Commandes d'affichage et d'ex\xE9cution","Acc\xE9der au symbole...","Acc\xE9der au symbole par cat\xE9gorie...","Contenu de l'\xE9diteur","Appuyez sur Alt+F1 pour voir les options d'accessibilit\xE9.","Activer/d\xE9sactiver le th\xE8me \xE0 contraste \xE9lev\xE9","{0} modifications dans {1} fichiers"],"vs/editor/common/viewLayout/viewLineRenderer":["Afficher plus\xA0({0})","{0}\xA0caract\xE8res"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["Ancre de s\xE9lection","Ancre d\xE9finie sur {0}:{1}","D\xE9finir l'ancre de s\xE9lection","Atteindre l'ancre de s\xE9lection","S\xE9lectionner de l'ancre au curseur","Annuler l'ancre de s\xE9lection"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["Couleur du marqueur de la r\xE8gle d'aper\xE7u pour rechercher des parenth\xE8ses.","Atteindre le crochet","S\xE9lectionner jusqu'au crochet","Supprimer les crochets","Acc\xE9der au &&crochet","S\xE9lectionner le texte \xE0 l\u2019int\xE9rieur et inclure les crochets ou accolades"],"vs/editor/contrib/caretOperations/browser/caretOperations":["D\xE9placer le texte s\xE9lectionn\xE9 \xE0 gauche","D\xE9placer le texte s\xE9lectionn\xE9 \xE0 droite"],"vs/editor/contrib/caretOperations/browser/transpose":["Transposer les lettres"],"vs/editor/contrib/clipboard/browser/clipboard":["Co&&uper","Couper","Couper","Couper","&&Copier","Copier","Copier","Copier","Co&&ller","Coller","Coller","Coller","Copier avec la coloration syntaxique","Copier en tant que","Copier en tant que","Partager","Partager","Partager"],"vs/editor/contrib/codeAction/browser/codeAction":["Une erreur inconnue s'est produite \xE0 l'application de l'action du code"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["Type d'action de code \xE0 ex\xE9cuter.","Contr\xF4le quand les actions retourn\xE9es sont appliqu\xE9es.","Appliquez toujours la premi\xE8re action de code retourn\xE9e.","Appliquez la premi\xE8re action de code retourn\xE9e si elle est la seule.","N'appliquez pas les actions de code retourn\xE9es.","Contr\xF4le si seules les actions de code par d\xE9faut doivent \xEAtre retourn\xE9es.","Correction rapide...","Aucune action de code disponible","Aucune action de code pr\xE9f\xE9r\xE9e n'est disponible pour '{0}'","Aucune action de code disponible pour '{0}'","Aucune action de code par d\xE9faut disponible","Aucune action de code disponible","Remanier...","Aucune refactorisation par d\xE9faut disponible pour '{0}'","Aucune refactorisation disponible pour '{0}'","Aucune refactorisation par d\xE9faut disponible","Aucune refactorisation disponible","Action de la source","Aucune action source par d\xE9faut disponible pour '{0}'","Aucune action source disponible pour '{0}'","Aucune action source par d\xE9faut disponible","Aucune action n'est disponible","Organiser les importations","Aucune action organiser les imports disponible","Tout corriger","Aucune action Tout corriger disponible","Corriger automatiquement...","Aucun correctif automatique disponible"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["Activez/d\xE9sactivez l\u2019affichage des en-t\xEAtes de groupe dans le menu d\u2019action du code.","Activer/d\xE9sactiver l'affichage du correctif rapide le plus proche dans une ligne lorsque vous n'\xEAtes pas actuellement en cours de diagnostic."],"vs/editor/contrib/codeAction/browser/codeActionController":["Contexte\xA0: {0} \xE0 la ligne {1} et \xE0 la colonne {2}.","Masquer d\xE9sactiv\xE9","Afficher les \xE9l\xE9ments d\xE9sactiv\xE9s"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["Plus d\u2019actions...","Correctif rapide","Extraire","Inline","R\xE9\xE9crire","D\xE9placer","Entourer de","Action source"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["Ex\xE9cuter\xA0: {0}","Afficher les actions de code. Correctif rapide disponible par d\xE9faut ({0})","Afficher les actions de code ({0})","Afficher les actions de code"],"vs/editor/contrib/codelens/browser/codelensController":["Afficher les commandes Code Lens de la ligne actuelle","S\xE9lectionner une commande"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["Cliquez pour activer/d\xE9sactiver les options de couleur (rgb/hsl/hexad\xE9cimal).","Ic\xF4ne pour fermer le s\xE9lecteur de couleurs"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&Afficher ou mettre le focus sur le s\xE9lecteur de couleurs autonome","Masquer le s\xE9lecteur de couleurs","Ins\xE9rer une couleur avec un s\xE9lecteur de couleurs autonome","Afficher ou mettre le focus sur le s\xE9lecteur de couleurs autonome"],"vs/editor/contrib/comment/browser/comment":["Activer/d\xE9sactiver le commentaire de ligne","Afficher/masquer le commen&&taire de ligne","Ajouter le commentaire de ligne","Supprimer le commentaire de ligne","Activer/d\xE9sactiver le commentaire de bloc","Afficher/masquer le commentaire de &&bloc"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Minimap","Afficher les caract\xE8res","Taille verticale","Proportionnel","Remplissage","Ajuster","Curseur","Pointer la souris","Toujours","Afficher le menu contextuel de l'\xE9diteur"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["Annulation du curseur","Restauration du curseur"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["Coller en tant que...","ID de la modification de collage \xE0 appliquer. S\u2019il n\u2019est pas fourni, l\u2019\xE9diteur affiche un s\xE9lecteur.","Coller au format texte"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["Si le widget de collage est affich\xE9","Afficher les options de collage...","Nous n\u2019avons trouv\xE9 aucune modification de collage n\u2019a \xE9t\xE9 trouv\xE9e pour \xAB\xA0{0}\xA0\xBB","Ex\xE9cution des gestionnaires de collage. Cliquez pour annuler","S\xE9lectionner l\u2019action Coller","Ex\xE9cution des gestionnaires de collage"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["Int\xE9gr\xE9","Ins\xE9rer du texte brut","Ins\xE9rer des URI","Ins\xE9rer un URI","Ins\xE9rer des chemins d\u2019acc\xE8s","Ins\xE9rer un chemin d\u2019acc\xE8s","Ins\xE9rer des chemins d\u2019acc\xE8s relatifs","Ins\xE9rer un chemin d\u2019acc\xE8s relatif","Ins\xE9rer du code HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["Configure le fournisseur de d\xE9p\xF4t par d\xE9faut \xE0 utiliser pour le contenu d\u2019un type MIME donn\xE9."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["Indique si le widget de suppression s\u2019affiche","Afficher les options de suppression...","Ex\xE9cution des gestionnaires de d\xE9p\xF4t. Cliquez pour annuler"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["Indique si l'\xE9diteur ex\xE9cute une op\xE9ration annulable, par exemple 'Avoir un aper\xE7u des r\xE9f\xE9rences'"],"vs/editor/contrib/find/browser/findController":["Le fichier est trop volumineux pour effectuer une op\xE9ration Tout remplacer.","Rechercher","&&Rechercher","Trouver avec des arguments","Rechercher dans la s\xE9lection","Rechercher suivant","Rechercher pr\xE9c\xE9dent","Acc\xE9der \xE0 la correspondance...","Aucune correspondance. Essayez de rechercher autre chose.","Tapez un nombre pour acc\xE9der \xE0 une correspondance sp\xE9cifique (entre 1 et {0})","Veuillez entrer un nombre compris entre 1 et {0}","Veuillez entrer un nombre compris entre 1 et {0}","S\xE9lection suivante","S\xE9lection pr\xE9c\xE9dente","Remplacer","&&Remplacer"],"vs/editor/contrib/find/browser/findWidget":["Ic\xF4ne de l'option Rechercher dans la s\xE9lection dans le widget de recherche de l'\xE9diteur.","Ic\xF4ne permettant d'indiquer que le widget de recherche de l'\xE9diteur est r\xE9duit.","Ic\xF4ne permettant d'indiquer que le widget de recherche de l'\xE9diteur est d\xE9velopp\xE9.","Ic\xF4ne de l'option Remplacer dans le widget de recherche de l'\xE9diteur.","Ic\xF4ne de l'option Tout remplacer dans le widget de recherche de l'\xE9diteur.","Ic\xF4ne de l'option Rechercher pr\xE9c\xE9dent dans le widget de recherche de l'\xE9diteur.","Ic\xF4ne de l'option Rechercher suivant dans le widget de recherche de l'\xE9diteur.","Rechercher/remplacer","Rechercher","Rechercher","Correspondance pr\xE9c\xE9dente","Correspondance suivante","Rechercher dans la s\xE9lection","Fermer","Remplacer","Remplacer","Remplacer","Tout remplacer","Activer/d\xE9sactiver le remplacement","Seuls les {0} premiers r\xE9sultats sont mis en \xE9vidence, mais toutes les op\xE9rations de recherche fonctionnent sur l\u2019ensemble du texte.","{0} sur {1}","Aucun r\xE9sultat","{0} trouv\xE9(s)","{0} trouv\xE9 pour '{1}'","{0} trouv\xE9 pour '{1}', sur {2}","{0} trouv\xE9 pour '{1}'","La combinaison Ctrl+Entr\xE9e permet d\xE9sormais d'ajouter un saut de ligne au lieu de tout remplacer. Vous pouvez modifier le raccourci clavier de editor.action.replaceAll pour red\xE9finir le comportement."],"vs/editor/contrib/folding/browser/folding":["D\xE9plier","D\xE9plier de mani\xE8re r\xE9cursive","Plier","Activer/d\xE9sactiver le pliage","Plier de mani\xE8re r\xE9cursive","Replier tous les commentaires de bloc","Replier toutes les r\xE9gions","D\xE9plier toutes les r\xE9gions","Plier tout, sauf les \xE9l\xE9ments s\xE9lectionn\xE9s","D\xE9plier tout, sauf les \xE9l\xE9ments s\xE9lectionn\xE9s","Plier tout","D\xE9plier tout","Atteindre le pli parent","Acc\xE9der \xE0 la plage de pliage pr\xE9c\xE9dente","Acc\xE9der \xE0 la plage de pliage suivante","Cr\xE9er une plage de pliage \xE0 partir de la s\xE9lection","Supprimer les plages de pliage manuelles","Niveau de pliage {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["Couleur d'arri\xE8re-plan des gammes pli\xE9es. La couleur ne doit pas \xEAtre opaque pour ne pas cacher les d\xE9corations sous-jacentes.","Couleur du contr\xF4le de pliage dans la marge de l'\xE9diteur.","Ic\xF4ne des plages d\xE9velopp\xE9es dans la marge de glyphes de l'\xE9diteur.","Ic\xF4ne des plages r\xE9duites dans la marge de glyphes de l'\xE9diteur.","Ic\xF4ne pour les plages r\xE9duites manuellement dans la marge de glyphe de l\u2019\xE9diteur.","Ic\xF4ne pour les plages d\xE9velopp\xE9es manuellement dans la marge de glyphe de l\u2019\xE9diteur.","Cliquez pour d\xE9velopper la plage.","Cliquez pour r\xE9duire la plage."],"vs/editor/contrib/fontZoom/browser/fontZoom":["Augmenter la taille de police de l\u2019\xE9diteur","Diminuer la taille de police de l\u2019\xE9diteur","R\xE9initialiser la taille de police de l\u2019\xE9diteur"],"vs/editor/contrib/format/browser/formatActions":["Mettre le document en forme","Mettre la s\xE9lection en forme"],"vs/editor/contrib/gotoError/browser/gotoError":["Aller au probl\xE8me suivant (Erreur, Avertissement, Info)","Ic\xF4ne du prochain marqueur goto.","Aller au probl\xE8me pr\xE9c\xE9dent (Erreur, Avertissement, Info)","Ic\xF4ne du pr\xE9c\xE9dent marqueur goto.","Aller au probl\xE8me suivant dans Fichiers (Erreur, Avertissement, Info)","&&Probl\xE8me suivant","Aller au probl\xE8me pr\xE9c\xE9dent dans Fichiers (Erreur, Avertissement, Info)","&&Probl\xE8me pr\xE9c\xE9dent"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["Erreur","Avertissement","Info","Conseil","{0} \xE0 {1}. ","{0}\xA0probl\xE8mes sur\xA0{1}","{0}\xA0probl\xE8me(s) sur {1}","Couleur d'erreur du widget de navigation dans les marqueurs de l'\xE9diteur.","Arri\xE8re-plan du titre d\u2019erreur du widget de navigation dans les marqueurs de l\u2019\xE9diteur.","Couleur d'avertissement du widget de navigation dans les marqueurs de l'\xE9diteur.","Arri\xE8re-plan du titre d\u2019erreur du widget de navigation dans les marqueurs de l\u2019\xE9diteur.","Couleur d\u2019information du widget de navigation du marqueur de l'\xE9diteur.","Arri\xE8re-plan du titre des informations du widget de navigation dans les marqueurs de l\u2019\xE9diteur.","Arri\xE8re-plan du widget de navigation dans les marqueurs de l'\xE9diteur."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["Aper\xE7u","D\xE9finitions","D\xE9finition introuvable pour '{0}'","D\xE9finition introuvable","Atteindre la &&d\xE9finition","D\xE9clarations","Aucune d\xE9claration pour '{0}'","Aucune d\xE9claration","Atteindre la &&d\xE9claration","Aucune d\xE9claration pour '{0}'","Aucune d\xE9claration","D\xE9finitions de type","D\xE9finition de type introuvable pour '{0}'","D\xE9finition de type introuvable","Acc\xE9der \xE0 la d\xE9finition de &&type","Impl\xE9mentations","Impl\xE9mentation introuvable pour '{0}'","Impl\xE9mentation introuvable","Atteindre les &&impl\xE9mentations","Aucune r\xE9f\xE9rence pour '{0}'","Aucune r\xE9f\xE9rence","Atteindre les &&r\xE9f\xE9rences","R\xE9f\xE9rences","R\xE9f\xE9rences","Emplacements","Aucun r\xE9sultat pour \xAB\xA0{0}\xA0\xBB","R\xE9f\xE9rences","Atteindre la d\xE9finition","Ouvrir la d\xE9finition sur le c\xF4t\xE9","Aper\xE7u de la d\xE9finition","Acc\xE9der \xE0 la d\xE9claration","Aper\xE7u de la d\xE9claration","Atteindre la d\xE9finition du type","Aper\xE7u de la d\xE9finition du type","Atteindre les impl\xE9mentations","Aper\xE7u des impl\xE9mentations","Atteindre les r\xE9f\xE9rences","Aper\xE7u des r\xE9f\xE9rences","Atteindre un symbole"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["Cliquez pour afficher {0}\xA0d\xE9finitions."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["Indique si l'aper\xE7u des r\xE9f\xE9rences est visible, par exemple via 'Avoir un aper\xE7u des r\xE9f\xE9rences' ou 'Faire un peek de la d\xE9finition'","Chargement en cours...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} r\xE9f\xE9rences","{0} r\xE9f\xE9rence","R\xE9f\xE9rences"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["aper\xE7u non disponible","Aucun r\xE9sultat","R\xE9f\xE9rences"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["dans {0} \xE0 la ligne {1} \xE0 la colonne {2}","{0}dans {1} \xE0 la ligne {2} \xE0 la colonne {3}","1 symbole dans {0}, chemin complet {1}","{0} symboles dans {1}, chemin complet {2}","R\xE9sultats introuvables","1\xA0symbole dans {0}","{0}\xA0symboles dans {1}","{0}\xA0symboles dans {1} fichiers"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["Indique s'il existe des emplacements de symboles que vous pouvez parcourir \xE0 l'aide du clavier uniquement.","Symbole {0} sur {1}, {2} pour le suivant","Symbole {0} sur {1}"],"vs/editor/contrib/hover/browser/hover":["Afficher ou focus sur pointer","Le pointage ne prend pas automatiquement le focus.","Le pointage prend le focus uniquement s\u2019il est d\xE9j\xE0 visible.","Le pointage prend automatiquement le focus lorsqu\u2019il appara\xEEt.","Afficher le pointeur de l'aper\xE7u de d\xE9finition","Faire d\xE9filer le pointage vers le haut","Faire d\xE9filer le pointage vers le bas","Faire d\xE9filer vers la gauche au pointage","Faire d\xE9filer le pointage vers la droite","Pointer vers le haut de la page","Pointer vers le bas de la page","Atteindre le pointage sup\xE9rieur","Pointer vers le bas"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["Chargement en cours...","Rendu suspendu pour une longue ligne pour des raisons de performances. Cela peut \xEAtre configur\xE9 via 'editor.stopRenderingLineAfter'.","La tokenisation des lignes longues est ignor\xE9e pour des raisons de performances. Cela peut \xEAtre configur\xE9e via 'editor.maxTokenizationLineLength'."],"vs/editor/contrib/hover/browser/markerHoverParticipant":["Voir le probl\xE8me","Aucune solution disponible dans l'imm\xE9diat","Recherche de correctifs rapides...","Aucune solution disponible dans l'imm\xE9diat","Correction rapide..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["Remplacer par la valeur pr\xE9c\xE9dente","Remplacer par la valeur suivante"],"vs/editor/contrib/indentation/browser/indentation":["Convertir les retraits en espaces","Convertir les retraits en tabulations","Taille des tabulations configur\xE9e","Taille d\u2019onglet par d\xE9faut","Taille actuelle de l\u2019onglet","S\xE9lectionner la taille des tabulations pour le fichier actuel","Mettre en retrait avec des tabulations","Mettre en retrait avec des espaces","Modifier la taille d\u2019affichage de l\u2019onglet","D\xE9tecter la mise en retrait \xE0 partir du contenu","Remettre en retrait les lignes","R\xE9indenter les lignes s\xE9lectionn\xE9es"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["Double-cliquer pour ins\xE9rer","cmd + clic","ctrl + clic","option + clic","alt + clic","Acc\xE9dez \xE0 D\xE9finition ({0}), cliquez avec le bouton droit pour en savoir plus.","Acc\xE9der \xE0 D\xE9finition ({0})","Ex\xE9cuter la commande"],"vs/editor/contrib/inlineCompletions/browser/commands":["Afficher la suggestion en ligne suivante","Afficher la suggestion en ligne pr\xE9c\xE9dente","D\xE9clencher la suggestion en ligne","Accepter le mot suivant de la suggestion inline","Accepter le mot","Accepter la ligne suivante d\u2019une suggestion en ligne","Accepter la ligne","Accepter la suggestion inline","Accepter","Masquer la suggestion inlined","Toujours afficher la barre d\u2019outils"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["Suggestion :"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["Indique si une suggestion en ligne est visible","Indique si la suggestion en ligne commence par un espace blanc","Indique si la suggestion incluse commence par un espace blanc inf\xE9rieur \xE0 ce qui serait ins\xE9r\xE9 par l\u2019onglet.","Indique si les suggestions doivent \xEAtre supprim\xE9es pour la suggestion actuelle"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["Inspecter ceci dans l\u2019affichage accessible ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["Ic\xF4ne d'affichage du prochain conseil de param\xE8tre.","Ic\xF4ne d'affichage du pr\xE9c\xE9dent conseil de param\xE8tre.","{0} ({1})","Pr\xE9c\xE9dent","Suivant"],"vs/editor/contrib/lineSelection/browser/lineSelection":["D\xE9velopper la s\xE9lection de ligne"],"vs/editor/contrib/linesOperations/browser/linesOperations":["Copier la ligne en haut","&&Copier la ligne en haut","Copier la ligne en bas","Co&&pier la ligne en bas","Dupliquer la s\xE9lection","&&Dupliquer la s\xE9lection","D\xE9placer la ligne vers le haut","D\xE9placer la ligne &&vers le haut","D\xE9placer la ligne vers le bas","D\xE9placer la &&ligne vers le bas","Trier les lignes dans l'ordre croissant","Trier les lignes dans l'ordre d\xE9croissant","Supprimer les lignes dupliqu\xE9es","D\xE9couper l'espace blanc de fin","Supprimer la ligne","Mettre en retrait la ligne","Ajouter un retrait n\xE9gatif \xE0 la ligne","Ins\xE9rer une ligne au-dessus","Ins\xE9rer une ligne sous","Supprimer tout ce qui est \xE0 gauche","Supprimer tout ce qui est \xE0 droite","Joindre les lignes","Transposer des caract\xE8res autour du curseur","Transformer en majuscule","Transformer en minuscule",'Appliquer la casse "1re lettre des mots en majuscule"',"Transformer en snake case","Transformer en casse mixte","Transformer en kebab case"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["D\xE9marrer la modification li\xE9e","Couleur d'arri\xE8re-plan quand l'\xE9diteur renomme automatiquement le type."],"vs/editor/contrib/links/browser/links":["\xC9chec de l'ouverture de ce lien, car il n'est pas bien form\xE9\xA0: {0}","\xC9chec de l'ouverture de ce lien, car sa cible est manquante.","Ex\xE9cuter la commande","suivre le lien","cmd + clic","ctrl + clic","option + clic","alt + clic","Ex\xE9cuter la commande {0}","Ouvrir le lien"],"vs/editor/contrib/message/browser/messageController":["Indique si l'\xE9diteur affiche un message inline"],"vs/editor/contrib/multicursor/browser/multicursor":["Curseur ajout\xE9\xA0: {0}","Curseurs ajout\xE9s\xA0: {0}","Ajouter un curseur au-dessus","&&Ajouter un curseur au-dessus","Ajouter un curseur en dessous","Aj&&outer un curseur en dessous","Ajouter des curseurs \xE0 la fin des lignes","Ajouter des c&&urseurs \xE0 la fin des lignes","Ajouter des curseurs en bas","Ajouter des curseurs en haut","Ajouter la s\xE9lection \xE0 la correspondance de recherche suivante","Ajouter l'occurrence suiva&&nte","Ajouter la s\xE9lection \xE0 la correspondance de recherche pr\xE9c\xE9dente","Ajouter l'occurrence p&&r\xE9c\xE9dente","D\xE9placer la derni\xE8re s\xE9lection vers la correspondance de recherche suivante","D\xE9placer la derni\xE8re s\xE9lection \xE0 la correspondance de recherche pr\xE9c\xE9dente","S\xE9lectionner toutes les occurrences des correspondances de la recherche","S\xE9lectionner toutes les &&occurrences","Modifier toutes les occurrences","Focus sur le curseur suivant","Concentre le curseur suivant","Focus sur le curseur pr\xE9c\xE9dent","Concentre le curseur pr\xE9c\xE9dent"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Indicateurs des param\xE8tres Trigger"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["Ic\xF4ne d'affichage du prochain conseil de param\xE8tre.","Ic\xF4ne d'affichage du pr\xE9c\xE9dent conseil de param\xE8tre.","{0}, conseil","Couleur de premier plan de l\u2019\xE9l\xE9ment actif dans l\u2019indicateur de param\xE8tre."],"vs/editor/contrib/peekView/browser/peekView":["Indique si l'\xE9diteur de code actuel est int\xE9gr\xE9 \xE0 l'aper\xE7u","Fermer","Couleur d'arri\xE8re-plan de la zone de titre de l'affichage d'aper\xE7u.","Couleur du titre de l'affichage d'aper\xE7u.","Couleur des informations sur le titre de l'affichage d'aper\xE7u.","Couleur des bordures et de la fl\xE8che de l'affichage d'aper\xE7u.","Couleur d'arri\xE8re-plan de la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur de premier plan des noeuds de lignes dans la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur de premier plan des noeuds de fichiers dans la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur d'arri\xE8re-plan de l'entr\xE9e s\xE9lectionn\xE9e dans la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur de premier plan de l'entr\xE9e s\xE9lectionn\xE9e dans la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur d'arri\xE8re-plan de l'\xE9diteur d'affichage d'aper\xE7u.","Couleur d'arri\xE8re-plan de la bordure de l'\xE9diteur d'affichage d'aper\xE7u.","Couleur d\u2019arri\xE8re-plan du d\xE9filement r\xE9manent dans l\u2019\xE9diteur d\u2019affichage d\u2019aper\xE7u.","Couleur de mise en surbrillance d'une correspondance dans la liste des r\xE9sultats de l'affichage d'aper\xE7u.","Couleur de mise en surbrillance d'une correspondance dans l'\xE9diteur de l'affichage d'aper\xE7u.","Bordure de mise en surbrillance d'une correspondance dans l'\xE9diteur de l'affichage d'aper\xE7u."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["Ouvrez d'abord un \xE9diteur de texte pour acc\xE9der \xE0 une ligne.","Atteindre la ligne {0} et le caract\xE8re {1}.","Acc\xE9dez \xE0 la ligne {0}.","Ligne actuelle\xA0: {0}, caract\xE8re\xA0: {1}. Tapez un num\xE9ro de ligne entre\xA01 et\xA0{2} auquel acc\xE9der.","Ligne actuelle\xA0: {0}, caract\xE8re\xA0: {1}. Tapez un num\xE9ro de ligne auquel acc\xE9der."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["Pour acc\xE9der \xE0 un symbole, ouvrez d'abord un \xE9diteur de texte avec des informations de symbole.","L'\xE9diteur de texte actif ne fournit pas les informations de symbole.","Aucun symbole d'\xE9diteur correspondant","Aucun symbole d'\xE9diteur","Ouvrir sur le c\xF4t\xE9","Ouvrir en bas","symboles ({0})","propri\xE9t\xE9s ({0})","m\xE9thodes ({0})","fonctions ({0})","constructeurs ({0})","variables ({0})","classes ({0})","structs ({0})","\xE9v\xE9nements ({0})","op\xE9rateurs ({0})","interfaces ({0})","espaces de noms ({0})","packages ({0})","param\xE8tres de type ({0})","modules ({0})","propri\xE9t\xE9s ({0})","\xE9num\xE9rations ({0})","membres d'\xE9num\xE9ration ({0})","cha\xEEnes ({0})","fichiers ({0})","tableaux ({0})","nombres ({0})","bool\xE9ens ({0})","objets ({0})","cl\xE9s ({0})","champs ({0})","constantes ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["Impossible de modifier dans l\u2019entr\xE9e en lecture seule","Impossible de modifier dans l\u2019\xE9diteur en lecture seule"],"vs/editor/contrib/rename/browser/rename":["Aucun r\xE9sultat.","Une erreur inconnue s'est produite lors de la r\xE9solution de l'emplacement de renommage","Renommage de '{0}' en '{1}'","Changement du nom de {0} en {1}","'{0}' renomm\xE9 en '{1}'. R\xE9capitulatif : {2}","Le renommage n'a pas pu appliquer les modifications","Le renommage n'a pas pu calculer les modifications","Renommer le symbole","Activer/d\xE9sactiver la possibilit\xE9 d'afficher un aper\xE7u des changements avant le renommage","Prioriser la prochaine suggestion de changement de nom","Prioriser la suggestion de changement de nom pr\xE9c\xE9dente"],"vs/editor/contrib/rename/browser/renameInputField":["Indique si le widget de renommage d'entr\xE9e est visible","Indique si le widget de renommage d'entr\xE9e est prioritaire","Renommez l'entr\xE9e. Tapez le nouveau nom et appuyez sur Entr\xE9e pour valider.","{0} pour renommer, {1} pour afficher un aper\xE7u","{0} suggestions de changement de nom re\xE7ues"],"vs/editor/contrib/smartSelect/browser/smartSelect":["\xC9tendre la s\xE9lection","D\xE9v&&elopper la s\xE9lection","R\xE9duire la s\xE9lection","&&R\xE9duire la s\xE9lection"],"vs/editor/contrib/snippet/browser/snippetController2":["Indique si l'\xE9diteur est actualis\xE9 en mode extrait","Indique s'il existe un taquet de tabulation suivant en mode extrait","Indique s'il existe un taquet de tabulation pr\xE9c\xE9dent en mode extrait","Acc\xE9der \xE0 l\u2019espace r\xE9serv\xE9 suivant..."],"vs/editor/contrib/snippet/browser/snippetVariables":["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dim","Lun","Mar","Mer","Jeu","Ven","Sam","Janvier","F\xE9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xFBt","Septembre","Octobre","Novembre","D\xE9cembre","Jan","F\xE9v","Mar","Avr","Mai","Juin","Jul","Ao\xFB","Sept","Oct","Nov","D\xE9c"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["&&Activer/d\xE9sactiver le d\xE9filement \xE9pingl\xE9 de l\u2019\xE9diteur","D\xE9filement \xE9pingl\xE9","&&D\xE9filement \xE9pingl\xE9","&&Focus sur le d\xE9filement du pense-b\xEAte","Activer/d\xE9sactiver le d\xE9filement \xE9pingl\xE9 de l\u2019\xE9diteur","Focus sur le d\xE9filement du pense-b\xEAte","S\xE9lectionner la ligne de d\xE9filement du pense-b\xEAte suivante","S\xE9lectionner la ligne de d\xE9filement du pense-b\xEAte pr\xE9c\xE9dente","Atteindre la ligne de d\xE9filement pense-b\xEAte prioritaire","S\xE9lectionner l'\xE9diteur"],"vs/editor/contrib/suggest/browser/suggest":["Indique si une suggestion a le focus","Indique si les d\xE9tails des suggestions sont visibles","Indique s'il existe plusieurs suggestions au choix","Indique si l'insertion de la suggestion actuelle entra\xEEne un changement ou si tout a d\xE9j\xE0 \xE9t\xE9 tap\xE9","Indique si les suggestions sont ins\xE9r\xE9es quand vous appuyez sur Entr\xE9e","Indique si la suggestion actuelle a un comportement d'insertion et de remplacement","Indique si le comportement par d\xE9faut consiste \xE0 ins\xE9rer ou \xE0 remplacer","Indique si la suggestion actuelle prend en charge la r\xE9solution des d\xE9tails suppl\xE9mentaires"],"vs/editor/contrib/suggest/browser/suggestController":["L'acceptation de '{0}' a entra\xEEn\xE9 {1}\xA0modifications suppl\xE9mentaires","Suggestions pour Trigger","Ins\xE9rer","Ins\xE9rer","Remplacer","Remplacer","Ins\xE9rer","afficher moins","afficher plus","R\xE9initialiser la taille du widget de suggestion"],"vs/editor/contrib/suggest/browser/suggestWidget":["Couleur d'arri\xE8re-plan du widget de suggestion.","Couleur de bordure du widget de suggestion.","Couleur de premier plan du widget de suggestion.","Couleur de premier plan de l\u2019entr\xE9e s\xE9lectionn\xE9e dans le widget de suggestion.","Couleur de premier plan de l\u2019ic\xF4ne de l\u2019entr\xE9e s\xE9lectionn\xE9e dans le widget de suggestion.","Couleur d'arri\xE8re-plan de l'entr\xE9e s\xE9lectionn\xE9e dans le widget de suggestion.","Couleur de la surbrillance des correspondances dans le widget de suggestion.","Couleur des mises en surbrillance dans le widget de suggestion lorsqu\u2019un \xE9l\xE9ment a le focus.","Couleur de premier plan du statut du widget de suggestion.","Chargement en cours...","Pas de suggestions.","Sugg\xE9rer","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, documents\xA0: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["Fermer","Chargement en cours..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["Ic\xF4ne d'affichage d'informations suppl\xE9mentaires dans le widget de suggestion.","Lire la suite"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["Couleur de premier plan des symboles de tableau. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles bool\xE9ens. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de classe. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de couleur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan pour les symboles de constante. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de constructeur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'\xE9num\xE9rateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de membre d'\xE9num\xE9rateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'\xE9v\xE9nement. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de champ. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de fichier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de dossier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de fonction. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'interface. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de cl\xE9. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de mot cl\xE9. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de m\xE9thode. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de module. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'espace de noms. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles null. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de nombre. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'objet. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'op\xE9rateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de package. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de propri\xE9t\xE9. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de r\xE9f\xE9rence. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'extrait de code. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de cha\xEEne. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de struct. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de texte. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de param\xE8tre de type. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'unit\xE9. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de variable. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Appuyer sur Tab d\xE9placera le focus vers le prochain \xE9l\xE9ment pouvant \xEAtre d\xE9sign\xE9 comme \xE9l\xE9ment actif","Appuyer sur Tab ins\xE9rera le caract\xE8re de tabulation","Activer/d\xE9sactiver l'utilisation de la touche Tab pour d\xE9placer le focus"],"vs/editor/contrib/tokenization/browser/tokenization":["D\xE9veloppeur\xA0: forcer la retokenisation"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["Ic\xF4ne affich\xE9e avec un message d'avertissement dans l'\xE9diteur d'extensions.","Ce document contient de nombreux caract\xE8res Unicode ASCII non basiques.","Ce document contient de nombreux caract\xE8res Unicode ambigus.","Ce document contient de nombreux caract\xE8res Unicode invisibles.","Configurer les options de surlignage Unicode","Le caract\xE8re {0} peut \xEAtre confondu avec le caract\xE8re ASCII {1}, qui est plus courant dans le code source.","Le caract\xE8re {0} peut \xEAtre confus avec le caract\xE8re {1}, ce qui est plus courant dans le code source.","Le caract\xE8re {0} est invisible.","Le caract\xE8re {0} n\u2019est pas un caract\xE8re ASCII de base.","Ajuster les param\xE8tres","D\xE9sactiver la mise en surbrillance dans les commentaires","D\xE9sactiver la mise en surbrillance des caract\xE8res dans les commentaires","D\xE9sactiver la mise en surbrillance dans les cha\xEEnes","D\xE9sactiver la mise en surbrillance des caract\xE8res dans les cha\xEEnes","D\xE9sactiver la mise en surbrillance ambigu\xEB","D\xE9sactiver la mise en surbrillance des caract\xE8res ambigus","D\xE9sactiver le surlignage invisible","D\xE9sactiver la mise en surbrillance des caract\xE8res invisibles","D\xE9sactiver la mise en surbrillance non ASCII","D\xE9sactiver la mise en surbrillance des caract\xE8res ASCII non de base","Afficher les options d\u2019exclusion","Exclure la mise en surbrillance des {0} (caract\xE8re invisible)","Exclure {0} de la mise en surbrillance",'Autoriser les caract\xE8res Unicode plus courants dans le langage "{0}"'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["Marques de fin de ligne inhabituelles","Marques de fin de ligne inhabituelles d\xE9tect\xE9es","Le fichier \xAB\xA0{0}\xA0\xBBcontient un ou plusieurs caract\xE8res de fin de ligne inhabituels, par exemple le s\xE9parateur de ligne (LS) ou le s\xE9parateur de paragraphe (PS).\r\n\r\nIl est recommand\xE9 de les supprimer du fichier. Vous pouvez configurer ce comportement par le biais de `editor.unusualLineTerminators`.","&&Supprimer les marques de fin de ligne inhabituelles","Ignorer"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["Couleur d'arri\xE8re-plan d'un symbole pendant l'acc\xE8s en lecture, comme la lecture d'une variable. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan d'un symbole pendant l'acc\xE8s en \xE9criture, comme l'\xE9criture d'une variable. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d\u2019arri\xE8re-plan d\u2019une occurrence textuelle d\u2019un symbole. La couleur ne doit pas \xEAtre opaque afin de ne pas masquer les d\xE9corations sous-jacentes.","Couleur de bordure d'un symbole durant l'acc\xE8s en lecture, par exemple la lecture d'une variable.","Couleur de bordure d'un symbole durant l'acc\xE8s en \xE9criture, par exemple l'\xE9criture dans une variable.","Couleur de bordure d\u2019une occurrence textuelle pour un symbole.","Couleur de marqueur de la r\xE8gle d'aper\xE7u pour la mise en surbrillance des symboles. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la r\xE8gle d'aper\xE7u pour la mise en surbrillance des symboles d'acc\xE8s en \xE9criture. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de r\xE8gle d\u2019aper\xE7u d\u2019une occurrence textuelle pour un symbole. La couleur ne doit pas \xEAtre opaque afin de ne pas masquer les d\xE9corations sous-jacentes."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["Aller \xE0 la prochaine mise en \xE9vidence de symbole","Aller \xE0 la mise en \xE9vidence de symbole pr\xE9c\xE9dente","D\xE9clencher la mise en \xE9vidence de symbole"],"vs/editor/contrib/wordOperations/browser/wordOperations":["Supprimer le mot"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["Erreur sur la ligne","Erreur","Avertissement sur la ligne","Avertissement","Zone pli\xE9e sur la ligne","Repli\xE9","Point d\u2019arr\xEAt sur ligne","Point d\u2019arr\xEAt","Suggestion inline sur la ligne","Correctif rapide de terminal","Correctif rapide","D\xE9bogueur arr\xEAt\xE9 sur le point d\u2019arr\xEAt","Point d\u2019arr\xEAt","Aucun indicateur d\u2019inlay sur la ligne","Aucun conseil Inlay","T\xE2che termin\xE9e","T\xE2che termin\xE9e","\xC9chec de la t\xE2che","\xC9chec de la t\xE2che","\xC9chec de la commande de terminal","\xC9chec de la commande","Cloche de terminal","Cloche de terminal","Cellule de bloc-notes termin\xE9e","Cellule de bloc-notes termin\xE9e","\xC9chec de la cellule de bloc-notes","\xC9chec de la cellule de bloc-notes","Ligne de diffusion ins\xE9r\xE9e","Ligne de diffusion supprim\xE9e","Ligne diff modifi\xE9e","Demande de conversation envoy\xE9e","Requ\xEAte de conversation envoy\xE9e","R\xE9ponse de conversation re\xE7ue","R\xE9ponse de conversation en attente","R\xE9ponse de conversation en attente","Effacer","Effacer","Enregistrer","Enregistrer","Format","Format"],"vs/platform/action/common/actionCommonCategories":["Afficher","Aide","Test","fichier","Pr\xE9f\xE9rences","D\xE9veloppeur"],"vs/platform/actionWidget/browser/actionList":["{0} \xE0 appliquer, {1} \xE0 afficher un aper\xE7u","{0} pour appliquer","{0}, raison d\xE9sactiv\xE9e : {1}","Widget d\u2019action"],"vs/platform/actionWidget/browser/actionWidget":["Couleur d'arri\xE8re-plan des \xE9l\xE9ments d'action activ\xE9s dans la barre d'action.","Indique si la liste des widgets d\u2019action est visible","Masquer le widget d\u2019action","S\xE9lectionner l\u2019action pr\xE9c\xE9dente","S\xE9lectionner l\u2019action suivante","Accepter l\u2019action s\xE9lectionn\xE9e","Aper\xE7u de l\u2019action s\xE9lectionn\xE9e"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["Masquer","R\xE9initialiser le menu"],"vs/platform/actions/common/menuService":["Masquer \xAB{0}\xBB"],"vs/platform/configuration/common/configurationRegistry":["Substitutions de configuration du langage par d\xE9faut","Configurez les param\xE8tres \xE0 remplacer pour le langage {0}.","Configurez les param\xE8tres d'\xE9diteur \xE0 remplacer pour un langage.","Ce param\xE8tre ne prend pas en charge la configuration par langage.","Configurez les param\xE8tres d'\xE9diteur \xE0 remplacer pour un langage.","Ce param\xE8tre ne prend pas en charge la configuration par langage.","Impossible d'inscrire une propri\xE9t\xE9 vide","Impossible d'inscrire '{0}'. Ceci correspond au mod\xE8le de propri\xE9t\xE9 '\\\\[.*\\\\]$' permettant de d\xE9crire les param\xE8tres d'\xE9diteur sp\xE9cifiques \xE0 un langage. Utilisez la contribution 'configurationDefaults'.","Impossible d'inscrire '{0}'. Cette propri\xE9t\xE9 est d\xE9j\xE0 inscrite.","Impossible d\u2019inscrire '{0}'. Le {1} de strat\xE9gie associ\xE9 est d\xE9j\xE0 inscrit aupr\xE8s de {2}."],"vs/platform/contextkey/browser/contextKeyService":["Commande qui retourne des informations sur les cl\xE9s de contexte"],"vs/platform/contextkey/common/contextkey":["Expression de cl\xE9 de contexte vide","Avez-vous oubli\xE9 d\u2019\xE9crire une expression ? Vous pouvez \xE9galement placer 'false' ou 'true' pour toujours donner la valeur false ou true, respectivement.","'in' apr\xE8s 'not'.","parenth\xE8se fermante ')'","Jeton inattendu","Avez-vous oubli\xE9 de placer && ou || avant le jeton ?","Fin d\u2019expression inattendue","Avez-vous oubli\xE9 de placer une cl\xE9 de contexte ?",`Attendu : {0}\r +Re\xE7u : '{1}'.`],"vs/platform/contextkey/common/contextkeys":["Indique si le syst\xE8me d'exploitation est macOS","Indique si le syst\xE8me d'exploitation est Linux","Indique si le syst\xE8me d'exploitation est Windows","Indique si la plateforme est un navigateur web","Indique si le syst\xE8me d'exploitation est macOS sur une plateforme qui n'est pas un navigateur","Indique si le syst\xE8me d\u2019exploitation est Linux","Indique si la plateforme est un navigateur web mobile","Type de qualit\xE9 de VS Code","Indique si le focus clavier se trouve dans une zone d'entr\xE9e"],"vs/platform/contextkey/common/scanner":["Voulez-vous dire {0}?","Voulez-vous dire {0} ou {1}?","Voulez-vous dire {0}, {1} ou {2}?","Avez-vous oubli\xE9 d\u2019ouvrir ou de fermer le devis ?","Avez-vous oubli\xE9 d\u2019\xE9chapper le caract\xE8re \xAB / \xBB (barre oblique) ? Placez deux barre obliques inverses avant d\u2019y \xE9chapper, par ex., \xAB \\\\/ \xBB."],"vs/platform/history/browser/contextScopedHistoryWidget":["Indique si les suggestions sont visibles"],"vs/platform/keybinding/common/abstractKeybindingService":["Touche ({0}) utilis\xE9e. En attente d'une seconde touche...","({0}) a \xE9t\xE9 enfonc\xE9. En attente de la touche suivante de la pression...","La combinaison de touches ({0}, {1}) n\u2019est pas une commande.","La combinaison de touches ({0}, {1}) n\u2019est pas une commande."],"vs/platform/list/browser/listService":["Banc d'essai","Mappe vers 'Contr\xF4le' dans Windows et Linux, et vers 'Commande' dans macOS.","Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.","Le modificateur \xE0 utiliser pour ajouter un \xE9l\xE9ment dans les arbres et listes pour une s\xE9lection multiple avec la souris (par exemple dans l\u2019Explorateur, les \xE9diteurs ouverts et la vue scm). Les mouvements de la souris 'Ouvrir \xE0 c\xF4t\xE9' (si pris en charge) s'adapteront tels qu\u2019ils n'entrent pas en conflit avec le modificateur multiselect.","Contr\xF4le l'ouverture des \xE9l\xE9ments dans les arborescences et les listes \xE0 l'aide de la souris (si cela est pris en charge). Notez que certaines arborescences et listes peuvent choisir d'ignorer ce param\xE8tre, s'il est non applicable.","Contr\xF4le si les listes et les arborescences prennent en charge le d\xE9filement horizontal dans le banc d'essai. Avertissement : L'activation de ce param\xE8tre a un impact sur les performances.","Contr\xF4le si les clics dans la barre de d\xE9filement page par page.","Contr\xF4le la mise en retrait de l'arborescence, en pixels.","Contr\xF4le si l'arborescence doit afficher les rep\xE8res de mise en retrait.","D\xE9termine si les listes et les arborescences ont un d\xE9filement fluide.","Un multiplicateur \xE0 utiliser sur les `deltaX` et `deltaY` des \xE9v\xE9nements de d\xE9filement de roulette de souris.","Multiplicateur de vitesse de d\xE9filement quand vous appuyez sur 'Alt'.","Mettez en surbrillance les \xE9l\xE9ments lors de la recherche. La navigation vers le haut et le bas traverse uniquement les \xE9l\xE9ments en surbrillance.","Filtrez des \xE9l\xE9ments lors de la recherche.","Contr\xF4le le mode de recherche par d\xE9faut pour les listes et les arborescences dans Workbench.","La navigation au clavier Simple place le focus sur les \xE9l\xE9ments qui correspondent \xE0 l'entr\xE9e de clavier. La mise en correspondance est effectu\xE9e sur les pr\xE9fixes uniquement.","La navigation de mise en surbrillance au clavier met en surbrillance les \xE9l\xE9ments qui correspondent \xE0 l'entr\xE9e de clavier. La navigation ult\xE9rieure vers le haut ou vers le bas parcourt uniquement les \xE9l\xE9ments mis en surbrillance.","La navigation au clavier Filtrer filtre et masque tous les \xE9l\xE9ments qui ne correspondent pas \xE0 l'entr\xE9e de clavier.","Contr\xF4le le style de navigation au clavier pour les listes et les arborescences dans le banc d'essai. Les options sont Simple, Mise en surbrillance et Filtrer.","Utilisez 'workbench.list.defaultFindMode' et 'workbench.list.typeNavigationMode' \xE0 la place.","Utilisez la correspondance approximative lors de la recherche.","Utilisez des correspondances contigu\xEBs lors de la recherche.","Contr\xF4le le type de correspondance utilis\xE9 lors de la recherche de listes et d\u2019arborescences dans le banc d\u2019essai.","Contr\xF4le la fa\xE7on dont les dossiers de l'arborescence sont d\xE9velopp\xE9s quand vous cliquez sur les noms de dossiers. Notez que certaines arborescences et listes peuvent choisir d'ignorer ce param\xE8tre, s'il est non applicable.","Contr\xF4le si le d\xE9filement r\xE9manent est activ\xE9 dans les arborescences.","Contr\xF4le le nombre d\u2019\xE9l\xE9ments r\xE9manents affich\xE9s dans l\u2019arborescence lorsque \xAB #workbench.tree.enableStickyScroll# \xBB est activ\xE9.","Contr\xF4le le fonctionnement de la navigation de type dans les listes et les arborescences du banc d'essai. Quand la valeur est 'trigger', la navigation de type commence une fois que la commande 'list.triggerTypeNavigation' est ex\xE9cut\xE9e."],"vs/platform/markers/common/markers":["Erreur","Avertissement","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["r\xE9cemment utilis\xE9es","commandes similaires","utilis\xE9s le plus souvent","autres commandes","commandes similaires","{0}, {1}","La commande \xAB\xA0{0}\xA0\xBB a entra\xEEn\xE9 une erreur"],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["Pr\xE9c\xE9dent","Appuyez sur 'Entr\xE9e' pour confirmer votre saisie, ou sur '\xC9chap' pour l'annuler","{0}/{1}","Taper pour affiner les r\xE9sultats."],"vs/platform/quickinput/browser/quickInputController":["Activer/d\xE9sactiver toutes les cases \xE0 cocher","{0}\xA0r\xE9sultats","{0} S\xE9lectionn\xE9s","OK","Personnalis\xE9","Pr\xE9c\xE9dent ({0})","Retour"],"vs/platform/quickinput/browser/quickInputList":["Entr\xE9e rapide"],"vs/platform/quickinput/browser/quickInputUtils":["Cliquer pour ex\xE9cuter la commande '{0}'"],"vs/platform/theme/common/colorRegistry":["Couleur de premier plan globale. Cette couleur est utilis\xE9e si elle n'est pas remplac\xE9e par un composant.","Premier plan globale pour les \xE9l\xE9ments d\xE9sactiv\xE9s. Cette couleur est utilis\xE9e si elle n'est pas remplac\xE9e par un composant.","Couleur principale de premier plan pour les messages d'erreur. Cette couleur est utilis\xE9e uniquement si elle n'est pas red\xE9finie par un composant.","Couleur de premier plan du texte descriptif fournissant des informations suppl\xE9mentaires, par exemple pour un label.","Couleur par d\xE9faut des ic\xF4nes du banc d'essai.","Couleur de bordure globale des \xE9l\xE9ments ayant le focus. Cette couleur est utilis\xE9e si elle n'est pas remplac\xE9e par un composant.","Bordure suppl\xE9mentaire autour des \xE9l\xE9ments pour les s\xE9parer des autres et obtenir un meilleur contraste.","Bordure suppl\xE9mentaire autour des \xE9l\xE9ments actifs pour les s\xE9parer des autres et obtenir un meilleur contraste.","La couleur d'arri\xE8re-plan des s\xE9lections de texte dans le banc d'essai (par ex., pour les champs d'entr\xE9e ou les zones de texte). Notez que cette couleur ne s'applique pas aux s\xE9lections dans l'\xE9diteur et le terminal.","Couleur pour les s\xE9parateurs de texte.","Couleur des liens dans le texte.","Couleur de premier plan pour les liens dans le texte lorsqu'ils sont cliqu\xE9s ou survol\xE9s.","Couleur des segments de texte pr\xE9format\xE9s.","Couleur d'arri\xE8re-plan pour les segments de texte pr\xE9format\xE9s.","Couleur d'arri\xE8re-plan des citations dans le texte.","Couleur de bordure des citations dans le texte.","Couleur d'arri\xE8re-plan des blocs de code dans le texte.","Couleur de l'ombre des widgets, comme rechercher/remplacer, au sein de l'\xE9diteur.","Couleur de bordure des widgets, comme rechercher/remplacer au sein de l'\xE9diteur.","Arri\xE8re-plan de la zone d'entr\xE9e.","Premier plan de la zone d'entr\xE9e.","Bordure de la zone d'entr\xE9e.","Couleur de la bordure des options activ\xE9es dans les champs d'entr\xE9e.","Couleur d'arri\xE8re-plan des options activ\xE9es dans les champs d'entr\xE9e.","Couleur de pointage d\u2019arri\xE8re-plan des options dans les champs d\u2019entr\xE9e.","Couleur de premier plan des options activ\xE9es dans les champs d'entr\xE9e.","Couleur de premier plan de la zone d'entr\xE9e pour le texte d'espace r\xE9serv\xE9.","Couleur d'arri\xE8re-plan de la validation d'entr\xE9e pour la gravit\xE9 des informations.","Couleur de premier plan de validation de saisie pour la s\xE9v\xE9rit\xE9 Information.","Couleur de bordure de la validation d'entr\xE9e pour la gravit\xE9 des informations.","Couleur d'arri\xE8re-plan de la validation d'entr\xE9e pour la gravit\xE9 de l'avertissement.","Couleur de premier plan de la validation de la saisie pour la s\xE9v\xE9rit\xE9 Avertissement.","Couleur de bordure de la validation d'entr\xE9e pour la gravit\xE9 de l'avertissement.","Couleur d'arri\xE8re-plan de la validation d'entr\xE9e pour la gravit\xE9 de l'erreur.","Couleur de premier plan de la validation de saisie pour la s\xE9v\xE9rit\xE9 Erreur.","Couleur de bordure de la validation d'entr\xE9e pour la gravit\xE9 de l'erreur. ","Arri\xE8re-plan de la liste d\xE9roulante.","Arri\xE8re-plan de la liste d\xE9roulante.","Premier plan de la liste d\xE9roulante.","Bordure de la liste d\xE9roulante.","Couleur de premier plan du bouton.","Couleur du s\xE9parateur de boutons.","Couleur d'arri\xE8re-plan du bouton.","Couleur d'arri\xE8re-plan du bouton pendant le pointage.","Couleur de bordure du bouton.","Couleur de premier plan du bouton secondaire.","Couleur d'arri\xE8re-plan du bouton secondaire.","Couleur d'arri\xE8re-plan du bouton secondaire au moment du pointage.","Couleur de fond des badges. Les badges sont de courts libell\xE9s d'information, ex. le nombre de r\xE9sultats de recherche.","Couleur des badges. Les badges sont de courts libell\xE9s d'information, ex. le nombre de r\xE9sultats de recherche.","Ombre de la barre de d\xE9filement pour indiquer que la vue d\xE9file.","Couleur de fond du curseur de la barre de d\xE9filement.","Couleur de fond du curseur de la barre de d\xE9filement lors du survol.","Couleur d\u2019arri\xE8re-plan de la barre de d\xE9filement lorsqu'on clique dessus.","Couleur de fond pour la barre de progression qui peut s'afficher lors d'op\xE9rations longues.","Couleur d'arri\xE8re-plan du texte d'erreur dans l'\xE9diteur. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les d\xE9corations sous-jacentes.","Couleur de premier plan de la ligne ondul\xE9e marquant les erreurs dans l'\xE9diteur.","Si cette option est d\xE9finie, couleur des doubles soulignements pour les erreurs dans l\u2019\xE9diteur.","Couleur d'arri\xE8re-plan du texte d'avertissement dans l'\xE9diteur. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les d\xE9corations sous-jacentes.","Couleur de premier plan de la ligne ondul\xE9e marquant les avertissements dans l'\xE9diteur.","Si cette option est d\xE9finie, couleur des doubles soulignements pour les avertissements dans l\u2019\xE9diteur.","Couleur d'arri\xE8re-plan du texte d'information dans l'\xE9diteur. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les d\xE9corations sous-jacentes.","Couleur de premier plan de la ligne ondul\xE9e marquant les informations dans l'\xE9diteur.","Si cette option est d\xE9finie, couleur des doubles soulignements pour les informations dans l\u2019\xE9diteur.","Couleur de premier plan de la ligne ondul\xE9e d'indication dans l'\xE9diteur.","Si cette option est d\xE9finie, couleur des doubles soulignements pour les conseils dans l\u2019\xE9diteur.","Couleur de bordure des fen\xEAtres coulissantes.","Couleur d'arri\xE8re-plan de l'\xE9diteur.","Couleur de premier plan par d\xE9faut de l'\xE9diteur.","Couleur d\u2019arri\xE8re-plan du d\xE9filement \xE9pingl\xE9 dans l\u2019\xE9diteur","Couleur d\u2019arri\xE8re-plan du d\xE9filement \xE9pingl\xE9 lors du pointage pour l\u2019\xE9diteur","Couleur de bordure du d\xE9filement \xE9pingl\xE9 dans l\u2019\xE9diteur"," Couleur d\u2019ombre du d\xE9filement \xE9pingl\xE9 dans l\u2019\xE9diteur","Couleur d'arri\xE8re-plan des gadgets de l'\xE9diteur tels que rechercher/remplacer.","Couleur de premier plan des widgets de l'\xE9diteur, notamment Rechercher/remplacer.","Couleur de bordure des widgets de l'\xE9diteur. La couleur est utilis\xE9e uniquement si le widget choisit d'avoir une bordure et si la couleur n'est pas remplac\xE9e par un widget.","Couleur de bordure de la barre de redimensionnement des widgets de l'\xE9diteur. La couleur est utilis\xE9e uniquement si le widget choisit une bordure de redimensionnement et si la couleur n'est pas remplac\xE9e par un widget.","Couleur d'arri\xE8re-plan du s\xE9lecteur rapide. Le widget de s\xE9lecteur rapide est le conteneur de s\xE9lecteurs comme la palette de commandes.","Couleur de premier plan du s\xE9lecteur rapide. Le widget de s\xE9lecteur rapide est le conteneur de s\xE9lecteurs comme la palette de commandes.","Couleur d'arri\xE8re-plan du titre du s\xE9lecteur rapide. Le widget de s\xE9lecteur rapide est le conteneur de s\xE9lecteurs comme la palette de commandes.","Couleur du s\xE9lecteur rapide pour les \xE9tiquettes de regroupement.","Couleur du s\xE9lecteur rapide pour les bordures de regroupement.","Couleur d\u2019arri\xE8re-plan d\u2019\xE9tiquette de combinaison de touches. L\u2019\xE9tiquette est utilis\xE9e pour repr\xE9senter un raccourci clavier.","Couleur de premier plan d\u2019\xE9tiquette de combinaison de touches. L\u2019\xE9tiquette est utilis\xE9e pour repr\xE9senter un raccourci clavier.","Couleur de bordure de la combinaison de touches. L\u2019\xE9tiquette est utilis\xE9e pour repr\xE9senter un raccourci clavier.","Couleur de bordure du bas d\u2019\xE9tiquette de combinaison de touches. L\u2019\xE9tiquette est utilis\xE9e pour repr\xE9senter un raccourci clavier.","Couleur de la s\xE9lection de l'\xE9diteur.","Couleur du texte s\xE9lectionn\xE9 pour le contraste \xE9lev\xE9.","Couleur de la s\xE9lection dans un \xE9diteur inactif. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur des r\xE9gions dont le contenu est le m\xEAme que celui de la s\xE9lection. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure des r\xE9gions dont le contenu est identique \xE0 la s\xE9lection.","Couleur du r\xE9sultat de recherche actif.","Couleur des autres correspondances de recherche. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de la plage limitant la recherche. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure du r\xE9sultat de recherche actif.","Couleur de bordure des autres r\xE9sultats de recherche.","Couleur de bordure de la plage limitant la recherche. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur des correspondances de requ\xEAte de l'\xE9diteur de recherche.","Couleur de bordure des correspondances de requ\xEAte de l'\xE9diteur de recherche.","Couleur du texte dans le message d\u2019ach\xE8vement de la viewlet de recherche.","Surlignage sous le mot s\xE9lectionn\xE9 par pointage. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan du pointage de l'\xE9diteur.","Couleur de premier plan du pointage de l'\xE9diteur.","Couleur de bordure du pointage de l'\xE9diteur.","Couleur d'arri\xE8re-plan de la barre d'\xE9tat du pointage de l'\xE9diteur.","Couleur des liens actifs.","Couleur de premier plan des indicateurs inline","Couleur d'arri\xE8re-plan des indicateurs inline","Couleur de premier plan des indicateurs inline pour les types","Couleur d'arri\xE8re-plan des indicateurs inline pour les types","Couleur de premier plan des indicateurs inline pour les param\xE8tres","Couleur d'arri\xE8re-plan des indicateurs inline pour les param\xE8tres","Couleur utilis\xE9e pour l'ic\xF4ne d'ampoule sugg\xE9rant des actions.","Couleur utilis\xE9e pour l'ic\xF4ne d'ampoule sugg\xE9rant des actions de correction automatique.","La couleur utilis\xE9e pour l\u2019ic\xF4ne AI de l\u2019ampoule.","Couleur d'arri\xE8re-plan du texte ins\xE9r\xE9. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan du texte supprim\xE9. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan des lignes ins\xE9r\xE9es. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arri\xE8re-plan des lignes supprim\xE9es. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur d\u2019arri\xE8re-plan de la marge o\xF9 les lignes ont \xE9t\xE9 ins\xE9r\xE9es","Couleur d\u2019arri\xE8re-plan de la marge o\xF9 les lignes ont \xE9t\xE9 supprim\xE9es","Premier plan de la r\xE8gle de vue d\u2019ensemble des diff\xE9rences pour le contenu ins\xE9r\xE9","Premier plan de la r\xE8gle de vue d\u2019ensemble des diff\xE9rences pour le contenu supprim\xE9","Couleur de contour du texte ins\xE9r\xE9.","Couleur de contour du texte supprim\xE9.","Couleur de bordure entre les deux \xE9diteurs de texte.","Couleur du remplissage diagonal de l'\xE9diteur de diff\xE9rences. Le remplissage diagonal est utilis\xE9 dans les vues de diff\xE9rences c\xF4te \xE0 c\xF4te.","Couleur d\u2019arri\xE8re-plan des blocs inchang\xE9s dans l\u2019\xE9diteur de diff\xE9rences.","Couleur de premier plan des blocs inchang\xE9s dans l\u2019\xE9diteur de diff\xE9rences.","Couleur d\u2019arri\xE8re-plan du code inchang\xE9 dans l\u2019\xE9diteur de diff\xE9rences.","Couleur d'arri\xE8re-plan de la liste/l'arborescence pour l'\xE9l\xE9ment ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'\xE9l\xE9ment ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de contour de la liste/l'arborescence pour l'\xE9l\xE9ment ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active a le focus clavier, contrairement \xE0 une liste/arborescence inactive.","Couleur de contour de liste/arborescence pour l\u2019\xE9l\xE9ment cibl\xE9 lorsque la liste/l\u2019arborescence est active et s\xE9lectionn\xE9e. Une liste/arborescence active dispose d\u2019un focus clavier, ce qui n\u2019est pas le cas d\u2019une arborescence inactive.","Couleur d'arri\xE8re-plan de la liste/l'arborescence de l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de l\u2019ic\xF4ne Liste/l'arborescence pour l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arri\xE8re-plan de la liste/l'arborescence pour l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est inactive. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est inactive. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de l\u2019ic\xF4ne Liste/l'arborescence pour l'\xE9l\xE9ment s\xE9lectionn\xE9 quand la liste/l'arborescence est inactive. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arri\xE8re-plan de la liste/l'arborescence pour l'\xE9l\xE9ment ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut \xEAtre s\xE9lectionn\xE9e au clavier (elle ne l'est pas quand elle est inactive).","Couleur de contour de la liste/l'arborescence pour l'\xE9l\xE9ment ayant le focus quand la liste/l'arborescence est inactive. Une liste/arborescence active a le focus clavier, contrairement \xE0 une liste/arborescence inactive.","Arri\xE8re-plan de la liste/l'arborescence pendant le pointage sur des \xE9l\xE9ments avec la souris.","Premier plan de la liste/l'arborescence pendant le pointage sur des \xE9l\xE9ments avec la souris.","Arri\xE8re-plan de l'op\xE9ration de glisser-d\xE9placer dans une liste/arborescence pendant le d\xE9placement d\u2019\xE9l\xE9ments sur d\u2019autres \xE9l\xE9ments avec la souris.","Couleur de bordure glisser-d\xE9placer de la liste/de l\u2019arborescence lors du d\xE9placement d\u2019\xE9l\xE9ments entre des \xE9l\xE9ments lors de l\u2019utilisation de la souris.","Couleur de premier plan dans la liste/l'arborescence pour la surbrillance des correspondances pendant la recherche dans une liste/arborescence.","Couleur de premier plan de la liste ou l\u2019arborescence pour la surbrillance des correspondances sur les \xE9l\xE9ments ayant le focus pendant la recherche dans une liste/arborescence.","Couleur de premier plan de liste/arbre pour les \xE9l\xE9ments non valides, par exemple une racine non r\xE9solue dans l\u2019Explorateur.","Couleur de premier plan des \xE9l\xE9ments de la liste contenant des erreurs.","Couleur de premier plan des \xE9l\xE9ments de liste contenant des avertissements.","Couleur d'arri\xE8re-plan du widget de filtre de type dans les listes et les arborescences.","Couleur de contour du widget de filtre de type dans les listes et les arborescences.","Couleur de contour du widget de filtre de type dans les listes et les arborescences, en l'absence de correspondance.","Appliquez une ombre \xE0 la couleur du widget filtre de type dans les listes et les arborescences.","Couleur d'arri\xE8re-plan de la correspondance filtr\xE9e.","Couleur de bordure de la correspondance filtr\xE9e.","Couleur de trait de l'arborescence pour les rep\xE8res de mise en retrait.","Couleur de trait d\u2019arborescence pour les rep\xE8res de mise en retrait qui ne sont pas actifs.","Couleur de la bordure du tableau entre les colonnes.","Couleur d'arri\xE8re-plan pour les lignes de tableau impaires.","Couleur de premier plan de la liste/l'arborescence des \xE9l\xE9ments att\xE9nu\xE9s.","Couleur de fond du widget Case \xE0 cocher.","Couleur d\u2019arri\xE8re-plan du widget de case \xE0 cocher lorsque l\u2019\xE9l\xE9ment dans lequel il se trouve est s\xE9lectionn\xE9.","Couleur de premier plan du widget Case \xE0 cocher.","Couleur de bordure du widget Case \xE0 cocher.","Couleur de bordure du widget de case \xE0 cocher lorsque l\u2019\xE9l\xE9ment dans lequel il se trouve est s\xE9lectionn\xE9.","Utilisez quickInputList.focusBackground \xE0 la place","Couleur de premier plan du s\xE9lecteur rapide pour l\u2019\xE9l\xE9ment ayant le focus.","Couleur de premier plan de l\u2019ic\xF4ne du s\xE9lecteur rapide pour l\u2019\xE9l\xE9ment ayant le focus.","Couleur d'arri\xE8re-plan du s\xE9lecteur rapide pour l'\xE9l\xE9ment ayant le focus.","Couleur de bordure des menus.","Couleur de premier plan des \xE9l\xE9ments de menu.","Couleur d'arri\xE8re-plan des \xE9l\xE9ments de menu.","Couleur de premier plan de l'\xE9l\xE9ment de menu s\xE9lectionn\xE9 dans les menus.","Couleur d'arri\xE8re-plan de l'\xE9l\xE9ment de menu s\xE9lectionn\xE9 dans les menus.","Couleur de bordure de l'\xE9l\xE9ment de menu s\xE9lectionn\xE9 dans les menus.","Couleur d'un \xE9l\xE9ment de menu s\xE9parateur dans les menus.","Arri\xE8re-plan de la barre d\u2019outils lors du survol des actions \xE0 l\u2019aide de la souris","Contour de la barre d\u2019outils lors du survol des actions \xE0 l\u2019aide de la souris","Arri\xE8re-plan de la barre d\u2019outils quand la souris est maintenue sur des actions","Couleur d\u2019arri\xE8re-plan de mise en surbrillance d\u2019un extrait tabstop.","Couleur de bordure de mise en surbrillance d\u2019un extrait tabstop.","Couleur d\u2019arri\xE8re-plan de mise en surbrillance du tabstop final d\u2019un extrait.","Mettez en surbrillance la couleur de bordure du dernier taquet de tabulation d'un extrait de code.","Couleur des \xE9l\xE9ments de navigation avec le focus.","Couleur de fond des \xE9l\xE9ments de navigation.","Couleur des \xE9l\xE9ments de navigation avec le focus.","Couleur des \xE9l\xE9ments de navigation s\xE9lectionn\xE9s.","Couleur de fond du s\xE9lecteur d\u2019\xE9l\xE9ment de navigation.","Arri\xE8re-plan d'en-t\xEAte actuel dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Arri\xE8re-plan de contenu actuel dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Arri\xE8re-plan d'en-t\xEAte entrant dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Arri\xE8re-plan de contenu entrant dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Arri\xE8re-plan d'en-t\xEAte de l'anc\xEAtre commun dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Arri\xE8re-plan de contenu de l'anc\xEAtre commun dans les conflits de fusion inline. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure des en-t\xEAtes et du s\xE9parateur dans les conflits de fusion inline.","Premier plan de la r\xE8gle d'aper\xE7u actuelle pour les conflits de fusion inline.","Premier plan de la r\xE8gle d'aper\xE7u entrante pour les conflits de fusion inline.","Arri\xE8re-plan de la r\xE8gle d'aper\xE7u de l'anc\xEAtre commun dans les conflits de fusion inline.","Couleur de marqueur de la r\xE8gle d'aper\xE7u pour rechercher les correspondances. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la r\xE8gle d'aper\xE7u pour la mise en surbrillance des s\xE9lections. La couleur ne doit pas \xEAtre opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la minimap pour les correspondances.","Couleur de marqueur minimap pour les s\xE9lections r\xE9p\xE9t\xE9es de l\u2019\xE9diteur.","Couleur de marqueur du minimap pour la s\xE9lection de l'\xE9diteur.","Couleur de marqueur de minimap pour les informations.","Couleur de marqueur de minimap pour les avertissements.","Couleur de marqueur de minimap pour les erreurs.","Couleur d'arri\xE8re-plan du minimap.","Opacit\xE9 des \xE9l\xE9ments de premier plan rendus dans la minimap. Par exemple, \xAB #000000c0 \xBB affiche les \xE9l\xE9ments avec une opacit\xE9 de 75 %.","Couleur d'arri\xE8re-plan du curseur de minimap.","Couleur d'arri\xE8re-plan du curseur de minimap pendant le survol.","Couleur d'arri\xE8re-plan du curseur de minimap pendant un clic.","Couleur utilis\xE9e pour l'ic\xF4ne d'erreur des probl\xE8mes.","Couleur utilis\xE9e pour l'ic\xF4ne d'avertissement des probl\xE8mes.","Couleur utilis\xE9e pour l'ic\xF4ne d'informations des probl\xE8mes.","Couleur de premier plan utilis\xE9e dans les graphiques.","Couleur utilis\xE9e pour les lignes horizontales dans les graphiques.","Couleur rouge utilis\xE9e dans les visualisations de graphiques.","Couleur bleue utilis\xE9e dans les visualisations de graphiques.","Couleur jaune utilis\xE9e dans les visualisations de graphiques.","Couleur orange utilis\xE9e dans les visualisations de graphiques.","Couleur verte utilis\xE9e dans les visualisations de graphiques.","Couleur violette utilis\xE9e dans les visualisations de graphiques."],"vs/platform/theme/common/iconRegistry":["ID de la police \xE0 utiliser. Si aucune valeur n'est d\xE9finie, la police d\xE9finie en premier est utilis\xE9e.","Caract\xE8re de police associ\xE9 \xE0 la d\xE9finition d'ic\xF4ne.","Ic\xF4ne de l'action de fermeture dans les widgets.","Ic\xF4ne d'acc\xE8s \xE0 l'emplacement pr\xE9c\xE9dent de l'\xE9diteur.","Ic\xF4ne d'acc\xE8s \xE0 l'emplacement suivant de l'\xE9diteur."],"vs/platform/undoRedo/common/undoRedoService":["Les fichiers suivants ont \xE9t\xE9 ferm\xE9s et modifi\xE9s sur le disque\xA0: {0}.","Les fichiers suivants ont \xE9t\xE9 modifi\xE9s de mani\xE8re incompatible : {0}.","Impossible d'annuler '{0}' dans tous les fichiers. {1}","Impossible d'annuler '{0}' dans tous les fichiers. {1}","Impossible d'annuler '{0}' dans tous les fichiers, car des modifications ont \xE9t\xE9 apport\xE9es \xE0 {1}","Impossible d'annuler '{0}' dans tous les fichiers, car une op\xE9ration d'annulation ou de r\xE9tablissement est d\xE9j\xE0 en cours d'ex\xE9cution sur {1}","Impossible d'annuler '{0}' dans tous les fichiers, car une op\xE9ration d'annulation ou de r\xE9tablissement s'est produite dans l'intervalle","Souhaitez-vous annuler '{0}' dans tous les fichiers\xA0?","&&Annuler dans {0} fichiers","Annuler ce &&fichier","Impossible d'annuler '{0}', car une op\xE9ration d'annulation ou de r\xE9tablissement est d\xE9j\xE0 en cours d'ex\xE9cution.","Voulez-vous annuler '{0}'\xA0?","&&Oui","Non","Impossible de r\xE9p\xE9ter '{0}' dans tous les fichiers. {1}","Impossible de r\xE9p\xE9ter '{0}' dans tous les fichiers. {1}","Impossible de r\xE9p\xE9ter '{0}' dans tous les fichiers, car des modifications ont \xE9t\xE9 apport\xE9es \xE0 {1}","Impossible de r\xE9tablir '{0}' dans tous les fichiers, car une op\xE9ration d'annulation ou de r\xE9tablissement est d\xE9j\xE0 en cours d'ex\xE9cution pour {1}","Impossible de r\xE9tablir '{0}' dans tous les fichiers, car une op\xE9ration d'annulation ou de r\xE9tablissement s'est produite dans l'intervalle","Impossible de r\xE9tablir '{0}', car une op\xE9ration d'annulation ou de r\xE9tablissement est d\xE9j\xE0 en cours d'ex\xE9cution."],"vs/platform/workspace/common/workspace":["Espace de travail de code"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.fr.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.it.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.it.js new file mode 100644 index 0000000..bb15c42 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.it.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.it",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputToggles":["Maiuscole/minuscole","Parola intera","Usa espressione regolare"],"vs/base/browser/ui/findinput/replaceInput":["input","Mantieni maiuscole/minuscole"],"vs/base/browser/ui/hover/hoverWidget":["Ispezionarlo nella visualizzazione accessibile con {0}.","Ispezionarlo nella visualizzazione accessibile tramite il comando Apri visualizzazione accessibile che attualmente non \xE8 attivabile tramite il tasto di scelta rapida."],"vs/base/browser/ui/iconLabel/iconLabelHover":["Caricamento..."],"vs/base/browser/ui/inputbox/inputBox":["Errore: {0}","Avviso: {0}","Info: {0}"," o {0} per la cronologia"," ({0} per la cronologia)","Input cancellato"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Non associato"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Casella di selezione"],"vs/base/browser/ui/toolbar/toolbar":["Altre azioni..."],"vs/base/browser/ui/tree/abstractTree":["Filtro","Corrispondenza fuzzy","Digitare per filtrare","Digitare per la ricerca","Digitare per la ricerca","Chiudi","Non sono stati trovati elementi."],"vs/base/common/actions":["(vuoto)"],"vs/base/common/errorMessage":["{0}: {1}","Si \xE8 verificato un errore di sistema ({0})","Si \xE8 verificato un errore sconosciuto. Per altri dettagli, vedere il log.","Si \xE8 verificato un errore sconosciuto. Per altri dettagli, vedere il log.","{0} ({1} errori in totale)","Si \xE8 verificato un errore sconosciuto. Per altri dettagli, vedere il log."],"vs/base/common/keybindingLabels":["CTRL","MAIUSC","ALT","Windows","CTRL","MAIUSC","ALT","Super","CTRL","MAIUSC","Opzione","Comando","CTRL","MAIUSC","ALT","Windows","CTRL","MAIUSC","ALT","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["editor","L'editor non \xE8 accessibile in questo momento.","{0} Per abilitare la modalit\xE0 ottimizzata per l'utilit\xE0 per la lettura dello schermo usare {1}","{0} Per abilitare la modalit\xE0 ottimizzata per l'utilit\xE0 per la lettura dello schermo, aprire la selezione rapida con {1} ed eseguire il comando Attiva/Disattiva modalit\xE0 di accessibilit\xE0 dell'utilit\xE0 per la lettura dello schermo, attualmente non attivabile tramite tastiera.","{0} Assegnare un tasto di scelta rapida per il comando Attiva/Disattiva modalit\xE0 di accessibilit\xE0 dell'utilit\xE0 per la lettura dello schermo accedendo all'editor dei tasti di scelta rapida con {1} ed eseguirlo."],"vs/editor/browser/coreCommands":["Si attiene alla fine anche quando si passa a righe pi\xF9 lunghe","Si attiene alla fine anche quando si passa a righe pi\xF9 lunghe","Cursori secondari rimossi"],"vs/editor/browser/editorExtensions":["&&Annulla","Annulla azione","&&Ripeti","Ripeti","&&Seleziona tutto","Seleziona tutto"],"vs/editor/browser/widget/codeEditorWidget":["Il numero di cursori \xE8 stato limitato a {0}. Provare a usare [Trova e sostituisci](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) per modifiche di dimensioni maggiori o aumentare l'impostazione del limite di pi\xF9 cursori dell'editor.","Aumentare limite multi-cursore"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":['Icona per "Inserisci" nel visualizzatore differenze accessibile.','Icona per "Rimuovi" nel visualizzatore differenze accessibile.','Icona per "Chiudi" nel visualizzatore differenze accessibile.',"Chiudi","Visualizzatore differenze accessibile. Usare le frecce SU e GI\xD9 per spostarsi.","nessuna riga modificata","1 riga modificata","{0} righe modificate","Differenza {0} di {1}: riga originale {2}, {3}, riga modificata {4}, {5}","vuota","{0} riga non modificata {1}","{0} riga originale {1} riga modificata {2}","+ {0} riga modificata {1}","- {0} riga originale {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" utilizzare {0} per aprire la Guida all'accessibilit\xE0."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["Copia le righe eliminate","Copia la riga eliminata","Copia righe modificate","Copia riga modificata","Copia la riga eliminata ({0})","Copia riga modificata ({0})","Ripristina questa modifica"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["Usa la visualizzazione inline quando lo spazio \xE8 limitato","Mostra blocchi di codice spostati","Apri Visualizzatore differenze accessibile","Attiva/Disattiva comprimi aree non modificate","Attiva/Disattiva mostra blocchi di codice spostati","Attiva/disattiva la visualizzazione inline quando lo spazio \xE8 limitato","Editor diff","Interruttore laterale","Esci da Sposta confronto","Comprimi tutte le aree non modificate","Mostra tutte le aree non modificate","Visualizzatore differenze accessibile","Vai alla differenza successiva","Vai alla differenza precedente"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["Ridurre area non modificata","Fai clic o trascina per visualizzare altri elementi sopra","Mostra area non modificata","Fai clic o trascina per visualizzare altri elementi sotto","{0} righe nascoste","Fare doppio clic per espandere"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["Codice spostato con modifiche alla riga {0}-{1}","Codice spostato con modifiche dalla riga {0}-{1}","Codice spostato alla riga {0}-{1}","Codice spostato dalla riga {0}-{1}"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["Ripristina modifiche selezionate","Annulla modifica"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["Colore del bordo per il testo spostato nell'editor diff.","Colore del bordo attivo per il testo spostato nell'editor diff.","Colore dell'ombreggiatura intorno ai widget dell'area non modificata.","Effetto di riga per gli inserimenti nell'editor diff.","Effetto di riga per le rimozioni nell'editor diff."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["Tieni premuto il tasto {0} per passare il mouse"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["Colore di sfondo dell'intestazione dell'editor diff","Colore di sfondo dell'editor diff a pi\xF9 file","Colore del bordo dell\u2019editor diff multi file"],"vs/editor/common/config/editorConfigurationSchema":["Editor","Numero di spazi a cui \xE8 uguale una scheda. Questa impostazione viene sottoposta a override in base al contenuto del file quando {0} \xE8 attivo.",'Numero di spazi utilizzati per il rientro o `"tabSize"` per usare il valore di `#editor.tabSize#`. Questa impostazione viene sostituita in base al contenuto del file quando `#editor.detectIndentation#` \xE8 attivo.',"Inserire spazi quando si preme 'TAB'. Questa impostazione viene sottoposta a override in base al contenuto del file quando {0} \xE8 attivo.","Controlla se {0} e {1} verranno rilevati automaticamente quando un file viene aperto in base al contenuto del file.","Rimuovi gli spazi finali inseriti automaticamente.","Gestione speciale dei file di grandi dimensioni per disabilitare alcune funzionalit\xE0 che fanno un uso intensivo della memoria.","Disattivare i suggerimenti basati su Word.","Suggerisci parole solo dal documento attivo.","Suggerisci parole da tutti i documenti aperti della stessa lingua.","Suggerisci parole da tutti i documenti aperti.","Controlla se i completamenti devono essere calcolati in base alle parole nel documento e dai documenti da cui vengono calcolati.","L'evidenziazione semantica \xE8 abilitata per tutti i temi colore.","L'evidenziazione semantica \xE8 disabilitata per tutti i temi colore.","La configurazione dell'evidenziazione semantica \xE8 gestita tramite l'impostazione `semanticHighlighting` del tema colori corrente.","Controlla se l'evidenziazione semanticHighlighting \xE8 visualizzata per i linguaggi che la supportano.","Consente di mantenere aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme 'ESC'.","Per motivi di prestazioni le righe di lunghezza superiore non verranno tokenizzate","Controlla se la tokenizzazione deve essere eseguita in modo asincrono in un web worker.","Controlla se deve essere registrata la tokenizzazione asincrona. Solo per il debug.","Controlla se la tokenizzazione asincrona deve essere verificata rispetto alla tokenizzazione legacy in background. Potrebbe rallentare la tokenizzazione. Solo per il debug.","Definisce i simboli di parentesi quadra che aumentano o riducono il rientro.","Sequenza di stringa o carattere parentesi quadra di apertura.","Sequenza di stringa o carattere parentesi quadra di chiusura.","Definisce le coppie di bracket colorate in base al livello di annidamento se \xE8 abilitata la colorazione delle coppie di bracket.","Sequenza di stringa o carattere parentesi quadra di apertura.","Sequenza di stringa o carattere parentesi quadra di chiusura.","Timeout in millisecondi dopo il quale il calcolo delle differenze viene annullato. Usare 0 per indicare nessun timeout.","Dimensioni massime del file in MB per cui calcolare le differenze. Usare 0 per nessun limite.","Controlla se l'editor diff mostra le differenze affiancate o incorporate.","Se la larghezza dell'editor diff \xE8 inferiore a questo valore, verr\xE0 utilizzata la visualizzazione inline.","Se questa opzione \xE8 abilitata e la larghezza dell'editor \xE8 troppo piccola, verr\xE0 usata la visualizzazione inline.","Se questa opzione \xE8 abilitata, l'editor diff mostra le frecce nel margine del glifo per ripristinare le modifiche.","Se abilitato, l'editor differenze ignora le modifiche relative a spazi vuoti iniziali e finali.","Controlla se l'editor diff mostra gli indicatori +/- per le modifiche aggiunte/rimosse.","Controlla se l'editor visualizza CodeLens.","Il ritorno a capo automatico delle righe non viene mai applicato.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza del viewport.","Le righe andranno a capo in base all'impostazione {0}.","Usare l'algoritmo diffing legacy.","Usare l'algoritmo diffing avanzato.","Controlla se l'editor diff mostra aree non modificate.","Controlla il numero di righe usate per le aree non modificate.","Controlla il numero minimo di righe usate per le aree non modificate.","Controlla il numero di righe usate come contesto durante il confronto delle aree non modificate.","Controlla se l'editor diff deve mostrare gli spostamenti di codice rilevati.","Controlla se l'editor diff mostra decorazioni vuote per vedere dove sono stati inseriti o eliminati caratteri."],"vs/editor/common/config/editorOptions":["Usare le API della piattaforma per rilevare quando viene collegata un'utilit\xE0 per la lettura dello schermo.","Ottimizzare l'utilizzo con un'utilit\xE0 per la lettura dello schermo.","Si presuppone che un'utilit\xE0 per la lettura dello schermo non sia collegata.","Controllare se l'interfaccia utente deve essere eseguito in una modalit\xE0 ottimizzata per le utilit\xE0 per la lettura dello schermo.","Consente di controllare se viene inserito uno spazio quando si aggiungono commenti.","Controlla se ignorare le righe vuote con le opzioni per attivare/disattivare, aggiungere o rimuovere relative ai commenti di riga.","Controlla se, quando si copia senza aver effettuato una selezione, viene copiata la riga corrente.","Controlla se il cursore deve passare direttamente alla ricerca delle corrispondenze durante la digitazione.","Non fornire mai la stringa di ricerca dalla selezione dell'editor.","Fornisci sempre la stringa di ricerca dalla selezione dell'editor, inclusa la parola alla posizione del cursore.","Fornisci la stringa di ricerca solo dalla selezione dell'editor.","Controlla se inizializzare la stringa di ricerca nel Widget Trova con il testo selezionato nell'editor.","Non attivare mai automaticamente la funzione Trova nella selezione (impostazione predefinita).","Attiva sempre automaticamente la funzione Trova nella selezione.","Attiva automaticamente la funzione Trova nella selezione quando sono selezionate pi\xF9 righe di contenuto.","Controlla la condizione per attivare automaticamente la funzione Trova nella selezione.","Controlla se il widget Trova deve leggere o modificare gli appunti di ricerca condivisi in macOS.","Controlla se il widget Trova deve aggiungere altre righe nella parte superiore dell'editor. Quando \xE8 true, \xE8 possibile scorrere oltre la prima riga quando il widget Trova \xE8 visibile.","Controlla se la ricerca viene riavviata automaticamente dall'inizio o dalla fine quando non \xE8 possibile trovare ulteriori corrispondenze.","Abilita/Disabilita i caratteri legatura (funzionalit\xE0 dei tipi di carattere 'calt' e 'liga'). Impostare su una stringa per un controllo pi\xF9 specifico sulla propriet\xE0 CSS 'font-feature-settings'.","Propriet\xE0 CSS 'font-feature-settings' esplicita. Se \xE8 necessario solo attivare/disattivare le legature, \xE8 possibile passare un valore booleano.","Consente di configurare i caratteri legatura o le funzionalit\xE0 dei tipi di carattere. Pu\xF2 essere un valore booleano per abilitare/disabilitare le legature o una stringa per il valore della propriet\xE0 CSS 'font-feature-settings'.","Abilita/disabilita la conversione dada font-weight a font-variation-settings. Modificare questa impostazione in una stringa per il controllo con granularit\xE0 fine della propriet\xE0 CSS Font-variation.","Propriet\xE0 CSS esplicita 'font-variation-settings'. \xC8 invece possibile passare un valore booleano se \xE8 sufficiente convertire font-weight in font-variation-settings.","Configura le varianti di carattere. Pu\xF2 essere un valore booleano per abilitare/disabilitare la conversione da font-weight a font-variation-settings o una stringa per il valore della propriet\xE0 'font-variation-settings' CSS.","Controlla le dimensioni del carattere in pixel.",'Sono consentiti solo le parole chiave "normal" e "bold" o i numeri compresi tra 1 e 1000.','Controlla lo spessore del carattere. Accetta le parole chiave "normal" e "bold" o i numeri compresi tra 1 e 1000.',"Mostra la visualizzazione in anteprima dei risultati (impostazione predefinita)","Passa al risultato principale e mostra una visualizzazione in anteprima","Passa al risultato principale e abilita l'esplorazione senza anteprima per gli altri","Questa impostazione \xE8 deprecata. In alternativa, usare impostazioni diverse, come 'editor.editor.gotoLocation.multipleDefinitions' o 'editor.editor.gotoLocation.multipleImplementations'.","Controlla il comportamento del comando 'Vai alla definizione' quando esistono pi\xF9 posizioni di destinazione.","Controlla il comportamento del comando 'Vai alla definizione di tipo' quando esistono pi\xF9 posizioni di destinazione.","Controlla il comportamento del comando 'Vai a dichiarazione' quando esistono pi\xF9 posizioni di destinazione.","Controlla il comportamento del comando 'Vai a implementazioni' quando esistono pi\xF9 posizioni di destinazione.","Controlla il comportamento del comando 'Vai a riferimenti' quando esistono pi\xF9 posizioni di destinazione.","ID comando alternativo eseguito quando il risultato di 'Vai alla definizione' \xE8 la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai alla definizione di tipo' \xE8 la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a dichiarazione' \xE8 la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a implementazione' \xE8 la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a riferimento' \xE8 la posizione corrente.","Controlla se mostrare l'area sensibile al passaggio del mouse.","Controlla il ritardo in millisecondi dopo il quale viene mostrato il passaggio del mouse.","Controlla se l'area sensibile al passaggio del mouse deve rimanere visibile quando vi si passa sopra con il puntatore del mouse.","Controlla il ritardo in millisecondi dopo il quale viene nascosto il passaggio del mouse. Richiede l'abilitazione di `editor.hover.sticky`.","Preferisci la visualizzazione al passaggio del mouse sopra la riga, se c'\xE8 spazio.","Presuppone che la larghezza sia identica per tutti caratteri. Si tratta di un algoritmo veloce che funziona correttamente per i tipi di carattere a spaziatura fissa e determinati script (come i caratteri latini) in cui i glifi hanno larghezza identica.","Delega il calcolo dei punti di ritorno a capo al browser. Si tratta di un algoritmo lento che potrebbe causare blocchi con file di grandi dimensioni, ma funziona correttamente in tutti gli altri casi.","Controlla l'algoritmo che calcola i punti di wrapping. Si noti che quando \xE8 attiva la modalit\xE0 di accessibilit\xE0, la modalit\xE0 avanzata verr\xE0 usata per un'esperienza ottimale.","Disabilita il menu azione codice.","Visualizza il menu azione codice quando il cursore \xE8 su righe di codice.","Mostra il menu azione codice quando il cursore \xE8 su righe con codice o su righe vuote.","Abilita la lampadina delle azioni codice nell'editor.","Mostra gli ambiti correnti annidati durante lo scorrimento nella parte superiore dell'editor.","Definisce il numero massimo di righe permanenti da mostrare.","Definisce il modello da utilizzare per determinare quali linee applicare. Se il modello di struttura non esiste, verr\xE0 eseguito il fallback sul modello del provider di riduzione che rientra nel modello di rientro. Questo ordine viene rispettato in tutti e tre i casi.","Abilitare lo scorrimento di scorrimento permanente con la barra di scorrimento orizzontale dell'editor.","Abilita i suggerimenti incorporati nell'Editor.","Gli hint di inlay sono abilitati","Gli hint di inlay vengono visualizzati per impostazione predefinita e vengono nascosti quando si tiene premuto {0}","Gli hint di inlay sono nascosti per impostazione predefinita e vengono visualizzati solo quando si tiene premuto {0}","Gli hint di inlay sono disabilitati","Controlla le dimensioni del carattere dei suggerimenti di inlay nell'editor. Per impostazione predefinita, {0} viene usato quando il valore configurato \xE8 minore di {1} o maggiore delle dimensioni del carattere dell'editor.","Controlla la famiglia di caratteri dei suggerimenti inlay nell'editor. Se impostato su vuoto, viene usato {0}.","Abilita il riempimento attorno ai suggerimenti incorporati nell'editor.",`Controlla l'altezza della riga. \r + - Usare 0 per calcolare automaticamente l'altezza della riga dalle dimensioni del carattere.\r + - I valori compresi tra 0 e 8 verranno usati come moltiplicatore con le dimensioni del carattere.\r + - I valori maggiori o uguali a 8 verranno usati come valori effettivi.`,"Controlla se la minimappa \xE8 visualizzata.","Controlla se la minimappa viene nascosta automaticamente.","La minimappa ha le stesse dimensioni del contenuto dell'editor (e potrebbe supportare lo scorrimento).","Se necessario, la minimappa si ridurr\xE0 o si ingrandir\xE0 in modo da adattarsi all'altezza dell'editor (nessuno scorrimento).","Se necessario, la minimappa si ridurr\xE0 in modo che la larghezza non superi mai quella dell'editor (nessuno scorrimento).","Controlla le dimensioni della minimappa.","Definisce il lato in cui eseguire il rendering della minimappa.","Controlla se il dispositivo di scorrimento della minimappa \xE8 visualizzato.","Scala del contenuto disegnato nella minimappa: 1, 2 o 3.","Esegue il rendering dei caratteri effettivi di una riga in contrapposizione ai blocchi colore.","Limita la larghezza della minimappa in modo da eseguire il rendering al massimo di un certo numero di colonne.","Controlla la quantit\xE0 di spazio tra il bordo superiore dell'editor e la prima riga.","Controlla la quantit\xE0 di spazio tra il bordo inferiore dell'editor e l'ultima riga.","Abilita un popup che mostra documentazione sui parametri e informazioni sui tipi mentre si digita.","Controlla se il menu dei suggerimenti per i parametri esegue un ciclo o si chiude quando viene raggiunta la fine dell'elenco.","I suggerimenti rapidi vengono visualizzati all'interno del widget dei suggerimenti","I suggerimenti rapidi vengono visualizzati come testo fantasma","I suggerimenti rapidi sono disabilitati","Abilita i suggerimenti rapidi all'interno di stringhe.","Abilita i suggerimenti rapidi all'interno di commenti.","Abilita i suggerimenti rapidi all'esterno di stringhe e commenti.","Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione. Pu\xF2 essere controllato per la digitazione in commenti, stringhe e altro codice. Il suggerimento rapido pu\xF2 essere configurato per essere visualizzato come testo fantasma o con il widget dei suggerimenti. Tenere anche conto dell'impostazione '{0}' che controlla se i suggerimenti vengono attivati dai caratteri speciali.","I numeri di riga non vengono visualizzati.","I numeri di riga vengono visualizzati come numeri assoluti.","I numeri di riga vengono visualizzati come distanza in linee alla posizione del cursore.","I numeri di riga vengono visualizzati ogni 10 righe.","Controlla la visualizzazione dei numeri di riga.","Numero di caratteri a spaziatura fissa in corrispondenza del quale verr\xE0 eseguito il rendering di questo righello dell'editor.","Colore di questo righello dell'editor.","Esegue il rendering dei righelli verticali dopo un certo numero di caratteri a spaziatura fissa. Usare pi\xF9 valori per pi\xF9 righelli. Se la matrice \xE8 vuota, non viene disegnato alcun righello.","La barra di scorrimento verticale sar\xE0 visibile solo quando necessario.","La barra di scorrimento verticale sar\xE0 sempre visibile.","La barra di scorrimento verticale sar\xE0 sempre nascosta.","Controlla la visibilit\xE0 della barra di scorrimento verticale.","La barra di scorrimento orizzontale sar\xE0 visibile solo quando necessario.","La barra di scorrimento orizzontale sar\xE0 sempre visibile.","La barra di scorrimento orizzontale sar\xE0 sempre nascosta.","Controlla la visibilit\xE0 della barra di scorrimento orizzontale.","Larghezza della barra di scorrimento verticale.","Altezza della barra di scorrimento orizzontale.","Controlla se i clic consentono di attivare lo scorrimento per pagina o di passare direttamente alla posizione di clic.","Se impostata, la barra di scorrimento orizzontale non aumenter\xE0 le dimensioni del contenuto dell'editor.","Controlla se tutti i caratteri ASCII non di base sono evidenziati. Solo i caratteri compresi tra U+0020 e U+007E, tabulazione, avanzamento riga e ritorno a capo sono considerati ASCII di base.","Controlla se i caratteri che riservano spazio o non hanno larghezza sono evidenziati.","Controlla se i caratteri che possono essere confusi con i caratteri ASCII di base sono evidenziati, ad eccezione di quelli comuni nelle impostazioni locali dell'utente corrente.","Controlla se anche i caratteri nei commenti devono essere soggetti a evidenziazione Unicode.","Controlla se anche i caratteri nelle stringhe devono essere soggetti all'evidenziazione Unicode.","Definisce i caratteri consentiti che non vengono evidenziati.","I caratteri Unicode comuni nelle impostazioni locali consentite non vengono evidenziati.","Controlla se visualizzare automaticamente i suggerimenti inline nell'Editor.","Mostra la barra degli strumenti dei suggerimenti in linea ogni volta che viene visualizzato un suggerimento in linea.","Mostra la barra degli strumenti dei suggerimenti in linea quando al passaggio del mouse su un suggerimento in linea.","Non mostrare mai la barra dei suggerimenti in linea.","Controlla quando mostrare la barra dei suggerimenti in linea.","Controlla la modalit\xE0 di interazione dei suggerimenti inline con il widget dei suggerimenti. Se questa opzione \xE8 abilitata, il widget dei suggerimenti non viene visualizzato automaticamente quando sono disponibili suggerimenti inline.","Controlla la famiglia di caratteri dei suggerimenti inline.","Controlla se visualizzare le modifiche inline nell'Editor.","Mostra la barra degli strumenti di modifica inline ogni volta che viene visualizzato un suggerimento inline.","Mostra la barra degli strumenti di modifica inline quando si passa il mouse su un suggerimento inline.","Non mostrare mai la barra di modifica inline.","Controlla quando mostrare la barra di modifica inline.","Controlla la famiglia di caratteri della modifica inline.","Controlla se colorare lo sfondo delle modifiche inline.","Controlla se la colorazione delle coppie di parentesi \xE8 abilitata. Usare {0} per eseguire l'override dei colori di evidenziazione delle parentesi.","Controlla se ogni tipo di parentesi ha un pool di colori indipendente.","Abilita le guide per coppie di parentesi quadre.","Abilita le guide delle coppie di parentesi solo per la coppia di parentesi attive.","Disabilita le guide per coppie di parentesi quadre.","Controlla se le guide delle coppie di parentesi sono abilitate o meno.","Abilita le guide orizzontali come aggiunta alle guide per coppie di parentesi verticali.","Abilita le guide orizzontali solo per la coppia di parentesi attive.","Disabilita le guide per coppie di parentesi orizzontali.","Controlla se le guide orizzontali delle coppie di parentesi sono abilitate o meno.","Controlla se l'editor debba evidenziare la coppia di parentesi attive.","Controlla se l'editor deve eseguire il rendering delle guide con rientro.","Evidenzia la guida di rientro attiva.","Evidenzia la guida di rientro attiva anche se le guide delle parentesi quadre sono evidenziate.","Non evidenziare la guida di rientro attiva.","Controlla se l'editor deve evidenziare la guida con rientro attiva.","Inserisce il suggerimento senza sovrascrivere il testo a destra del cursore.","Inserisce il suggerimento e sovrascrive il testo a destra del cursore.","Controlla se le parole vengono sovrascritte quando si accettano i completamenti. Tenere presente che questa opzione dipende dalle estensioni che accettano esplicitamente questa funzionalit\xE0.","Controlla se i suggerimenti di filtro e ordinamento valgono per piccoli errori di battitura.","Controlla se l'ordinamento privilegia le parole che appaiono pi\xF9 vicine al cursore.","Controlla se condividere le selezioni dei suggerimenti memorizzati tra aree di lavoro e finestre (richiede `#editor.suggestSelection#`).","Selezionare sempre un suggerimento quando si attiva automaticamente IntelliSense.","Non selezionare mai un suggerimento quando si attiva automaticamente IntelliSense.","Selezionare un suggerimento solo quando si attiva IntelliSense da un carattere di trigger.","Selezionare un suggerimento solo quando si attiva IntelliSense durante la digitazione.","Controlla se viene selezionato un suggerimento quando viene visualizzato il widget. Si noti che questo si applica solo ai suggerimenti attivati automaticamente ('#editor.quickSuggestions#' e '#editor.suggestOnTriggerCharacters#') e che un suggerimento viene sempre selezionato quando viene richiamato in modo esplicito, ad esempio tramite 'CTRL+BARRA SPAZIATRICE'.","Controlla se un frammento attivo impedisce i suggerimenti rapidi.","Controlla se mostrare o nascondere le icone nei suggerimenti.","Controlla la visibilit\xE0 della barra di stato nella parte inferiore del widget dei suggerimenti.","Controlla se visualizzare in anteprima il risultato del suggerimento nell'Editor.","Controlla se i dettagli del suggerimento vengono visualizzati inline con l'etichetta o solo nel widget dei dettagli.","Questa impostazione \xE8 deprecata. Il widget dei suggerimenti pu\xF2 ora essere ridimensionato.","Questa impostazione \xE8 deprecata. In alternativa, usare impostazioni diverse, come 'editor.suggest.showKeywords' o 'editor.suggest.showSnippets'.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `method`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `function`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `constructor`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `deprecated`.","Quando \xE8 abilitato, il filtro IntelliSense richiede che il primo carattere corrisponda all'inizio di una parola, ad esempio 'c' per 'Console' o 'WebContext' ma _non_ per 'description'. Quando \xE8 disabilitato, IntelliSense mostra pi\xF9 risultati, ma li ordina comunque in base alla qualit\xE0 della corrispondenza.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `field`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `variable`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `class`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `struct`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `interface`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `module`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `property`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `event`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `operator`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `unit`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `value`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `constant`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `enum`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `enumMember`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `keyword`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `text`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `color`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `file`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `reference`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `customcolor`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `folder`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `typeParameter`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `snippet`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `user`.","Se \xE8 abilitata, IntelliSense mostra i suggerimenti relativi a `issues`.","Indica se gli spazi vuoti iniziali e finali devono essere sempre selezionati.","Indica se \xE8 necessario selezionare le sottoparole ( come 'foo' in 'fooBar' o 'foo_bar').","Nessun rientro. Le righe con ritorno a capo iniziano dalla colonna 1. ","Le righe con ritorno a capo hanno lo stesso rientro della riga padre.","Le righe con ritorno a capo hanno un rientro di +1 rispetto alla riga padre.","Le righe con ritorno a capo hanno un rientro di +2 rispetto alla riga padre.","Controlla il rientro delle righe con ritorno a capo.","Controlla se \xE8 possibile trascinare un file in un editor di testo tenendo premuto il tasto \u201CMAIUSC\u201D (invece di aprire il file in un editor).","Controlla se viene visualizzato un widget quando si rilasciano file nell'editor. Questo widget consente di controllare la modalit\xE0 di rilascio del file.","Mostra il widget del selettore di rilascio dopo il rilascio di un file nell'editor.","Non visualizzare mai il widget del selettore di rilascio. Usare sempre il provider di rilascio predefinito.","Controlla se \xE8 possibile incollare il contenuto in modi diversi.","Controlla se viene visualizzato un widget quando si incolla il contenuto nell'editor. Questo widget consente di controllare il modo in cui il file viene incollato.","Mostra il widget del selettore dell'operazione Incolla dopo che il contenuto \xE8 stato incollato nell'editor.","Non visualizzare mai il widget del selettore dell'operazione Incolla. Usare sempre il comportamento dell'operazione Incolla predefinito.","Controlla se accettare i suggerimenti con i caratteri di commit. Ad esempio, in JavaScript il punto e virgola (';') pu\xF2 essere un carattere di commit che accetta un suggerimento e digita tale carattere.","Accetta un suggerimento con 'Invio' solo quando si apporta una modifica al testo.","Controlla se i suggerimenti devono essere accettati con 'INVIO' in aggiunta a 'TAB'. In questo modo \xE8 possibile evitare ambiguit\xE0 tra l'inserimento di nuove righe e l'accettazione di suggerimenti.","Controlla il numero di righe nell'Editor che possono essere lette alla volta da un utilit\xE0 per la lettura dello schermo. Quando viene rilevata un'utilit\xE0 per la lettura dello schermo, questo valore viene impostato su 500 per impostazione predefinita. Avviso: questa opzione pu\xF2 influire sulle prestazioni se il numero di righe \xE8 superiore a quello predefinito.","Contenuto editor","Controllare se i suggerimenti inline vengono annunciati da un'utilit\xE0 per la lettura dello schermo.","Usa le configurazioni del linguaggio per determinare la chiusura automatica delle parentesi.","Chiudi automaticamente le parentesi solo quando il cursore si trova alla sinistra di uno spazio vuoto.","Controlla se l'editor deve chiudere automaticamente le parentesi quadre dopo che sono state aperte.","Usare le configurazioni del linguaggio per determinare la chiusura automatica dei commenti.","Chiudere automaticamente i commenti solo quando il cursore si trova alla sinistra di uno spazio vuoto.","Controlla se l'editor deve chiudere automaticamente i commenti dopo che sono stati aperti.","Rimuove le virgolette o le parentesi quadre di chiusura adiacenti solo se sono state inserite automaticamente.","Controlla se l'editor deve rimuovere le virgolette o le parentesi quadre di chiusura adiacenti durante l'eliminazione.","Digita sopra le virgolette o le parentesi quadre di chiusura solo se sono state inserite automaticamente.","Controlla se l'editor deve digitare su virgolette o parentesi quadre.","Usa le configurazioni del linguaggio per determinare la chiusura automatica delle virgolette.","Chiudi automaticamente le virgolette solo quando il cursore si trova alla sinistra di uno spazio vuoto.","Controlla se l'editor deve chiudere automaticamente le citazioni dopo che sono state aperte.","L'editor non inserir\xE0 automaticamente il rientro.","L'editor manterr\xE0 il rientro della riga corrente.","L'editor manterr\xE0 il rientro della riga corrente e rispetter\xE0 le parentesi definite dalla lingua.","L'editor manterr\xE0 il rientro della riga corrente, rispetter\xE0 le parentesi definite dalla lingua e richiamer\xE0 le regole onEnterRules speciali definite dalle lingue.","L'editor manterr\xE0 il rientro della riga corrente, rispetter\xE0 le parentesi definite dalla lingua, richiamer\xE0 le regole onEnterRules speciali definite dalle lingue e rispetter\xE0 le regole indentationRules definite dalle lingue.","Controlla se l'editor deve regolare automaticamente il rientro quando gli utenti digitano, incollano, spostano le righe o applicano il rientro.","Usa le configurazioni del linguaggio per determinare quando racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.","Racchiude la selezione tra virgolette ma non tra parentesi quadre.","Racchiude la selezione tra parentesi quadre ma non tra virgolette.","Controlla se l'editor deve racchiudere automaticamente le selezioni quando si digitano virgolette o parentesi quadre.","Emula il comportamento di selezione dei caratteri di tabulazione quando si usano gli spazi per il rientro. La selezione verr\xE0 applicata alle tabulazioni.","Controlla se l'editor visualizza CodeLens.","Controlla la famiglia di caratteri per CodeLens.","Controlla le dimensioni del carattere in pixel per CodeLens. Quando \xE8 impostata su 0, viene usato il 90% del valore di '#editor.fontSize#'.","Controlla se l'editor deve eseguire il rendering della selezione colori e degli elementi Decorator di tipo colore inline.","Fare in modo che la selezione colori venga visualizzata sia al clic che al passaggio del mouse sull\u2019elemento Decorator colore","Fare in modo che la selezione colori venga visualizzata al passaggio del mouse sull'elemento Decorator colore","Fare in modo che la selezione colori venga visualizzata quando si fa clic sull'elemento Decorator colore","Controlla la condizione in modo che venga visualizzata la selezione colori da un elemento Decorator colore.","Controlla il numero massimo di elementi Decorator a colori di cui \xE8 possibile eseguire il rendering in un editor contemporaneamente.","Abilita l'uso di mouse e tasti per la selezione delle colonne.","Controlla se l'evidenziazione della sintassi deve essere copiata negli Appunti.","Controllo dello stile di animazione del cursore.","L'animazione con cursore arrotondato \xE8 disabilitata.","L'animazione con cursore uniforme \xE8 abilitata solo quando l'utente sposta il cursore con un movimento esplicito.","L'animazione con cursore uniforme \xE8 sempre abilitata.","Controlla se l'animazione del cursore con anti-aliasing deve essere abilitata.","Controlla lo stile del cursore.","Controllare il numero minimo di linee iniziali visibili (minimo 0) e finali (minimo 1) visibili che circondano il cursore. Noto come 'scrollOff' o 'scrollOffset' in altri editor.","`cursorSurroundingLines` viene applicato solo quando \xE8 attivato tramite la tastiera o l'API.","`cursorSurroundingLines` viene sempre applicato.","Controlla quando deve essere applicato `cursorSurroundingLines`.","Controlla la larghezza del cursore quando `#editor.cursorStyle#` \xE8 impostato su `line`.","Controlla se l'editor deve consentire lo spostamento di selezioni tramite trascinamento della selezione.","Usare un nuovo metodo di rendering con svgs.","Usare un nuovo metodo di rendering con tipi di caratteri.","Usare il metodo di rendering stabile.","Controlla se viene eseguito il rendering degli spazi vuoti con un nuovo metodo sperimentale.","Moltiplicatore della velocit\xE0 di scorrimento quando si preme `Alt`.","Controlla se per l'editor \xE8 abilitata la riduzione del codice.","Usa una strategia di riduzione specifica della lingua, se disponibile; altrimenti ne usa una basata sui rientri.","Usa la strategia di riduzione basata sui rientri.","Controlla la strategia per il calcolo degli intervalli di riduzione.","Controlla se l'editor deve evidenziare gli intervalli con riduzione del codice.","Controlla se l'editor comprime automaticamente gli intervalli di importazione.","Numero massimo di aree riducibili. Se si aumenta questo valore, l'editor potrebbe diventare meno reattivo quando l'origine corrente contiene un numero elevato di aree riducibili.","Controlla se, facendo clic sul contenuto vuoto dopo una riga ridotta, la riga viene espansa.","Controlla la famiglia di caratteri.","Controlla se l'editor deve formattare automaticamente il contenuto incollato. Deve essere disponibile un formattatore che deve essere in grado di formattare un intervallo in un documento.","Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione.","Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.","Controlla se il cursore deve essere nascosto nel righello delle annotazioni.","Controlla la spaziatura tra le lettere in pixel.","Controlla se la modifica collegata \xE8 abilitata per l'editor. A seconda del linguaggio, i simboli correlati, ad esempio i tag HTML, vengono aggiornati durante la modifica.","Controlla se l'editor deve individuare i collegamenti e renderli selezionabili.","Evidenzia le parentesi graffe corrispondenti.","Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse.","Ingrandisce il carattere dell\u2019editor quando si usa la rotella del mouse e si tiene premuto `Cmd`.","Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto 'CTRL'.","Unire i cursori multipli se sovrapposti.","Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.","Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.","Modificatore da usare per aggiungere pi\xF9 cursori con il mouse. I movimenti del mouse Vai alla definizione e Apri collegamento si adatteranno in modo da non entrare in conflitto con il [modificatore di selezione multipla](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Ogni cursore incolla una singola riga del testo.","Ogni cursore incolla il testo completo.","Controlla l'operazione Incolla quando il conteggio delle righe del testo incollato corrisponde al conteggio dei cursori.","Controlla il numero massimo di cursori che possono essere presenti in un editor attivo contemporaneamente.","Non evidenzia le occorrenze.","Evidenzia le occorrenze solo nel file corrente.","Sperimentale: evidenzia le occorrenze in tutti i file aperti validi.","Controlla se le occorrenze devono essere evidenziate nei file aperti.","Controlla se deve essere disegnato un bordo intorno al righello delle annotazioni.","Sposta lo stato attivo sull'albero quando si apre l'anteprima","Sposta lo stato attivo sull'editor quando si apre l'anteprima","Controlla se spostare lo stato attivo sull'editor inline o sull'albero nel widget di anteprima.","Controlla se il movimento del mouse Vai alla definizione consente sempre di aprire il widget di anteprima.","Controlla il ritardo in millisecondi dopo il quale verranno visualizzati i suggerimenti rapidi.","Controlla se l'editor viene rinominato automaticamente in base al tipo.","Deprecata. In alternativa, usare `editor.linkedEditing`.","Controlla se l'editor deve eseguire il rendering dei caratteri di controllo.","Esegue il rendering dell'ultimo numero di riga quando il file termina con un carattere di nuova riga.","Mette in evidenza sia la barra di navigazione sia la riga corrente.","Controlla in che modo l'editor deve eseguire il rendering dell'evidenziazione di riga corrente.","Controlla se l'editor deve eseguire il rendering dell'evidenziazione della riga corrente solo quando l'editor ha lo stato attivo.","Esegue il rendering dei caratteri di spazio vuoto ad eccezione dei singoli spazi tra le parole.","Esegui il rendering dei caratteri di spazio vuoto solo nel testo selezionato.","Esegui il rendering solo dei caratteri di spazio vuoto finali.","Controlla in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto.","Controlla se le selezioni devono avere gli angoli arrotondati.","Controlla il numero di caratteri aggiuntivi oltre i quali l'editor scorrer\xE0 orizzontalmente.","Controlla se l'editor scorrer\xE0 oltre l'ultima riga.","Scorre solo lungo l'asse predominante durante lo scorrimento verticale e orizzontale simultaneo. Impedisce la deviazione orizzontale quando si scorre in verticale su un trackpad.","Controlla se gli appunti primari di Linux devono essere supportati.","Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione.","Mostra sempre i comandi di riduzione.","Non visualizzare mai i controlli di riduzione e diminuire le dimensioni della barra di navigazione.","Mostra i comandi di riduzione solo quando il mouse \xE8 posizionato sul margine della barra di scorrimento.","Controlla se i controlli di riduzione sul margine della barra di scorrimento vengono visualizzati.","Controllo dissolvenza del codice inutilizzato.","Controlla le variabili deprecate barrate.","Visualizza i suggerimenti del frammento prima degli altri suggerimenti.","Visualizza i suggerimenti del frammento dopo gli altri suggerimenti.","Visualizza i suggerimenti del frammento insieme agli altri suggerimenti.","Non mostrare i suggerimenti del frammento.","Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.","Controlla se per lo scorrimento dell'editor verr\xE0 usata un'animazione.","Controlla se l'hint di accessibilit\xE0 deve essere fornito agli utenti dell'utilit\xE0 per la lettura dello schermo quando viene visualizzato un completamento inline.","Dimensioni del carattere per il widget dei suggerimenti. Se impostato su {0}, viene usato il valore di {1}.","Altezza della riga per il widget dei suggerimenti. Se impostato su {0}, viene usato il valore {1}. Il valore minimo \xE8 8.","Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger.","Consente di selezionare sempre il primo suggerimento.","Consente di selezionare suggerimenti recenti a meno che continuando a digitare non ne venga selezionato uno, ad esempio `console.| ->; console.log` perch\xE9 `log` \xE8 stato completato di recente.","Consente di selezionare i suggerimenti in base a prefissi precedenti che hanno completato tali suggerimenti, ad esempio `co ->; console` e `con -> const`.","Controlla la modalit\xE0 di preselezione dei suggerimenti durante la visualizzazione dell'elenco dei suggerimenti.","La funzionalit\xE0 di completamento con tasto TAB inserir\xE0 il migliore suggerimento alla pressione del tasto TAB.","Disabilita le funzionalit\xE0 di completamento con tasto TAB.","Completa i frammenti con il tasto TAB quando i rispettivi prefissi corrispondono. Funziona in modo ottimale quando 'quickSuggestions' non \xE8 abilitato.","Abilit\xE0 la funzionalit\xE0 di completamento con tasto TAB.","I caratteri di terminazione di riga insoliti vengono rimossi automaticamente.","I caratteri di terminazione di riga insoliti vengono ignorati.","Prompt per i caratteri di terminazione di riga insoliti da rimuovere.","Rimuovi caratteri di terminazione di riga insoliti che potrebbero causare problemi.","Inserimento ed eliminazione dello spazio vuoto dopo le tabulazioni.","Usare la regola di interruzione di riga predefinita.","Le interruzioni di parola non devono essere usate per il testo cinese/giapponese/coreano (CJK). Il comportamento del testo non CJK \xE8 uguale a quello normale.","Controlla le regole di interruzione delle parole usate per il testo cinese/giapponese/coreano (CJK).","Caratteri che verranno usati come separatori di parola quando si eseguono operazioni o spostamenti correlati a parole.","Il ritorno a capo automatico delle righe non viene mai applicato.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza del viewport.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza di `#editor.wordWrapColumn#`.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza minima del viewport e di `#editor.wordWrapColumn#`.","Controlla il ritorno a capo automatico delle righe.","Controlla la colonna per il ritorno a capo automatico dell'editor quando il valore di `#editor.wordWrap#` \xE8 `wordWrapColumn` o `bounded`.","Controllare se visualizzare le decorazioni colori incorporate usando il provider colori predefinito del documento","Controlla se l'editor riceve le schede o le rinvia al workbench per lo spostamento."],"vs/editor/common/core/editorColorRegistry":["Colore di sfondo per l'evidenziazione della riga alla posizione del cursore.","Colore di sfondo per il bordo intorno alla riga alla posizione del cursore.","Colore di sfondo degli intervalli evidenziati, ad esempio dalle funzionalit\xE0 Quick Open e Trova. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo del bordo intorno agli intervalli selezionati.","Colore di sfondo del simbolo evidenziato, ad esempio per passare alla definizione o al simbolo successivo/precedente. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo del bordo intorno ai simboli selezionati.","Colore del cursore dell'editor.","Colore di sfondo del cursore editor. Permette di personalizzare il colore di un carattere quando sovrapposto da un blocco cursore.","Colore dei caratteri di spazio vuoto nell'editor.","Colore dei numeri di riga dell'editor.","Colore delle guide per i rientri dell'editor.","'editorIndentGuide.background' \xE8 deprecato. Usare 'editorIndentGuide.background1'.","Colore delle guide di indentazione dell'editor attivo","'editorIndentGuide.activeBackground' \xE8 deprecato. Usare 'editorIndentGuide.activeBackground1'.","Colore delle guide per i rientri dell'editor (1).","Colore delle guide per i rientri dell'editor (2).","Colore delle guide per i rientri dell'editor (3).","Colore delle guide per i rientri dell'editor (4).","Colore delle guide per i rientri dell'editor (5).","Colore delle guide per i rientri dell'editor (6).","Colore delle guide di indentazione dell'editor attivo (1).","Colore delle guide di indentazione dell'editor attivo (2).","Colore delle guide di indentazione dell'editor attivo (3).","Colore delle guide di indentazione dell'editor attivo (4).","Colore delle guide di indentazione dell'editor attivo (5).","Colore delle guide di indentazione dell'editor attivo (6).","Colore del numero di riga attivo dell'editor","Id \xE8 deprecato. In alternativa usare 'editorLineNumber.activeForeground'.","Colore del numero di riga attivo dell'editor","Colore della riga dell'editor finale quando editor.renderFinalNewline \xE8 impostato su in grigio.","Colore dei righelli dell'editor.","Colore primo piano delle finestre di CodeLens dell'editor","Colore di sfondo delle parentesi corrispondenti","Colore delle caselle di parentesi corrispondenti","Colore del bordo del righello delle annotazioni.","Colore di sfondo del righello delle annotazioni dell'editor.","Colore di sfondo della barra di navigazione dell'editor. La barra contiene i margini di glifo e i numeri di riga.","Colore del bordo del codice sorgente non necessario (non usato) nell'editor.",`Opacit\xE0 del codice sorgente non necessario (non usato) nell'editor. Ad esempio, con "#000000c0" il rendering del codice verr\xE0 eseguito con il 75% di opacit\xE0. Per i temi a contrasto elevato, usare il colore del tema 'editorUnnecessaryCode.border' per sottolineare il codice non necessario invece di opacizzarlo.`,"Colore del bordo del testo fantasma nell'Editor.","Colore primo piano del testo fantasma nell'Editor.","Colore di sfondo del testo fantasma nell'editor.","Colore del marcatore del righello delle annotazioni per le evidenziazioni degli intervalli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per gli errori.","Colore del marcatore del righello delle annotazioni per gli avvisi.","Colore del marcatore del righello delle annotazioni per i messaggi di tipo informativo.","Colore primo piano delle parentesi quadre (1). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore primo piano delle parentesi quadre (2). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore primo piano delle parentesi quadre (3). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore primo piano delle parentesi quadre (4). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore primo piano delle parentesi quadre (5). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore primo piano delle parentesi quadre (6). Richiede l'abilitazione della colorazione delle coppie di parentesi quadre.","Colore di primo piano delle parentesi impreviste.","Colore di sfondo delle guide per coppie di parentesi inattive (1). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi inattive (2). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi inattive (3). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi inattive (4). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi inattive (5). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi inattive (6). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (1). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (2). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (3). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (4). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (5). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore di sfondo delle guide per coppie di parentesi attive (6). Richiede l'abilitazione delle guide per coppie di parentesi.","Colore del bordo utilizzato per evidenziare i caratteri Unicode.","Colore di sfondo usato per evidenziare i caratteri Unicode."],"vs/editor/common/editorContextKeys":["Indica se il testo dell'editor ha lo stato attivo (il cursore lampeggia)","Indica se l'editor o un widget dell'editor ha lo stato attivo (ad esempio, lo stato attivo si trova nel widget di ricerca)","Indica se un editor o un input RTF ha lo stato attivo (il cursore lampeggia)","Indica se l'editor \xE8 di sola lettura","Indica se il contesto \xE8 un editor diff","Indica se il contesto \xE8 un editor diff incorporato","Indica se il contesto \xE8 un editor con pi\xF9 differenze","Indica se tutti i file nell'editor con pi\xF9 differenze sono compressi","Indica se l'editor diff ha delle modifiche","Indica se un blocco di codice spostato \xE8 selezionato per il confronto","Indica se il visualizzatore differenze accessibile \xE8 visibile","Indica se viene raggiunto il punto di interruzione inline side-by-side per il rendering dell'editor diff","Indica se `editor.columnSelection` \xE8 abilitato","Indica se per l'editor esiste testo selezionato","Indica se per l'editor esistono pi\xF9 selezioni","Indica se premendo `TAB`, lo stato attivo verr\xE0 spostato all'esterno dell'editor","Indica se il passaggio del puntatore nell'editor \xE8 visibile","Indica se l'area sensibile al passaggio del mouse dell'edito \xE8 attivata","Indica se lo scorrimento permanente \xE8 attivo","Indica se lo scorrimento permanente \xE8 visibile","Indicare se la selezione colori autonoma \xE8 visibile","Indicare se la selezione colori autonoma \xE8 evidenziata","Indica se l'editor fa parte di un editor pi\xF9 esteso (ad esempio notebook)","Identificatore lingua dell'editor","Indica se per l'editor esiste un provider di voci di completamento","Indica se per l'editor esiste un provider di azioni codice","Indica se per l'editor esiste un provider di CodeLens","Indica se per l'editor esiste un provider di definizioni","Indica se per l'editor esiste un provider di dichiarazioni","Indica se per l'editor esiste un provider di implementazioni","Indica se per l'editor esiste un provider di definizioni di tipo","Indica se per l'editor esiste un provider di passaggi del mouse","Indica se per l'editor esiste un provider di evidenziazione documenti","Indica se per l'editor esiste un provider di simboli di documenti","Indica se per l'editor esiste un provider di riferimenti","Indica se per l'editor esiste un provider di ridenominazione","Indica se per l'editor esiste un provider della guida per la firma","Indica se per l'editor esiste un provider di suggerimenti inline","Indica se per l'editor esiste un provider di formattazione documenti","Indica se per l'editor esiste un provider di formattazione di selezioni documento","Indica se per l'editor esistono pi\xF9 provider di formattazione documenti","Indica se per l'editor esistono pi\xF9 provider di formattazione di selezioni documento"],"vs/editor/common/languages":["matrice","valore booleano","classe","costante","costruttore","enumerazione","membro di enumerazione","evento","campo","file","funzione","interfaccia","chiave","metodo","modulo","spazio dei nomi","Null","numero","oggetto","operatore","pacchetto","propriet\xE0","stringa","struct","parametro di tipo","variabile","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["Testo normale"],"vs/editor/common/model/editStack":["Digitazione"],"vs/editor/common/standaloneStrings":["Sviluppatore: Controlla token","Vai a Riga/Colonna...","Mostra tutti i provider di accesso rapido","Riquadro comandi","Mostra ed esegui comandi","Vai al simbolo...","Vai al simbolo per categoria...","Contenuto editor","Premere ALT+F1 per le opzioni di accessibilit\xE0.","Attiva/disattiva tema a contrasto elevato","Effettuate {0} modifiche in {1} file"],"vs/editor/common/viewLayout/viewLineRenderer":["Mostra di pi\xF9 ({0})","{0} caratteri"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["Ancoraggio della selezione","Ancoraggio impostato alla posizione {0}:{1}","Imposta ancoraggio della selezione","Vai ad ancoraggio della selezione","Seleziona da ancoraggio a cursore","Annulla ancoraggio della selezione"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["Colore del marcatore del righello delle annotazioni per la corrispondenza delle parentesi.","Vai alla parentesi quadra","Seleziona fino alla parentesi","Rimuovi parentesi quadre","Vai alla parentesi &&quadra","Selezionare il testo all'interno includendo le parentesi o le parentesi graffe"],"vs/editor/contrib/caretOperations/browser/caretOperations":["Sposta testo selezionato a sinistra","Sposta testo selezionato a destra"],"vs/editor/contrib/caretOperations/browser/transpose":["Trasponi lettere"],"vs/editor/contrib/clipboard/browser/clipboard":["&&Taglia","Taglia","Taglia","Taglia","&&Copia","Copia","Copia","Copia","&&Incolla","Incolla","Incolla","Incolla","Copia con evidenziazione sintassi","Copia con nome","Copia con nome","Condividi","Condividi","Condividi"],"vs/editor/contrib/codeAction/browser/codeAction":["Si \xE8 verificato un errore sconosciuto durante l'applicazione dell'azione del codice"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["Tipo dell'azione codice da eseguire.","Controlla quando vengono applicate le azioni restituite.","Applica sempre la prima azione codice restituita.","Applica la prima azione codice restituita se \xE8 l'unica.","Non applicare le azioni codice restituite.","Controlla se devono essere restituite solo le azioni codice preferite.","Correzione rapida...","Azioni codice non disponibili","Non sono disponibili azioni codice preferite per '{0}'","Non sono disponibili azioni codice per '{0}'","Non sono disponibili azioni codice preferite","Azioni codice non disponibili","Effettua refactoring...","Non sono disponibili refactoring preferiti per '{0}'","Non sono disponibili refactoring per '{0}'","Non sono disponibili refactoring preferiti","Refactoring non disponibili","Azione origine...","Non sono disponibili azioni origine preferite per '{0}'","Non sono disponibili azioni origine per '{0}'","Non sono disponibili azioni origine preferite","Azioni origine non disponibili","Organizza import","Azioni di organizzazione Imports non disponibili","Correggi tutto","Non \xE8 disponibile alcuna azione Correggi tutto","Correzione automatica...","Non sono disponibili correzioni automatiche"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["Abilita/disabilita la visualizzazione delle intestazioni gruppo nel menu Azione codice.","Abilita/disabilita la visualizzazione della correzione rapida pi\xF9 vicino all'interno di una riga quando non \xE8 attualmente in una diagnostica."],"vs/editor/contrib/codeAction/browser/codeActionController":["Contesto: {0} alla riga {1} e alla colonna {2}.","Nascondi elementi disabilitati","Mostra elementi disabilitati"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["Altre azioni...","Correzione rapida","Estrai","Inline","Riscrivi","Sposta","Racchiudi tra","Azione di origine"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["Esegui: {0}","Mostra azioni codice. Correzione rapida preferita disponibile ({0})","Mostra Azioni codice ({0})","Mostra Azioni codice"],"vs/editor/contrib/codelens/browser/codelensController":["Mostra comandi di CodeLens per la riga corrente","Selezionare un comando"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["Fare clic per attivare/disattivare le opzioni di colore (rgb/hsl/hex)","Icona per chiudere la selezione colori"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&Mostra o sposta lo stato attivo su Selezione colori autonomo","Nascondere la Selezione colori","Inserire colore con Selezione colori autonomo","Mostra o sposta lo stato attivo su Selezione colori autonomo"],"vs/editor/contrib/comment/browser/comment":["Attiva/disattiva commento per la riga","Attiva/Disattiva commento per la &&riga","Aggiungi commento per la riga","Rimuovi commento per la riga","Attiva/Disattiva commento per il blocco","Attiva/Disattiva commento per il &&blocco"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Minimappa","Esegui rendering dei caratteri","Dimensioni verticali","Proporzionale","Riempimento","Adatta","Dispositivo di scorrimento","Passaggio del mouse","Sempre","Mostra il menu di scelta rapida editor"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["Cursore - Annulla","Cursore - Ripeti"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["Incolla come...","ID della modifica dell'operazione Incolla da provare ad applicare. Se non viene specificato, l'editor mostrer\xE0 un controllo di selezione.","Incolla come testo"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["Indica se il widget dell'operazione Incolla viene visualizzato","Mostra opzioni operazione Incolla...","Non \xE8 stata trovata alcuna modifica incolla per '{0}'","Esecuzione dei gestori del comando Incolla. Fare clic per annullare","Seleziona azione Incolla","Esecuzione dei gestori Incolla in corso"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["Predefinita","Inserire testo normale","Inserire l'URL","Inserire l'Uri","Inserire percorsi","Inserire percorso","Inserire percorsi relativi","Inserire percorso relativo","Inserisci HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["Configura il provider di eliminazione predefinito da usare per il contenuto di un tipo MIME specifico."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["Indica se il widget di rilascio viene visualizzato","Mostra opzioni di rilascio...","Esecuzione dei gestori di rilascio. Fare clic per annullare"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["Indica se l'editor esegue un'operazione annullabile, ad esempio 'Anteprima riferimenti'"],"vs/editor/contrib/find/browser/findController":["Il file \xE8 troppo grande per eseguire un'operazione di sostituzione.","Trova","&&Trova","Trova con gli argomenti","Trova con selezione","Trova successivo","Trova precedente","Andare a Corrispondenza...","Nessuna corrispondenza. Provare a cercare qualcos'altro.","Digitare un numero per passare a una corrispondenza specifica (tra 1 e {0})","Digitare un numero compreso tra 1 e {0}","Digitare un numero compreso tra 1 e {0}","Trova selezione successiva","Trova selezione precedente","Sostituisci","&&Sostituisci"],"vs/editor/contrib/find/browser/findWidget":["Icona per 'Trova nella selezione' nel widget di ricerca dell'editor.","Icona per indicare che il widget di ricerca dell'editor \xE8 compresso.","Icona per indicare che il widget di ricerca dell'editor \xE8 espanso.","Icona per 'Sostituisci' nel widget di ricerca dell'editor.","Icona per 'Sostituisci tutto' nel widget di ricerca dell'editor.","Icona per 'Trova precedente' nel widget di ricerca dell'editor.","Icona per 'Trova successivo' nel widget di ricerca dell'editor.","Trova/Sostituisci","Trova","Trova","Risultato precedente","Risultato successivo","Trova nella selezione","Chiudi","Sostituisci","Sostituisci","Sostituisci","Sostituisci tutto","Attiva/Disattiva sostituzione","Solo i primi {0} risultati vengono evidenziati, ma tutte le operazioni di ricerca funzionano su tutto il testo.","{0} di {1}","Nessun risultato","{0} trovato","{0} trovati per '{1}'","{0} trovati per '{1}' alla posizione {2}","{0} trovati per '{1}'","Il tasto di scelta rapida CTRL+INVIO ora consente di inserire l'interruzione di linea invece di sostituire tutto. Per eseguire l'override di questo comportamento, \xE8 possibile modificare il tasto di scelta rapida per editor.action.replaceAll."],"vs/editor/contrib/folding/browser/folding":["Espandi","Espandi in modo ricorsivo","Riduci","Attiva/Disattiva riduzione","Riduci in modo ricorsivo","Riduci tutti i blocchi commento","Riduci tutte le regioni","Espandi tutte le regioni","Riduci tutto tranne selezionato","Espandi tutto tranne selezionato","Riduci tutto","Espandi tutto","Vai alla cartella principale","Passa all'intervallo di riduzione precedente","Passa all'intervallo di riduzione successivo","Creare intervallo di riduzione dalla selezione","Rimuovi intervalli di riduzione manuale","Livello riduzione {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["Colore di sfondo degli intervalli con riduzione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del controllo di riduzione nella barra di navigazione dell'editor.","Icona per gli intervalli espansi nel margine del glifo dell'editor.","Icona per gli intervalli compressi nel margine del glifo dell'editor.","Icona per gli intervalli compressi nel margine del glifo dell'editor.","Icona per gli intervalli espansi manualmente nel margine del glifo dell'editor.","Fare clic per espandere l\u2019intervallo.","Fare clic per comprimere l'intervallo."],"vs/editor/contrib/fontZoom/browser/fontZoom":["Aumenta le dimensioni del carattere dell'editor","Riduci le dimensioni del carattere dell'editor","Reimposta dimensioni carattere editor"],"vs/editor/contrib/format/browser/formatActions":["Formatta documento","Formatta selezione"],"vs/editor/contrib/gotoError/browser/gotoError":["Vai al problema successivo (Errore, Avviso, Informazioni)","Icona per il marcatore Vai a successivo.","Vai al problema precedente (Errore, Avviso, Informazioni)","Icona per il marcatore Vai a precedente.","Vai al problema successivo nei file (Errore, Avviso, Informazioni)","&&Problema successivo","Vai al problema precedente nei file (Errore, Avviso, Informazioni)","&&Problema precedente"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["Errore","Avviso","Info","Suggerimento","{0} a {1}. ","{0} di {1} problemi","{0} di {1} problema","Colore per gli errori del widget di spostamento tra marcatori dell'editor.","Intestazione errore per lo sfondo del widget di spostamento tra marcatori dell'editor.","Colore per gli avvisi del widget di spostamento tra marcatori dell'editor.","Intestazione avviso per lo sfondo del widget di spostamento tra marcatori dell'editor.","Colore delle informazioni del widget di navigazione marcatori dell'editor.","Intestazione informativa per lo sfondo del widget di spostamento tra marcatori dell'editor.","Sfondo del widget di spostamento tra marcatori dell'editor."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["Anteprima","Definizioni","Non \xE8 stata trovata alcuna definizione per '{0}'","Non \xE8 stata trovata alcuna definizione","Vai alla &&definizione","Dichiarazioni","Non \xE8 stata trovata alcuna dichiarazione per '{0}'","Dichiarazione non trovata","Vai a &&dichiarazione","Non \xE8 stata trovata alcuna dichiarazione per '{0}'","Dichiarazione non trovata","Definizioni di tipo","Non sono state trovate definizioni di tipi per '{0}'","Non sono state trovate definizioni di tipi","Vai alla &&definizione di tipo","Implementazioni","Non sono state trovate implementazioni per '{0}'","Non sono state trovate implementazioni","Vai a &&Implementazioni","Non sono stati trovati riferimenti per '{0}'","Non sono stati trovati riferimenti","Vai a &&riferimenti","Riferimenti","Riferimenti","Posizioni","Nessun risultato per '{0}'","Riferimenti","Vai alla definizione","Apri definizione lateralmente","Visualizza in anteprima la definizione","Vai a dichiarazione","Anteprima dichiarazione","Vai alla definizione di tipo","Anteprima definizione di tipo","Vai a implementazioni","Visualizza implementazioni","Vai a Riferimenti","Anteprima riferimenti","Vai a qualsiasi simbolo"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["Fare clic per visualizzare {0} definizioni."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["Indica se l'anteprima riferimenti \xE8 visibile, come 'Visualizza in anteprima riferimenti' o 'Visualizza in anteprima la definizione'","Caricamento...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} riferimenti","{0} riferimento","Riferimenti"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["anteprima non disponibile","Nessun risultato","Riferimenti"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["in {0} alla riga {1} della colonna {2}","{0} in {1} alla riga {2} della colonna {3}","1 simbolo in {0}, percorso completo {1}","{0} simboli in {1}, percorso completo {2}","Non sono stati trovati risultati","Trovato 1 simbolo in {0}","Trovati {0} simboli in {1}","Trovati {0} simboli in {1} file"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["Indica se sono presenti posizioni dei simboli a cui \xE8 possibile passare solo tramite la tastiera.","Simbolo {0} di {1}, {2} per il successivo","Simbolo {0} di {1}"],"vs/editor/contrib/hover/browser/hover":["Mostra o sposta lo stato attivo al passaggio del mouse","Il passaggio del mouse non attiver\xE0 automaticamente lo stato attivo.","Il passaggio del mouse attiver\xE0 lo stato attivo solo se \xE8 gi\xE0 visibile.","Il passaggio del mouse assume automaticamente lo stato attivo quando viene visualizzato.","Mostra anteprima definizione al passaggio del mouse","Scorri verso l'alto al passaggio del mouse","Scorri verso il basso al passaggio del mouse","Scorri a sinistra al passaggio del mouse","Scorri a destra al passaggio del mouse","Vai alla pagina precedente al passaggio del mouse","Vai alla pagina successiva al passaggio del mouse","Vai in alto al passaggio del mouse","Vai in basso al passaggio del mouse"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["Caricamento...","Rendering sospeso per una linea lunga per motivi di prestazioni. Pu\xF2 essere configurato tramite 'editor.stopRenderingLineAfter'.","Per motivi di prestazioni la tokenizzazione viene ignorata per le righe lunghe. \xC8 possibile effettuare questa configurazione tramite `editor.maxTokenizationLineLength`."],"vs/editor/contrib/hover/browser/markerHoverParticipant":["Visualizza problema","Non sono disponibili correzioni rapide","Verifica disponibilit\xE0 correzioni rapide...","Non sono disponibili correzioni rapide","Correzione rapida..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["Sostituisci con il valore precedente","Sostituisci con il valore successivo"],"vs/editor/contrib/indentation/browser/indentation":["Converti rientro in spazi","Converti rientro in tabulazioni","Dimensione tabulazione configurata","Dimensioni predefinite della scheda","Dimensioni della scheda corrente","Seleziona dimensione tabulazione per il file corrente","Imposta rientro con tabulazioni","Imposta rientro con spazi","Modifica dimensioni visualizzazione scheda","Rileva rientro dal contenuto","Imposta nuovo rientro per righe","Re-Indenta le Linee Selezionate"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["Fare doppio clic per inserire","CMD+clic","CTRL+clic","Opzione+clic","ALT+clic","Vai alla definizione ({0}), fai clic con il pulsante destro del mouse per altre informazioni","Vai alla definizione ({0})","Esegui il comando"],"vs/editor/contrib/inlineCompletions/browser/commands":["Mostrare suggerimento inline successivo","Mostrare suggerimento inline precedente","Trigger del suggerimento inline","Accettare suggerimento inline per la parola successiva","Accetta parola","Accetta la riga successiva del suggerimento in linea","Accetta riga","Accetta il suggerimento in linea","Accetta","Nascondi suggerimento inline","Mostra sempre la barra degli strumenti"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["Suggerimento:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["Se \xE8 visibile un suggerimento inline","Se il suggerimento in linea inizia con spazi vuoti","Indica se il suggerimento inline inizia con uno spazio vuoto minore di quello che verrebbe inserito dalla tabulazione","Indica se i suggerimenti devono essere eliminati per il suggerimento corrente"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["Ispezionarlo nella visualizzazione accessibile ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["Icona per visualizzare il suggerimento del parametro successivo.","Icona per visualizzare il suggerimento del parametro precedente.","{0} ({1})","Indietro","Avanti"],"vs/editor/contrib/lineSelection/browser/lineSelection":["Espandere selezione riga"],"vs/editor/contrib/linesOperations/browser/linesOperations":["Copia la riga in alto","&&Copia la riga in alto","Copia la riga in basso","Co&&pia la riga in basso","Duplica selezione","&&Duplica selezione","Sposta la riga in alto","Sposta la riga in &&alto","Sposta la riga in basso","Sposta la riga in &&basso","Ordinamento righe crescente","Ordinamento righe decrescente","Elimina righe duplicate","Taglia spazio vuoto finale","Elimina riga","Imposta un rientro per la riga","Riduci il rientro per la riga","Inserisci la riga sopra","Inserisci la riga sotto","Elimina tutto a sinistra","Elimina tutto a destra","Unisci righe","Trasponi caratteri intorno al cursore","Converti in maiuscolo","Converti in minuscolo","Trasforma in Tutte Iniziali Maiuscole","Trasforma in snake case","Trasforma in caso Camel","Trasformare in caso Kebab"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["Avvia modifica collegata","Colore di sfondo quando l'editor viene rinominato automaticamente in base al tipo."],"vs/editor/contrib/links/browser/links":["Non \xE8 stato possibile aprire questo collegamento perch\xE9 il formato non \xE8 valido: {0}","Non \xE8 stato possibile aprire questo collegamento perch\xE9 manca la destinazione.","Esegui il comando","Visita il collegamento","CMD+clic","CTRL+clic","Opzione+clic","ALT+clic","Esegue il comando {0}","Apri collegamento"],"vs/editor/contrib/message/browser/messageController":["Indica se l'editor visualizza attualmente un messaggio inline"],"vs/editor/contrib/multicursor/browser/multicursor":["Cursore aggiunto: {0}","Cursori aggiunti: {0}","Aggiungi cursore sopra","&&Aggiungi cursore sopra","Aggiungi cursore sotto","A&&ggiungi cursore sotto","Aggiungi cursori a fine riga","Aggiungi c&&ursori a fine riga","Aggiungi cursori alla fine","Aggiungi cursori all'inizio","Aggiungi selezione a risultato ricerca successivo","Aggiungi &&occorrenza successiva","Aggiungi selezione a risultato ricerca precedente","Aggiungi occorrenza &&precedente","Sposta ultima selezione a risultato ricerca successivo","Sposta ultima selezione a risultato ricerca precedente","Seleziona tutte le occorrenze del risultato ricerca","Seleziona &&tutte le occorrenze","Cambia tutte le occorrenze","Attival cursore successivo","Attiva il cursore successivo","Cursore precedente stato attivo","Imposta lo stato attivo sul cursore precedente"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Attiva i suggerimenti per i parametri"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["Icona per visualizzare il suggerimento del parametro successivo.","Icona per visualizzare il suggerimento del parametro precedente.","{0}, suggerimento","Colore di primo piano dell\u2019articolo attivo nel suggerimento di parametro."],"vs/editor/contrib/peekView/browser/peekView":["Indica se l'editor di codice corrente \xE8 incorporato nell'anteprima","Chiudi","Colore di sfondo dell'area del titolo della visualizzazione rapida.","Colore del titolo della visualizzazione rapida.","Colore delle informazioni del titolo della visualizzazione rapida.","Colore dei bordi e della freccia della visualizzazione rapida.","Colore di sfondo dell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi riga nell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi file nell'elenco risultati della visualizzazione rapida.","Colore di sfondo della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore primo piano della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore di sfondo dell'editor di visualizzazioni rapide.","Colore di sfondo della barra di navigazione nell'editor visualizzazione rapida.","Colore di sfondo della barra di scorrimento permanente nell'editor visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'elenco risultati della visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.","Bordo dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["Aprire prima un editor di testo per passare a una riga.","Vai a riga {0} e carattere {1}.","Vai alla riga {0}.","Riga corrente: {0}, carattere: {1}. Digitare un numero di riga a cui passare compreso tra 1 e {2}.","Riga corrente: {0}, Carattere: {1}. Digitare un numero di riga a cui passare."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["Per passare a un simbolo, aprire prima un editor di testo con informazioni sui simboli.","L'editor di testo attivo non fornisce informazioni sui simboli.","Non ci sono simboli dell'editor corrispondenti","Non ci sono simboli dell'editor","Apri lateralmente","Apri in basso","simboli ({0})","propriet\xE0 ({0})","metodi ({0})","funzioni ({0})","costruttori ({0})","variabili ({0})","classi ({0})","struct ({0})","eventi ({0})","operatori ({0})","interfacce ({0})","spazi dei nomi ({0})","pacchetti ({0})","parametri di tipo ({0})","moduli ({0})","propriet\xE0 ({0})","enumerazioni ({0})","membri di enumerazione ({0})","stringhe ({0})","file ({0})","matrici ({0})","numeri ({0})","valori booleani ({0})","oggetti ({0})","chiavi ({0})","campi ({0})","costanti ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["Non \xE8 possibile modificare nell'input di sola lettura","Non \xE8 possibile modificare nell'editor di sola lettura"],"vs/editor/contrib/rename/browser/rename":["Nessun risultato.","Si \xE8 verificato un errore sconosciuto durante la risoluzione del percorso di ridenominazione","Ridenominazione di '{0}' in '{1}'","Ridenominazione di {0} in {1}","Correttamente rinominato '{0}' in '{1}'. Sommario: {2}","La ridenominazione non \xE8 riuscita ad applicare le modifiche","La ridenominazione non \xE8 riuscita a calcolare le modifiche","Rinomina simbolo","Abilita/Disabilita l'opzione per visualizzare le modifiche in anteprima prima della ridenominazione","Sposta lo stato attivo sul suggerimento di ridenominazione successiva","Sposta lo stato attivo sul suggerimento di ridenominazione precedente"],"vs/editor/contrib/rename/browser/renameInputField":["Indica se il widget di ridenominazione input \xE8 visibile","Indica se il widget di ridenominazione input \xE8 attivo","Consente di rinominare l'input. Digitare il nuovo nome e premere INVIO per eseguire il commit.","{0} per rinominare, {1} per visualizzare in anteprima","{0} suggerimenti di ridenominazione ricevuti"],"vs/editor/contrib/smartSelect/browser/smartSelect":["Espandi selezione","Espan&&di selezione","Riduci selezione","&&Riduci selezione"],"vs/editor/contrib/snippet/browser/snippetController2":["Indica se l'editor \xE8 quello corrente nella modalit\xE0 frammenti","Indica se \xE8 presente una tabulazione successiva in modalit\xE0 frammenti","Indica se \xE8 presente una tabulazione precedente in modalit\xE0 frammenti","Vai al segnaposto successivo..."],"vs/editor/contrib/snippet/browser/snippetVariables":["Domenica","Luned\xEC","Marted\xEC","Mercoled\xEC","Gioved\xEC","Venerd\xEC","Sabato","Dom","Lun","Mar","Mer","Gio","Ven","Sab","Gennaio","Febbraio","Marzo","Aprile","Mag","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["&&Attiva/disattiva scorrimento permanente dell'editor","Scorrimento permanente","&&Scorrimento permanente","&&Sposta stato attivo su Scorrimento permanente","Attiva/disattiva scorrimento permanente dell'editor","Sposta stato attivo su Scorrimento permanente","Seleziona la riga di scorrimento permanente successiva","Seleziona riga di scorrimento permanente precedente","Vai alla linea di scorrimento permanente attiva","Selezionare l'editor"],"vs/editor/contrib/suggest/browser/suggest":["Indica se i suggerimenti sono evidenziati","Indica se i dettagli dei suggerimenti sono visibili","Indica se sono presenti pi\xF9 suggerimenti da cui scegliere","Indica se l'inserimento del suggerimento corrente comporta una modifica oppure se completa gi\xE0 l'input","Indica se i suggerimenti vengono inseriti quando si preme INVIO","Indica se il suggerimento corrente include il comportamento di inserimento e sostituzione","Indica se il comportamento predefinito \xE8 quello di inserimento o sostituzione","Indica se il suggerimento corrente supporta la risoluzione di ulteriori dettagli"],"vs/editor/contrib/suggest/browser/suggestController":["In seguito all'accettazione di '{0}' sono state apportate altre {1} modifiche","Attiva suggerimento","Inserisci","Inserisci","Sostituisci","Sostituisci","Inserisci","nascondi dettagli","mostra dettagli","Reimposta le dimensioni del widget dei suggerimenti"],"vs/editor/contrib/suggest/browser/suggestWidget":["Colore di sfondo del widget dei suggerimenti.","Colore del bordo del widget dei suggerimenti.","Colore primo piano del widget dei suggerimenti.","Colore primo piano della voce selezionata del widget dei suggerimenti.","Colore primo piano dell\u2019icona della voce selezionata del widget dei suggerimenti.","Colore di sfondo della voce selezionata del widget dei suggerimenti.","Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti.","Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti quando lo stato attivo si trova su un elemento.","Colore primo piano dello stato del widget dei suggerimenti.","Caricamento...","Non ci sono suggerimenti.","Suggerisci","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, documenti: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["Chiudi","Caricamento..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["Icona per visualizzare altre informazioni nel widget dei suggerimenti.","Altre informazioni"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["Colore primo piano per i simboli di matrice. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli booleani. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di classe. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di colore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di costante. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di costruttore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di membro di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di evento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di campo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di file. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di cartella. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di funzione. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di interfaccia. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di parola chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di metodo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di modulo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di spazio dei nomi. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli Null. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli numerici. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di oggetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di operatore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di pacchetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di propriet\xE0. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di riferimento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di frammento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di stringa. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di struct. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di testo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di parametro di tipo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di unit\xE0. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di variabile. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Se si preme TAB, lo stato attivo verr\xE0 spostato sull'elemento con stato attivabile successivo.","Se si preme TAB, verr\xE0 inserito il carattere di tabulazione","Attiva/Disattiva l'uso di TAB per spostare lo stato attivo"],"vs/editor/contrib/tokenization/browser/tokenization":["Sviluppatore: Forza retokenizzazione"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["Icona visualizzata con un messaggio di avviso nell'editor delle estensioni.","Questo documento contiene molti caratteri Unicode ASCII non di base","Il documento contiene molti caratteri Unicode ambigui","Questo documento contiene molti caratteri Unicode invisibili","Configurare opzioni evidenziazione Unicode","Il carattere {0} potrebbe essere confuso con il carattere ASCII {1}, che \xE8 pi\xF9 comune nel codice sorgente.","Il carattere {0} potrebbe essere confuso con il carattere {1}, che \xE8 pi\xF9 comune nel codice sorgente.","Il carattere {0} \xE8 invisibile.","Il carattere {0} non \xE8 un carattere ASCII di base.","Modificare impostazioni","Disabilita evidenziazione nei commenti","Disabilita l'evidenziazione dei caratteri nei commenti","Disabilita evidenziazione nelle stringhe","Disabilita l'evidenziazione dei caratteri nelle stringhe","Disabilitare evidenziazione ambigua","Disabilitare l'evidenziazione dei caratteri ambigui","Disabilitare evidenziazione invisibile","Disabilitare l'evidenziazione dei caratteri invisibili","Disabilitare evidenziazione non ASCII","Disabilitare l'evidenziazione di caratteri ASCII non di base","Mostrare opzioni di esclusione","Escludere {0} (carattere invisibile) dall'evidenziazione","Escludere {0} dall\u2019essere evidenziata",'Consentire i caratteri Unicode pi\xF9 comuni nel linguaggio "{0}".'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["Caratteri di terminazione di riga insoliti","Sono stati rilevati caratteri di terminazione di riga insoliti",'Il file "\r\n" contiene uno o pi\xF9 caratteri di terminazione di riga insoliti, ad esempio separatore di riga (LS) o separatore di paragrafo (PS).{0}\r\n\xC8 consigliabile rimuoverli dal file. \xC8 possibile configurare questa opzione tramite `editor.unusualLineTerminators`.',"&&Rimuovi i caratteri di terminazione di riga insoliti","Ignora"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["Colore di sfondo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo di un'occorrenza testuale per un simbolo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile.","Colore del bordo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile.","Colore del bordo di un'occorrenza testuale per un simbolo.","Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli di accesso in scrittura. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni di un'occorrenza testuale per un simbolo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["Vai al prossimo simbolo evidenziato","Vai al precedente simbolo evidenziato","Attiva/disattiva evidenziazione simbolo"],"vs/editor/contrib/wordOperations/browser/wordOperations":["Elimina parola"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["Errore sulla riga","Errore","Avviso sulla riga","Avviso","Area piegata sulla linea","Ridotto","Punto di interruzione sulla riga","Punto di interruzione","Suggerimento inline sulla riga","Correzione rapida terminale","Correzione rapida","Debugger arrestato sul punto di interruzione","Punto di interruzione","Nessun suggerimento per l'inlay nella riga","Nessun suggerimento di inlay","Attivit\xE0 completata","Attivit\xE0 completata","Attivit\xE0 non riuscita","Attivit\xE0 non riuscita","Comando terminale non riuscito","Comando non riuscito","Campanello terminale","Campanello terminale","Cella del notebook completata","Cella del notebook completata","La cella del notebook ha avuto esito negativo","La cella del notebook ha avuto esito negativo","Riga diff inserita","Riga diff eliminata","Riga diff modificata","Richiesta chat inviata","Richiesta di chat inviata","Risposta chat ricevuta","Risposta chat in sospeso","Risposta chat in sospeso","Cancella","Cancella","Salva","Salva","Formato","Formato"],"vs/platform/action/common/actionCommonCategories":["Visualizza","Guida","Test","FILE","Preferenze","Sviluppatore"],"vs/platform/actionWidget/browser/actionList":["{0} per Applica, {1} per Anteprima","{0} da applicare","{0}, Motivo disabilitato: {1}","Widget azione"],"vs/platform/actionWidget/browser/actionWidget":["Colore di sfondo per le azioni attivate o disattivate nella barra delle azioni.","Indica se l'elenco di widget azione \xE8 visibile","Nascondi widget azione","Seleziona azione precedente","Seleziona azione successiva","Accetta l'azione selezionata","Anteprima azione selezionata"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["Nascondi","Reimposta menu"],"vs/platform/actions/common/menuService":["Nascondi '{0}'"],"vs/platform/configuration/common/configurationRegistry":["Override configurazione predefinita del linguaggio","Consente di configurare le impostazioni di cui eseguire l'override per il linguaggio {0}.","Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.","Questa impostazione non supporta la configurazione per lingua.","Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.","Questa impostazione non supporta la configurazione per lingua.","Non \xE8 possibile registrare una propriet\xE0 vuota","Non \xE8 possibile registrare '{0}'. Corrisponde al criterio di propriet\xE0 '\\\\[.*\\\\]$' per la descrizione delle impostazioni dell'editor specifiche del linguaggio. Usare il contributo 'configurationDefaults'.","Non \xE8 possibile registrare '{0}'. Questa propriet\xE0 \xE8 gi\xE0 registrata.","Impossibile registrare '{0}'. Il {1} dei criteri associato \xE8 gi\xE0 registrato con {2}."],"vs/platform/contextkey/browser/contextKeyService":["Comando che restituisce informazioni sulle chiavi di contesto"],"vs/platform/contextkey/common/contextkey":["Espressione chiave di contesto vuota","Si \xE8 dimenticato di scrivere un'espressione? \xC8 anche possibile inserire 'false' o 'true' per restituire sempre rispettivamente false o true.","'in' dopo 'not'.","Parentesi chiusa ')'","Token imprevisto","Si \xE8 dimenticato di inserire && o || prima del token?","Fine imprevista dell'espressione","Si \xE8 dimenticato di inserire una chiave di contesto?",`Previsto: {0}\r +Ricevuto: '{1}'.`],"vs/platform/contextkey/common/contextkeys":["Indica se il sistema operativo \xE8 macOS","Indica se il sistema operativo \xE8 Linux","Indica se il sistema operativo \xE8 Windows","Indica se la piattaforma \xE8 un Web browser","Indica se il sistema operativo \xE8 macOS in una piattaforma non basata su browser","Indica se il sistema operativo \xE8 iOS","Indica se la piattaforma \xE8 un Web browser per dispositivi mobili","Tipo di qualit\xE0 del VS Code","Indica se lo stato attivo della tastiera si trova all'interno di una casella di input"],"vs/platform/contextkey/common/scanner":["Si intendeva {0}?","Si intendeva {0} o {1}?","Si intendeva {0}, {1} o {2}?","Si \xE8 dimenticato di aprire o chiudere la citazione?","Si \xE8 dimenticato di eseguire il carattere di escape '/' (slash)? Inserire due barre rovesciate prima del carattere di escape, ad esempio '\\\\/'."],"vs/platform/history/browser/contextScopedHistoryWidget":["Indica se i suggerimenti sono visibili"],"vs/platform/keybinding/common/abstractKeybindingService":["\xC8 stato premuto ({0}). In attesa del secondo tasto...","\xC8 stato premuto ({0}). In attesa del prossimo tasto...","La combinazione di tasti ({0}, {1}) non \xE8 un comando.","La combinazione di tasti ({0}, {1}) non \xE8 un comando."],"vs/platform/list/browser/listService":["Workbench","Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.","Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.","Il modificatore da utilizzare per aggiungere un elemento di alberi e liste ad una selezione multipla con il mouse (ad esempio in Esplora Risorse, apre gli editor e le viste scm). Le gesture del mouse 'Apri a lato' - se supportate - si adatteranno in modo da non creare conflitti con il modificatore di selezione multipla.","Controlla l'apertura degli elementi di alberi ed elenchi tramite il mouse (se supportato). Tenere presente che alcuni alberi ed elenchi potrebbero scegliere di ignorare questa impostazione se non \xE8 applicabile.","Controlla se elenchi e alberi supportano lo scorrimento orizzontale nell'area di lavoro. Avviso: l'attivazione di questa impostazione pu\xF2 influire sulle prestazioni.","Controlla se i clic nella barra di scorrimento scorrono pagina per pagina.","Controlla il rientro dell'albero in pixel.","Controlla se l'albero deve eseguire il rendering delle guide per i rientri.","Controlla se elenchi e alberi prevedono lo scorrimento uniforme.","Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse.","Moltiplicatore della velocit\xE0 di scorrimento quando si preme `Alt`.","Evidenziare gli elementi durante la ricerca. L'ulteriore spostamento verso l'alto e verso il basso attraverser\xE0 solo gli elementi evidenziati.","Filtra gli elementi durante la ricerca.","Controlla la modalit\xE0 di ricerca predefinita per elenchi e alberi nel workbench.","Con lo stile di spostamento da tastiera simple lo stato attivo si trova sugli elementi che corrispondono all'input da tastiera. L'abbinamento viene effettuato solo in base ai prefissi.","Con lo stile di spostamento da tastiera highlight vengono evidenziati gli elementi corrispondenti all'input da tastiera. Spostandosi ulteriormente verso l'alto o verso il basso ci si sposter\xE0 solo negli elementi evidenziati.","Con lo stile di spostamento da tastiera filter verranno filtrati e nascosti tutti gli elementi che non corrispondono all'input da tastiera.","Controlla lo stile di spostamento da tastiera per elenchi e alberi nel workbench. Le opzioni sono: simple, highlight e filter.","In alternativa, usare 'workbench.list.defaultFindMode' e 'workbench.list.typeNavigationMode'.","Usa la corrispondenza fuzzy durante la ricerca.","Usa corrispondenza contigua durante la ricerca.","Controlla il tipo di corrispondenza usato per la ricerca di elenchi e alberi nel workbench.","Controlla l'espansione delle cartelle di alberi quando si fa clic sui nomi delle cartelle. Tenere presente che alcuni alberi ed elenchi potrebbero scegliere di ignorare questa impostazione se non \xE8 applicabile.","Controlla se lo scorrimento permanente \xE8 abilitato negli alberi.","Controlla il numero di elementi permanenti visualizzati nell'albero quando '#workbench.tree.enableStickyScroll#' \xE8 abilitato.","Controlla il funzionamento dello spostamento dei tipi in elenchi e alberi nel workbench. Se impostato su 'trigger', l'esplorazione del tipo inizia dopo l'esecuzione del comando 'list.triggerTypeNavigation'."],"vs/platform/markers/common/markers":["Errore","Avviso","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["usate di recente","comandi simili","pi\xF9 usato","altri comandi","comandi simili","{0}, {1}","Il comando '{0}' ha restituito un errore"],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["Indietro","Premere 'INVIO' per confermare l'input oppure 'ESC' per annullare","{0}/{1}","Digitare per ridurre il numero di risultati."],"vs/platform/quickinput/browser/quickInputController":["Attivare/Disattivare tutte le caselle di controllo","{0} risultati","{0} selezionati","OK","Personalizzato","Indietro ({0})","Indietro"],"vs/platform/quickinput/browser/quickInputList":["Input rapido"],"vs/platform/quickinput/browser/quickInputUtils":["Fare clic per eseguire il comando '{0}'"],"vs/platform/theme/common/colorRegistry":["Colore primo piano generale. Questo colore viene usato solo se non \xE8 sostituito da quello di un componente.","Primo piano generale per gli elementi disabilitati. Questo colore viene usato solo e non \xE8 sostituito da quello di un componente.","Colore primo piano globale per i messaggi di errore. Questo colore viene usato solo se non \xE8 sostituito da quello di un componente.","Colore primo piano del testo che fornisce informazioni aggiuntive, ad esempio per un'etichetta di testo.","Colore predefinito per le icone nel workbench.","Colore del bordo globale per gli elementi evidenziati. Questo colore viene usato solo se non \xE8 sostituito da quello di un componente.","Un bordo supplementare attorno agli elementi per contrastarli maggiormente rispetto agli altri.","Un bordo supplementare intorno agli elementi attivi per contrastarli maggiormente rispetto agli altri.","Il colore di sfondo delle selezioni di testo in workbench (ad esempio per i campi di input o aree di testo). Si noti che questo non si applica alle selezioni all'interno dell'editor.","Colore dei separatori di testo.","Colore primo piano dei link nel testo.","Colore primo piano per i collegamenti nel testo quando vengono selezionati o al passaggio del mouse.","Colore primo piano dei segmenti di testo preformattato.","Colore di sfondo dei segmenti di testo preformattato.","Colore di sfondo per le citazioni nel testo.","Colore del bordo per le citazioni nel testo.","Colore di sfondo per i blocchi di codice nel testo.","Colore ombreggiatura dei widget, ad es. Trova/Sostituisci all'interno dell'editor.","Colore del bordo dei widget, ad es. Trova/Sostituisci all'interno dell'editor.","Sfondo della casella di input.","Primo piano della casella di input.","Bordo della casella di input.","Colore del bordo di opzioni attivate nei campi di input.","Colore di sfondo di opzioni attivate nei campi di input.","Colore di sfondo al passaggio del mouse delle opzioni nei campi di input.","Colore primo piano di opzioni attivate nei campi di input.","Colore primo piano di casella di input per il testo segnaposto.","Colore di sfondo di convalida dell'input di tipo Informazione.","Colore primo piano di convalida dell'input di tipo Informazione.","Colore del bordo della convalida dell'input di tipo Informazione.","Colore di sfondo di convalida dell'input di tipo Avviso.","Colore primo piano di convalida dell'input di tipo Avviso.","Colore del bordo della convalida dell'input di tipo Avviso.","Colore di sfondo di convalida dell'input di tipo Errore.","Colore primo piano di convalida dell'input di tipo Errore.","Colore del bordo della convalida dell'input di tipo Errore.","Sfondo dell'elenco a discesa.","Sfondo dell'elenco a discesa.","Primo piano dell'elenco a discesa.","Bordo dell'elenco a discesa.","Colore primo piano del pulsante.","Colore del separatore pulsante.","Colore di sfondo del pulsante.","Colore di sfondo del pulsante al passaggio del mouse.","Colore del bordo del pulsante.","Colore primo piano secondario del pulsante.","Colore di sfondo secondario del pulsante.","Colore di sfondo secondario del pulsante al passaggio del mouse.","Colore di sfondo del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati della ricerca.","Colore primo piano del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.","Ombra della barra di scorrimento per indicare lo scorrimento della visualizzazione.","Colore di sfondo del cursore della barra di scorrimento.","Colore di sfondo del cursore della barra di scorrimento al passaggio del mouse.","Colore di sfondo del cursore della barra di scorrimento quando si fa clic con il mouse.","Colore di sfondo dell'indicatore di stato che pu\xF2 essere mostrato per operazioni a esecuzione prolungata.","Colore di sfondo del testo dell'errore nell'editor. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore primo piano degli indicatori di errore nell'editor.","Se impostato, colore delle doppie sottolineature per gli errori nell'editor.","Colore di sfondo del testo dell'avviso nell'editor. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore primo piano degli indicatori di avviso nell'editor.","Se impostato, colore delle doppie sottolineature per gli avvisi nell'editor.","Colore di sfondo del testo delle informazioni nell'editor. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore primo piano degli indicatori di informazioni nell'editor.","Se impostato, colore delle doppie sottolineature per i messaggi informativi nell'editor.","Colore primo piano degli indicatori di suggerimento nell'editor.","Se impostato, colore delle doppie sottolineature per i suggerimenti nell'editor.","Colore dei bordi di ridimensionamento attivi.","Colore di sfondo dell'editor.","Colore primo piano predefinito dell'editor.","Colore di sfondo della barra di scorrimento permanente nell'editor.","Colore di sfondo dello scorrimento permanente al passaggio del mouse nell'editor","Colore del bordo dello scorrimento permanente nell\u2019editor"," Colore ombreggiatura dello scorrimento permanente nell\u2019editor","Colore di sfondo dei widget dell'editor, ad esempio Trova/Sostituisci.","Colore primo piano dei widget dell'editor, ad esempio Trova/Sostituisci.","Colore del bordo dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo e se il colore non \xE8 sottoposto a override da un widget.","Colore del bordo della barra di ridimensionamento dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo di ridimensionamento e se il colore non \xE8 sostituito da quello di un widget.","Colore di sfondo di Selezione rapida. Il widget Selezione rapida \xE8 il contenitore di selezioni quali il riquadro comandi.","Colore primo piano di Selezione rapida. Il widget Selezione rapida \xE8 il contenitore di selezioni quali il riquadro comandi.","Colore di sfondo del titolo di Selezione rapida. Il widget Selezione rapida \xE8 il contenitore di selezioni quali il riquadro comandi.","Colore di selezione rapida per il raggruppamento delle etichette.","Colore di selezione rapida per il raggruppamento dei bordi.","Colore di sfondo dell'etichetta del tasto di scelta rapida. L'etichetta del tasto di scelta rapida viene usata per rappresentare una scelta rapida da tastiera.","Colore primo piano dell'etichetta del tasto di scelta rapida. L'etichetta del tasto di scelta rapida viene usata per rappresentare una scelta rapida da tastiera.","Colore del bordo dell'etichetta del tasto di scelta rapida. L'etichetta del tasto di scelta rapida viene usata per rappresentare una scelta rapida da tastiera.","Colore inferiore del bordo dell'etichetta del tasto di scelta rapida. L'etichetta del tasto di scelta rapida viene usata per rappresentare una scelta rapida da tastiera.","Colore della selezione dell'editor.","Colore del testo selezionato per il contrasto elevato.","Colore della selezione in un editor inattivo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore delle aree con lo stesso contenuto della selezione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo delle regioni con lo stesso contenuto della selezione.","Colore della corrispondenza di ricerca corrente.","Colore degli altri risultati della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore dell'intervallo di limite della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo della corrispondenza della ricerca corrente.","Colore del bordo delle altre corrispondenze della ricerca.","Colore del bordo dell'intervallo che limita la ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore delle corrispondenze query dell'editor della ricerca.","Colore del bordo delle corrispondenze query dell'editor della ricerca.","Colore del testo nel messaggio di completamento del viewlet di ricerca.","Evidenziazione sotto la parola per cui \xE8 visualizzata un'area sensibile al passaggio del mouse. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo dell'area sensibile al passaggio del mouse dell'editor.","Colore primo piano dell'area sensibile al passaggio del mouse dell'editor.","Colore del bordo dell'area sensibile al passaggio del mouse dell'editor.","Colore di sfondo della barra di stato sensibile al passaggio del mouse dell'editor.","Colore dei collegamenti attivi.","Colore primo piano dei suggerimenti inline","Colore di sfondo dei suggerimenti inline","Colore primo piano dei suggerimenti inline per i tipi","Colore di sfondo dei suggerimenti inline per i tipi","Colore primo piano dei suggerimenti inline per i parametri","Colore di sfondo dei suggerimenti inline per i parametri","Colore usato per l'icona delle azioni con lampadina.","Colore usato per l'icona delle azioni di correzione automatica con lampadina.","Colore usato per l'icona dell'intelligenza artificiale con lampadina.","Colore di sfondo per il testo che \xE8 stato inserito. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo per il testo che \xE8 stato rimosso. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo per le righe che sono state inserite. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo per le righe che sono state rimosse. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo per il margine in cui sono state inserite le righe.","Colore di sfondo per il margine in cui sono state rimosse le righe.","Primo piano del righello delle annotazioni delle differenze per il contenuto inserito.","Primo piano del righello delle annotazioni delle differenze per il contenuto rimosso.","Colore del contorno del testo che \xE8 stato inserito.","Colore del contorno del testo che \xE8 stato rimosso.","Colore del bordo tra due editor di testo.","Colore del riempimento diagonale dell'editor diff. Il riempimento diagonale viene usato nelle visualizzazioni diff affiancate.","Colore di sfondo dei blocchi non modificati nell'editor diff.","Colore di primo piano dei blocchi non modificati nell'editor diff.","Colore di sfondo del codice non modificato nell'editor diff.","Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore del contorno dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore del contorno dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 attivo e selezionato. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell\u2019icona dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell\u2019icona dell'elenco/albero per l'elemento selezionato quando l'elenco/albero \xE8 inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, uno inattivo no.","Colore del contorno dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero \xE8 inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Sfondo dell'elenco/albero al passaggio del mouse sugli elementi.","Primo piano dell'elenco/albero al passaggio del mouse sugli elementi.","Sfondo dell'elenco/albero durante il trascinamento degli elementi su altri elementi quando si usa il mouse.","Il colore del bordo del trascinamento dell\u2019elenco/albero durante lo spostamento di elementi quando si usa il mouse.","Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate durante la ricerca nell'Elenco/Struttura ad albero.","Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate in elementi con lo stato attivo durante la ricerca nell'Elenco/Struttura ad albero.","Colore primo piano dell'elenco/albero delle occorrenze trovate durante la ricerca nell'elenco/albero.","Colore primo piano delle voci di elenco contenenti errori.","Colore primo piano delle voci di elenco contenenti avvisi.","Colore di sfondo del widget del filtro per tipo in elenchi e alberi.","Colore del contorno del widget del filtro per tipo in elenchi e alberi.","Colore del contorno del widget del filtro per tipo in elenchi e alberi quando non sono presenti corrispondenze.","Colore ombreggiatura del widget del filtro sul tipo negli elenchi e alberi.","Colore di sfondo della corrispondenza filtrata.","Colore del bordo della corrispondenza filtrata.","Colore del tratto dell'albero per le guide per i rientri.","Colore del tratto dell'albero per le guide di rientro non attive.","Colore del bordo della tabella tra le colonne.","Colore di sfondo per le righe di tabella dispari.","Colore primo piano dell'elenco/albero per gli elementi non evidenziati.","Colore di sfondo del widget della casella di controllo.","Colore di sfondo del widget della casella di controllo quando \xE8 selezionato l'elemento in cui si trova.","Colore primo piano del widget della casella di controllo.","Colore del bordo del widget della casella di controllo.","Colore del bordo del widget della casella di controllo quando \xE8 selezionato l'elemento in cui si trova.","In alternativa, usare quickInputList.focusBackground","Colore primo piano di Selezione rapida per l'elemento con lo stato attivo.","Colore primo piano dell\u2019icona di Selezione rapida per l'elemento con lo stato attivo.","Colore di sfondo di Selezione rapida per l'elemento con lo stato attivo.","Colore del bordo del menu.","Colore primo piano delle voci di menu.","Colore di sfondo delle voci di menu.","Colore primo piano della voce di menu selezionata nei menu.","Colore di sfondo della voce di menu selezionata nei menu.","Colore del bordo della voce di menu selezionata nei menu.","Colore di un elemento separatore delle voci di menu.","Sfondo della barra degli strumenti al passaggio del mouse sulle azioni","Contorno della barra degli strumenti al passaggio del mouse sulle azioni","Sfondo della barra degli strumenti quando si tiene premuto il mouse sulle azioni","Colore di sfondo dell'evidenziazione della tabulazione di un frammento.","Colore del bordo dell'evidenziazione della tabulazione di un frammento.","Colore di sfondo dell'evidenziazione della tabulazione finale di un frammento.","Colore del bordo dell'evidenziazione della tabulazione finale di un frammento.","Colore degli elementi di navigazione in evidenza.","Colore di sfondo degli elementi di navigazione.","Colore degli elementi di navigazione in evidenza.","Colore degli elementi di navigazione selezionati.","Colore di sfondo del controllo di selezione elementi di navigazione.","Sfondo dell'intestazione delle modifiche correnti nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Sfondo del contenuto delle modifiche correnti nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Sfondo dell'intestazione delle modifiche in ingresso nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Sfondo del contenuto delle modifiche in ingresso nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Sfondo dell'intestazione del predecessore comune nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Sfondo del contenuto del predecessore comune nei conflitti di merge inline. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo nelle intestazioni e sulla barra di divisione di conflitti di merge in linea.","Colore primo piano del righello delle annotazioni delle modifiche correnti per i conflitti di merge inline.","Colore primo piano del righello delle annotazioni delle modifiche in ingresso per i conflitti di merge inline.","Colore primo piano del righello delle annotazioni del predecessore comune per i conflitti di merge inline.","Colore del marcatore del righello delle annotazioni per la ricerca di corrispondenze. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per le evidenziazioni delle selezioni. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore della minimappa per la ricerca delle corrispondenze.","Colore del marcatore della minimappa per le selezioni ripetute dell'editor.","Colore del marcatore della minimappa per la selezione dell'editor.","Colore del marcatore della minimappa per le informazioni.","Colore del marcatore della minimappa per gli avvisi.","Colore del marcatore della minimappa per gli errori.","Colore di sfondo della minimappa.",'Opacit\xE0 degli elementi in primo piano di cui \xE8 stato eseguito il rendering nella minimappa. Ad esempio, con "#000000c0" il rendering degli elementi verr\xE0 eseguito con il 75% di opacit\xE0.',"Colore di sfondo del dispositivo di scorrimento della minimappa.","Colore di sfondo del dispositivo di scorrimento della minimappa al passaggio del mouse.","Colore di sfondo del dispositivo di scorrimento della minimappa quando si fa clic con il mouse.","Colore usato per l'icona di errore dei problemi.","Colore usato per l'icona di avviso dei problemi.","Colore usato per l'icona informazioni dei problemi.","Colore primo piano usato nei grafici.","Colore usato per le linee orizzontali nei grafici.","Colore rosso usato nelle visualizzazioni grafico.","Colore blu usato nelle visualizzazioni grafico.","Colore giallo usato nelle visualizzazioni grafico.","Colore arancione usato nelle visualizzazioni grafico.","Colore verde usato nelle visualizzazioni grafico.","Colore viola usato nelle visualizzazioni grafico."],"vs/platform/theme/common/iconRegistry":["ID del tipo di carattere da usare. Se non \xE8 impostato, viene usato il tipo di carattere definito per primo.","Tipo di carattere associato alla definizione di icona.","Icona dell'azione di chiusura nei widget.","Icona per la posizione di Vai a editor precedente.","Icona per la posizione di Vai a editor successivo."],"vs/platform/undoRedo/common/undoRedoService":["I file seguenti sono stati chiusi e modificati nel disco: {0}.","I file seguenti sono stati modificati in modo incompatibile: {0}.","Non \xE8 stato possibile annullare '{0}' in tutti i file. {1}","Non \xE8 stato possibile annullare '{0}' in tutti i file. {1}","Non \xE8 stato possibile annullare '{0}' in tutti i file perch\xE9 sono state apportate modifiche a {1}","Non \xE8 stato possibile annullare '{0}' su tutti i file perch\xE9 \xE8 gi\xE0 in esecuzione un'operazione di annullamento o ripetizione su {1}","Non \xE8 stato possibile annullare '{0}' su tutti i file perch\xE9 nel frattempo \xE8 stata eseguita un'operazione di annullamento o ripetizione","Annullare '{0}' in tutti i file?","&&Annulla in {0} file","Annulla questo &&file","Non \xE8 stato possibile annullare '{0}' perch\xE9 \xE8 gi\xE0 in esecuzione un'operazione di annullamento o ripetizione.","Annullare '{0}'?","&&S\xEC","No","Non \xE8 stato possibile ripetere '{0}' in tutti i file. {1}","Non \xE8 stato possibile ripetere '{0}' in tutti i file. {1}","Non \xE8 stato possibile ripetere '{0}' in tutti i file perch\xE9 sono state apportate modifiche a {1}","Non \xE8 stato possibile ripetere l'operazione '{0}' su tutti i file perch\xE9 \xE8 gi\xE0 in esecuzione un'operazione di annullamento o ripetizione sull'elenco di file {1}","Non \xE8 stato possibile ripetere '{0}' su tutti i file perch\xE9 nel frattempo \xE8 stata eseguita un'operazione di annullamento o ripetizione","Non \xE8 stato possibile ripetere '{0}' perch\xE9 \xE8 gi\xE0 in esecuzione un'operazione di annullamento o ripetizione."],"vs/platform/workspace/common/workspace":["Area di lavoro del codice"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.it.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ja.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ja.js new file mode 100644 index 0000000..f7e8ea0 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ja.js @@ -0,0 +1,15 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.ja",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["\u5165\u529B"],"vs/base/browser/ui/findinput/findInputToggles":["\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3059\u308B","\u5358\u8A9E\u5358\u4F4D\u3067\u691C\u7D22\u3059\u308B","\u6B63\u898F\u8868\u73FE\u3092\u4F7F\u7528\u3059\u308B"],"vs/base/browser/ui/findinput/replaceInput":["\u5165\u529B","\u4FDD\u6301\u3059\u308B"],"vs/base/browser/ui/hover/hoverWidget":["{0} \u3092\u4F7F\u7528\u3057\u3066\u3001\u30E6\u30FC\u30B6\u30FC\u88DC\u52A9\u5BFE\u5FDC\u306E\u30D3\u30E5\u30FC\u3067\u3053\u308C\u3092\u691C\u67FB\u3057\u307E\u3059\u3002","\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9\u3092\u4ECB\u3057\u3066\u73FE\u5728\u30C8\u30EA\u30AC\u30FC\u3067\u304D\u306A\u3044 [\u30E6\u30FC\u30B6\u30FC\u88DC\u52A9\u5BFE\u5FDC\u306E\u30D3\u30E5\u30FC\u3092\u958B\u304F] \u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3066\u3001\u30E6\u30FC\u30B6\u30FC\u88DC\u52A9\u5BFE\u5FDC\u306E\u30D3\u30E5\u30FC\u3067\u3053\u308C\u3092\u691C\u67FB\u3057\u307E\u3059\u3002"],"vs/base/browser/ui/iconLabel/iconLabelHover":["\u8AAD\u307F\u8FBC\u307F\u4E2D..."],"vs/base/browser/ui/inputbox/inputBox":["\u30A8\u30E9\u30FC: {0}","\u8B66\u544A: {0}","\u60C5\u5831: {0}"," \u307E\u305F\u306F\u5C65\u6B74\u306E {0}"," (\u5C65\u6B74\u306E {0})","\u30AF\u30EA\u30A2\u3055\u308C\u305F\u5165\u529B"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["\u30D0\u30A4\u30F3\u30C9\u306A\u3057"],"vs/base/browser/ui/selectBox/selectBoxCustom":["\u30DC\u30C3\u30AF\u30B9\u3092\u9078\u629E"],"vs/base/browser/ui/toolbar/toolbar":["\u305D\u306E\u4ED6\u306E\u64CD\u4F5C..."],"vs/base/browser/ui/tree/abstractTree":["\u30D5\u30A3\u30EB\u30BF\u30FC","\u3042\u3044\u307E\u3044\u4E00\u81F4","\u5165\u529B\u3057\u3066\u30D5\u30A3\u30EB\u30BF\u30FC","\u5165\u529B\u3057\u3066\u691C\u7D22","\u5165\u529B\u3057\u3066\u691C\u7D22","\u9589\u3058\u308B","\u8981\u7D20\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002"],"vs/base/common/actions":["(\u7A7A)"],"vs/base/common/errorMessage":["{0}: {1}","\u30B7\u30B9\u30C6\u30E0 \u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F ({0})","\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30ED\u30B0\u3067\u8A73\u7D30\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30ED\u30B0\u3067\u8A73\u7D30\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002","{0} (\u5408\u8A08 {1} \u30A8\u30E9\u30FC)","\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30ED\u30B0\u3067\u8A73\u7D30\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","Super","Control","Shift","\u30AA\u30D7\u30B7\u30E7\u30F3","\u30B3\u30DE\u30F3\u30C9","Control","Shift","Alt","Windows","Control","Shift","Alt","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\u30A8\u30C7\u30A3\u30BF\u30FC","\u3053\u306E\u6642\u70B9\u3067\u306F\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002","{0} \u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u6700\u9069\u5316\u30E2\u30FC\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u3001{1} \u3092\u4F7F\u7528\u3057\u307E\u3059","{0} \u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u6700\u9069\u5316\u30E2\u30FC\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u3001{1} \u3067\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AF\u3092\u958B\u304D\u3001[\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC \u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3 \u30E2\u30FC\u30C9\u306E\u5207\u308A\u66FF\u3048] \u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u73FE\u5728\u30AD\u30FC\u30DC\u30FC\u30C9\u304B\u3089\u30C8\u30EA\u30AC\u30FC\u3067\u304D\u307E\u305B\u3093\u3002","{0} {1} \u3067\u30AD\u30FC\u30D0\u30A4\u30F3\u30C9 \u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3001\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC \u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3 \u30E2\u30FC\u30C9\u306E\u5207\u308A\u66FF\u3048\u30B3\u30DE\u30F3\u30C9\u306B\u30AD\u30FC\u30D0\u30A4\u30F3\u30C9\u3092\u5272\u308A\u5F53\u3066\u3066\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"],"vs/editor/browser/coreCommands":["\u9577\u3044\u884C\u306B\u79FB\u52D5\u3057\u3066\u3082\u884C\u672B\u306B\u4F4D\u7F6E\u3057\u307E\u3059","\u9577\u3044\u884C\u306B\u79FB\u52D5\u3057\u3066\u3082\u884C\u672B\u306B\u4F4D\u7F6E\u3057\u307E\u3059","\u30BB\u30AB\u30F3\u30C0\u30EA \u30AB\u30FC\u30BD\u30EB\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F"],"vs/editor/browser/editorExtensions":["\u5143\u306B\u623B\u3059(&&U)","\u5143\u306B\u623B\u3059","\u3084\u308A\u76F4\u3057(&&R)","\u3084\u308A\u76F4\u3057","\u3059\u3079\u3066\u9078\u629E(&&S)","\u3059\u3079\u3066\u3092\u9078\u629E"],"vs/editor/browser/widget/codeEditorWidget":["\u30AB\u30FC\u30BD\u30EB\u306E\u6570\u306F {0} \u306B\u5236\u9650\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u5927\u304D\u306A\u5909\u66F4\u3092\u884C\u3046\u5834\u5408\u306F\u3001[\u691C\u7D22\u3068\u7F6E\u63DB](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) \u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30DE\u30EB\u30C1 \u30AB\u30FC\u30BD\u30EB\u306E\u4E0A\u9650\u3092\u5897\u3084\u3059"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC\u306E [\u633F\u5165] \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC\u306E [\u524A\u9664] \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC\u306E [\u9589\u3058\u308B] \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u9589\u3058\u308B","\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A Diff Viewer\u3002\u4E0A\u4E0B\u65B9\u5411\u30AD\u30FC\u3092\u4F7F\u7528\u3057\u3066\u79FB\u52D5\u3057\u307E\u3059\u3002","\u5909\u66F4\u3055\u308C\u305F\u884C\u306F\u3042\u308A\u307E\u305B\u3093","1 \u884C\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F","{0} \u884C\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F","\u76F8\u9055 {0}/{1}: \u5143\u306E\u884C {2}\u3001{3}\u3002\u5909\u66F4\u3055\u308C\u305F\u884C {4}\u3001{5}","\u7A7A\u767D","{0} \u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u884C {1}","{0} \u5143\u306E\u884C {1} \u5909\u66F4\u3055\u308C\u305F\u884C {2}","+ {0} \u5909\u66F4\u3055\u308C\u305F\u884C {1}","- {0} \u5143\u306E\u884C {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" {0}\u3092\u4F7F\u7528\u3057\u3066\u3001\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u30D8\u30EB\u30D7\u3092\u958B\u304D\u307E\u3059\u3002"],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["\u524A\u9664\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC","\u524A\u9664\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC","\u5909\u66F4\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC","\u5909\u66F4\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC","\u524A\u9664\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC ({0})","\u5909\u66F4\u3055\u308C\u305F\u884C\u306E\u30B3\u30D4\u30FC ({0})","\u3053\u306E\u5909\u66F4\u3092\u5143\u306B\u623B\u3059"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["\u30B9\u30DA\u30FC\u30B9\u304C\u5236\u9650\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306F\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3059\u308B","\u79FB\u52D5\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30D6\u30ED\u30C3\u30AF\u306E\u8868\u793A","\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC\u3092\u958B\u304F","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u306E\u6298\u308A\u305F\u305F\u307F\u306E\u5207\u308A\u66FF\u3048","\u79FB\u52D5\u3057\u305F\u30B3\u30FC\u30C9 \u30D6\u30ED\u30C3\u30AF\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048","\u30B9\u30DA\u30FC\u30B9\u304C\u5236\u9650\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B [\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D3\u30E5\u30FC\u306E\u4F7F\u7528] \u3092\u5207\u308A\u66FF\u3048\u308B","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC","\u30B5\u30A4\u30C9\u306E\u5207\u308A\u66FF\u3048","\u6BD4\u8F03\u79FB\u52D5\u306E\u7D42\u4E86","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306E\u30EA\u30FC\u30B8\u30E7\u30F3\u3092\u6298\u308A\u305F\u305F\u3080","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306E\u30EA\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u793A\u3059\u308B","\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC","\u6B21\u306E\u5DEE\u5206\u306B\u79FB\u52D5","\u524D\u306E\u5DEE\u5206\u306B\u79FB\u52D5"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u3092\u6298\u308A\u305F\u305F\u3080","\u30AF\u30EA\u30C3\u30AF\u307E\u305F\u306F\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E0A\u306B\u3082\u3063\u3068\u8868\u793A\u3059\u308B","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u306E\u8868\u793A","\u30AF\u30EA\u30C3\u30AF\u307E\u305F\u306F\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E0B\u306B\u3082\u3063\u3068\u8868\u793A\u3059\u308B","\u975E\u8868\u793A {0} \u884C","\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u5C55\u958B\u3059\u308B"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["\u884C {0}-{1} \u306B\u5909\u66F4\u3092\u52A0\u3048\u3066\u30B3\u30FC\u30C9\u3092\u79FB\u52D5\u3057\u307E\u3057\u305F","\u884C {0}-{1} \u304B\u3089\u5909\u66F4\u3092\u52A0\u3048\u3066\u30B3\u30FC\u30C9\u304C\u79FB\u52D5\u3055\u308C\u307E\u3057\u305F","\u30B3\u30FC\u30C9\u3092\u884C {0}-{1} \u306B\u79FB\u52D5\u3057\u307E\u3057\u305F","\u884C {0}-{1} \u304B\u3089\u79FB\u52D5\u3055\u308C\u305F\u30B3\u30FC\u30C9"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["\u9078\u629E\u3057\u305F\u5909\u66F4\u3092\u5143\u306B\u623B\u3059","\u5909\u66F4\u3092\u5143\u306B\u623B\u3059"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u79FB\u52D5\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u79FB\u52D5\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u30EA\u30FC\u30B8\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5468\u308A\u306E\u5F71\u306E\u8272\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u633F\u5165\u3092\u793A\u3059\u884C\u306E\u88C5\u98FE\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u524A\u9664\u3092\u793A\u3059\u884C\u306E\u88C5\u98FE\u3002"],"vs/editor/browser/widget/hoverWidget/hoverWidget":["{0} \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30DE\u30A6\u30B9 \u30DD\u30A4\u30F3\u30BF\u30FC\u3092\u5408\u308F\u305B\u307E\u3059"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["diff \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D8\u30C3\u30C0\u30FC\u306E\u80CC\u666F\u8272","\u30DE\u30EB\u30C1 \u30D5\u30A1\u30A4\u30EB\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u80CC\u666F\u8272","\u30DE\u30EB\u30C1 \u30D5\u30A1\u30A4\u30EB\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5883\u754C\u7DDA\u306E\u8272"],"vs/editor/common/config/editorConfigurationSchema":["\u30A8\u30C7\u30A3\u30BF\u30FC","1 \u3064\u306E\u30BF\u30D6\u306B\u76F8\u5F53\u3059\u308B\u30B9\u30DA\u30FC\u30B9\u306E\u6570\u3002{0} \u304C\u30AA\u30F3\u306E\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u306F\u30D5\u30A1\u30A4\u30EB \u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u57FA\u3065\u3044\u3066\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002",'\u30A4\u30F3\u30C7\u30F3\u30C8\u307E\u305F\u306F `"tabSize"` \u3067 `#editor.tabSize#` \u306E\u5024\u3092\u4F7F\u7528\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u30B9\u30DA\u30FC\u30B9\u306E\u6570\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u3001 `#editor.detectIndentation#` \u304C\u30AA\u30F3\u306E\u5834\u5408\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u307E\u3059\u3002',"`Tab` \u30AD\u30FC\u3092\u62BC\u3059\u3068\u30B9\u30DA\u30FC\u30B9\u304C\u633F\u5165\u3055\u308C\u307E\u3059\u3002{0} \u304C\u30AA\u30F3\u306E\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u306F\u30D5\u30A1\u30A4\u30EB \u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u57FA\u3065\u3044\u3066\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002","\u30D5\u30A1\u30A4\u30EB\u304C\u30D5\u30A1\u30A4\u30EB\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u958B\u304B\u308C\u308B\u5834\u5408\u3001{0} \u3068 {1} \u3092\u81EA\u52D5\u7684\u306B\u691C\u51FA\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u81EA\u52D5\u633F\u5165\u3055\u308C\u305F\u672B\u5C3E\u306E\u7A7A\u767D\u3092\u524A\u9664\u3057\u307E\u3059\u3002","\u5927\u304D\u306A\u30D5\u30A1\u30A4\u30EB\u3067\u30E1\u30E2\u30EA\u304C\u96C6\u4E2D\u3059\u308B\u7279\u5B9A\u306E\u6A5F\u80FD\u3092\u7121\u52B9\u306B\u3059\u308B\u305F\u3081\u306E\u7279\u5225\u306A\u51E6\u7406\u3002","\u5358\u8A9E\u30D9\u30FC\u30B9\u306E\u5019\u88DC\u3092\u30AA\u30D5\u306B\u3057\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u306E\u307F\u5358\u8A9E\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u540C\u3058\u8A00\u8A9E\u306E\u958B\u3044\u3066\u3044\u308B\u3059\u3079\u3066\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u5358\u8A9E\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u958B\u3044\u3066\u3044\u308B\u3059\u3079\u3066\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u5358\u8A9E\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u5358\u8A9E\u306B\u57FA\u3065\u3044\u3066\u5165\u529B\u5019\u88DC\u3092\u8A08\u7B97\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u307E\u305F\u3069\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u5165\u529B\u5019\u88DC\u3092\u8A08\u7B97\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30BB\u30DE\u30F3\u30C6\u30A3\u30C3\u30AF\u306E\u5F37\u8ABF\u8868\u793A\u304C\u3059\u3079\u3066\u306E\u914D\u8272\u30C6\u30FC\u30DE\u306B\u3064\u3044\u3066\u6709\u52B9\u306B\u306A\u308A\u307E\u3057\u305F\u3002","\u30BB\u30DE\u30F3\u30C6\u30A3\u30C3\u30AF\u306E\u5F37\u8ABF\u8868\u793A\u304C\u3059\u3079\u3066\u306E\u914D\u8272\u30C6\u30FC\u30DE\u306B\u3064\u3044\u3066\u7121\u52B9\u306B\u306A\u308A\u307E\u3057\u305F\u3002","\u30BB\u30DE\u30F3\u30C6\u30A3\u30C3\u30AF\u306E\u5F37\u8ABF\u8868\u793A\u306F\u3001\u73FE\u5728\u306E\u914D\u8272\u30C6\u30FC\u30DE\u306E 'semanticHighlighting' \u8A2D\u5B9A\u306B\u3088\u3063\u3066\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002","semanticHighlighting \u3092\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u308B\u8A00\u8A9E\u3067\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u304B\u3001`Escape` \u30AD\u30FC\u3092\u62BC\u3057\u3066\u3082\u3001\u30D4\u30FC\u30AF \u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u958B\u3044\u305F\u307E\u307E\u306B\u3057\u307E\u3059\u3002","\u3053\u306E\u9577\u3055\u3092\u8D8A\u3048\u308B\u884C\u306F\u3001\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u4E0A\u306E\u7406\u7531\u306B\u3088\u308A\u30C8\u30FC\u30AF\u30F3\u5316\u3055\u308C\u307E\u305B\u3093\u3002","Web \u30EF\u30FC\u30AB\u30FC\u3067\u30C8\u30FC\u30AF\u30F3\u5316\u3092\u975E\u540C\u671F\u7684\u306B\u884C\u3046\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u975E\u540C\u671F\u30C8\u30FC\u30AF\u30F3\u5316\u3092\u30ED\u30B0\u306B\u8A18\u9332\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u30C7\u30D0\u30C3\u30B0\u7528\u306E\u307F\u3002","\u5F93\u6765\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9 \u30C8\u30FC\u30AF\u30F3\u5316\u306B\u5BFE\u3057\u3066\u975E\u540C\u671F\u30C8\u30FC\u30AF\u30F3\u5316\u3092\u691C\u8A3C\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u30C8\u30FC\u30AF\u30F3\u5316\u304C\u9045\u304F\u306A\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u30C7\u30D0\u30C3\u30B0\u5C02\u7528\u3067\u3059\u3002","\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u5897\u6E1B\u3059\u308B\u89D2\u304B\u3063\u3053\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002","\u5DE6\u89D2\u304B\u3063\u3053\u307E\u305F\u306F\u6587\u5B57\u5217\u30B7\u30FC\u30B1\u30F3\u30B9\u3002","\u53F3\u89D2\u304B\u3063\u3053\u307E\u305F\u306F\u6587\u5B57\u5217\u30B7\u30FC\u30B1\u30F3\u30B9\u3002","\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5834\u5408\u3001\u5165\u308C\u5B50\u306E\u30EC\u30D9\u30EB\u306B\u3088\u3063\u3066\u8272\u4ED8\u3051\u3055\u308C\u308B\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002","\u5DE6\u89D2\u304B\u3063\u3053\u307E\u305F\u306F\u6587\u5B57\u5217\u30B7\u30FC\u30B1\u30F3\u30B9\u3002","\u53F3\u89D2\u304B\u3063\u3053\u307E\u305F\u306F\u6587\u5B57\u5217\u30B7\u30FC\u30B1\u30F3\u30B9\u3002","\u5DEE\u5206\u8A08\u7B97\u304C\u53D6\u308A\u6D88\u3055\u308C\u305F\u5F8C\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 (\u30DF\u30EA\u79D2\u5358\u4F4D)\u3002\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u306A\u3057\u306B\u306F 0 \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u5DEE\u5206\u3092\u8A08\u7B97\u3059\u308B\u5834\u5408\u306E\u6700\u5927\u30D5\u30A1\u30A4\u30EB \u30B5\u30A4\u30BA (MB)\u3002\u5236\u9650\u306A\u3057\u306E\u5834\u5408\u306F 0 \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u5DEE\u5206\u3092\u6A2A\u306B\u4E26\u3079\u3066\u8868\u793A\u3059\u308B\u304B\u3001\u884C\u5185\u306B\u8868\u793A\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5E45\u304C\u3053\u306E\u5024\u3088\u308A\u5C0F\u3055\u3044\u5834\u5408\u306F\u3001\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D3\u30E5\u30FC\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u3068\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5E45\u304C\u5C0F\u3055\u3059\u304E\u308B\u5834\u5408\u306F\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D3\u30E5\u30FC\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30B0\u30EA\u30D5\u4F59\u767D\u306B\u3001\u5909\u66F4\u3092\u5143\u306B\u623B\u3059\u305F\u3081\u306E\u77E2\u5370\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306E\u7A7A\u767D\u6587\u5B57\u306E\u5909\u66F4\u3092\u7121\u8996\u3057\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u8FFD\u52A0/\u524A\u9664\u3055\u308C\u305F\u5909\u66F4\u306B +/- \u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u3092\u793A\u3059\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067 CodeLens \u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u884C\u3092\u6298\u308A\u8FD4\u3057\u307E\u305B\u3093\u3002","\u884C\u3092\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u306E\u5E45\u3067\u6298\u308A\u8FD4\u3057\u307E\u3059\u3002","\u884C\u306F\u3001{0} \u306E\u8A2D\u5B9A\u306B\u5F93\u3063\u3066\u6298\u308A\u8FD4\u3055\u308C\u307E\u3059\u3002","\u5F93\u6765\u306E\u5DEE\u5206\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u9AD8\u5EA6\u306A\u5DEE\u5206\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u672A\u5909\u66F4\u306E\u9818\u57DF\u306B\u4F7F\u7528\u3055\u308C\u308B\u7DDA\u306E\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u306E\u6700\u5C0F\u5024\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u308B\u7DDA\u306E\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u9818\u57DF\u3092\u6BD4\u8F03\u3059\u308B\u3068\u304D\u306B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u308B\u884C\u306E\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u691C\u51FA\u3055\u308C\u305F\u30B3\u30FC\u30C9\u306E\u79FB\u52D5\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6587\u5B57\u304C\u633F\u5165\u307E\u305F\u306F\u524A\u9664\u3055\u308C\u305F\u5834\u6240\u3092\u78BA\u8A8D\u3059\u308B\u305F\u3081\u306B\u3001\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u7A7A\u306E\u88C5\u98FE\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002"],"vs/editor/common/config/editorOptions":["\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 API \u3092\u4F7F\u7528\u3057\u3066\u3001\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u304C\u3044\u3064\u63A5\u7D9A\u3055\u308C\u305F\u304B\u3092\u691C\u51FA\u3057\u307E\u3059\u3002","\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u3067\u306E\u4F7F\u7528\u3092\u6700\u9069\u5316\u3057\u307E\u3059\u3002","\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u304C\u63A5\u7D9A\u3055\u308C\u3066\u3044\u306A\u3044\u3068\u3057\u307E\u3059\u3002","\u3053\u306E UI \u3092\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u306B\u6700\u9069\u5316\u3055\u308C\u305F\u30E2\u30FC\u30C9\u3067\u5B9F\u884C\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30B3\u30E1\u30F3\u30C8\u6642\u306B\u7A7A\u767D\u6587\u5B57\u3092\u633F\u5165\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u884C\u30B3\u30E1\u30F3\u30C8\u306E\u8FFD\u52A0\u307E\u305F\u306F\u524A\u9664\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u5207\u308A\u66FF\u3048\u3067\u3001\u7A7A\u306E\u884C\u3092\u7121\u8996\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u9078\u629E\u7BC4\u56F2\u3092\u6307\u5B9A\u3057\u306A\u3044\u3067\u30B3\u30D4\u30FC\u3059\u308B\u5834\u5408\u306B\u73FE\u5728\u306E\u884C\u3092\u30B3\u30D4\u30FC\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5165\u529B\u4E2D\u306B\u4E00\u81F4\u3092\u691C\u7D22\u3059\u308B\u305F\u3081\u306B\u30AB\u30FC\u30BD\u30EB\u3092\u30B8\u30E3\u30F3\u30D7\u3055\u305B\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u30B7\u30FC\u30C9\u3057\u307E\u305B\u3093\u3002","\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E\u306B\u3042\u308B\u5358\u8A9E\u3092\u542B\u3081\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u5E38\u306B\u30B7\u30FC\u30C9\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u306E\u307F\u3092\u30B7\u30FC\u30C9\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u304B\u3089\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E\u691C\u7D22\u6587\u5B57\u5217\u3092\u4E0E\u3048\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","[\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22] \u3092\u81EA\u52D5\u7684\u306B\u30AA\u30F3\u306B\u3057\u307E\u305B\u3093 (\u65E2\u5B9A)\u3002","[\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22] \u3092\u5E38\u306B\u81EA\u52D5\u7684\u306B\u30AA\u30F3\u306B\u3057\u307E\u3059\u3002","\u8907\u6570\u884C\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306F\u3001[\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22] \u3092\u81EA\u52D5\u7684\u306B\u30AA\u30F3\u306B\u3057\u307E\u3059\u3002","[\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22] \u3092\u81EA\u52D5\u7684\u306B\u30AA\u30F3\u306B\u3059\u308B\u6761\u4EF6\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","macOS \u3067\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u5171\u6709\u306E\u691C\u7D22\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3092\u8AAD\u307F\u53D6\u308A\u307E\u305F\u306F\u5909\u66F4\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E0A\u306B\u884C\u3092\u3055\u3089\u306B\u8FFD\u52A0\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002true \u306E\u5834\u5408\u3001\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u3068\u304D\u306B\u6700\u521D\u306E\u884C\u3092\u8D85\u3048\u3066\u30B9\u30AF\u30ED\u30FC\u30EB\u3067\u304D\u307E\u3059\u3002","\u4EE5\u964D\u3067\u4E00\u81F4\u304C\u898B\u3064\u304B\u3089\u306A\u3044\u5834\u5408\u306B\u3001\u691C\u7D22\u3092\u5148\u982D\u304B\u3089 (\u307E\u305F\u306F\u672B\u5C3E\u304B\u3089) \u81EA\u52D5\u7684\u306B\u518D\u5B9F\u884C\u3059\u308B\u304B\u3069\u3046\u304B\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D5\u30A9\u30F3\u30C8\u306E\u5408\u5B57 ('calt' \u304A\u3088\u3073 'liga' \u30D5\u30A9\u30F3\u30C8\u306E\u6A5F\u80FD) \u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3057\u307E\u3059\u3002'font-feature-settings' CSS \u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A73\u7D30\u306B\u5236\u5FA1\u3059\u308B\u306B\u306F\u3001\u3053\u308C\u3092\u6587\u5B57\u5217\u306B\u5909\u66F4\u3057\u307E\u3059\u3002","\u660E\u793A\u7684\u306A 'font-feature-settings' CSS \u30D7\u30ED\u30D1\u30C6\u30A3\u3002\u5408\u5B57\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u306E\u304C 1 \u3064\u3060\u3051\u3067\u3042\u308B\u5834\u5408\u306F\u3001\u4EE3\u308F\u308A\u306B\u30D6\u30FC\u30EB\u5024\u3092\u6E21\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","\u30D5\u30A9\u30F3\u30C8\u306E\u5408\u5B57\u3084\u30D5\u30A9\u30F3\u30C8\u306E\u6A5F\u80FD\u3092\u69CB\u6210\u3057\u307E\u3059\u3002\u5408\u5B57\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3059\u308B\u30D6\u30FC\u30EB\u5024\u307E\u305F\u306F CSS 'font-feature-settings' \u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u5024\u306E\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002","font-weight \u304B\u3089 font-variation-settings \u3078\u306E\u5909\u63DB\u3092\u6709\u52B9/\u7121\u52B9\u306B\u3057\u307E\u3059\u3002'font-variation-settings' CSS \u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u7D30\u304B\u304F\u5236\u5FA1\u3059\u308B\u305F\u3081\u306B\u3001\u3053\u308C\u3092\u6587\u5B57\u5217\u306B\u5909\u66F4\u3057\u307E\u3059\u3002","\u660E\u793A\u7684\u306A 'font-variation-settings' CSS \u30D7\u30ED\u30D1\u30C6\u30A3\u3002font-weight \u3092 font-variation-settings \u306B\u5909\u63DB\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3060\u3051\u3067\u3042\u308C\u3070\u3001\u4EE3\u308F\u308A\u306B\u30D6\u30FC\u30EB\u5024\u3092\u6E21\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","\u30D5\u30A9\u30F3\u30C8\u306E\u30D0\u30EA\u30A8\u30FC\u30B7\u30E7\u30F3\u3092\u69CB\u6210\u3057\u307E\u3059\u3002font-weight \u304B\u3089 font-variation-settings \u3078\u306E\u5909\u63DB\u3092\u6709\u52B9/\u7121\u52B9\u306B\u3059\u308B\u30D6\u30FC\u30EB\u5024\u3001\u307E\u305F\u306F CSS 'font-variation-settings' \u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u5024\u306E\u6587\u5B57\u5217\u306E\u3044\u305A\u308C\u304B\u3067\u3059\u3002","\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA (\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D) \u3092\u5236\u5FA1\u3057\u307E\u3059\u3002",'\u4F7F\u7528\u3067\u304D\u308B\u306E\u306F "\u6A19\u6E96" \u304A\u3088\u3073 "\u592A\u5B57" \u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u307E\u305F\u306F 1 \uFF5E 1000 \u306E\u6570\u5B57\u306E\u307F\u3067\u3059\u3002','\u30D5\u30A9\u30F3\u30C8\u306E\u592A\u3055\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002"\u6A19\u6E96" \u304A\u3088\u3073 "\u592A\u5B57" \u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u307E\u305F\u306F 1 \uFF5E 1000 \u306E\u6570\u5B57\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002',"\u7D50\u679C\u306E\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u3092\u8868\u793A (\u65E2\u5B9A)","\u4E3B\u306A\u7D50\u679C\u306B\u79FB\u52D5\u3057\u3001\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u3092\u8868\u793A\u3057\u307E\u3059","\u30D7\u30E9\u30A4\u30DE\u30EA\u7D50\u679C\u306B\u79FB\u52D5\u3057\u3001\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u3078\u306E\u30D4\u30FC\u30AF\u30EC\u30B9 \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3057\u307E\u3059","\u3053\u306E\u8A2D\u5B9A\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B\u3001'editor.editor.gotoLocation.multipleDefinitions' \u3084 'editor.editor.gotoLocation.multipleImplementations' \u306A\u3069\u306E\u500B\u5225\u306E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u8907\u6570\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u5834\u6240\u304C\u3042\u308B\u3068\u304D\u306E '\u5B9A\u7FA9\u3078\u79FB\u52D5' \u30B3\u30DE\u30F3\u30C9\u306E\u52D5\u4F5C\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8907\u6570\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u5834\u6240\u304C\u3042\u308B\u3068\u304D\u306E '\u578B\u5B9A\u7FA9\u3078\u79FB\u52D5' \u30B3\u30DE\u30F3\u30C9\u306E\u52D5\u4F5C\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8907\u6570\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u5834\u6240\u304C\u3042\u308B\u3068\u304D\u306E '\u5BA3\u8A00\u3078\u79FB\u52D5' \u30B3\u30DE\u30F3\u30C9\u306E\u52D5\u4F5C\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8907\u6570\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u5834\u6240\u304C\u3042\u308B\u3068\u304D\u306E '\u5B9F\u88C5\u306B\u79FB\u52D5' \u30B3\u30DE\u30F3\u30C9\u306E\u52D5\u4F5C\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u5834\u6240\u304C\u8907\u6570\u5B58\u5728\u3059\u308B\u5834\u5408\u306E '\u53C2\u7167\u3078\u79FB\u52D5' \u30B3\u30DE\u30F3\u30C9\u306E\u52D5\u4F5C\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","'\u5B9A\u7FA9\u3078\u79FB\u52D5' \u306E\u7D50\u679C\u304C\u73FE\u5728\u306E\u5834\u6240\u3067\u3042\u308B\u5834\u5408\u306B\u5B9F\u884C\u3055\u308C\u308B\u4EE3\u66FF\u30B3\u30DE\u30F3\u30C9 ID\u3002","'\u578B\u5B9A\u7FA9\u3078\u79FB\u52D5' \u306E\u7D50\u679C\u304C\u73FE\u5728\u306E\u5834\u6240\u3067\u3042\u308B\u5834\u5408\u306B\u5B9F\u884C\u3055\u308C\u308B\u4EE3\u66FF\u30B3\u30DE\u30F3\u30C9 ID\u3002","'\u5BA3\u8A00\u3078\u79FB\u52D5' \u306E\u7D50\u679C\u304C\u73FE\u5728\u306E\u5834\u6240\u3067\u3042\u308B\u5834\u5408\u306B\u5B9F\u884C\u3055\u308C\u308B\u4EE3\u66FF\u30B3\u30DE\u30F3\u30C9 ID\u3002","'\u5B9F\u88C5\u3078\u79FB\u52D5' \u306E\u7D50\u679C\u304C\u73FE\u5728\u306E\u5834\u6240\u3067\u3042\u308B\u5834\u5408\u306B\u5B9F\u884C\u3055\u308C\u308B\u4EE3\u66FF\u30B3\u30DE\u30F3\u30C9 ID\u3002","'\u53C2\u7167\u3078\u79FB\u52D5' \u306E\u7D50\u679C\u304C\u73FE\u5728\u306E\u5834\u6240\u3067\u3042\u308B\u5834\u5408\u306B\u5B9F\u884C\u3055\u308C\u308B\u4EE3\u66FF\u30B3\u30DE\u30F3\u30C9 ID\u3002","\u30DB\u30D0\u30FC\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DB\u30D0\u30FC\u3092\u8868\u793A\u5F8C\u306E\u5F85\u3061\u6642\u9593 (\u30DF\u30EA\u79D2) \u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DB\u30D0\u30FC\u306B\u30DE\u30A6\u30B9\u3092\u79FB\u52D5\u3057\u305F\u3068\u304D\u306B\u3001\u30DB\u30D0\u30FC\u3092\u8868\u793A\u3057\u7D9A\u3051\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DB\u30D0\u30FC\u304C\u975E\u8868\u793A\u306B\u306A\u308B\u307E\u3067\u306E\u9045\u5EF6\u3092\u30DF\u30EA\u79D2\u5358\u4F4D\u3067\u5236\u5FA1\u3057\u307E\u3059\u3002`editor.hover.sticky` \u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30B9\u30DA\u30FC\u30B9\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u884C\u306E\u4E0A\u306B\u30DE\u30A6\u30B9 \u30AB\u30FC\u30BD\u30EB\u3092\u88AB\u305B\u3066\u8868\u793A\u3059\u308B\u3002","\u3059\u3079\u3066\u306E\u6587\u5B57\u306E\u5E45\u304C\u540C\u3058\u3067\u3042\u308B\u3068\u4EEE\u5B9A\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u30E2\u30CE\u30B9\u30DA\u30FC\u30B9 \u30D5\u30A9\u30F3\u30C8\u3084\u3001\u30B0\u30EA\u30D5\u306E\u5E45\u304C\u7B49\u3057\u3044\u7279\u5B9A\u306E\u30B9\u30AF\u30EA\u30D7\u30C8 (\u30E9\u30C6\u30F3\u6587\u5B57\u306A\u3069) \u3067\u6B63\u3057\u304F\u52D5\u4F5C\u3059\u308B\u9AD8\u901F\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3067\u3059\u3002","\u6298\u308A\u8FD4\u3057\u30DD\u30A4\u30F3\u30C8\u306E\u8A08\u7B97\u3092\u30D6\u30E9\u30A6\u30B6\u30FC\u306B\u30C7\u30EA\u30B2\u30FC\u30C8\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u5927\u304D\u306A\u30D5\u30A1\u30A4\u30EB\u306E\u30D5\u30EA\u30FC\u30BA\u3092\u5F15\u304D\u8D77\u3053\u3059\u53EF\u80FD\u6027\u304C\u3042\u308B\u3082\u306E\u306E\u3001\u3059\u3079\u3066\u306E\u30B1\u30FC\u30B9\u3067\u6B63\u3057\u304F\u52D5\u4F5C\u3059\u308B\u4F4E\u901F\u306A\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3067\u3059\u3002","\u6298\u308A\u8FD4\u3057\u30DD\u30A4\u30F3\u30C8\u3092\u8A08\u7B97\u3059\u308B\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3 \u30E2\u30FC\u30C9\u3067\u306F\u3001\u6700\u9AD8\u306E\u30A8\u30AF\u30B9\u30DA\u30EA\u30A8\u30F3\u30B9\u3092\u5B9F\u73FE\u3059\u308B\u305F\u3081\u306B\u8A73\u7D30\u8A2D\u5B9A\u304C\u4F7F\u7528\u3055\u308C\u308B\u3053\u3068\u306B\u3054\u6CE8\u610F\u304F\u3060\u3055\u3044\u3002","\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3 \u30E1\u30CB\u30E5\u30FC\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u304C\u30B3\u30FC\u30C9\u304C\u5B58\u5728\u3059\u308B\u884C\u306B\u3042\u308B\u3068\u304D\u306B\u3001\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3 \u30E1\u30CB\u30E5\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u304C\u30B3\u30FC\u30C9\u306E\u3042\u308B\u884C\u307E\u305F\u306F\u7A7A\u306E\u884C\u306B\u3042\u308B\u3068\u304D\u306B\u3001\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3 \u30E1\u30CB\u30E5\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u96FB\u7403\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30B9\u30AF\u30ED\u30FC\u30EB\u4E2D\u306B\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E0A\u90E8\u306B\u5165\u308C\u5B50\u306B\u306A\u3063\u305F\u73FE\u5728\u306E\u30B9\u30B3\u30FC\u30D7\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u8868\u793A\u3059\u308B\u8FFD\u5F93\u884C\u306E\u6700\u5927\u6570\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002","\u56FA\u5B9A\u3059\u308B\u884C\u3092\u6C7A\u5B9A\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30E2\u30C7\u30EB\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3 \u30E2\u30C7\u30EB\u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u30A4\u30F3\u30C7\u30F3\u30C8 \u30E2\u30C7\u30EB\u306B\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3059\u308B\u6298\u308A\u305F\u305F\u307F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC \u30E2\u30C7\u30EB\u306B\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3057\u307E\u3059\u3002\u3053\u306E\u9806\u5E8F\u306F\u30013 \u3064\u306E\u30B1\u30FC\u30B9\u3059\u3079\u3066\u3067\u512A\u5148\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC\u3067\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u30B9\u30AF\u30ED\u30FC\u30EB\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A4\u30F3\u30EC\u30FC \u30D2\u30F3\u30C8\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059","\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u306F\u65E2\u5B9A\u3067\u8868\u793A\u3055\u308C\u3001{0} \u3092\u62BC\u3057\u305F\u307E\u307E\u306B\u3059\u308B\u3068\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059","\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u306F\u65E2\u5B9A\u3067\u306F\u975E\u8868\u793A\u306B\u306A\u308A\u3001{0} \u3092\u62BC\u3057\u305F\u307E\u307E\u306B\u3059\u308B\u3068\u8868\u793A\u3055\u308C\u307E\u3059","\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u89E3\u8AAC\u30D2\u30F3\u30C8\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u65E2\u5B9A\u3067\u306F\u3001{0} \u306F\u3001\u69CB\u6210\u3055\u308C\u305F\u5024\u304C {1} \u3088\u308A\u5C0F\u3055\u3044\u304B\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3088\u308A\u5927\u304D\u3044\u5834\u5408\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u89E3\u8AAC\u30D2\u30F3\u30C8\u306E\u30D5\u30A9\u30F3\u30C8 \u30D5\u30A1\u30DF\u30EA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u7A7A\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001 {0} \u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u306B\u95A2\u3059\u308B\u30D1\u30C7\u30A3\u30F3\u30B0\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002",`\u884C\u306E\u9AD8\u3055\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\r + - 0 \u3092\u4F7F\u7528\u3057\u3066\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u304B\u3089\u884C\u306E\u9AD8\u3055\u3092\u81EA\u52D5\u7684\u306B\u8A08\u7B97\u3057\u307E\u3059\u3002\r + - 0 \u304B\u3089 8 \u307E\u3067\u306E\u5024\u306F\u3001\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u306E\u4E57\u6570\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\r + - 8 \u4EE5\u4E0A\u306E\u5024\u306F\u6709\u52B9\u5024\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002`,"\u30DF\u30CB\u30DE\u30C3\u30D7\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u3092\u81EA\u52D5\u7684\u306B\u975E\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306E\u30B5\u30A4\u30BA\u306F\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3068\u540C\u3058\u3067\u3059 (\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059)\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306F\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9AD8\u3055\u3092\u57CB\u3081\u308B\u305F\u3081\u3001\u62E1\u5927\u307E\u305F\u306F\u7E2E\u5C0F\u3057\u307E\u3059 (\u30B9\u30AF\u30ED\u30FC\u30EB\u3057\u307E\u305B\u3093)\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u7E2E\u5C0F\u3057\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u3088\u308A\u5927\u304D\u304F\u306A\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093 (\u30B9\u30AF\u30ED\u30FC\u30EB\u3057\u307E\u305B\u3093)\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306E\u30B5\u30A4\u30BA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u3092\u8868\u793A\u3059\u308B\u5834\u6240\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7 \u30B9\u30E9\u30A4\u30C0\u30FC\u3092\u8868\u793A\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306B\u63CF\u753B\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30B9\u30B1\u30FC\u30EB: 1\u30012\u3001\u307E\u305F\u306F 3\u3002","\u884C\u306B\u30AB\u30E9\u30FC \u30D6\u30ED\u30C3\u30AF\u3067\u306F\u306A\u304F\u5B9F\u969B\u306E\u6587\u5B57\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u8868\u793A\u3059\u308B\u30DF\u30CB\u30DE\u30C3\u30D7\u306E\u6700\u5927\u5E45\u3092\u7279\u5B9A\u306E\u5217\u6570\u306B\u5236\u9650\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E0A\u7AEF\u3068\u6700\u521D\u306E\u884C\u306E\u9593\u306E\u4F59\u767D\u306E\u5927\u304D\u3055\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E0B\u7AEF\u3068\u6700\u5F8C\u306E\u884C\u306E\u9593\u306E\u4F59\u767D\u306E\u5927\u304D\u3055\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5165\u529B\u6642\u306B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3068\u578B\u60C5\u5831\u3092\u8868\u793A\u3059\u308B\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8 \u30E1\u30CB\u30E5\u30FC\u3092\u5468\u56DE\u3059\u308B\u304B\u3001\u30EA\u30B9\u30C8\u306E\u6700\u5F8C\u3067\u9589\u3058\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u63D0\u6848\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306B\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u308B","\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u304C\u30B4\u30FC\u30B9\u30C8 \u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u308B","\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059","\u6587\u5B57\u5217\u5185\u3067\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30B3\u30E1\u30F3\u30C8\u5185\u3067\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u6587\u5B57\u5217\u304A\u3088\u3073\u30B3\u30E1\u30F3\u30C8\u5916\u3067\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u5165\u529B\u4E2D\u306B\u5019\u88DC\u3092\u81EA\u52D5\u7684\u306B\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u30B3\u30E1\u30F3\u30C8\u3001\u6587\u5B57\u5217\u3001\u305D\u306E\u4ED6\u30B3\u30FC\u30C9\u306E\u5165\u529B\u7528\u306B\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002\u30AF\u30A4\u30C3\u30AF\u63D0\u6848\u306F\u3001\u30B4\u30FC\u30B9\u30C8 \u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u8868\u793A\u3059\u308B\u304B\u3001\u63D0\u6848\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3067\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u69CB\u6210\u3067\u304D\u307E\u3059\u3002\u307E\u305F\u3001'{0}' \u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3053\u308C\u306F\u3001\u63D0\u6848\u304C\u7279\u6B8A\u6587\u5B57\u306B\u3088\u3063\u3066\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3059\u308B\u8A2D\u5B9A\u3067\u3059\u3002","\u884C\u756A\u53F7\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002","\u884C\u756A\u53F7\u306F\u3001\u7D76\u5BFE\u5024\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u884C\u756A\u53F7\u306F\u3001\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E\u307E\u3067\u306E\u884C\u6570\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u884C\u756A\u53F7\u306F 10 \u884C\u3054\u3068\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u884C\u756A\u53F7\u306E\u8868\u793A\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u3053\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30EB\u30FC\u30E9\u30FC\u304C\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3059\u308B\u5358\u4E00\u9818\u57DF\u306E\u6587\u5B57\u6570\u3002","\u3053\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30EB\u30FC\u30E9\u30FC\u306E\u8272\u3067\u3059\u3002","\u7279\u5B9A\u306E\u7B49\u5E45\u6587\u5B57\u6570\u306E\u5F8C\u306B\u5782\u76F4\u30EB\u30FC\u30E9\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u8907\u6570\u306E\u30EB\u30FC\u30E9\u30FC\u306B\u306F\u8907\u6570\u306E\u5024\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u914D\u5217\u304C\u7A7A\u306E\u5834\u5408\u306F\u30EB\u30FC\u30E9\u30FC\u3092\u8868\u793A\u3057\u307E\u305B\u3093\u3002","\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u3001\u5FC5\u8981\u306A\u5834\u5408\u306B\u306E\u307F\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u5E38\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u5E38\u306B\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306E\u8868\u793A\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u3001\u5FC5\u8981\u306A\u5834\u5408\u306B\u306E\u307F\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u5E38\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u5E38\u306B\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306E\u8868\u793A\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306E\u5E45\u3002","\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306E\u9AD8\u3055\u3002","\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u30DA\u30FC\u30B8\u5358\u4F4D\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u304B\u3001\u30AF\u30EA\u30C3\u30AF\u4F4D\u7F6E\u306B\u30B8\u30E3\u30F3\u30D7\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC\u306F\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30B5\u30A4\u30BA\u3092\u5927\u304D\u304F\u3057\u307E\u305B\u3093\u3002","\u57FA\u672C ASCII \u4EE5\u5916\u306E\u3059\u3079\u3066\u306E\u6587\u5B57\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002U+0020 \u304B\u3089 U+007E \u306E\u9593\u306E\u6587\u5B57\u3001\u30BF\u30D6\u3001\u6539\u884C (LF)\u3001\u884C\u982D\u5FA9\u5E30\u306E\u307F\u304C\u57FA\u672C ASCII \u3068\u898B\u306A\u3055\u308C\u307E\u3059\u3002","\u7A7A\u767D\u3092\u5360\u3081\u308B\u3060\u3051\u306E\u6587\u5B57\u3084\u5E45\u304C\u307E\u3063\u305F\u304F\u306A\u3044\u6587\u5B57\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u73FE\u5728\u306E\u30E6\u30FC\u30B6\u30FC \u30ED\u30B1\u30FC\u30EB\u3067\u4E00\u822C\u7684\u306A\u6587\u5B57\u3092\u9664\u304D\u3001\u57FA\u672C\u7684\u306A ASCII \u6587\u5B57\u3068\u6DF7\u540C\u3055\u308C\u308B\u53EF\u80FD\u6027\u306E\u3042\u308B\u6587\u5B57\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30B3\u30E1\u30F3\u30C8\u5185\u306E\u6587\u5B57\u3092 Unicode \u5F37\u8ABF\u8868\u793A\u306E\u5BFE\u8C61\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6587\u5B57\u5217\u5185\u306E\u6587\u5B57\u3092 Unicode \u5F37\u8ABF\u8868\u793A\u306E\u5BFE\u8C61\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5F37\u8ABF\u8868\u793A\u305B\u305A\u8A31\u53EF\u3055\u308C\u308B\u6587\u5B57\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002","\u8A31\u53EF\u3055\u308C\u3066\u3044\u308B\u30ED\u30B1\u30FC\u30EB\u3067\u4E00\u822C\u7684\u306A Unicode \u6587\u5B57\u306F\u5F37\u8ABF\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u81EA\u52D5\u7684\u306B\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u308B\u305F\u3073\u306B\u3001\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u306B\u30AB\u30FC\u30BD\u30EB\u3092\u5408\u308F\u305B\u308B\u305F\u3073\u306B\u3001\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u4ECA\u5F8C\u306F\u8868\u793A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u63D0\u6848\u3068\u63D0\u6848\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u76F8\u4E92\u4F5C\u7528\u306E\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u6709\u52B9\u3059\u308B\u3068\u3001\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u304C\u4F7F\u7528\u53EF\u80FD\u306A\u5834\u5408\u306F\u3001\u63D0\u6848\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u81EA\u52D5\u7684\u306B\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u63D0\u6848\u306E\u30D5\u30A9\u30F3\u30C8 \u30D5\u30A1\u30DF\u30EA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u3092\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u304C\u8868\u793A\u3055\u308C\u308B\u305F\u3073\u306B\u3001\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u306B\u30AB\u30FC\u30BD\u30EB\u3092\u5408\u308F\u305B\u308B\u305F\u3073\u306B\u3001\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3057\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u306E\u30D5\u30A9\u30F3\u30C8 \u30D5\u30A1\u30DF\u30EA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u7DE8\u96C6\u306E\u80CC\u666F\u306B\u914D\u8272\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D6\u30E9\u30B1\u30C3\u30C8\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u304C\u6709\u52B9\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002 {0} \u3092\u4F7F\u7528\u3057\u3066\u3001\u30D6\u30E9\u30B1\u30C3\u30C8\u306E\u5F37\u8ABF\u8868\u793A\u306E\u8272\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059\u3002","\u62EC\u5F27\u306E\u5404\u7A2E\u5225\u304C\u3001\u500B\u5225\u306E\u30AB\u30E9\u30FC \u30D7\u30FC\u30EB\u3092\u4FDD\u6301\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2\u306B\u5BFE\u3057\u3066\u306E\u307F\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\u3002","\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2\u306E\u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u7E26\u306E\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2\u306E\u30AC\u30A4\u30C9\u306B\u52A0\u3048\u3066\u3001\u540C\u3058\u304F\u6C34\u5E73\u306E\u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2\u306B\u5BFE\u3057\u3066\u306E\u307F\u3001\u6C34\u5E73\u306E\u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u6C34\u5E73\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\u3002","\u6C34\u5E73\u65B9\u5411\u306E\u30D6\u30E9\u30B1\u30C3\u30C8 \u30DA\u30A2\u306E\u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053\u30AC\u30A4\u30C9\u304C\u5F37\u8ABF\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3067\u3082\u3001\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u3092\u5F37\u8ABF\u8868\u793A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A4\u30F3\u30C7\u30F3\u30C8\u306E\u30AC\u30A4\u30C9\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u306E\u53F3\u306E\u30C6\u30AD\u30B9\u30C8\u3092\u4E0A\u66F8\u304D\u305B\u305A\u306B\u5019\u88DC\u3092\u633F\u5165\u3057\u307E\u3059\u3002","\u5019\u88DC\u3092\u633F\u5165\u3057\u3001\u30AB\u30FC\u30BD\u30EB\u306E\u53F3\u306E\u30C6\u30AD\u30B9\u30C8\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002","\u5165\u529B\u5019\u88DC\u3092\u53D7\u3051\u5165\u308C\u308B\u3068\u304D\u306B\u5358\u8A9E\u3092\u4E0A\u66F8\u304D\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u3053\u306E\u6A5F\u80FD\u306E\u5229\u7528\u3092\u9078\u629E\u3059\u308B\u62E1\u5F35\u6A5F\u80FD\u306B\u4F9D\u5B58\u3059\u308B\u3053\u3068\u306B\u3054\u6CE8\u610F\u304F\u3060\u3055\u3044\u3002","\u5019\u88DC\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u51E6\u7406\u3068\u4E26\u3073\u66FF\u3048\u3067\u3055\u3055\u3044\u306A\u5165\u529B\u30DF\u30B9\u3092\u8003\u616E\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u4E26\u3079\u66FF\u3048\u304C\u30AB\u30FC\u30BD\u30EB\u4ED8\u8FD1\u306B\u8868\u793A\u3055\u308C\u308B\u5358\u8A9E\u3092\u512A\u5148\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u4FDD\u5B58\u3055\u308C\u305F\u5019\u88DC\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8907\u6570\u306E\u30EF\u30FC\u30AF\u30D7\u30EC\u30FC\u30B9\u3068\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u5171\u6709\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059 (`#editor.suggestSelection#` \u304C\u5FC5\u8981)\u3002","IntelliSense \u3092\u81EA\u52D5\u3067\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u5834\u5408\u306B\u3001\u5E38\u306B\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002","IntelliSense \u3092\u81EA\u52D5\u3067\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u5834\u5408\u306B\u3001\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u305B\u3093\u3002","\u30C8\u30EA\u30AC\u30FC\u6587\u5B57\u304B\u3089 IntelliSense \u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u5834\u5408\u306B\u306E\u307F\u3001\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002","\u5165\u529B\u6642\u306B IntelliSense \u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u5834\u5408\u306B\u306E\u307F\u3001\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002","\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3059\u308B\u969B\u306B\u5019\u88DC\u3092\u9078\u629E\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u3053\u3061\u3089\u306F\u81EA\u52D5\u7684\u306B\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B\u5019\u88DC ('#editor.quickSuggestions#' \u3068 '#editor.suggestOnTriggerCharacters#') \u306B\u306E\u307F\u9069\u7528\u3055\u308C\u3001('Ctrl+Space' \u306A\u3069\u3092\u901A\u3058\u3066) \u660E\u793A\u7684\u306B\u547C\u3073\u51FA\u3055\u308C\u308B\u969B\u306B\u306F\u5E38\u306B\u5019\u88DC\u304C\u9078\u629E\u3055\u308C\u308B\u3053\u3068\u306B\u3054\u6CE8\u610F\u304F\u3060\u3055\u3044\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6 \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u3092\u9632\u6B62\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u63D0\u6848\u306E\u30A2\u30A4\u30B3\u30F3\u3092\u8868\u793A\u3059\u308B\u304B\u3001\u975E\u8868\u793A\u306B\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u4E0B\u90E8\u306B\u3042\u308B\u30B9\u30C6\u30FC\u30BF\u30B9 \u30D0\u30FC\u306E\u8868\u793A\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u63D0\u6848\u306E\u7D50\u679C\u3092\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5019\u88DC\u306E\u8A73\u7D30\u3092\u30E9\u30D9\u30EB\u4ED8\u304D\u306E\u30A4\u30F3\u30E9\u30A4\u30F3\u3067\u8868\u793A\u3059\u308B\u304B\u3001\u8A73\u7D30\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u306E\u307F\u8868\u793A\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u3053\u306E\u8A2D\u5B9A\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u304C\u3067\u304D\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F\u3002","\u3053\u306E\u8A2D\u5B9A\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B\u3001'editor.suggest.showKeywords' \u3084 'editor.suggest.showSnippets' \u306A\u3069\u306E\u500B\u5225\u306E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30E1\u30BD\u30C3\u30C9` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u95A2\u6570` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u975E\u63A8\u5968` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u51E6\u7406\u3067\u306F\u3001\u5358\u8A9E\u306E\u5148\u982D\u3067\u6700\u521D\u306E\u6587\u5B57\u304C\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001`Console` \u3084 `WebContext` \u306E\u5834\u5408\u306F `c`\u3001`description` \u306E\u5834\u5408\u306F _not_ \u3067\u3059\u3002\u7121\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306F\u3088\u308A\u591A\u304F\u306E\u7D50\u679C\u3092\u8868\u793A\u3057\u307E\u3059\u304C\u3001\u4E00\u81F4\u54C1\u8CEA\u3067\u4E26\u3079\u66FF\u3048\u3089\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30D5\u30A3\u30FC\u30EB\u30C9` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u5909\u6570` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B '\u30AF\u30E9\u30B9' \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u69CB\u9020\u4F53` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30E2\u30B8\u30E5\u30FC\u30EB` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30D7\u30ED\u30D1\u30C6\u30A3` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30A4\u30D9\u30F3\u30C8` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u6F14\u7B97\u5B50` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30E6\u30CB\u30C3\u30C8` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u5024` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u5B9A\u6570` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u5217\u6319\u578B` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `enumMember` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30AD\u30FC\u30EF\u30FC\u30C9` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B '\u30C6\u30AD\u30B9\u30C8' -\u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u8272` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B '\u30D5\u30A1\u30A4\u30EB' \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u53C2\u7167` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `customcolor` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30D5\u30A9\u30EB\u30C0\u30FC` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `typeParameter` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B `\u30B9\u30CB\u30DA\u30C3\u30C8` \u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306A\u5834\u5408\u3001IntelliSense \u306B\u3088\u3063\u3066 '\u30E6\u30FC\u30B6\u30FC' \u5019\u88DC\u304C\u793A\u3055\u308C\u307E\u3059\u3002","\u6709\u52B9\u306B\u3059\u308B\u3068\u3001IntelliSense \u306B\u3088\u3063\u3066 '\u554F\u984C' \u5019\u88DC\u304C\u793A\u3055\u308C\u307E\u3059\u3002","\u5148\u982D\u3068\u672B\u5C3E\u306E\u7A7A\u767D\u3092\u5E38\u306B\u9078\u629E\u3059\u308B\u304B\u3069\u3046\u304B\u3002","\u30B5\u30D6\u30EF\u30FC\u30C9 ('fooBar' \u306E 'foo' \u307E\u305F\u306F 'foo_bar' \u306A\u3069) \u3092\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u304B\u3069\u3046\u304B\u3002","\u30A4\u30F3\u30C7\u30F3\u30C8\u3057\u307E\u305B\u3093\u3002 \u6298\u308A\u8FD4\u3057\u884C\u306F\u5217 1 \u304B\u3089\u59CB\u307E\u308A\u307E\u3059\u3002","\u6298\u308A\u8FD4\u3057\u884C\u306F\u3001\u89AA\u3068\u540C\u3058\u30A4\u30F3\u30C7\u30F3\u30C8\u306B\u306A\u308A\u307E\u3059\u3002","\u6298\u308A\u8FD4\u3057\u884C\u306F\u3001\u89AA +1 \u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u306B\u306A\u308A\u307E\u3059\u3002","\u6298\u308A\u8FD4\u3057\u884C\u306F\u3001\u89AA +2 \u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u306B\u306A\u308A\u307E\u3059\u3002","\u6298\u308A\u8FD4\u3057\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","(\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u4EE3\u308F\u308A\u306B) `Shift` \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30C6\u30AD\u30B9\u30C8 \u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30E9\u30C3\u30B0 \u30A2\u30F3\u30C9 \u30C9\u30ED\u30C3\u30D7\u3067\u304D\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30ED\u30C3\u30D7\u3059\u308B\u3068\u304D\u306B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u3053\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3067\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u30C9\u30ED\u30C3\u30D7\u65B9\u6CD5\u3092\u5236\u5FA1\u3067\u304D\u307E\u3059\u3002","\u30D5\u30A1\u30A4\u30EB\u304C\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30C9\u30ED\u30C3\u30D7\u3055\u308C\u305F\u5F8C\u306B\u3001\u30C9\u30ED\u30C3\u30D7 \u30BB\u30EC\u30AF\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30C9\u30ED\u30C3\u30D7 \u30BB\u30EC\u30AF\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3057\u307E\u305B\u3093\u3002\u4EE3\u308F\u308A\u306B\u3001\u65E2\u5B9A\u306E\u30C9\u30ED\u30C3\u30D7 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u5E38\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u3055\u307E\u3056\u307E\u306A\u65B9\u6CD5\u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8CBC\u308A\u4ED8\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8CBC\u308A\u4ED8\u3051\u308B\u3068\u304D\u306B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u3053\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u8CBC\u308A\u4ED8\u3051\u65B9\u6CD5\u3092\u5236\u5FA1\u3067\u304D\u307E\u3059\u3002","\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u8CBC\u308A\u4ED8\u3051\u305F\u5F8C\u3001\u8CBC\u308A\u4ED8\u3051\u30BB\u30EC\u30AF\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u8CBC\u308A\u4ED8\u3051\u30BB\u30EC\u30AF\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\u4EE3\u308F\u308A\u306B\u3001\u65E2\u5B9A\u306E\u8CBC\u308A\u4ED8\u3051\u52D5\u4F5C\u304C\u5E38\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30B3\u30DF\u30C3\u30C8\u6587\u5B57\u3067\u5019\u88DC\u3092\u53D7\u3051\u5165\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001JavaScript \u3067\u306F\u30BB\u30DF\u30B3\u30ED\u30F3 (`;`) \u3092\u30B3\u30DF\u30C3\u30C8\u6587\u5B57\u306B\u3057\u3066\u3001\u5019\u88DC\u3092\u53D7\u3051\u5165\u308C\u3066\u305D\u306E\u6587\u5B57\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","\u30C6\u30AD\u30B9\u30C8\u306E\u5909\u66F4\u3092\u884C\u3046\u3068\u304D\u3001`Enter` \u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306B\u306E\u307F\u5019\u88DC\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002","`Tab` \u30AD\u30FC\u306B\u52A0\u3048\u3066 `Enter` \u30AD\u30FC\u3067\u5019\u88DC\u3092\u53D7\u3051\u5165\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u6539\u884C\u306E\u633F\u5165\u3084\u5019\u88DC\u306E\u53CD\u6620\u306E\u9593\u3067\u3042\u3044\u307E\u3044\u3055\u3092\u89E3\u6D88\u3059\u308B\u306E\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002","\u4E00\u5EA6\u306B\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u306B\u3088\u3063\u3066\u8AAD\u307F\u4E0A\u3052\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u884C\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u304C\u691C\u51FA\u3055\u308C\u308B\u3068\u3001\u65E2\u5B9A\u5024\u304C 500 \u306B\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\u8B66\u544A: \u65E2\u5B9A\u5024\u3088\u308A\u5927\u304D\u3044\u6570\u5024\u306E\u5834\u5408\u306F\u3001\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u306B\u5F71\u97FF\u304C\u3042\u308A\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30F3\u30C4","\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC\u306B\u3088\u3063\u3066\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u304C\u8AAD\u307F\u4E0A\u3052\u3089\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8A00\u8A9E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u3001\u3044\u3064\u304B\u3063\u3053\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3059\u308B\u304B\u6C7A\u5B9A\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u304C\u7A7A\u767D\u6587\u5B57\u306E\u5DE6\u306B\u3042\u308B\u3068\u304D\u3060\u3051\u3001\u304B\u3063\u3053\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u5DE6\u89D2\u304B\u3063\u3053\u3092\u8FFD\u52A0\u3057\u305F\u5F8C\u306B\u81EA\u52D5\u7684\u306B\u53F3\u89D2\u304B\u3063\u3053\u3092\u633F\u5165\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8A00\u8A9E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u3001\u3044\u3064\u304B\u3063\u3053\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3059\u308B\u304B\u6C7A\u5B9A\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u304C\u7A7A\u767D\u6587\u5B57\u306E\u5DE6\u306B\u3042\u308B\u3068\u304D\u3060\u3051\u3001\u30B3\u30E1\u30F3\u30C8\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30B3\u30E1\u30F3\u30C8\u3092\u958B\u59CB\u3057\u305F\u5F8C\u306B\u81EA\u52D5\u7684\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u9589\u3058\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u96A3\u63A5\u3059\u308B\u7D42\u308F\u308A\u5F15\u7528\u7B26\u307E\u305F\u306F\u62EC\u5F27\u304C\u81EA\u52D5\u7684\u306B\u633F\u5165\u3055\u308C\u305F\u5834\u5408\u306B\u306E\u307F\u3001\u305D\u308C\u3089\u3092\u524A\u9664\u3057\u307E\u3059\u3002","\u524A\u9664\u6642\u306B\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u96A3\u63A5\u3059\u308B\u7D42\u308F\u308A\u5F15\u7528\u7B26\u307E\u305F\u306F\u62EC\u5F27\u3092\u524A\u9664\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u7D42\u308F\u308A\u5F15\u7528\u7B26\u307E\u305F\u306F\u62EC\u5F27\u304C\u81EA\u52D5\u7684\u306B\u633F\u5165\u3055\u308C\u305F\u5834\u5408\u306B\u306E\u307F\u3001\u305D\u308C\u3089\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u7D42\u308F\u308A\u5F15\u7528\u7B26\u307E\u305F\u306F\u62EC\u5F27\u3092\u4E0A\u66F8\u304D\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8A00\u8A9E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u3001\u3044\u3064\u5F15\u7528\u7B26\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3059\u308B\u304B\u6C7A\u5B9A\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u304C\u7A7A\u767D\u6587\u5B57\u306E\u5DE6\u306B\u3042\u308B\u3068\u304D\u3060\u3051\u3001\u5F15\u7528\u7B26\u3092\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u3057\u307E\u3059\u3002","\u30E6\u30FC\u30B6\u30FC\u304C\u958B\u59CB\u5F15\u7528\u7B26\u3092\u8FFD\u52A0\u3057\u305F\u5F8C\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u81EA\u52D5\u7684\u306B\u5F15\u7528\u7B26\u3092\u9589\u3058\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u81EA\u52D5\u7684\u306B\u633F\u5165\u3057\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u3001\u73FE\u5728\u306E\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u4FDD\u6301\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u3001\u73FE\u5728\u306E\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u4FDD\u6301\u3057\u3001\u8A00\u8A9E\u304C\u5B9A\u7FA9\u3055\u308C\u305F\u304B\u3063\u3053\u3092\u512A\u5148\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u3001\u73FE\u5728\u306E\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u4FDD\u6301\u3057\u3001\u8A00\u8A9E\u304C\u5B9A\u7FA9\u3055\u308C\u305F\u304B\u3063\u3053\u3092\u512A\u5148\u3057\u3001\u8A00\u8A9E\u3067\u5B9A\u7FA9\u3055\u308C\u305F\u7279\u5225\u306A onEnterRules \u3092\u547C\u3073\u51FA\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u3001\u73FE\u5728\u306E\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u4FDD\u6301\u3057\u3001\u8A00\u8A9E\u304C\u5B9A\u7FA9\u3055\u308C\u305F\u304B\u3063\u3053\u3092\u512A\u5148\u3057\u3001\u8A00\u8A9E\u3067\u5B9A\u7FA9\u3055\u308C\u305F\u7279\u5225\u306A onEnterRules \u3092\u547C\u3073\u51FA\u3057\u3001\u8A00\u8A9E\u3067\u5B9A\u7FA9\u3055\u308C\u305F indentationRules \u3092\u512A\u5148\u3057\u307E\u3059\u3002","\u30E6\u30FC\u30B6\u30FC\u304C\u884C\u3092\u5165\u529B\u3001\u8CBC\u308A\u4ED8\u3051\u3001\u79FB\u52D5\u3001\u307E\u305F\u306F\u30A4\u30F3\u30C7\u30F3\u30C8\u3059\u308B\u3068\u304D\u306B\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u81EA\u52D5\u7684\u306B\u8ABF\u6574\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8A00\u8A9E\u69CB\u6210\u3092\u4F7F\u7528\u3057\u3066\u3001\u9078\u629E\u7BC4\u56F2\u3092\u3044\u3064\u81EA\u52D5\u7684\u306B\u56F2\u3080\u304B\u3092\u5224\u65AD\u3057\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053\u3067\u306F\u306A\u304F\u3001\u5F15\u7528\u7B26\u3067\u56F2\u307F\u307E\u3059\u3002","\u5F15\u7528\u7B26\u3067\u306F\u306A\u304F\u3001\u89D2\u304B\u3063\u3053\u3067\u56F2\u307F\u307E\u3059\u3002","\u5F15\u7528\u7B26\u307E\u305F\u306F\u89D2\u304B\u3063\u3053\u3092\u5165\u529B\u3059\u308B\u3068\u304D\u306B\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u9078\u629E\u7BC4\u56F2\u3092\u81EA\u52D5\u7684\u306B\u56F2\u3080\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30C7\u30F3\u30C8\u306B\u30B9\u30DA\u30FC\u30B9\u3092\u4F7F\u7528\u3059\u308B\u3068\u304D\u306F\u3001\u30BF\u30D6\u6587\u5B57\u306E\u9078\u629E\u52D5\u4F5C\u3092\u30A8\u30DF\u30E5\u30EC\u30FC\u30C8\u3057\u307E\u3059\u3002\u9078\u629E\u7BC4\u56F2\u306F\u30BF\u30D6\u4F4D\u7F6E\u306B\u7559\u307E\u308A\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067 CodeLens \u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","CodeLens \u306E\u30D5\u30A9\u30F3\u30C8 \u30D5\u30A1\u30DF\u30EA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","CodeLens \u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3067\u5236\u5FA1\u3057\u307E\u3059\u30020 \u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001`#editor.fontSize#` \u306E 90% \u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A4\u30F3\u30E9\u30A4\u30F3 \u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u3068\u8272\u306E\u9078\u629E\u3092\u8868\u793A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u306E\u30AF\u30EA\u30C3\u30AF\u6642\u3068\u30DD\u30A4\u30F3\u30C8\u6642\u306E\u4E21\u65B9\u306B\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u8868\u793A\u3059\u308B","\u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u306E\u30DD\u30A4\u30F3\u30C8\u6642\u306B\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u8868\u793A\u3059\u308B","\u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u306E\u30AF\u30EA\u30C3\u30AF\u6642\u306B\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u8868\u793A\u3059\u308B","\u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u304B\u3089\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u8868\u793A\u3059\u308B\u6761\u4EF6\u3092\u5236\u5FA1\u3057\u307E\u3059","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u4E00\u5EA6\u306B\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3067\u304D\u308B\u30AB\u30E9\u30FC \u30C7\u30B3\u30EC\u30FC\u30BF\u30FC\u306E\u6700\u5927\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DE\u30A6\u30B9\u3068\u30AD\u30FC\u3067\u306E\u9078\u629E\u306B\u3088\u308A\u5217\u306E\u9078\u629E\u3092\u5B9F\u884C\u3067\u304D\u308B\u3088\u3046\u306B\u3057\u307E\u3059\u3002","\u69CB\u6587\u30CF\u30A4\u30E9\u30A4\u30C8\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u306E\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u65B9\u5F0F\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30B9\u30E0\u30FC\u30BA \u30AD\u30E3\u30EC\u30C3\u30C8 \u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002","\u30B9\u30E0\u30FC\u30BA \u30AD\u30E3\u30EC\u30C3\u30C8 \u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u304C\u660E\u793A\u7684\u306A\u30B8\u30A7\u30B9\u30C1\u30E3\u3067\u30AB\u30FC\u30BD\u30EB\u3092\u79FB\u52D5\u3057\u305F\u5834\u5408\u306B\u306E\u307F\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002","\u30B9\u30E0\u30FC\u30BA \u30AD\u30E3\u30EC\u30C3\u30C8 \u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u306F\u5E38\u306B\u6709\u52B9\u3067\u3059\u3002","\u6ED1\u3089\u304B\u306A\u30AD\u30E3\u30EC\u30C3\u30C8\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u306E\u30B9\u30BF\u30A4\u30EB\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u524D\u5F8C\u306E\u8868\u793A\u53EF\u80FD\u306A\u5148\u982D\u306E\u884C (\u6700\u5C0F 0) \u3068\u672B\u5C3E\u306E\u884C (\u6700\u5C0F 1) \u306E\u6700\u5C0F\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u4ED6\u306E\u4E00\u90E8\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306F 'scrollOff' \u307E\u305F\u306F 'scrollOffset' \u3068\u547C\u3070\u308C\u307E\u3059\u3002","`cursorSurroundingLines` \u306F\u3001\u30AD\u30FC\u30DC\u30FC\u30C9\u307E\u305F\u306F API \u3067\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u305F\u5834\u5408\u306B\u306E\u307F\u5F37\u5236\u3055\u308C\u307E\u3059\u3002","`cursorSurroundingLines` \u306F\u5E38\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002","`#cursorSurroundingLines#` \u3092\u9069\u7528\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","`#editor.cursorStyle#` \u304C `line` \u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30AB\u30FC\u30BD\u30EB\u306E\u5E45\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30C9\u30E9\u30C3\u30B0 \u30A2\u30F3\u30C9 \u30C9\u30ED\u30C3\u30D7\u306B\u3088\u308B\u9078\u629E\u7BC4\u56F2\u306E\u79FB\u52D5\u3092\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u8A31\u53EF\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","SVGS \u3067\u65B0\u3057\u3044\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u30D5\u30A9\u30F3\u30C8\u6587\u5B57\u306B\u65B0\u3057\u3044\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u5B89\u5B9A\u3057\u305F\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u65B0\u3057\u3044\u8A66\u9A13\u7684\u306A\u30E1\u30BD\u30C3\u30C9\u3092\u4F7F\u7528\u3057\u3066\u7A7A\u767D\u3092\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","`Alt` \u3092\u62BC\u3059\u3068\u3001\u30B9\u30AF\u30ED\u30FC\u30EB\u901F\u5EA6\u304C\u500D\u5897\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30B3\u30FC\u30C9\u306E\u6298\u308A\u305F\u305F\u307F\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5229\u7528\u53EF\u80FD\u306A\u5834\u5408\u306F\u8A00\u8A9E\u56FA\u6709\u306E\u6298\u308A\u305F\u305F\u307F\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u3001\u5229\u7528\u53EF\u80FD\u3067\u306F\u306A\u3044\u5834\u5408\u306F\u30A4\u30F3\u30C7\u30F3\u30C8\u30D9\u30FC\u30B9\u306E\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30C7\u30F3\u30C8\u30D9\u30FC\u30B9\u306E\u6298\u308A\u305F\u305F\u307F\u65B9\u6CD5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u6298\u308A\u305F\u305F\u307F\u7BC4\u56F2\u306E\u8A08\u7B97\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u6298\u308A\u305F\u305F\u307E\u308C\u305F\u7BC4\u56F2\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30A4\u30F3\u30DD\u30FC\u30C8\u7BC4\u56F2\u3092\u81EA\u52D5\u7684\u306B\u6298\u308A\u305F\u305F\u3080\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6298\u308A\u305F\u305F\u307F\u53EF\u80FD\u306A\u9818\u57DF\u306E\u6700\u5927\u6570\u3067\u3059\u3002\u3053\u306E\u5024\u3092\u5927\u304D\u304F\u3059\u308B\u3068\u3001\u73FE\u5728\u306E\u30BD\u30FC\u30B9\u306B\u591A\u6570\u306E\u6298\u308A\u305F\u305F\u307F\u53EF\u80FD\u306A\u9818\u57DF\u304C\u3042\u308B\u5834\u5408\u306B\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5FDC\u7B54\u6027\u304C\u4F4E\u4E0B\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002","\u6298\u308A\u305F\u305F\u307E\u308C\u305F\u884C\u306E\u5F8C\u306E\u7A7A\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u884C\u304C\u5C55\u958B\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D5\u30A9\u30F3\u30C8 \u30D5\u30A1\u30DF\u30EA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u8CBC\u308A\u4ED8\u3051\u305F\u5185\u5BB9\u304C\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u3088\u308A\u81EA\u52D5\u7684\u306B\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u307E\u305F\u3001\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u304C\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u306E\u7BC4\u56F2\u3092\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3067\u304D\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u5165\u529B\u5F8C\u306B\u81EA\u52D5\u7684\u306B\u884C\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u884C\u3046\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u7E26\u306E\u30B0\u30EA\u30D5\u4F59\u767D\u304C\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u307B\u3068\u3093\u3069\u306E\u5834\u5408\u3001\u30B0\u30EA\u30D5\u4F59\u767D\u306F\u30C7\u30D0\u30C3\u30B0\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u3067\u30AB\u30FC\u30BD\u30EB\u3092\u975E\u8868\u793A\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6587\u5B57\u9593\u9694 (\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D) \u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30EA\u30F3\u30AF\u3055\u308C\u305F\u7DE8\u96C6\u304C\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u6709\u52B9\u306B\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u8A00\u8A9E\u306B\u3088\u3063\u3066\u306F\u3001\u7DE8\u96C6\u4E2D\u306B HTML \u30BF\u30B0\u306A\u3069\u306E\u95A2\u9023\u3059\u308B\u8A18\u53F7\u304C\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30EA\u30F3\u30AF\u3092\u691C\u51FA\u3057\u3066\u30AF\u30EA\u30C3\u30AF\u53EF\u80FD\u306A\u72B6\u614B\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5BFE\u5FDC\u3059\u308B\u304B\u3063\u3053\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30DE\u30A6\u30B9 \u30DB\u30A4\u30FC\u30EB \u30B9\u30AF\u30ED\u30FC\u30EB \u30A4\u30D9\u30F3\u30C8\u306E `deltaX` \u3068 `deltaY` \u3067\u4F7F\u7528\u3055\u308C\u308B\u4E57\u6570\u3002","`Cmd` \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30DE\u30A6\u30B9 \u30DB\u30A4\u30FC\u30EB\u3092\u4F7F\u7528\u3057\u3066\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8\u3092\u30BA\u30FC\u30E0\u3057\u307E\u3059\u3002","`Ctrl` \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30DE\u30A6\u30B9 \u30DB\u30A4\u30FC\u30EB\u3092\u4F7F\u7528\u3057\u3066\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8\u3092\u30BA\u30FC\u30E0\u3057\u307E\u3059\u3002","\u8907\u6570\u306E\u30AB\u30FC\u30BD\u30EB\u304C\u91CD\u306A\u3063\u3066\u3044\u308B\u3068\u304D\u306F\u3001\u30DE\u30FC\u30B8\u3057\u307E\u3059\u3002","Windows \u304A\u3088\u3073 Linux \u4E0A\u306E `Control` \u30AD\u30FC\u3068 macOS \u4E0A\u306E `Command` \u30AD\u30FC\u306B\u5272\u308A\u5F53\u3066\u307E\u3059\u3002","Windows \u304A\u3088\u3073 Linux \u4E0A\u306E `Alt` \u30AD\u30FC\u3068 macOS \u4E0A\u306E `Option` \u30AD\u30FC\u306B\u5272\u308A\u5F53\u3066\u307E\u3059\u3002","\u30DE\u30A6\u30B9\u3092\u4F7F\u7528\u3057\u3066\u8907\u6570\u306E\u30AB\u30FC\u30BD\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u4FEE\u98FE\u5B50\u3002[\u5B9A\u7FA9\u306B\u79FB\u52D5] \u304A\u3088\u3073 [\u30EA\u30F3\u30AF\u3092\u958B\u304F] \u30DE\u30A6\u30B9 \u30B8\u30A7\u30B9\u30C1\u30E3\u306F\u3001[multicursor \u4FEE\u98FE\u5B50](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier) \u3068\u7AF6\u5408\u3057\u306A\u3044\u3088\u3046\u306B\u8ABF\u6574\u3055\u308C\u307E\u3059\u3002","\u30AB\u30FC\u30BD\u30EB\u3054\u3068\u306B\u30C6\u30AD\u30B9\u30C8\u3092 1 \u884C\u305A\u3064\u8CBC\u308A\u4ED8\u3051\u307E\u3059\u3002","\u5404\u30AB\u30FC\u30BD\u30EB\u306F\u5168\u6587\u3092\u8CBC\u308A\u4ED8\u3051\u307E\u3059\u3002","\u8CBC\u308A\u4ED8\u3051\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u884C\u6570\u304C\u30AB\u30FC\u30BD\u30EB\u6570\u3068\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u8CBC\u308A\u4ED8\u3051\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u4E00\u5EA6\u306B\u914D\u7F6E\u3067\u304D\u308B\u30AB\u30FC\u30BD\u30EB\u306E\u6700\u5927\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u767A\u751F\u56DE\u6570\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u305B\u3093\u3002","\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u5185\u306E\u767A\u751F\u56DE\u6570\u306E\u307F\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u8A66\u9A13\u6BB5\u968E: \u3059\u3079\u3066\u306E\u6709\u52B9\u306A\u958B\u3044\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u306E\u767A\u751F\u56DE\u6570\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u958B\u3044\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u9593\u3067\u767A\u751F\u56DE\u6570\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u5468\u56F2\u306B\u5883\u754C\u7DDA\u304C\u63CF\u753B\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D4\u30FC\u30AF\u3092\u958B\u304F\u3068\u304D\u306B\u30C4\u30EA\u30FC\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3059\u308B","\u30D4\u30FC\u30AF\u3092\u958B\u304F\u3068\u304D\u306B\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3059\u308B","\u30D4\u30FC\u30AF \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30A4\u30F3\u30E9\u30A4\u30F3 \u30A8\u30C7\u30A3\u30BF\u30FC\u307E\u305F\u306F\u30C4\u30EA\u30FC\u3092\u30D5\u30A9\u30FC\u30AB\u30B9\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","[\u5B9A\u7FA9\u3078\u79FB\u52D5] \u30DE\u30A6\u30B9 \u30B8\u30A7\u30B9\u30C1\u30E3\u30FC\u3067\u3001\u5E38\u306B\u30D4\u30FC\u30AF \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u958B\u304F\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AF\u30A4\u30C3\u30AF\u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u308B\u307E\u3067\u306E\u30DF\u30EA\u79D2\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u578B\u306E\u81EA\u52D5\u540D\u524D\u5909\u66F4\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u975E\u63A8\u5968\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B\u3001`editor.linkedEditing` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u5236\u5FA1\u6587\u5B57\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D5\u30A1\u30A4\u30EB\u306E\u672B\u5C3E\u304C\u6539\u884C\u306E\u5834\u5408\u306F\u3001\u6700\u5F8C\u306E\u884C\u756A\u53F7\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u4F59\u767D\u3068\u73FE\u5728\u306E\u884C\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u73FE\u5728\u306E\u884C\u3092\u3069\u306E\u3088\u3046\u306B\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308B\u5834\u5408\u306B\u306E\u307F\u73FE\u5728\u306E\u884C\u3092\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u5F37\u8ABF\u8868\u793A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5358\u8A9E\u9593\u306E\u5358\u4E00\u30B9\u30DA\u30FC\u30B9\u4EE5\u5916\u306E\u7A7A\u767D\u6587\u5B57\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u9078\u629E\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u306B\u306E\u307F\u7A7A\u767D\u6587\u5B57\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u672B\u5C3E\u306E\u7A7A\u767D\u6587\u5B57\u306E\u307F\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u7A7A\u767D\u6587\u5B57\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u9078\u629E\u7BC4\u56F2\u306E\u89D2\u3092\u4E38\u304F\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u6C34\u5E73\u65B9\u5411\u306B\u4F59\u5206\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u6587\u5B57\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u6700\u5F8C\u306E\u884C\u3092\u8D8A\u3048\u3066\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5782\u76F4\u304A\u3088\u3073\u6C34\u5E73\u65B9\u5411\u306E\u4E21\u65B9\u306B\u540C\u6642\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u5834\u5408\u306F\u3001\u4E3B\u8981\u306A\u8EF8\u306B\u6CBF\u3063\u3066\u30B9\u30AF\u30ED\u30FC\u30EB\u3057\u307E\u3059\u3002\u30C8\u30E9\u30C3\u30AF\u30D1\u30C3\u30C9\u4E0A\u3067\u5782\u76F4\u65B9\u5411\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u5834\u5408\u306F\u3001\u6C34\u5E73\u30C9\u30EA\u30D5\u30C8\u3092\u9632\u6B62\u3057\u307E\u3059\u3002","Linux \u306E PRIMARY \u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u9078\u629E\u9805\u76EE\u3068\u985E\u4F3C\u306E\u4E00\u81F4\u9805\u76EE\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5E38\u306B\u6298\u308A\u305F\u305F\u307F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u6298\u308A\u305F\u305F\u307F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A\u305B\u305A\u3001\u4F59\u767D\u306E\u30B5\u30A4\u30BA\u3092\u5C0F\u3055\u304F\u3057\u307E\u3059\u3002","\u30DE\u30A6\u30B9\u304C\u3068\u3058\u3057\u308D\u306E\u4E0A\u306B\u3042\u308B\u3068\u304D\u306B\u306E\u307F\u3001\u6298\u308A\u305F\u305F\u307F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u3068\u3058\u3057\u308D\u306E\u6298\u308A\u305F\u305F\u307F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u4F7F\u7528\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30FC\u30C9\u306E\u30D5\u30A7\u30FC\u30C9\u30A2\u30A6\u30C8\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u975E\u63A8\u5968\u306E\u5909\u6570\u306E\u53D6\u308A\u6D88\u3057\u7DDA\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u4ED6\u306E\u5019\u88DC\u306E\u4E0A\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u4ED6\u306E\u5019\u88DC\u306E\u4E0B\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u4ED6\u306E\u5019\u88DC\u3068\u4E00\u7DD2\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u3059\u3002","\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5019\u88DC\u3092\u8868\u793A\u3057\u307E\u305B\u3093\u3002","\u4ED6\u306E\u4FEE\u6B63\u5019\u88DC\u3068\u4E00\u7DD2\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u304A\u3088\u3073\u305D\u306E\u4E26\u3073\u66FF\u3048\u306E\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u3067\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3\u5165\u529B\u5019\u88DC\u304C\u8868\u793A\u3055\u308C\u305F\u3068\u304D\u306B\u3001\u30B9\u30AF\u30EA\u30FC\u30F3 \u30EA\u30FC\u30C0\u30FC \u30E6\u30FC\u30B6\u30FC\u306B\u30E6\u30FC\u30B6\u30FC\u88DC\u52A9\u30D2\u30F3\u30C8\u3092\u63D0\u4F9B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3002{0} \u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u5024 {1} \u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u884C\u306E\u9AD8\u3055\u3002{0} \u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001{1} \u306E\u5024\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\u6700\u5C0F\u5024\u306F 8 \u3067\u3059\u3002","\u30C8\u30EA\u30AC\u30FC\u6587\u5B57\u306E\u5165\u529B\u6642\u306B\u5019\u88DC\u304C\u81EA\u52D5\u7684\u306B\u8868\u793A\u3055\u308C\u308B\u3088\u3046\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5E38\u306B\u6700\u521D\u306E\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002","`console.| -> console.log` \u306A\u3069\u3068\u9078\u629E\u5BFE\u8C61\u306B\u95A2\u3057\u3066\u5165\u529B\u3057\u306A\u3044\u9650\u308A\u306F\u3001\u6700\u8FD1\u306E\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002`log` \u306F\u6700\u8FD1\u5B8C\u4E86\u3057\u305F\u305F\u3081\u3067\u3059\u3002","\u3053\u308C\u3089\u306E\u5019\u88DC\u3092\u5B8C\u4E86\u3057\u305F\u4EE5\u524D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306B\u57FA\u3065\u3044\u3066\u5019\u88DC\u3092\u9078\u629E\u3057\u307E\u3059\u3002\u4F8B: `co -> console` \u304A\u3088\u3073 `con -> const`\u3002","\u5019\u88DC\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B\u3068\u304D\u306B\u5019\u88DC\u3092\u4E8B\u524D\u306B\u9078\u629E\u3059\u308B\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30BF\u30D6\u88DC\u5B8C\u306F\u3001tab \u30AD\u30FC\u3092\u62BC\u3057\u305F\u3068\u304D\u306B\u6700\u9069\u306A\u5019\u88DC\u3092\u633F\u5165\u3057\u307E\u3059\u3002","\u30BF\u30D6\u88DC\u5B8C\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\u3002","\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306B\u3001\u30BF\u30D6\u3067\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u88DC\u5B8C\u3057\u307E\u3059\u3002'quickSuggestions' \u304C\u7121\u52B9\u306A\u5834\u5408\u306B\u6700\u9069\u3067\u3059\u3002","\u30BF\u30D6\u88DC\u5B8C\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002","\u901A\u5E38\u3068\u306F\u7570\u306A\u308B\u884C\u306E\u7D42\u7AEF\u6587\u5B57\u306F\u81EA\u52D5\u7684\u306B\u524A\u9664\u3055\u308C\u308B\u3002","\u901A\u5E38\u3068\u306F\u7570\u306A\u308B\u884C\u306E\u7D42\u7AEF\u6587\u5B57\u306F\u7121\u8996\u3055\u308C\u308B\u3002","\u901A\u5E38\u3068\u306F\u7570\u306A\u308B\u884C\u306E\u7D42\u7AEF\u6587\u5B57\u306E\u524A\u9664\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u8868\u793A\u3055\u308C\u308B\u3002","\u554F\u984C\u3092\u8D77\u3053\u3059\u53EF\u80FD\u6027\u304C\u3042\u308B\u3001\u666E\u901A\u3067\u306F\u306A\u3044\u884C\u7D42\u7AEF\u8A18\u53F7\u306F\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u7A7A\u767D\u306E\u633F\u5165\u3084\u524A\u9664\u306F\u30BF\u30D6\u4F4D\u7F6E\u306B\u5F93\u3063\u3066\u884C\u308F\u308C\u307E\u3059\u3002","\u65E2\u5B9A\u306E\u6539\u884C\u30EB\u30FC\u30EB\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u4E2D\u56FD\u8A9E/\u65E5\u672C\u8A9E/\u97D3\u56FD\u8A9E (CJK) \u306E\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u5358\u8A9E\u533A\u5207\u308A\u3092\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002CJK \u4EE5\u5916\u306E\u30C6\u30AD\u30B9\u30C8\u306E\u52D5\u4F5C\u306F\u3001\u901A\u5E38\u306E\u5834\u5408\u3068\u540C\u3058\u3067\u3059\u3002","\u4E2D\u56FD\u8A9E/\u65E5\u672C\u8A9E/\u97D3\u56FD\u8A9E (CJK) \u30C6\u30AD\u30B9\u30C8\u306B\u4F7F\u7528\u3055\u308C\u308B\u5358\u8A9E\u533A\u5207\u308A\u898F\u5247\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u5358\u8A9E\u306B\u95A2\u9023\u3057\u305F\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u307E\u305F\u306F\u64CD\u4F5C\u3092\u5B9F\u884C\u3059\u308B\u3068\u304D\u306B\u3001\u5358\u8A9E\u306E\u533A\u5207\u308A\u6587\u5B57\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57\u3002","\u884C\u3092\u6298\u308A\u8FD4\u3057\u307E\u305B\u3093\u3002","\u884C\u3092\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u306E\u5E45\u3067\u6298\u308A\u8FD4\u3057\u307E\u3059\u3002","`#editor.wordWrapColumn#` \u3067\u884C\u3092\u6298\u308A\u8FD4\u3057\u307E\u3059\u3002","\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u3068 `#editor.wordWrapColumn#` \u306E\u6700\u5C0F\u5024\u3067\u884C\u3092\u6298\u308A\u8FD4\u3057\u307E\u3059\u3002","\u884C\u306E\u6298\u308A\u8FD4\u3057\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","`#editor.wordWrap#` \u304C `wordWrapColumn` \u307E\u305F\u306F `bounded` \u306E\u5834\u5408\u306B\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u6298\u308A\u8FD4\u3057\u6841\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u65E2\u5B9A\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 \u30AB\u30E9\u30FC \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u4F7F\u7528\u3057\u3066\u30A4\u30F3\u30E9\u30A4\u30F3\u306E\u8272\u306E\u88C5\u98FE\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30BF\u30D6\u3092\u53D7\u3051\u53D6\u308B\u304B\u3001\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u306B\u59D4\u306D\u3066\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002"],"vs/editor/common/core/editorColorRegistry":["\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E\u306E\u884C\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u80CC\u666F\u8272\u3002","\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E\u306E\u884C\u306E\u5883\u754C\u7DDA\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u80CC\u666F\u8272\u3002","(Quick Open \u3084\u691C\u51FA\u6A5F\u80FD\u306A\u3069\u306B\u3088\u308A) \u5F37\u8ABF\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u7BC4\u56F2\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u5F37\u8ABF\u8868\u793A\u3055\u308C\u305F\u7BC4\u56F2\u306E\u5883\u754C\u7DDA\u306E\u80CC\u666F\u8272\u3002","\u5F37\u8ABF\u8868\u793A\u3055\u308C\u305F\u8A18\u53F7\u306E\u80CC\u666F\u8272 (\u5B9A\u7FA9\u3078\u79FB\u52D5\u3001\u6B21\u307E\u305F\u306F\u524D\u306E\u8A18\u53F7\u3078\u79FB\u52D5\u306A\u3069)\u3002\u57FA\u306B\u306A\u308B\u88C5\u98FE\u304C\u8986\u308F\u308C\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u305F\u3081\u3001\u8272\u3092\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u5F37\u8ABF\u8868\u793A\u3055\u308C\u305F\u8A18\u53F7\u306E\u5468\u308A\u306E\u5883\u754C\u7DDA\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30AB\u30FC\u30BD\u30EB\u306E\u8272\u3002","\u9078\u629E\u3055\u308C\u305F\u6587\u5B57\u5217\u306E\u80CC\u666F\u8272\u3067\u3059\u3002\u9078\u629E\u3055\u308C\u305F\u6587\u5B57\u5217\u306E\u80CC\u666F\u8272\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u51FA\u6765\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B9\u30DA\u30FC\u30B9\u6587\u5B57\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u884C\u756A\u53F7\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272\u3002","'editorIndentGuide.background' \u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B 'editorIndentGuide.background1' \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272\u3002","'editorIndentGuide.activeBackground' \u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B 'editorIndentGuide.activeBackground1' \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (1)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (2)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (3)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (4)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (5)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (6)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (1)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (2)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (3)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (4)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (5)\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u8272 (6)\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A2\u30AF\u30C6\u30A3\u30D6\u884C\u756A\u53F7\u306E\u8272","id \u306F\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\u4EE3\u308F\u308A\u306B 'EditorLineNumber.activeForeground' \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30A2\u30AF\u30C6\u30A3\u30D6\u884C\u756A\u53F7\u306E\u8272","editor.renderFinalNewline \u304C dimmed \u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u6700\u7D42\u884C\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30EB\u30FC\u30E9\u30FC\u306E\u8272\u3002","CodeLens \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u524D\u666F\u8272\u3002","\u4E00\u81F4\u3059\u308B\u304B\u3063\u3053\u306E\u80CC\u666F\u8272","\u4E00\u81F4\u3059\u308B\u304B\u3063\u3053\u5185\u306E\u30DC\u30C3\u30AF\u30B9\u306E\u8272","\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u5883\u754C\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4F59\u767D\u306E\u80CC\u666F\u8272\u3002\u4F59\u767D\u306B\u306F\u30B0\u30EA\u30D5 \u30DE\u30FC\u30B8\u30F3\u3068\u884C\u756A\u53F7\u304C\u542B\u307E\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u4E0D\u8981\u306A (\u672A\u4F7F\u7528\u306E) \u30BD\u30FC\u30B9 \u30B3\u30FC\u30C9\u306E\u7F6B\u7DDA\u306E\u8272\u3002",`\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u4E0D\u8981\u306A (\u672A\u4F7F\u7528\u306E) \u30BD\u30FC\u30B9 \u30B3\u30FC\u30C9\u306E\u4E0D\u900F\u660E\u5EA6\u3002\u305F\u3068\u3048\u3070\u3001"#000000c0" \u306F\u4E0D\u900F\u660E\u5EA6 75% \u3067\u30B3\u30FC\u30C9\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u30CF\u30A4 \u30B3\u30F3\u30C8\u30E9\u30B9\u30C8\u306E\u30C6\u30FC\u30DE\u306E\u5834\u5408\u3001'editorUnnecessaryCode.border' \u30C6\u30FC\u30DE\u8272\u3092\u4F7F\u7528\u3057\u3066\u3001\u4E0D\u8981\u306A\u30B3\u30FC\u30C9\u3092\u30D5\u30A7\u30FC\u30C9\u30A2\u30A6\u30C8\u3059\u308B\u306E\u3067\u306F\u306A\u304F\u4E0B\u7DDA\u3092\u4ED8\u3051\u307E\u3059\u3002`,"\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u900F\u304B\u3057\u6587\u5B57\u306E\u5883\u754C\u7DDA\u306E\u8272\u3067\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u900F\u304B\u3057\u6587\u5B57\u306E\u524D\u666F\u8272\u3067\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B4\u30FC\u30B9\u30C8 \u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002","\u7BC4\u56F2\u5F37\u8ABF\u8868\u793A\u306E\u305F\u3081\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A8\u30E9\u30FC\u3092\u793A\u3059\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u8272\u3002","\u8B66\u544A\u3092\u793A\u3059\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u8272\u3002","\u60C5\u5831\u3092\u793A\u3059\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u8272\u3002","\u89D2\u304B\u3063\u3053 (1) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053 (2) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053 (3) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053 (4) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053 (5) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u89D2\u304B\u3063\u3053 (6) \u306E\u524D\u666F\u8272\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2\u306E\u8272\u4ED8\u3051\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u4E88\u671F\u3057\u306A\u3044\u30D6\u30E9\u30B1\u30C3\u30C8\u306E\u524D\u666F\u8272\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (1)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (2)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (3)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (4)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (5)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (6)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (1)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (2)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (3)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (4)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (5)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u306E\u80CC\u666F\u8272 (6)\u3002\u89D2\u304B\u3063\u3053\u306E\u30DA\u30A2 \u30AC\u30A4\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002","Unicode \u6587\u5B57\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u5883\u754C\u7DDA\u306E\u8272\u3002","Unicode \u6587\u5B57\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u80CC\u666F\u8272\u3002"],"vs/editor/common/editorContextKeys":["\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30C6\u30AD\u30B9\u30C8\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308B (\u30AB\u30FC\u30BD\u30EB\u304C\u70B9\u6EC5\u3057\u3066\u3044\u308B) \u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u307E\u305F\u306F\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308B (\u4F8B: \u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308B) \u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u307E\u305F\u306F\u30EA\u30C3\u30C1 \u30C6\u30AD\u30B9\u30C8\u5165\u529B\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308B (\u30AB\u30FC\u30BD\u30EB\u304C\u70B9\u6EC5\u3057\u3066\u3044\u308B) \u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u304B\u3069\u3046\u304B","\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u57CB\u3081\u8FBC\u307F\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u30DE\u30EB\u30C1\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30DE\u30EB\u30C1\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u6298\u308A\u305F\u305F\u3080\u304B\u3069\u3046\u304B","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5909\u66F4\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u79FB\u52D5\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30D6\u30ED\u30C3\u30AF\u304C\u6BD4\u8F03\u5BFE\u8C61\u3068\u3057\u3066\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u306E\u9AD8\u3044\u5DEE\u5206\u30D3\u30E5\u30FC\u30A2\u30FC\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u4E26\u3079\u3066\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3059\u308B\u304B\u3069\u3046\u304B","`editor.columnSelection` \u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30C6\u30AD\u30B9\u30C8\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u8907\u6570\u306E\u9078\u629E\u7BC4\u56F2\u304C\u3042\u308B\u304B\u3069\u3046\u304B","`Tab` \u306B\u3088\u3063\u3066\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5916\u306B\u79FB\u52D5\u3059\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DB\u30D0\u30FC\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DB\u30D0\u30FC\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3 \u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B","\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3 \u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u3088\u308A\u5927\u304D\u306A\u30A8\u30C7\u30A3\u30BF\u30FC (\u4F8B: Notebooks) \u306E\u4E00\u90E8\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u8A00\u8A9E\u8B58\u5225\u5B50","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5165\u529B\u5019\u88DC\u9805\u76EE\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30B3\u30FC\u30C9 \u30EC\u30F3\u30BA \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5B9A\u7FA9\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5BA3\u8A00\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u5B9F\u88C5\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u578B\u5B9A\u7FA9\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30DB\u30D0\u30FC \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5F37\u8ABF\u8868\u793A\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 \u30B7\u30F3\u30DC\u30EB \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u53C2\u7167\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u540D\u524D\u5909\u66F4\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30B7\u30B0\u30CD\u30C1\u30E3 \u30D8\u30EB\u30D7 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u66F8\u5F0F\u8A2D\u5B9A\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u9078\u629E\u66F8\u5F0F\u8A2D\u5B9A\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u8907\u6570\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u66F8\u5F0F\u8A2D\u5B9A\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u8907\u6570\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u9078\u629E\u66F8\u5F0F\u8A2D\u5B9A\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u3042\u308B\u304B\u3069\u3046\u304B"],"vs/editor/common/languages":["\u914D\u5217","\u30D6\u30FC\u30EB\u5024","\u30AF\u30E9\u30B9","\u5B9A\u6570","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC","\u5217\u6319\u578B","\u5217\u6319\u578B\u30E1\u30F3\u30D0\u30FC","\u30A4\u30D9\u30F3\u30C8","\u30D5\u30A3\u30FC\u30EB\u30C9","\u30D5\u30A1\u30A4\u30EB","\u95A2\u6570","\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9","\u30AD\u30FC","\u30E1\u30BD\u30C3\u30C9","\u30E2\u30B8\u30E5\u30FC\u30EB","\u540D\u524D\u7A7A\u9593","NULL","\u6570\u5024","\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8","\u6F14\u7B97\u5B50","\u30D1\u30C3\u30B1\u30FC\u30B8","\u30D7\u30ED\u30D1\u30C6\u30A3","\u6587\u5B57\u5217","\u69CB\u9020\u4F53","\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC","\u5909\u6570","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8"],"vs/editor/common/model/editStack":["\u5165\u529B\u3057\u3066\u3044\u307E\u3059"],"vs/editor/common/standaloneStrings":["\u958B\u767A\u8005: \u30C8\u30FC\u30AF\u30F3\u306E\u691C\u67FB","\u884C/\u5217\u306B\u79FB\u52D5\u3059\u308B...","\u3059\u3079\u3066\u306E\u30AF\u30A4\u30C3\u30AF \u30A2\u30AF\u30BB\u30B9 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u8868\u793A","\u30B3\u30DE\u30F3\u30C9 \u30D1\u30EC\u30C3\u30C8","\u30B3\u30DE\u30F3\u30C9\u306E\u8868\u793A\u3068\u5B9F\u884C","\u30B7\u30F3\u30DC\u30EB\u306B\u79FB\u52D5...","\u30AB\u30C6\u30B4\u30EA\u5225\u306E\u30B7\u30F3\u30DC\u30EB\u3078\u79FB\u52D5...","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30F3\u30C4","\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001Alt+F1 \u30AD\u30FC\u3092\u62BC\u3057\u307E\u3059\u3002","\u30CF\u30A4 \u30B3\u30F3\u30C8\u30E9\u30B9\u30C8 \u30C6\u30FC\u30DE\u306E\u5207\u308A\u66FF\u3048","{1} \u500B\u306E\u30D5\u30A1\u30A4\u30EB\u306B {0} \u500B\u306E\u7DE8\u96C6\u304C\u884C\u308F\u308C\u307E\u3057\u305F"],"vs/editor/common/viewLayout/viewLineRenderer":["\u8868\u793A\u6570\u3092\u5897\u3084\u3059 ({0})","{0} \u6587\u5B57"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["\u9078\u629E\u30A2\u30F3\u30AB\u30FC","\u30A2\u30F3\u30AB\u30FC\u304C {0}:{1} \u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3057\u305F","\u9078\u629E\u30A2\u30F3\u30AB\u30FC\u306E\u8A2D\u5B9A","\u9078\u629E\u30A2\u30F3\u30AB\u30FC\u3078\u79FB\u52D5","\u30A2\u30F3\u30AB\u30FC\u304B\u3089\u30AB\u30FC\u30BD\u30EB\u3078\u9078\u629E","\u9078\u629E\u30A2\u30F3\u30AB\u30FC\u306E\u53D6\u308A\u6D88\u3057"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\u4E00\u81F4\u3059\u308B\u30D6\u30E9\u30B1\u30C3\u30C8\u3092\u793A\u3059\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u8272\u3002","\u30D6\u30E9\u30B1\u30C3\u30C8\u3078\u79FB\u52D5","\u30D6\u30E9\u30B1\u30C3\u30C8\u306B\u9078\u629E","\u304B\u3063\u3053\u3092\u5916\u3059","\u30D6\u30E9\u30B1\u30C3\u30C8\u306B\u79FB\u52D5(&&B)","\u4E2D\u304B\u3063\u3053\u307E\u305F\u306F\u6CE2\u304B\u3063\u3053\u3092\u542B\u3080\u30C6\u30AD\u30B9\u30C8\u3092\u9078\u629E\u3057\u307E\u3059"],"vs/editor/contrib/caretOperations/browser/caretOperations":["\u9078\u629E\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u5DE6\u306B\u79FB\u52D5","\u9078\u629E\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u53F3\u306B\u79FB\u52D5"],"vs/editor/contrib/caretOperations/browser/transpose":["\u6587\u5B57\u306E\u5165\u308C\u66FF\u3048"],"vs/editor/contrib/clipboard/browser/clipboard":["\u5207\u308A\u53D6\u308A(&&T)","\u5207\u308A\u53D6\u308A","\u5207\u308A\u53D6\u308A","\u5207\u308A\u53D6\u308A","\u30B3\u30D4\u30FC(&&C)","\u30B3\u30D4\u30FC","\u30B3\u30D4\u30FC","\u30B3\u30D4\u30FC","\u8CBC\u308A\u4ED8\u3051(&&P)","\u8CBC\u308A\u4ED8\u3051","\u8CBC\u308A\u4ED8\u3051","\u8CBC\u308A\u4ED8\u3051","\u69CB\u6587\u3092\u5F37\u8ABF\u8868\u793A\u3057\u3066\u30B3\u30D4\u30FC","\u5F62\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u30B3\u30D4\u30FC","\u5F62\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u30B3\u30D4\u30FC","\u5171\u6709","\u5171\u6709","\u5171\u6709"],"vs/editor/contrib/codeAction/browser/codeAction":["\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u9069\u7528\u4E2D\u306B\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["\u5B9F\u884C\u3059\u308B\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u7A2E\u985E\u3002","\u8FD4\u3055\u308C\u305F\u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u9069\u7528\u3055\u308C\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u6700\u521D\u306B\u8FD4\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u5E38\u306B\u9069\u7528\u3057\u307E\u3059\u3002","\u6700\u521D\u306B\u8FD4\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u4EE5\u5916\u306B\u8FD4\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u306A\u3044\u5834\u5408\u306F\u3001\u305D\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u9069\u7528\u3057\u307E\u3059\u3002","\u8FD4\u3055\u308C\u305F\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u9069\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002","\u512A\u5148\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u307F\u3092\u8FD4\u3059\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30AF\u30A4\u30C3\u30AF \u30D5\u30A3\u30C3\u30AF\u30B9...","\u5229\u7528\u53EF\u80FD\u306A\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3042\u308A\u307E\u305B\u3093","'{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","\u5229\u7528\u53EF\u80FD\u306A\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3042\u308A\u307E\u305B\u3093","\u30EA\u30D5\u30A1\u30AF\u30BF\u30FC...","'{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30EA\u30D5\u30A1\u30AF\u30BF\u30EA\u30F3\u30B0\u304C\u3042\u308A\u307E\u305B\u3093","'{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u30EA\u30D5\u30A1\u30AF\u30BF\u30EA\u30F3\u30B0\u304C\u3042\u308A\u307E\u305B\u3093","\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30EA\u30D5\u30A1\u30AF\u30BF\u30EA\u30F3\u30B0\u304C\u3042\u308A\u307E\u305B\u3093","\u5229\u7528\u53EF\u80FD\u306A\u30EA\u30D5\u30A1\u30AF\u30BF\u30EA\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093","\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3...","'{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","'{0}' \u306B\u5BFE\u3057\u3066\u4F7F\u7528\u3067\u304D\u308B\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","\u4F7F\u7528\u3067\u304D\u308B\u512A\u5148\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093","\u5229\u7528\u53EF\u80FD\u306A\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3042\u308A\u307E\u305B\u3093","\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u6574\u7406","\u5229\u7528\u53EF\u80FD\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u306E\u6574\u7406\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3042\u308A\u307E\u305B\u3093","\u3059\u3079\u3066\u4FEE\u6B63","\u3059\u3079\u3066\u3092\u4FEE\u6B63\u3059\u308B\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093","\u81EA\u52D5\u4FEE\u6B63...","\u5229\u7528\u53EF\u80FD\u306A\u81EA\u52D5\u4FEE\u6B63\u306F\u3042\u308A\u307E\u305B\u3093"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3 \u30E1\u30CB\u30E5\u30FC\u3067\u306E\u30B0\u30EB\u30FC\u30D7 \u30D8\u30C3\u30C0\u30FC\u306E\u8868\u793A\u306E\u6709\u52B9/\u7121\u52B9\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002","\u73FE\u5728\u8A3A\u65AD\u3092\u884C\u3063\u3066\u3044\u306A\u3044\u3068\u304D\u306B\u3001\u884C\u5185\u306E\u6700\u3082\u8FD1\u3044 \u30AF\u30A4\u30C3\u30AF\u4FEE\u6B63 \u3092\u8868\u793A\u3059\u308B\u6A5F\u80FD\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3057\u307E\u3059\u3002"],"vs/editor/contrib/codeAction/browser/codeActionController":["\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8: {1} \u884C {2} \u5217 \u306E {0}\u3002","\u7121\u52B9\u306A\u3082\u306E\u3092\u975E\u8868\u793A","\u7121\u52B9\u3092\u8868\u793A"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["\u305D\u306E\u4ED6\u306E\u64CD\u4F5C...","\u30AF\u30A4\u30C3\u30AF\u4FEE\u6B63","\u62BD\u51FA","\u30A4\u30F3\u30E9\u30A4\u30F3","\u518D\u66F8\u304D\u8FBC\u307F\u3059\u308B","\u79FB\u52D5","\u30D6\u30ED\u30C3\u30AF\u306E\u633F\u5165","\u30BD\u30FC\u30B9 \u30A2\u30AF\u30B7\u30E7\u30F3..."],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["\u5B9F\u884C: {0}","\u30B3\u30FC\u30C9\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4F7F\u7528\u53EF\u80FD\u306A\u512A\u5148\u306E\u30AF\u30A4\u30C3\u30AF\u4FEE\u6B63 ({0})","\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u8868\u793A ({0})","\u30B3\u30FC\u30C9 \u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u8868\u793A"],"vs/editor/contrib/codelens/browser/codelensController":["\u73FE\u5728\u306E\u884C\u306E\u30B3\u30FC\u30C9 \u30EC\u30F3\u30BA \u30B3\u30DE\u30F3\u30C9\u3092\u8868\u793A","\u30B3\u30DE\u30F3\u30C9\u306E\u9078\u629E"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u8272\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u5207\u308A\u66FF\u3048\u307E\u3059 (rgb/hsl/hex)","\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u9589\u3058\u308B\u30A2\u30A4\u30B3\u30F3"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3 \u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u306E\u8868\u793A\u307E\u305F\u306F\u30D5\u30A9\u30FC\u30AB\u30B9(&S)","\u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3092\u975E\u8868\u793A\u306B\u3059\u308B","\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3 \u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u3067\u8272\u3092\u633F\u5165","\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3 \u30AB\u30E9\u30FC \u30D4\u30C3\u30AB\u30FC\u306E\u8868\u793A\u307E\u305F\u306F\u30D5\u30A9\u30FC\u30AB\u30B9"],"vs/editor/contrib/comment/browser/comment":["\u884C\u30B3\u30E1\u30F3\u30C8\u306E\u5207\u308A\u66FF\u3048","\u884C\u30B3\u30E1\u30F3\u30C8\u306E\u5207\u308A\u66FF\u3048(&&T)","\u884C\u30B3\u30E1\u30F3\u30C8\u306E\u8FFD\u52A0","\u884C\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664","\u30D6\u30ED\u30C3\u30AF \u30B3\u30E1\u30F3\u30C8\u306E\u5207\u308A\u66FF\u3048","\u30D6\u30ED\u30C3\u30AF \u30B3\u30E1\u30F3\u30C8\u306E\u5207\u308A\u66FF\u3048(&&B)"],"vs/editor/contrib/contextmenu/browser/contextmenu":["\u30DF\u30CB\u30DE\u30C3\u30D7","\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u6587\u5B57","\u5782\u76F4\u65B9\u5411\u306E\u30B5\u30A4\u30BA","\u5747\u7B49","\u5857\u308A\u3064\u3076\u3057","\u30B5\u30A4\u30BA\u306B\u5408\u308F\u305B\u3066\u8ABF\u6574","\u30B9\u30E9\u30A4\u30C0\u30FC","\u30DE\u30A6\u30B9 \u30AA\u30FC\u30D0\u30FC","\u5E38\u306B","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 \u30E1\u30CB\u30E5\u30FC\u306E\u8868\u793A"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["\u30AB\u30FC\u30BD\u30EB\u3092\u5143\u306B\u623B\u3059","\u30AB\u30FC\u30BD\u30EB\u306E\u3084\u308A\u76F4\u3057"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["\u8CBC\u308A\u4ED8\u3051\u306E\u30AA\u30D7\u30B7\u30E7\u30F3...","\u9069\u7528\u3057\u3088\u3046\u3068\u3059\u308B\u8CBC\u308A\u4ED8\u3051\u7DE8\u96C6\u306E ID\u3002\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u30D4\u30C3\u30AB\u30FC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u8CBC\u308A\u4ED8\u3051"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["\u8CBC\u308A\u4ED8\u3051\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u8CBC\u308A\u4ED8\u3051\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A...","'{0}' \u306E\u8CBC\u308A\u4ED8\u3051\u306E\u7DE8\u96C6\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F","\u8CBC\u308A\u4ED8\u3051\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059\u3002\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059","\u8CBC\u308A\u4ED8\u3051\u64CD\u4F5C\u306E\u9078\u629E","\u8CBC\u308A\u4ED8\u3051\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059..."],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["\u30D3\u30EB\u30C8\u30A4\u30F3","\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u633F\u5165","URI \u306E\u633F\u5165","URI \u306E\u633F\u5165","\u30D1\u30B9\u306E\u633F\u5165","\u30D1\u30B9\u306E\u633F\u5165","\u76F8\u5BFE\u30D1\u30B9\u306E\u633F\u5165","\u76F8\u5BFE\u30D1\u30B9\u306E\u633F\u5165","HTML \u306E\u633F\u5165"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["\u7279\u5B9A\u306E MIME \u30BF\u30A4\u30D7\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4F7F\u7528\u3059\u308B\u65E2\u5B9A\u306E\u30C9\u30ED\u30C3\u30D7 \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u69CB\u6210\u3057\u307E\u3059\u3002"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["\u30C9\u30ED\u30C3\u30D7 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u30C9\u30ED\u30C3\u30D7 \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A...","\u30C9\u30ED\u30C3\u30D7 \u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059\u3002\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u53D6\u308A\u6D88\u3057\u53EF\u80FD\u306A\u64CD\u4F5C ('\u53C2\u7167\u3092\u3053\u3053\u306B\u8868\u793A' \u306A\u3069) \u3092\u5B9F\u884C\u3059\u308B\u304B\u3069\u3046\u304B"],"vs/editor/contrib/find/browser/findController":["\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u308B\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u7F6E\u63DB\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002","\u691C\u7D22","\u691C\u7D22(&&F)","\u5F15\u6570\u3092\u4F7F\u7528\u3057\u305F\u691C\u7D22","\u9078\u629E\u7BC4\u56F2\u3067\u691C\u7D22","\u6B21\u3092\u691C\u7D22","\u524D\u3092\u691C\u7D22","[\u4E00\u81F4] \u306B\u79FB\u52D5...","\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u4ED6\u306E\u9805\u76EE\u3092\u691C\u7D22\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002","\u7279\u5B9A\u306E\u4E00\u81F4\u306B\u79FB\u52D5\u3059\u308B\u6570\u5024\u3092\u5165\u529B\u3057\u307E\u3059 (1 \u304B\u3089 {0})","1 ~ {0} \u306E\u6570\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","1 ~ {0} \u306E\u6570\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u6B21\u306E\u9078\u629E\u9805\u76EE\u3092\u691C\u7D22","\u524D\u306E\u9078\u629E\u9805\u76EE\u3092\u691C\u7D22","\u7F6E\u63DB","\u7F6E\u63DB(&&R)"],"vs/editor/contrib/find/browser/findWidget":["\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E '\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22' \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u6298\u308A\u305F\u305F\u307E\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u793A\u3059\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u5C55\u958B\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u793A\u3059\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E '\u7F6E\u63DB' \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E '\u3059\u3079\u3066\u7F6E\u63DB' \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E '\u524D\u3092\u691C\u7D22' \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u691C\u7D22\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u306E '\u6B21\u3092\u691C\u7D22' \u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u691C\u7D22/\u7F6E\u63DB","\u691C\u7D22","\u691C\u7D22","\u524D\u306E\u4E00\u81F4\u9805\u76EE","\u6B21\u306E\u4E00\u81F4\u9805\u76EE","\u9078\u629E\u7BC4\u56F2\u3092\u691C\u7D22","\u9589\u3058\u308B","\u7F6E\u63DB","\u7F6E\u63DB","\u7F6E\u63DB","\u3059\u3079\u3066\u7F6E\u63DB","\u7F6E\u63DB\u306E\u5207\u308A\u66FF\u3048","\u6700\u521D\u306E {0} \u4EF6\u306E\u7D50\u679C\u3060\u3051\u304C\u5F37\u8ABF\u8868\u793A\u3055\u308C\u307E\u3059\u304C\u3001\u3059\u3079\u3066\u306E\u691C\u7D22\u64CD\u4F5C\u306F\u30C6\u30AD\u30B9\u30C8\u5168\u4F53\u3067\u6A5F\u80FD\u3057\u307E\u3059\u3002","{0} / {1} \u4EF6","\u7D50\u679C\u306F\u3042\u308A\u307E\u305B\u3093\u3002","{0} \u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F","{0} \u304C '{1}' \u3067\u898B\u3064\u304B\u308A\u307E\u3057\u305F","{0} \u306F '{1}' \u3067 {2} \u306B\u898B\u3064\u304B\u308A\u307E\u3057\u305F","{0} \u304C '{1}' \u3067\u898B\u3064\u304B\u308A\u307E\u3057\u305F","Ctrl + Enter \u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u3059\u3079\u3066\u7F6E\u63DB\u3059\u308B\u306E\u3067\u306F\u306A\u304F\u3001\u6539\u884C\u304C\u633F\u5165\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F\u3002editor.action.replaceAll \u306E\u30AD\u30FC\u30D0\u30A4\u30F3\u30C9\u3092\u5909\u66F4\u3057\u3066\u3001\u3053\u306E\u52D5\u4F5C\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3067\u304D\u307E\u3059\u3002"],"vs/editor/contrib/folding/browser/folding":["\u5C55\u958B","\u518D\u5E30\u7684\u306B\u5C55\u958B\u3059\u308B","\u6298\u308A\u305F\u305F\u307F","\u6298\u308A\u305F\u305F\u307F\u306E\u5207\u308A\u66FF\u3048","\u518D\u5E30\u7684\u306B\u6298\u308A\u305F\u305F\u3080","\u3059\u3079\u3066\u306E\u30D6\u30ED\u30C3\u30AF \u30B3\u30E1\u30F3\u30C8\u306E\u6298\u308A\u305F\u305F\u307F","\u3059\u3079\u3066\u306E\u9818\u57DF\u3092\u6298\u308A\u305F\u305F\u3080","\u3059\u3079\u3066\u306E\u9818\u57DF\u3092\u5C55\u958B","\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u9664\u304F\u3059\u3079\u3066\u6298\u308A\u305F\u305F\u307F","\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u9664\u304F\u3059\u3079\u3066\u5C55\u958B","\u3059\u3079\u3066\u6298\u308A\u305F\u305F\u307F","\u3059\u3079\u3066\u5C55\u958B","\u89AA\u30D5\u30A9\u30FC\u30EB\u30C9\u306B\u79FB\u52D5\u3059\u308B","\u524D\u306E\u30D5\u30A9\u30FC\u30EB\u30C7\u30A3\u30F3\u30B0\u7BC4\u56F2\u306B\u79FB\u52D5\u3059\u308B","\u6B21\u306E\u30D5\u30A9\u30FC\u30EB\u30C7\u30A3\u30F3\u30B0\u7BC4\u56F2\u306B\u79FB\u52D5\u3059\u308B","\u9078\u629E\u7BC4\u56F2\u304B\u3089\u6298\u308A\u305F\u305F\u307F\u7BC4\u56F2\u3092\u4F5C\u6210\u3059\u308B","\u624B\u52D5\u6298\u308A\u305F\u305F\u307F\u7BC4\u56F2\u3092\u524A\u9664\u3059\u308B","\u30EC\u30D9\u30EB {0} \u3067\u6298\u308A\u305F\u305F\u3080"],"vs/editor/contrib/folding/browser/foldingDecorations":["\u6298\u308A\u66F2\u3052\u308B\u7BC4\u56F2\u306E\u80CC\u666F\u8272\u3002\u57FA\u306E\u88C5\u98FE\u3092\u96A0\u3055\u306A\u3044\u3088\u3046\u306B\u3001\u8272\u306F\u4E0D\u900F\u660E\u3067\u3042\u3063\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4F59\u767D\u306B\u3042\u308B\u6298\u308A\u305F\u305F\u307F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B0\u30EA\u30D5\u4F59\u767D\u5185\u306E\u5C55\u958B\u3055\u308C\u305F\u7BC4\u56F2\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B0\u30EA\u30D5\u4F59\u767D\u5185\u306E\u6298\u308A\u305F\u305F\u307E\u308C\u305F\u7BC4\u56F2\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B0\u30EA\u30D5\u4F59\u767D\u5185\u306E\u6298\u308A\u305F\u305F\u307E\u308C\u305F\u7BC4\u56F2\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30B0\u30EA\u30D5\u4F59\u767D\u5185\u3067\u624B\u52D5\u3067\u5C55\u958B\u3055\u308C\u305F\u7BC4\u56F2\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7BC4\u56F2\u3092\u5C55\u958B\u3057\u307E\u3059\u3002","\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7BC4\u56F2\u3092\u6298\u308A\u305F\u305F\u307F\u307E\u3059\u3002"],"vs/editor/contrib/fontZoom/browser/fontZoom":["\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3092\u62E1\u5927","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3092\u7E2E\u5C0F","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30D5\u30A9\u30F3\u30C8 \u30B5\u30A4\u30BA\u3092\u30EA\u30BB\u30C3\u30C8"],"vs/editor/contrib/format/browser/formatActions":["\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","\u9078\u629E\u7BC4\u56F2\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8"],"vs/editor/contrib/gotoError/browser/gotoError":["\u6B21\u306E\u554F\u984C (\u30A8\u30E9\u30FC\u3001\u8B66\u544A\u3001\u60C5\u5831) \u3078\u79FB\u52D5","\u6B21\u306E\u30DE\u30FC\u30AB\u30FC\u3078\u79FB\u52D5\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u524D\u306E\u554F\u984C (\u30A8\u30E9\u30FC\u3001\u8B66\u544A\u3001\u60C5\u5831) \u3078\u79FB\u52D5","\u524D\u306E\u30DE\u30FC\u30AB\u30FC\u3078\u79FB\u52D5\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u30D5\u30A1\u30A4\u30EB\u5185\u306E\u6B21\u306E\u554F\u984C (\u30A8\u30E9\u30FC\u3001\u8B66\u544A\u3001\u60C5\u5831) \u3078\u79FB\u52D5","\u6B21\u306E\u554F\u984C\u7B87\u6240(&&P)","\u30D5\u30A1\u30A4\u30EB\u5185\u306E\u524D\u306E\u554F\u984C (\u30A8\u30E9\u30FC\u3001\u8B66\u544A\u3001\u60C5\u5831) \u3078\u79FB\u52D5","\u524D\u306E\u554F\u984C\u7B87\u6240(&&P)"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["\u30A8\u30E9\u30FC","\u8B66\u544A","\u60C5\u5831","\u30D2\u30F3\u30C8","{0} ({1})\u3002","{1} \u4EF6\u4E2D {0} \u4EF6\u306E\u554F\u984C","\u554F\u984C {0} / {1}","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30A8\u30E9\u30FC\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 \u30A8\u30E9\u30FC\u306E\u898B\u51FA\u3057\u306E\u80CC\u666F\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u8B66\u544A\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8B66\u544A\u306E\u898B\u51FA\u3057\u306E\u80CC\u666F\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u60C5\u5831\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u60C5\u5831\u306E\u898B\u51FA\u3057\u306E\u80CC\u666F\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DE\u30FC\u30AB\u30FC \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u3002"],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["\u30D4\u30FC\u30AF","\u5B9A\u7FA9","'{0}' \u306E\u5B9A\u7FA9\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5B9A\u7FA9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5B9A\u7FA9\u306B\u79FB\u52D5(&&D)","\u5BA3\u8A00","'{0}' \u306E\u5BA3\u8A00\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5BA3\u8A00\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5BA3\u8A00\u3078\u79FB\u52D5(&&D)","'{0}' \u306E\u5BA3\u8A00\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5BA3\u8A00\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u578B\u5B9A\u7FA9","'{0}' \u306E\u578B\u5B9A\u7FA9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u578B\u5B9A\u7FA9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u578B\u5B9A\u7FA9\u306B\u79FB\u52D5(&&T)","\u5B9F\u88C5","'{0}' \u306E\u5B9F\u88C5\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5B9F\u88C5\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u5B9F\u88C5\u7B87\u6240\u306B\u79FB\u52D5(&&I)","'{0}' \u306E\u53C2\u7167\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u53C2\u7167\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093","\u53C2\u7167\u3078\u79FB\u52D5(&&R)","\u53C2\u7167","\u53C2\u7167","\u5834\u6240","'{0}' \u306B\u4E00\u81F4\u3059\u308B\u7D50\u679C\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F","\u53C2\u7167","\u5B9A\u7FA9\u3078\u79FB\u52D5","\u5B9A\u7FA9\u3092\u6A2A\u306B\u958B\u304F","\u5B9A\u7FA9\u3092\u3053\u3053\u306B\u8868\u793A","\u5BA3\u8A00\u3078\u79FB\u52D5","\u5BA3\u8A00\u3092\u3053\u3053\u306B\u8868\u793A","\u578B\u5B9A\u7FA9\u3078\u79FB\u52D5","\u578B\u5B9A\u7FA9\u3092\u8868\u793A","\u5B9F\u88C5\u3078\u79FB\u52D5","\u5B9F\u88C5\u306E\u30D4\u30FC\u30AF","\u53C2\u7167\u3078\u79FB\u52D5","\u53C2\u7167\u3092\u3053\u3053\u306B\u8868\u793A","\u4EFB\u610F\u306E\u30B7\u30F3\u30DC\u30EB\u3078\u79FB\u52D5"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u3001{0} \u306E\u5B9A\u7FA9\u3092\u8868\u793A\u3057\u307E\u3059\u3002"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["\u53C2\u7167\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B ('\u53C2\u7167\u306E\u30D7\u30EC\u30D3\u30E5\u30FC' \u307E\u305F\u306F '\u5B9A\u7FA9\u3092\u3053\u3053\u306B\u8868\u793A' \u306A\u3069)","\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} \u500B\u306E\u53C2\u7167","{0} \u500B\u306E\u53C2\u7167","\u53C2\u7167\u8A2D\u5B9A"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093","\u7D50\u679C\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u53C2\u7167\u8A2D\u5B9A"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["\u5217 {2} \u306E\u884C {1} \u306E {0}","\u5217 {3} \u306E\u884C {2} \u306E {1} \u306B {0}","{0} \u306B 1 \u500B\u306E\u30B7\u30F3\u30DC\u30EB\u3001\u5B8C\u5168\u306A\u30D1\u30B9 {1}","{1} \u306B {0} \u500B\u306E\u30B7\u30F3\u30DC\u30EB\u3001\u5B8C\u5168\u306A\u30D1\u30B9 {2}","\u4E00\u81F4\u3059\u308B\u9805\u76EE\u306F\u3042\u308A\u307E\u305B\u3093","{0} \u306B 1 \u500B\u306E\u30B7\u30F3\u30DC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F","{1} \u306B {0} \u500B\u306E\u30B7\u30F3\u30DC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F","{1} \u500B\u306E\u30D5\u30A1\u30A4\u30EB\u306B {0} \u500B\u306E\u30B7\u30F3\u30DC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["\u30AD\u30FC\u30DC\u30FC\u30C9\u306E\u307F\u3067\u79FB\u52D5\u3067\u304D\u308B\u30B7\u30F3\u30DC\u30EB\u306E\u5834\u6240\u304C\u3042\u308B\u304B\u3069\u3046\u304B\u3002","{1} \u306E\u30B7\u30F3\u30DC\u30EB {0}\u3001\u6B21\u306B {2}","\u30B7\u30F3\u30DC\u30EB {0}/{1}"],"vs/editor/contrib/hover/browser/hover":["[\u8868\u793A\u307E\u305F\u306F\u30D5\u30A9\u30FC\u30AB\u30B9] \u30DB\u30D0\u30FC","\u30DB\u30D0\u30FC\u306F\u81EA\u52D5\u7684\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u53D6\u5F97\u3057\u307E\u305B\u3093\u3002","\u30DB\u30D0\u30FC\u306F\u3001\u305D\u308C\u304C\u65E2\u306B\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u306E\u307F\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002","\u30DB\u30D0\u30FC\u304C\u8868\u793A\u3055\u308C\u308B\u3068\u3001\u81EA\u52D5\u7684\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002","\u5B9A\u7FA9\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u30DB\u30D0\u30FC\u3092\u8868\u793A\u3059\u308B","[\u4E0A\u306B\u30B9\u30AF\u30ED\u30FC\u30EB] \u30DB\u30D0\u30FC","[\u4E0B\u306B\u30B9\u30AF\u30ED\u30FC\u30EB] \u30DB\u30D0\u30FC","[\u5DE6\u306B\u30B9\u30AF\u30ED\u30FC\u30EB] \u30DB\u30D0\u30FC","[\u53F3\u306B\u30B9\u30AF\u30ED\u30FC\u30EB] \u30DB\u30D0\u30FC","[\u30DA\u30FC\u30B8\u3092\u4E0A\u306B] \u30DB\u30D0\u30FC","[\u30DA\u30FC\u30B8\u3092\u4E0B\u306B] \u30DB\u30D0\u30FC","[\u4E0A\u306B\u79FB\u52D5] \u30DB\u30D0\u30FC","[\u4E0B\u306B\u79FB\u52D5] \u30DB\u30D0\u30FC"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059...","\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u4E0A\u306E\u7406\u7531\u304B\u3089\u3001\u9577\u3044\u884C\u306E\u305F\u3081\u306B\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u304C\u4E00\u6642\u505C\u6B62\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306F `editor.stopRenderingLineAfter` \u3067\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002","\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u4E0A\u306E\u7406\u7531\u304B\u3089\u30C8\u30FC\u30AF\u30F3\u5316\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002\u305D\u306E\u9577\u3044\u884C\u306E\u9577\u3055\u306F `editor.maxTokenizationLineLength` \u3067\u69CB\u6210\u3067\u304D\u307E\u3059\u3002"],"vs/editor/contrib/hover/browser/markerHoverParticipant":["\u554F\u984C\u306E\u8868\u793A","\u5229\u7528\u3067\u304D\u308B\u30AF\u30A4\u30C3\u30AF\u30D5\u30A3\u30C3\u30AF\u30B9\u306F\u3042\u308A\u307E\u305B\u3093","\u30AF\u30A4\u30C3\u30AF\u30D5\u30A3\u30C3\u30AF\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059...","\u5229\u7528\u3067\u304D\u308B\u30AF\u30A4\u30C3\u30AF\u30D5\u30A3\u30C3\u30AF\u30B9\u306F\u3042\u308A\u307E\u305B\u3093","\u30AF\u30A4\u30C3\u30AF \u30D5\u30A3\u30C3\u30AF\u30B9..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["\u524D\u306E\u5024\u306B\u7F6E\u63DB","\u6B21\u306E\u5024\u306B\u7F6E\u63DB"],"vs/editor/contrib/indentation/browser/indentation":["\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u30B9\u30DA\u30FC\u30B9\u306B\u5909\u63DB","\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u30BF\u30D6\u306B\u5909\u63DB","\u69CB\u6210\u3055\u308C\u305F\u30BF\u30D6\u306E\u30B5\u30A4\u30BA","\u65E2\u5B9A\u306E\u30BF\u30D6 \u30B5\u30A4\u30BA","\u73FE\u5728\u306E\u30BF\u30D6 \u30B5\u30A4\u30BA","\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30D6\u306E\u30B5\u30A4\u30BA\u3092\u9078\u629E","\u30BF\u30D6\u306B\u3088\u308B\u30A4\u30F3\u30C7\u30F3\u30C8","\u30B9\u30DA\u30FC\u30B9\u306B\u3088\u308B\u30A4\u30F3\u30C7\u30F3\u30C8","\u30BF\u30D6\u306E\u8868\u793A\u30B5\u30A4\u30BA\u306E\u5909\u66F4","\u5185\u5BB9\u304B\u3089\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u691C\u51FA","\u884C\u306E\u518D\u30A4\u30F3\u30C7\u30F3\u30C8","\u9078\u629E\u884C\u3092\u518D\u30A4\u30F3\u30C7\u30F3\u30C8"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u633F\u5165\u3059\u308B","cmd \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30AF\u30EA\u30C3\u30AF","ctrl \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089 \u30AF\u30EA\u30C3\u30AF","option \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30AF\u30EA\u30C3\u30AF","alt \u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\u30AF\u30EA\u30C3\u30AF","[\u5B9A\u7FA9] ({0}) \u306B\u79FB\u52D5\u3057\u3001\u53F3\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u8A73\u7D30\u3092\u8868\u793A\u3057\u307E\u3059","\u5B9A\u7FA9\u306B\u79FB\u52D5 ({0})","\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C"],"vs/editor/contrib/inlineCompletions/browser/commands":["\u6B21\u306E\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u8868\u793A\u3059\u308B","\u524D\u306E\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u8868\u793A\u3059\u308B","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B","\u30A4\u30F3\u30E9\u30A4\u30F3\u63D0\u6848\u306E\u6B21\u306E\u5358\u8A9E\u3092\u627F\u8AFE\u3059\u308B","\u30EF\u30FC\u30C9\u3092\u627F\u8AFE\u3059\u308B","\u30A4\u30F3\u30E9\u30A4\u30F3\u63D0\u6848\u306E\u6B21\u306E\u884C\u3092\u627F\u8AFE\u3059\u308B","\u884C\u3092\u627F\u8AFE\u3059\u308B","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u627F\u8AFE\u3059\u308B","\u627F\u8AFE\u3059\u308B","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u975E\u8868\u793A\u306B\u3059\u308B","\u5E38\u306B\u30C4\u30FC\u30EB \u30D0\u30FC\u3092\u8868\u793A\u3059\u308B"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["\u304A\u3059\u3059\u3081:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u304C\u30B9\u30DA\u30FC\u30B9\u3067\u59CB\u307E\u308B\u304B\u3069\u3046\u304B","\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC\u304C\u3001\u30BF\u30D6\u3067\u633F\u5165\u3055\u308C\u308B\u3082\u306E\u3088\u308A\u3082\u5C0F\u3055\u3044\u30B9\u30DA\u30FC\u30B9\u3067\u59CB\u307E\u308B\u304B\u3069\u3046\u304B","\u73FE\u5728\u306E\u5019\u88DC\u306B\u3064\u3044\u3066\u5019\u88DC\u8868\u793A\u3092\u6B62\u3081\u308B\u304B\u3069\u3046\u304B"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\u30E6\u30FC\u30B6\u30FC\u88DC\u52A9\u5BFE\u5FDC\u306E\u30D3\u30E5\u30FC\u3067\u3053\u308C\u3092\u691C\u67FB\u3057\u307E\u3059 ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["\u6B21\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u524D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","{0} ({1})","\u524D\u3078","\u6B21\u3078"],"vs/editor/contrib/lineSelection/browser/lineSelection":["\u884C\u5168\u4F53\u3092\u9078\u629E\u3059\u308B"],"vs/editor/contrib/linesOperations/browser/linesOperations":["\u884C\u3092\u4E0A\u3078\u30B3\u30D4\u30FC","\u884C\u3092\u4E0A\u3078\u30B3\u30D4\u30FC(&&C)","\u884C\u3092\u4E0B\u3078\u30B3\u30D4\u30FC","\u884C\u3092\u4E0B\u3078\u30B3\u30D4\u30FC(&&P)","\u9078\u629E\u7BC4\u56F2\u306E\u8907\u88FD","\u9078\u629E\u7BC4\u56F2\u306E\u8907\u88FD(&&D)","\u884C\u3092\u4E0A\u3078\u79FB\u52D5","\u884C\u3092\u4E0A\u3078\u79FB\u52D5(&&V)","\u884C\u3092\u4E0B\u3078\u79FB\u52D5","\u884C\u3092\u4E0B\u3078\u79FB\u52D5(&&L)","\u884C\u3092\u6607\u9806\u306B\u4E26\u3079\u66FF\u3048","\u884C\u3092\u964D\u9806\u306B\u4E26\u3079\u66FF\u3048","\u91CD\u8907\u3059\u308B\u884C\u3092\u524A\u9664","\u672B\u5C3E\u306E\u7A7A\u767D\u306E\u30C8\u30EA\u30DF\u30F3\u30B0","\u884C\u306E\u524A\u9664","\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8","\u884C\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u89E3\u9664","\u884C\u3092\u4E0A\u306B\u633F\u5165","\u884C\u3092\u4E0B\u306B\u633F\u5165","\u5DE6\u5074\u3092\u3059\u3079\u3066\u524A\u9664","\u53F3\u5074\u3092\u3059\u3079\u3066\u524A\u9664","\u884C\u3092\u3064\u306A\u3052\u308B","\u30AB\u30FC\u30BD\u30EB\u306E\u5468\u56F2\u306E\u6587\u5B57\u3092\u5165\u308C\u66FF\u3048\u308B","\u5927\u6587\u5B57\u306B\u5909\u63DB","\u5C0F\u6587\u5B57\u306B\u5909\u63DB","\u5148\u982D\u6587\u5B57\u3092\u5927\u6587\u5B57\u306B\u5909\u63DB\u3059\u308B","\u30B9\u30CD\u30FC\u30AF \u30B1\u30FC\u30B9\u306B\u5909\u63DB\u3059\u308B","\u30AD\u30E3\u30E1\u30EB \u30B1\u30FC\u30B9\u306B\u5909\u63DB\u3059\u308B","Kebab \u30B1\u30FC\u30B9\u3078\u306E\u5909\u63DB"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["\u30EA\u30F3\u30AF\u3055\u308C\u305F\u7DE8\u96C6\u306E\u958B\u59CB","\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u578B\u306E\u540D\u524D\u306E\u81EA\u52D5\u5909\u66F4\u3092\u884C\u3046\u3068\u304D\u306E\u80CC\u666F\u8272\u3067\u3059\u3002"],"vs/editor/contrib/links/browser/links":["\u3053\u306E\u30EA\u30F3\u30AF\u306F\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u306A\u3044\u305F\u3081\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: {0}","\u3053\u306E\u30EA\u30F3\u30AF\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u304C\u5B58\u5728\u3057\u306A\u3044\u305F\u3081\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002","\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C","\u30EA\u30F3\u30AF\u5148\u3092\u8868\u793A","cmd + \u30AF\u30EA\u30C3\u30AF","ctrl + \u30AF\u30EA\u30C3\u30AF","option + \u30AF\u30EA\u30C3\u30AF","alt + \u30AF\u30EA\u30C3\u30AF","\u30B3\u30DE\u30F3\u30C9 {0} \u306E\u5B9F\u884C","\u30EA\u30F3\u30AF\u3092\u958B\u304F"],"vs/editor/contrib/message/browser/messageController":["\u30A8\u30C7\u30A3\u30BF\u30FC\u306B\u73FE\u5728\u30A4\u30F3\u30E9\u30A4\u30F3 \u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B"],"vs/editor/contrib/multicursor/browser/multicursor":["\u8FFD\u52A0\u3055\u308C\u305F\u30AB\u30FC\u30BD\u30EB: {0}","\u8FFD\u52A0\u3055\u308C\u305F\u30AB\u30FC\u30BD\u30EB: {0}","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0A\u306B\u633F\u5165","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0A\u306B\u633F\u5165(&&A)","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0B\u306B\u633F\u5165","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0B\u306B\u633F\u5165(&&D)","\u30AB\u30FC\u30BD\u30EB\u3092\u884C\u672B\u306B\u633F\u5165","\u30AB\u30FC\u30BD\u30EB\u3092\u884C\u672B\u306B\u633F\u5165(&&U)","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0B\u306B\u633F\u5165","\u30AB\u30FC\u30BD\u30EB\u3092\u4E0A\u306B\u633F\u5165","\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u6B21\u306E\u4E00\u81F4\u9805\u76EE\u306B\u8FFD\u52A0","\u6B21\u306E\u51FA\u73FE\u500B\u6240\u3092\u8FFD\u52A0(&&N)","\u9078\u629E\u9805\u76EE\u3092\u6B21\u306E\u4E00\u81F4\u9805\u76EE\u306B\u8FFD\u52A0","\u524D\u306E\u51FA\u73FE\u7B87\u6240\u3092\u8FFD\u52A0(&&R)","\u6700\u5F8C\u306B\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u6B21\u306E\u4E00\u81F4\u9805\u76EE\u306B\u79FB\u52D5","\u6700\u5F8C\u306B\u9078\u3093\u3060\u9805\u76EE\u3092\u524D\u306E\u4E00\u81F4\u9805\u76EE\u306B\u79FB\u52D5\u3059\u308B","\u4E00\u81F4\u3059\u308B\u3059\u3079\u3066\u306E\u51FA\u73FE\u7B87\u6240\u3092\u9078\u629E\u3057\u307E\u3059","\u3059\u3079\u3066\u306E\u51FA\u73FE\u7B87\u6240\u3092\u9078\u629E(&&O)","\u3059\u3079\u3066\u306E\u51FA\u73FE\u7B87\u6240\u3092\u5909\u66F4","\u6B21\u306E\u30AB\u30FC\u30BD\u30EB\u306B\u30D5\u30A9\u30FC\u30AB\u30B9","\u6B21\u306E\u30AB\u30FC\u30BD\u30EB\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u5408\u308F\u305B\u308B","\u524D\u306E\u30AB\u30FC\u30BD\u30EB\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3059\u308B","\u524D\u306E\u30AB\u30FC\u30BD\u30EB\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u5408\u308F\u305B\u308B"],"vs/editor/contrib/parameterHints/browser/parameterHints":["\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u3092\u30C8\u30EA\u30AC\u30FC"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["\u6B21\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u524D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","{0}\u3001\u30D2\u30F3\u30C8","\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC \u30D2\u30F3\u30C8\u5185\u306E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u9805\u76EE\u306E\u524D\u666F\u8272\u3002"],"vs/editor/contrib/peekView/browser/peekView":["\u73FE\u5728\u306E\u30B3\u30FC\u30C9 \u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30D7\u30EC\u30D3\u30E5\u30FC\u5185\u306B\u57CB\u3081\u8FBC\u307E\u308C\u308B\u304B\u3069\u3046\u304B","\u9589\u3058\u308B","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u306E\u30BF\u30A4\u30C8\u30EB\u9818\u57DF\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30BF\u30A4\u30C8\u30EB\u306E\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u306E\u30BF\u30A4\u30C8\u30EB\u60C5\u5831\u306E\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u306E\u5883\u754C\u3068\u77E2\u5370\u306E\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u30E9\u30A4\u30F3 \u30CE\u30FC\u30C9\u306E\u524D\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u30D5\u30A1\u30A4\u30EB \u30CE\u30FC\u30C9\u306E\u524D\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u9078\u629E\u6E08\u307F\u30A8\u30F3\u30C8\u30EA\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u9078\u629E\u6E08\u307F\u30A8\u30F3\u30C8\u30EA\u306E\u524D\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4F59\u767D\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u80CC\u666F\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC\u7D50\u679C\u30EA\u30B9\u30C8\u306E\u4E00\u81F4\u3057\u305F\u5F37\u8ABF\u8868\u793A\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E00\u81F4\u3057\u305F\u5F37\u8ABF\u8868\u793A\u8272\u3002","\u30D4\u30FC\u30AF \u30D3\u30E5\u30FC \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u4E00\u81F4\u3057\u305F\u5F37\u8ABF\u5883\u754C\u8272\u3002"],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\u6700\u521D\u306B\u30C6\u30AD\u30B9\u30C8 \u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u958B\u3044\u3066\u3001\u884C\u306B\u79FB\u52D5\u3057\u307E\u3059\u3002","\u884C {0}\u3001\u6587\u5B57 {1} \u306B\u79FB\u52D5\u3057\u307E\u3059\u3002","{0} \u884C\u306B\u79FB\u52D5\u3057\u307E\u3059\u3002","\u73FE\u5728\u306E\u884C: {0}\u3001\u6587\u5B57: {1}\u3002\u79FB\u52D5\u5148\u3068\u306A\u308B\u30011 \u304B\u3089 {2} \u307E\u3067\u306E\u884C\u756A\u53F7\u3092\u5165\u529B\u3057\u307E\u3059\u3002","\u73FE\u5728\u306E\u884C: {0}\u3001\u6587\u5B57: {1}\u3002\u79FB\u52D5\u5148\u306E\u884C\u756A\u53F7\u3092\u5165\u529B\u3057\u307E\u3059\u3002"],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\u30B7\u30F3\u30DC\u30EB\u306B\u79FB\u52D5\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u30B7\u30F3\u30DC\u30EB\u60C5\u5831\u3092\u542B\u3080\u30C6\u30AD\u30B9\u30C8 \u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u958B\u304D\u307E\u3059\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C6\u30AD\u30B9\u30C8 \u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306F\u3001\u30B7\u30F3\u30DC\u30EB\u60C5\u5831\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002","\u4E00\u81F4\u3059\u308B\u30A8\u30C7\u30A3\u30BF\u30FC \u30B7\u30F3\u30DC\u30EB\u304C\u3042\u308A\u307E\u305B\u3093","\u30A8\u30C7\u30A3\u30BF\u30FC \u30B7\u30F3\u30DC\u30EB\u304C\u3042\u308A\u307E\u305B\u3093","\u6A2A\u306B\u4E26\u3079\u3066\u958B\u304F","\u4E00\u756A\u4E0B\u3067\u958B\u304F","\u30B7\u30F3\u30DC\u30EB ({0})","\u30D7\u30ED\u30D1\u30C6\u30A3 ({0})","\u30E1\u30BD\u30C3\u30C9 ({0})","\u95A2\u6570 ({0})","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC ({0})","\u5909\u6570 ({0})","\u30AF\u30E9\u30B9 ({0})","\u69CB\u9020\u4F53 ({0})","\u30A4\u30D9\u30F3\u30C8 ({0})","\u6F14\u7B97\u5B50 ({0})","\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 ({0})","\u540D\u524D\u7A7A\u9593 ({0})","\u30D1\u30C3\u30B1\u30FC\u30B8 ({0})","\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC ({0})","\u30E2\u30B8\u30E5\u30FC\u30EB ({0})","\u30D7\u30ED\u30D1\u30C6\u30A3 ({0})","\u5217\u6319\u578B ({0})","\u5217\u6319\u578B\u30E1\u30F3\u30D0\u30FC ({0})","\u6587\u5B57\u5217 ({0})","\u30D5\u30A1\u30A4\u30EB ({0})","\u914D\u5217 ({0})","\u6570\u5024 ({0})","\u30D6\u30FC\u30EB\u5024 ({0})","\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 ({0})","\u30AD\u30FC ({0})","\u30D5\u30A3\u30FC\u30EB\u30C9 ({0})","\u5B9A\u6570 ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u5165\u529B\u3067\u306F\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093","\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306F\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093"],"vs/editor/contrib/rename/browser/rename":["\u7D50\u679C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u540D\u524D\u5909\u66F4\u306E\u5834\u6240\u3092\u89E3\u6C7A\u3057\u3088\u3046\u3068\u3057\u3066\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F","\u540D\u524D\u3092 '{0}' \u304B\u3089 '{1}' \u306B\u5909\u66F4\u3057\u3066\u3044\u307E\u3059","{0} \u306E\u540D\u524D\u3092 {1} \u306B\u5909\u66F4\u3057\u3066\u3044\u307E\u3059","'{0}' \u304B\u3089 '{1}' \u3078\u306E\u540D\u524D\u5909\u66F4\u304C\u6B63\u5E38\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002\u6982\u8981: {2}","\u540D\u524D\u306E\u5909\u66F4\u3067\u7DE8\u96C6\u3092\u9069\u7528\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","\u540D\u524D\u306E\u5909\u66F4\u306B\u3088\u3063\u3066\u7DE8\u96C6\u306E\u8A08\u7B97\u306B\u5931\u6557\u3057\u307E\u3057\u305F","\u30B7\u30F3\u30DC\u30EB\u306E\u540D\u524D\u5909\u66F4","\u540D\u524D\u3092\u5909\u66F4\u3059\u308B\u524D\u306B\u5909\u66F4\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B\u6A5F\u80FD\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3059\u308B","\u6B21\u306E\u540D\u524D\u5909\u66F4\u5019\u88DC\u306B\u30D5\u30A9\u30FC\u30AB\u30B9","\u524D\u306E\u540D\u524D\u5909\u66F4\u5019\u88DC\u306B\u30D5\u30A9\u30FC\u30AB\u30B9"],"vs/editor/contrib/rename/browser/renameInputField":["\u540D\u524D\u306E\u5909\u66F4\u5165\u529B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B","\u540D\u524D\u306E\u5909\u66F4\u5165\u529B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u308B\u304B\u3069\u3046\u304B","\u540D\u524D\u5909\u66F4\u5165\u529B\u3002\u65B0\u3057\u3044\u540D\u524D\u3092\u5165\u529B\u3057\u3001Enter \u30AD\u30FC\u3092\u62BC\u3057\u3066\u30B3\u30DF\u30C3\u30C8\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u540D\u524D\u3092\u5909\u66F4\u3059\u308B\u306B\u306F {0}\u3001\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B\u306B\u306F {1}","{0} \u540D\u524D\u5909\u66F4\u306E\u63D0\u6848\u3092\u53D7\u4FE1\u3057\u307E\u3057\u305F"],"vs/editor/contrib/smartSelect/browser/smartSelect":["\u9078\u629E\u7BC4\u56F2\u3092\u62E1\u5F35","\u9078\u629E\u7BC4\u56F2\u306E\u5C55\u958B(&&E)","\u9078\u629E\u7BC4\u56F2\u3092\u7E2E\u5C0F","\u9078\u629E\u7BC4\u56F2\u306E\u7E2E\u5C0F(&&S)"],"vs/editor/contrib/snippet/browser/snippetController2":["\u73FE\u5728\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u304C\u30B9\u30CB\u30DA\u30C3\u30C8 \u30E2\u30FC\u30C9\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30B9\u30CB\u30DA\u30C3\u30C8 \u30E2\u30FC\u30C9\u306E\u3068\u304D\u306B\u3001\u6B21\u306E\u30BF\u30D6\u4F4D\u7F6E\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u30B9\u30CB\u30DA\u30C3\u30C8 \u30E2\u30FC\u30C9\u306E\u3068\u304D\u306B\u3001\u524D\u306E\u30BF\u30D6\u4F4D\u7F6E\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u6B21\u306E\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC\u306B\u79FB\u52D5..."],"vs/editor/contrib/snippet/browser/snippetVariables":["\u65E5\u66DC\u65E5","\u6708\u66DC\u65E5","\u706B\u66DC\u65E5","\u6C34\u66DC\u65E5","\u6728\u66DC\u65E5","\u91D1\u66DC\u65E5","\u571F\u66DC\u65E5","\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F","1 \u6708","2 \u6708","3 \u6708","4 \u6708","5 \u6708","6 \u6708","7 \u6708","8 \u6708","9 \u6708","10 \u6708","11 \u6708","12 \u6708","1 \u6708","2 \u6708","3 \u6708","4 \u6708","5 \u6708","6 \u6708","7 \u6708","8 \u6708","9 \u6708","10 \u6708","11 \u6708","12 \u6708"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["\u30A8\u30C7\u30A3\u30BF\u30FC\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u5207\u308A\u66FF\u3048(&T)","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB(&&S)","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u3078\u306E\u30D5\u30A9\u30FC\u30AB\u30B9(&F)","\u30A8\u30C7\u30A3\u30BF\u30FC\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u5207\u308A\u66FF\u3048","\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u3078\u306E\u30D5\u30A9\u30FC\u30AB\u30B9","\u6B21\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u884C\u3092\u9078\u629E","\u524D\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u884C\u3092\u9078\u629E","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u884C\u306B\u79FB\u52D5","\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u9078\u629E"],"vs/editor/contrib/suggest/browser/suggest":["\u5019\u88DC\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B","\u5019\u88DC\u306E\u8A73\u7D30\u304C\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B","\u9078\u629E\u3059\u308B\u8907\u6570\u306E\u5019\u88DC\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u73FE\u5728\u306E\u5019\u88DC\u3092\u633F\u5165\u3057\u305F\u3068\u304D\u3001\u5909\u66F4\u3092\u884C\u3046\u304B\u3001\u307E\u305F\u306F\u65E2\u306B\u5165\u529B\u3057\u305F\u5185\u5BB9\u3092\u3059\u3079\u3066\u5165\u529B\u3059\u308B\u304B\u3069\u3046\u304B","Enter \u30AD\u30FC\u3092\u62BC\u3057\u305F\u3068\u304D\u306B\u5019\u88DC\u3092\u633F\u5165\u3059\u308B\u304B\u3069\u3046\u304B","\u73FE\u5728\u306E\u5019\u88DC\u306B\u633F\u5165\u3068\u7F6E\u63DB\u306E\u52D5\u4F5C\u304C\u3042\u308B\u304B\u3069\u3046\u304B","\u65E2\u5B9A\u306E\u52D5\u4F5C\u304C\u633F\u5165\u307E\u305F\u306F\u7F6E\u63DB\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u73FE\u5728\u306E\u5019\u88DC\u304B\u3089\u306E\u8A73\u7D30\u306E\u89E3\u6C7A\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u304B\u3069\u3046\u304B"],"vs/editor/contrib/suggest/browser/suggestController":["{1} \u304C\u8FFD\u52A0\u7DE8\u96C6\u3057\u305F '{0}' \u3092\u53D7\u3051\u5165\u308C\u308B","\u5019\u88DC\u3092\u30C8\u30EA\u30AC\u30FC","\u633F\u5165","\u633F\u5165","\u7F6E\u63DB","\u7F6E\u63DB","\u633F\u5165","\u8868\u793A\u3092\u6E1B\u3089\u3059","\u3055\u3089\u306B\u8868\u793A","\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30B5\u30A4\u30BA\u3092\u30EA\u30BB\u30C3\u30C8"],"vs/editor/contrib/suggest/browser/suggestWidget":["\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5883\u754C\u7DDA\u8272\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u524D\u666F\u8272\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u3067\u9078\u629E\u6E08\u307F\u5165\u529B\u306E\u524D\u666F\u8272\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u3067\u9078\u629E\u6E08\u307F\u5165\u529B\u306E\u30A2\u30A4\u30B3\u30F3\u524D\u666F\u8272\u3002","\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u3067\u9078\u629E\u6E08\u307F\u30A8\u30F3\u30C8\u30EA\u306E\u80CC\u666F\u8272\u3002","\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5185\u3067\u4E00\u81F4\u3057\u305F\u30CF\u30A4\u30E9\u30A4\u30C8\u306E\u8272\u3002","\u9805\u76EE\u304C\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u3001\u5019\u88DC\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3067\u306E\u4E00\u81F4\u306E\u5F37\u8ABF\u8868\u793A\u306E\u8272\u3067\u3059\u3002","\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u72B6\u614B\u306E\u63D0\u6848\u306E\u524D\u666F\u8272\u3002","\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059...","\u5019\u88DC\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u63D0\u6848","{0} {1}\u3001{2}","{0} {1}","{0}\u3001 {1}","{0}\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["\u9589\u3058\u308B","\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["\u63D0\u6848\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u8A73\u7D30\u60C5\u5831\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u8A73\u7D30\u3092\u53C2\u7167"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["\u914D\u5217\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D6\u30FC\u30EB\u5024\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30AF\u30E9\u30B9\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u8272\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5B9A\u6570\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5217\u6319\u5B50\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5217\u6319\u5B50\u30E1\u30F3\u30D0\u30FC\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30A4\u30D9\u30F3\u30C8\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D5\u30A3\u30FC\u30EB\u30C9\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D5\u30A1\u30A4\u30EB\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D5\u30A9\u30EB\u30C0\u30FC\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u95A2\u6570\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC\u30EF\u30FC\u30C9\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30E1\u30BD\u30C3\u30C9\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30E2\u30B8\u30E5\u30FC\u30EB\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u540D\u524D\u7A7A\u9593\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","Null \u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6570\u5024\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6F14\u7B97\u5B50\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D1\u30C3\u30B1\u30FC\u30B8\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D7\u30ED\u30D1\u30C6\u30A3\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u53C2\u7167\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30B9\u30CB\u30DA\u30C3\u30C8\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u6587\u5B57\u5217\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u69CB\u9020\u4F53\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30C6\u30AD\u30B9\u30C8\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5358\u4F4D\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002","\u5909\u6570\u8A18\u53F7\u306E\u524D\u666F\u8272\u3002\u3053\u308C\u3089\u306E\u8A18\u53F7\u306F\u3001\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u3001\u968E\u5C64\u30EA\u30F3\u30AF\u3001\u304A\u3088\u3073\u5019\u88DC\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002"],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Tab \u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u6B21\u306E\u30D5\u30A9\u30FC\u30AB\u30B9\u53EF\u80FD\u306A\u8981\u7D20\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u79FB\u52D5\u3057\u307E\u3059","Tab \u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u30BF\u30D6\u6587\u5B57\u304C\u633F\u5165\u3055\u308C\u307E\u3059","Tab \u30AD\u30FC\u3092\u5207\u308A\u66FF\u3048\u308B\u3068\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u79FB\u52D5\u3057\u307E\u3059"],"vs/editor/contrib/tokenization/browser/tokenization":["\u958B\u767A\u8005: \u30C8\u30FC\u30AF\u30F3\u518D\u4F5C\u6210\u306E\u5F37\u5236"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["\u62E1\u5F35\u6A5F\u80FD\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u8B66\u544A\u30E1\u30C3\u30BB\u30FC\u30B8\u3068\u5171\u306B\u8868\u793A\u3055\u308C\u308B\u30A2\u30A4\u30B3\u30F3\u3002","\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u57FA\u672C ASCII \u5916\u306E Unicode \u6587\u5B57\u304C\u591A\u6570\u542B\u307E\u308C\u3066\u3044\u307E\u3059","\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u307E\u304E\u3089\u308F\u3057\u3044 Unicode \u6587\u5B57\u304C\u591A\u6570\u542B\u307E\u308C\u3066\u3044\u307E\u3059","\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u4E0D\u53EF\u8996\u306E Unicode \u6587\u5B57\u304C\u591A\u6570\u542B\u307E\u308C\u3066\u3044\u307E\u3059","Unicode \u306E\u5F37\u8ABF\u8868\u793A\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u69CB\u6210\u3059\u308B","\u6587\u5B57 {0} \u306F\u3001\u30BD\u30FC\u30B9 \u30B3\u30FC\u30C9\u3067\u3088\u308A\u4E00\u822C\u7684\u306A ASCII \u6587\u5B57 {1} \u3068\u6DF7\u540C\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002","\u6587\u5B57 {0}\u306F\u3001\u30BD\u30FC\u30B9 \u30B3\u30FC\u30C9\u3067\u3088\u308A\u4E00\u822C\u7684\u306A\u6587\u5B57{1}\u3068\u6DF7\u540C\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002","\u6587\u5B57 {0}\u306F\u975E\u8868\u793A\u3067\u3059\u3002","\u6587\u5B57 {0} \u306F\u57FA\u672C ASCII \u6587\u5B57\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u8A2D\u5B9A\u306E\u8ABF\u6574","\u30B3\u30E1\u30F3\u30C8\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u30B3\u30E1\u30F3\u30C8\u306E\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u6587\u5B57\u5217\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u6587\u5B57\u5217\u306E\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u307E\u304E\u3089\u308F\u3057\u3044\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u307E\u304E\u3089\u308F\u3057\u3044\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u4E0D\u53EF\u8996\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u4E0D\u53EF\u8996\u306E\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u975E ASCII \u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u57FA\u672C ASCII \u4EE5\u5916\u306E\u6587\u5B57\u306E\u5F37\u8ABF\u8868\u793A\u3092\u7121\u52B9\u306B\u3059\u308B","\u9664\u5916\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8868\u793A","{0} (\u4E0D\u53EF\u8996\u306E\u6587\u5B57) \u3092\u5F37\u8ABF\u8868\u793A\u304B\u3089\u9664\u5916\u3059\u308B","\u5F37\u8ABF\u8868\u793A\u304B\u3089 {0} \u3092\u9664\u5916\u3057\u307E\u3059",'\u8A00\u8A9E "{0}" \u3067\u3088\u308A\u4E00\u822C\u7684\u306A Unicode \u6587\u5B57\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["\u666E\u901A\u3067\u306F\u306A\u3044\u884C\u7D42\u7AEF\u8A18\u53F7","\u666E\u901A\u3067\u306F\u306A\u3044\u884C\u7D42\u7AEF\u8A18\u53F7\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F",`\u3053\u306E\u30D5\u30A1\u30A4\u30EB '{0}' \u306B\u306F\u3001\u884C\u533A\u5207\u308A\u6587\u5B57 (LS) \u3084\u6BB5\u843D\u533A\u5207\u308A\u8A18\u53F7 (PS) \u306A\u3069\u306E\u7279\u6B8A\u306A\u884C\u306E\u7D42\u7AEF\u6587\u5B57\u304C 1 \u3064\u4EE5\u4E0A\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\r +\r +\u305D\u308C\u3089\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u524A\u9664\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3057\u307E\u3059\u3002\u3053\u308C\u306F 'editor.unusualLineTerminators' \u3092\u4F7F\u7528\u3057\u3066\u69CB\u6210\u3067\u304D\u307E\u3059\u3002`,"\u7279\u6B8A\u306A\u884C\u306E\u7D42\u7AEF\u8A18\u53F7\u3092\u524A\u9664\u3059\u308B(&&R)","\u7121\u8996\u3059\u308B"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["\u5909\u6570\u306E\u8AAD\u307F\u53D6\u308A\u306A\u3069\u3001\u8AAD\u307F\u53D6\u308A\u30A2\u30AF\u30BB\u30B9\u4E2D\u306E\u30B7\u30F3\u30DC\u30EB\u306E\u80CC\u666F\u8272\u3002\u4E0B\u306B\u3042\u308B\u88C5\u98FE\u3092\u96A0\u3055\u306A\u3044\u305F\u3081\u306B\u3001\u8272\u306F\u4E0D\u900F\u904E\u3067\u3042\u3063\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002","\u5909\u6570\u3078\u306E\u66F8\u304D\u8FBC\u307F\u306A\u3069\u3001\u66F8\u304D\u8FBC\u307F\u30A2\u30AF\u30BB\u30B9\u4E2D\u306E\u30B7\u30F3\u30DC\u30EB\u80CC\u666F\u8272\u3002\u4E0B\u306B\u3042\u308B\u88C5\u98FE\u3092\u96A0\u3055\u306A\u3044\u305F\u3081\u306B\u3001\u8272\u306F\u4E0D\u900F\u904E\u3067\u3042\u3063\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002","\u8A18\u53F7\u306E\u30C6\u30AD\u30B9\u30C8\u51FA\u73FE\u306E\u80CC\u666F\u8272\u3002\u57FA\u306B\u306A\u308B\u88C5\u98FE\u304C\u975E\u8868\u793A\u306A\u3089\u306A\u3044\u3088\u3046\u306B\u3001\u3053\u306E\u8272\u3092\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u5909\u6570\u306E\u8AAD\u307F\u53D6\u308A\u306A\u3069\u8AAD\u307F\u53D6\u308A\u30A2\u30AF\u30BB\u30B9\u4E2D\u306E\u30B7\u30F3\u30DC\u30EB\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5909\u6570\u3078\u306E\u66F8\u304D\u8FBC\u307F\u306A\u3069\u66F8\u304D\u8FBC\u307F\u30A2\u30AF\u30BB\u30B9\u4E2D\u306E\u30B7\u30F3\u30DC\u30EB\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u8A18\u53F7\u306E\u30C6\u30AD\u30B9\u30C8\u51FA\u73FE\u7B87\u6240\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30B7\u30F3\u30DC\u30EB\u306B\u3088\u3063\u3066\u5F37\u8ABF\u8868\u793A\u3055\u308C\u308B\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002\u30DE\u30FC\u30AB\u30FC\u306E\u8272\u306F\u3001\u57FA\u306B\u306A\u308B\u88C5\u98FE\u3092\u96A0\u3055\u306A\u3044\u3088\u3046\u306B\u4E0D\u900F\u660E\u4EE5\u5916\u306B\u3057\u307E\u3059\u3002","\u66F8\u304D\u8FBC\u307F\u30A2\u30AF\u30BB\u30B9 \u30B7\u30F3\u30DC\u30EB\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u306E\u30DE\u30FC\u30AB\u30FC\u8272\u3002\u4E0B\u306B\u3042\u308B\u88C5\u98FE\u3092\u96A0\u3055\u306A\u3044\u305F\u3081\u306B\u3001\u8272\u306F\u4E0D\u900F\u904E\u3067\u3042\u3063\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002","\u8A18\u53F7\u306E\u30C6\u30AD\u30B9\u30C8\u51FA\u73FE\u306E\u6982\u8981\u30EB\u30FC\u30EB \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002\u57FA\u306B\u306A\u308B\u88C5\u98FE\u304C\u975E\u8868\u793A\u306A\u3089\u306A\u3044\u3088\u3046\u306B\u3001\u3053\u306E\u8272\u3092\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002"],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["\u6B21\u306E\u30B7\u30F3\u30DC\u30EB \u30CF\u30A4\u30E9\u30A4\u30C8\u306B\u79FB\u52D5","\u524D\u306E\u30B7\u30F3\u30DC\u30EB \u30CF\u30A4\u30E9\u30A4\u30C8\u306B\u79FB\u52D5","\u30B7\u30F3\u30DC\u30EB \u30CF\u30A4\u30E9\u30A4\u30C8\u3092\u30C8\u30EA\u30AC\u30FC"],"vs/editor/contrib/wordOperations/browser/wordOperations":["\u5358\u8A9E\u306E\u524A\u9664"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["\u884C\u306E\u30A8\u30E9\u30FC","\u30A8\u30E9\u30FC","\u884C\u306E\u8B66\u544A","\u8B66\u544A","\u884C\u306E\u6298\u308A\u305F\u305F\u307E\u308C\u305F\u9762","\u6298\u308A\u305F\u305F\u307F\u6E08\u307F","\u884C\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8","\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8","\u884C\u306E\u30A4\u30F3\u30E9\u30A4\u30F3\u5019\u88DC","\u30BF\u30FC\u30DF\u30CA\u30EB \u30AF\u30A4\u30C3\u30AF\u4FEE\u6B63","\u30AF\u30A4\u30C3\u30AF\u4FEE\u6B63","\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3067\u30C7\u30D0\u30C3\u30AC\u30FC\u304C\u505C\u6B62\u3057\u307E\u3057\u305F","\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8","\u884C\u306B\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","\u30A4\u30F3\u30EC\u30A4 \u30D2\u30F3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F","\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F","\u30BF\u30B9\u30AF\u304C\u5931\u6557\u3057\u307E\u3057\u305F","\u30BF\u30B9\u30AF\u304C\u5931\u6557\u3057\u307E\u3057\u305F","\u30BF\u30FC\u30DF\u30CA\u30EB \u30B3\u30DE\u30F3\u30C9\u304C\u5931\u6557\u3057\u307E\u3057\u305F","\u30B3\u30DE\u30F3\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F","\u30BF\u30FC\u30DF\u30CA\u30EB \u30D9\u30EB","\u30BF\u30FC\u30DF\u30CA\u30EB \u30D9\u30EB","\u30CE\u30FC\u30C8\u30D6\u30C3\u30AF \u30BB\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F","\u30CE\u30FC\u30C8\u30D6\u30C3\u30AF \u30BB\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F","\u30CE\u30FC\u30C8\u30D6\u30C3\u30AF \u30BB\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F","\u30CE\u30FC\u30C8\u30D6\u30C3\u30AF \u30BB\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F","\u5DEE\u5206\u884C\u304C\u633F\u5165\u3055\u308C\u307E\u3057\u305F","\u5DEE\u5206\u884C\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F","\u5909\u66F4\u3055\u308C\u305F\u5DEE\u5206\u884C","\u30C1\u30E3\u30C3\u30C8\u8981\u6C42\u304C\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F","\u30C1\u30E3\u30C3\u30C8\u8981\u6C42\u304C\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F","\u30C1\u30E3\u30C3\u30C8\u5FDC\u7B54\u3092\u53D7\u4FE1\u3057\u307E\u3057\u305F","\u30C1\u30E3\u30C3\u30C8\u306E\u5FDC\u7B54\u3092\u4FDD\u7559\u4E2D","\u30C1\u30E3\u30C3\u30C8\u306E\u5FDC\u7B54\u3092\u4FDD\u7559\u4E2D","\u30AF\u30EA\u30A2","\u30AF\u30EA\u30A2","\u4FDD\u5B58","\u4FDD\u5B58","\u5F62\u5F0F","\u5F62\u5F0F"],"vs/platform/action/common/actionCommonCategories":["\u8868\u793A","\u30D8\u30EB\u30D7","\u30C6\u30B9\u30C8","\u30D5\u30A1\u30A4\u30EB","\u57FA\u672C\u8A2D\u5B9A","\u958B\u767A\u8005"],"vs/platform/actionWidget/browser/actionList":["{0} \u3067\u9069\u7528\u3059\u308B\u3001{1} \u3067\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B","\u9069\u7528\u3059\u308B\u306B\u306F {0}","{0}\u3001\u7121\u52B9\u306B\u306A\u3063\u305F\u7406\u7531: {1}","\u30A2\u30AF\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8"],"vs/platform/actionWidget/browser/actionWidget":["\u30A2\u30AF\u30B7\u30E7\u30F3 \u30D0\u30FC\u306E\u5207\u308A\u66FF\u3048\u6E08\u307F\u30A2\u30AF\u30B7\u30E7\u30F3\u9805\u76EE\u306E\u80CC\u666F\u8272\u3002","\u30A2\u30AF\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u4E00\u89A7\u304C\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B","\u30A2\u30AF\u30B7\u30E7\u30F3 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u975E\u8868\u793A\u306B\u3059\u308B","\u524D\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u9078\u629E","\u6B21\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u9078\u629E","\u9078\u629E\u3057\u305F\u64CD\u4F5C\u3092\u627F\u8AFE","\u9078\u629E\u3057\u305F\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u30D7\u30EC\u30D3\u30E5\u30FC"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["\u975E\u8868\u793A","\u30E1\u30CB\u30E5\u30FC\u306E\u30EA\u30BB\u30C3\u30C8"],"vs/platform/actions/common/menuService":["'{0}' \u306E\u975E\u8868\u793A"],"vs/platform/configuration/common/configurationRegistry":["\u65E2\u5B9A\u306E\u8A00\u8A9E\u69CB\u6210\u306E\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9","{0} \u8A00\u8A9E\u304C\u512A\u5148\u3055\u308C\u308B\u8A2D\u5B9A\u3092\u69CB\u6210\u3057\u307E\u3059\u3002","\u8A00\u8A9E\u306B\u5BFE\u3057\u3066\u4E0A\u66F8\u304D\u3055\u308C\u308B\u30A8\u30C7\u30A3\u30BF\u30FC\u8A2D\u5B9A\u3092\u69CB\u6210\u3057\u307E\u3059\u3002","\u3053\u306E\u8A2D\u5B9A\u3067\u306F\u3001\u8A00\u8A9E\u3054\u3068\u306E\u69CB\u6210\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002","\u8A00\u8A9E\u306B\u5BFE\u3057\u3066\u4E0A\u66F8\u304D\u3055\u308C\u308B\u30A8\u30C7\u30A3\u30BF\u30FC\u8A2D\u5B9A\u3092\u69CB\u6210\u3057\u307E\u3059\u3002","\u3053\u306E\u8A2D\u5B9A\u3067\u306F\u3001\u8A00\u8A9E\u3054\u3068\u306E\u69CB\u6210\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002","\u7A7A\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u767B\u9332\u3067\u304D\u307E\u305B\u3093","'{0}' \u3092\u767B\u9332\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u308C\u306F\u3001\u8A00\u8A9E\u56FA\u6709\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u8A2D\u5B9A\u3092\u8A18\u8FF0\u3059\u308B\u30D7\u30ED\u30D1\u30C6\u30A3 \u30D1\u30BF\u30FC\u30F3 '\\\\[.*\\\\]$' \u306B\u4E00\u81F4\u3057\u3066\u3044\u307E\u3059\u3002'configurationDefaults' \u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","'{0}' \u3092\u767B\u9332\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u65E2\u306B\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059\u3002","'{0}' \u3092\u767B\u9332\u3067\u304D\u307E\u305B\u3093\u3002\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30DD\u30EA\u30B7\u30FC {1} \u306F\u65E2\u306B {2} \u306B\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059\u3002"],"vs/platform/contextkey/browser/contextKeyService":["\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 \u30AD\u30FC\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8FD4\u3059\u30B3\u30DE\u30F3\u30C9"],"vs/platform/contextkey/common/contextkey":["\u7A7A\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 \u30AD\u30FC\u5F0F","\u5F0F\u3092\u66F8\u304D\u5FD8\u308C\u307E\u3057\u305F\u304B? 'false' \u307E\u305F\u306F 'true' \u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u305D\u308C\u305E\u308C\u5E38\u306B false \u307E\u305F\u306F true \u3068\u8A55\u4FA1\u3067\u304D\u307E\u3059\u3002","'not' \u306E\u5F8C\u306B 'in' \u304C\u3042\u308A\u307E\u3059\u3002","\u7D42\u308F\u308A\u304B\u3063\u3053 ')'","\u4E88\u671F\u3057\u306A\u3044\u30C8\u30FC\u30AF\u30F3","\u30C8\u30FC\u30AF\u30F3\u306E\u524D\u306B && \u307E\u305F\u306F || \u3092\u6307\u5B9A\u3057\u5FD8\u308C\u307E\u3057\u305F\u304B?","\u4E88\u671F\u3057\u306A\u3044\u5F0F\u306E\u7D42\u308F\u308A","\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 \u30AD\u30FC\u3092\u6307\u5B9A\u3057\u5FD8\u308C\u307E\u3057\u305F\u304B?",`\u671F\u5F85\u5024: {0}\r +\u53D7\u53D6\u6E08\u307F: '{1}'\u3002`],"vs/platform/contextkey/common/contextkeys":["\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u304C macOS \u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u304C Linux \u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u304C Windows \u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u304C Web \u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u304C\u975E\u30D6\u30E9\u30A6\u30B6\u30FC \u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u4E0A\u306E macOS \u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u304C iOS \u3067\u3042\u308B\u304B\u3069\u3046\u304B","\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u304C\u30E2\u30D0\u30A4\u30EB Web \u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u3042\u308B\u304B\u3069\u3046\u304B","VS Code \u306E\u54C1\u8CEA\u306E\u7A2E\u985E","\u30AD\u30FC\u30DC\u30FC\u30C9\u306E\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u5165\u529B\u30DC\u30C3\u30AF\u30B9\u5185\u306B\u3042\u308B\u304B\u3069\u3046\u304B"],"vs/platform/contextkey/common/scanner":["{0} \u3092\u610F\u56F3\u3057\u3066\u3044\u307E\u3057\u305F\u304B?","{0} \u307E\u305F\u306F {1} \u3092\u610F\u56F3\u3057\u3066\u3044\u307E\u3057\u305F\u304B?","{0}\u3001{1}\u3001\u307E\u305F\u306F {2} \u3092\u610F\u56F3\u3057\u3066\u3044\u307E\u3057\u305F\u304B?","\u898B\u7A4D\u3082\u308A\u3092\u958B\u3044\u305F\u308A\u9589\u3058\u305F\u308A\u3057\u5FD8\u308C\u307E\u3057\u305F\u304B?","'/' (\u30B9\u30E9\u30C3\u30B7\u30E5) \u6587\u5B57\u3092\u30A8\u30B9\u30B1\u30FC\u30D7\u3057\u5FD8\u308C\u307E\u3057\u305F\u304B? \u30A8\u30B9\u30B1\u30FC\u30D7\u3059\u308B\u524D\u306B '\\\\/' \u306A\u3069\u306E 2 \u3064\u306E\u5186\u8A18\u53F7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"],"vs/platform/history/browser/contextScopedHistoryWidget":["\u5019\u88DC\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B"],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) \u304C\u6E21\u3055\u308C\u307E\u3057\u305F\u30022 \u756A\u76EE\u306E\u30AD\u30FC\u3092\u5F85\u3063\u3066\u3044\u307E\u3059...","({0}) \u304C\u6E21\u3055\u308C\u307E\u3057\u305F\u3002\u6B21\u306E\u30AD\u30FC\u3092\u5F85\u3063\u3066\u3044\u307E\u3059...","\u30AD\u30FC\u306E\u7D44\u307F\u5408\u308F\u305B ({0}\u3001{1}) \u306F\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u30AD\u30FC\u306E\u7D44\u307F\u5408\u308F\u305B ({0}\u3001{1}) \u306F\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002"],"vs/platform/list/browser/listService":["\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1","Windows \u304A\u3088\u3073 Linux \u4E0A\u306E `Control` \u30AD\u30FC\u3068 macOS \u4E0A\u306E `Command` \u30AD\u30FC\u306B\u5272\u308A\u5F53\u3066\u307E\u3059\u3002","Windows \u304A\u3088\u3073 Linux \u4E0A\u306E `Alt` \u30AD\u30FC\u3068 macOS \u4E0A\u306E `Option` \u30AD\u30FC\u306B\u5272\u308A\u5F53\u3066\u307E\u3059\u3002","\u30DE\u30A6\u30B9\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u8907\u6570\u9078\u629E\u3059\u308B\u3068\u304D\u306B\u4F7F\u7528\u3059\u308B\u4FEE\u98FE\u30AD\u30FC\u3067\u3059 (\u305F\u3068\u3048\u3070\u3001\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30FC\u3067\u30A8\u30C7\u30A3\u30BF\u30FC\u3068 scm \u30D3\u30E5\u30FC\u3092\u958B\u304F\u306A\u3069)\u3002'\u6A2A\u306B\u4E26\u3079\u3066\u958B\u304F' \u30DE\u30A6\u30B9 \u30B8\u30A7\u30B9\u30C1\u30E3\u30FC (\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u5834\u5408) \u306F\u3001\u8907\u6570\u9078\u629E\u306E\u4FEE\u98FE\u30AD\u30FC\u3068\u7AF6\u5408\u3057\u306A\u3044\u3088\u3046\u306B\u8ABF\u6574\u3055\u308C\u307E\u3059\u3002","\u30DE\u30A6\u30B9\u3092\u4F7F\u7528\u3057\u3066\u3001\u30C4\u30EA\u30FC\u3068\u30EA\u30B9\u30C8\u5185\u306E\u9805\u76EE\u3092\u958B\u304F\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059 (\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u5834\u5408)\u3002\u9069\u7528\u3067\u304D\u306A\u3044\u5834\u5408\u3001\u4E00\u90E8\u306E\u30C4\u30EA\u30FC\u3084\u30EA\u30B9\u30C8\u3067\u306F\u3053\u306E\u8A2D\u5B9A\u304C\u7121\u8996\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002","\u30EA\u30B9\u30C8\u3068\u30C4\u30EA\u30FC\u304C\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u3067\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u8B66\u544A: \u3053\u306E\u8A2D\u5B9A\u3092\u30AA\u30F3\u306B\u3059\u308B\u3068\u3001\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u306B\u5F71\u97FF\u304C\u3042\u308A\u307E\u3059\u3002","\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306E\u30AF\u30EA\u30C3\u30AF\u3067\u30DA\u30FC\u30B8\u3054\u3068\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30C4\u30EA\u30FC\u306E\u30A4\u30F3\u30C7\u30F3\u30C8\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3067\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30C4\u30EA\u30FC\u3067\u30A4\u30F3\u30C7\u30F3\u30C8\u306E\u30AC\u30A4\u30C9\u3092\u8868\u793A\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30EA\u30B9\u30C8\u3068\u30C4\u30EA\u30FC\u3067\u30B9\u30E0\u30FC\u30BA \u30B9\u30AF\u30ED\u30FC\u30EB\u3092\u4F7F\u7528\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30DE\u30A6\u30B9 \u30DB\u30A4\u30FC\u30EB \u30B9\u30AF\u30ED\u30FC\u30EB \u30A4\u30D9\u30F3\u30C8\u306E `deltaX` \u3068 `deltaY` \u3067\u4F7F\u7528\u3055\u308C\u308B\u4E57\u6570\u3002","`Alt` \u3092\u62BC\u3059\u3068\u3001\u30B9\u30AF\u30ED\u30FC\u30EB\u901F\u5EA6\u304C\u500D\u5897\u3057\u307E\u3059\u3002","\u691C\u7D22\u6642\u306B\u8981\u7D20\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002\u3055\u3089\u306B\u4E0A\u4E0B\u306E\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u3067\u306F\u3001\u5F37\u8ABF\u8868\u793A\u3055\u308C\u305F\u8981\u7D20\u306E\u307F\u304C\u30B9\u30AD\u30E3\u30F3\u3055\u308C\u307E\u3059\u3002","\u691C\u7D22\u6642\u306B\u8981\u7D20\u3092\u30D5\u30A3\u30EB\u30BF\u30FC\u51E6\u7406\u3057\u307E\u3059\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u306E\u30EA\u30B9\u30C8\u3068\u30C4\u30EA\u30FC\u306E\u65E2\u5B9A\u306E\u691C\u7D22\u30E2\u30FC\u30C9\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u7C21\u5358\u306A\u30AD\u30FC\u30DC\u30FC\u30C9 \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u306F\u3001\u30AD\u30FC\u30DC\u30FC\u30C9\u5165\u529B\u306B\u4E00\u81F4\u3059\u308B\u8981\u7D20\u306B\u7126\u70B9\u3092\u5F53\u3066\u307E\u3059\u3002\u4E00\u81F4\u51E6\u7406\u306F\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3067\u306E\u307F\u5B9F\u884C\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC\u30DC\u30FC\u30C9 \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u306E\u5F37\u8ABF\u8868\u793A\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30AD\u30FC\u30DC\u30FC\u30C9\u5165\u529B\u306B\u4E00\u81F4\u3059\u308B\u8981\u7D20\u304C\u5F37\u8ABF\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E0A\u304A\u3088\u3073\u4E0B\u3078\u306E\u79FB\u52D5\u306F\u3001\u5F37\u8ABF\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u8981\u7D20\u306E\u307F\u3092\u79FB\u52D5\u3057\u307E\u3059\u3002","\u30AD\u30FC\u30DC\u30FC\u30C9 \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3067\u306F\u3001\u30AD\u30FC\u30DC\u30FC\u30C9\u5165\u529B\u306B\u4E00\u81F4\u3057\u306A\u3044\u3059\u3079\u3066\u306E\u8981\u7D20\u304C\u30D5\u30A3\u30EB\u30BF\u30FC\u51E6\u7406\u3055\u308C\u3001\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u30C4\u30EA\u30FC\u306E\u30AD\u30FC\u30DC\u30FC\u30C9 \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3 \u30B9\u30BF\u30A4\u30EB\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u5358\u7D14\u3001\u5F37\u8ABF\u8868\u793A\u3001\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002","\u4EE3\u308F\u308A\u306B 'workbench.list.defaultFindMode' \u3068 'workbench.list.typeNavigationMode' \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u691C\u7D22\u6642\u306B\u3042\u3044\u307E\u3044\u4E00\u81F4\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u691C\u7D22\u6642\u306B\u9023\u7D9A\u4E00\u81F4\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u3067\u30EA\u30B9\u30C8\u3068\u30C4\u30EA\u30FC\u3092\u691C\u7D22\u3059\u308B\u3068\u304D\u306B\u4F7F\u7528\u3055\u308C\u308B\u4E00\u81F4\u306E\u7A2E\u985E\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u3068\u304D\u306B\u30C4\u30EA\u30FC \u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u5C55\u958B\u3055\u308C\u308B\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002\u9069\u7528\u3067\u304D\u306A\u3044\u5834\u5408\u3001\u4E00\u90E8\u306E\u30C4\u30EA\u30FC\u3084\u30EA\u30B9\u30C8\u3067\u306F\u3053\u306E\u8A2D\u5B9A\u304C\u7121\u8996\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002","\u30C4\u30EA\u30FC\u3067\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","'#workbench.tree.enableStickyScroll#' \u304C\u6709\u52B9\u306A\u5834\u5408\u306B\u3001\u30C4\u30EA\u30FC\u306B\u8868\u793A\u3055\u308C\u308B\u56FA\u5B9A\u8981\u7D20\u306E\u6570\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u306E\u30EA\u30B9\u30C8\u3068\u30C4\u30EA\u30FC\u3067\u578B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u304C\u3069\u306E\u3088\u3046\u306B\u6A5F\u80FD\u3059\u308B\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002`trigger` \u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001`list.triggerTypeNavigation` \u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C\u5F8C\u306B\u578B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u304C\u958B\u59CB\u3055\u308C\u307E\u3059\u3002"],"vs/platform/markers/common/markers":["\u30A8\u30E9\u30FC","\u8B66\u544A","\u60C5\u5831"],"vs/platform/quickinput/browser/commandsQuickAccess":["\u6700\u8FD1\u4F7F\u7528\u3057\u305F\u3082\u306E","\u540C\u69D8\u306E\u30B3\u30DE\u30F3\u30C9","\u3088\u304F\u4F7F\u7528\u3059\u308B\u3082\u306E","\u305D\u306E\u4ED6\u306E\u30B3\u30DE\u30F3\u30C9","\u540C\u69D8\u306E\u30B3\u30DE\u30F3\u30C9","{0}, {1}","\u30B3\u30DE\u30F3\u30C9 '{0}' \u3067\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F"],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["\u623B\u308B","'Enter' \u3092\u62BC\u3057\u3066\u5165\u529B\u3092\u78BA\u8A8D\u3059\u308B\u304B 'Escape' \u3092\u62BC\u3057\u3066\u53D6\u308A\u6D88\u3057\u307E\u3059","{0}/{1}","\u5165\u529B\u3059\u308B\u3068\u7D50\u679C\u304C\u7D5E\u308A\u8FBC\u307E\u308C\u307E\u3059\u3002"],"vs/platform/quickinput/browser/quickInputController":["\u3059\u3079\u3066\u306E\u30C1\u30A7\u30C3\u30AF \u30DC\u30C3\u30AF\u30B9\u3092\u5207\u308A\u66FF\u3048\u308B","{0} \u4EF6\u306E\u7D50\u679C","{0} \u500B\u9078\u629E\u6E08\u307F","OK","\u30AB\u30B9\u30BF\u30E0","\u623B\u308B ({0})","\u623B\u308B"],"vs/platform/quickinput/browser/quickInputList":["\u30AF\u30A4\u30C3\u30AF\u5165\u529B"],"vs/platform/quickinput/browser/quickInputUtils":["\u30AF\u30EA\u30C3\u30AF\u3057\u3066 '{0}' \u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C"],"vs/platform/theme/common/colorRegistry":["\u5168\u4F53\u306E\u524D\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u3088\u3063\u3066\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306B\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u7121\u52B9\u306A\u8981\u7D20\u306E\u5168\u4F53\u7684\u306A\u524D\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u3088\u3063\u3066\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u306A\u3044\u5834\u5408\u306B\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30E9\u30FC \u30E1\u30C3\u30BB\u30FC\u30B8\u5168\u4F53\u306E\u524D\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u3088\u3063\u3066\u4E0A\u66F8\u304D\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306B\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u8FFD\u52A0\u60C5\u5831\u3092\u63D0\u4F9B\u3059\u308B\u8AAC\u660E\u6587\u306E\u524D\u666F\u8272\u3001\u4F8B:\u30E9\u30D9\u30EB\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u306E\u30A2\u30A4\u30B3\u30F3\u306E\u65E2\u5B9A\u306E\u8272\u3002","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u8981\u7D20\u306E\u5883\u754C\u7DDA\u5168\u4F53\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u3088\u3063\u3066\u4E0A\u66F8\u304D\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306B\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30B3\u30F3\u30C8\u30E9\u30B9\u30C8\u3092\u5F37\u3081\u308B\u305F\u3081\u306B\u3001\u4ED6\u306E\u8981\u7D20\u3068\u9694\u3066\u308B\u8FFD\u52A0\u306E\u5883\u754C\u7DDA\u3002","\u30B3\u30F3\u30C8\u30E9\u30B9\u30C8\u3092\u5F37\u3081\u308B\u305F\u3081\u306B\u3001\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u4ED6\u8981\u7D20\u3068\u9694\u3066\u308B\u8FFD\u52A0\u306E\u5883\u754C\u7DDA\u3002","\u30EF\u30FC\u30AF\u30D9\u30F3\u30C1\u5185\u306E\u30C6\u30AD\u30B9\u30C8\u9078\u629E\u306E\u80CC\u666F\u8272 (\u4F8B: \u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u3084\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2)\u3002\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u9078\u629E\u306B\u306F\u9069\u7528\u3055\u308C\u306A\u3044\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002","\u30C6\u30AD\u30B9\u30C8\u306E\u533A\u5207\u308A\u6587\u5B57\u306E\u8272\u3002","\u30C6\u30AD\u30B9\u30C8\u5185\u306E\u30EA\u30F3\u30AF\u306E\u524D\u666F\u8272\u3002","\u30AF\u30EA\u30C3\u30AF\u3055\u308C\u305F\u3068\u304D\u3068\u30DE\u30A6\u30B9\u3092\u30DB\u30D0\u30FC\u3057\u305F\u3068\u304D\u306E\u30C6\u30AD\u30B9\u30C8\u5185\u306E\u30EA\u30F3\u30AF\u306E\u524D\u666F\u8272\u3002","\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u6E08\u307F\u30C6\u30AD\u30B9\u30C8 \u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u524D\u666F\u8272\u3002","\u66F8\u5F0F\u8A2D\u5B9A\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8 \u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u30C6\u30AD\u30B9\u30C8\u5185\u306E\u30D6\u30ED\u30C3\u30AF\u5F15\u7528\u306E\u80CC\u666F\u8272\u3002","\u30C6\u30AD\u30B9\u30C8\u5185\u306E\u30D6\u30ED\u30C3\u30AF\u5F15\u7528\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30C6\u30AD\u30B9\u30C8\u5185\u306E\u30B3\u30FC\u30C9 \u30D6\u30ED\u30C3\u30AF\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u691C\u7D22/\u7F6E\u63DB\u7A93\u306A\u3069\u3001\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5F71\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u691C\u7D22/\u7F6E\u63DB\u7A93\u306A\u3069\u3001\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5165\u529B\u30DC\u30C3\u30AF\u30B9\u306E\u80CC\u666F\u3002","\u5165\u529B\u30DC\u30C3\u30AF\u30B9\u306E\u524D\u666F\u3002","\u5165\u529B\u30DC\u30C3\u30AF\u30B9\u306E\u5883\u754C\u7DDA\u3002","\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30A2\u30AF\u30C6\u30A3\u30D6 \u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u5316\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u80CC\u666F\u8272\u3002","\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u80CC\u666F\u306E\u30DB\u30D0\u30FC\u8272\u3002","\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u5316\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u524D\u666F\u8272\u3002","\u5165\u529B\u30DC\u30C3\u30AF\u30B9\u306E\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC \u30C6\u30AD\u30B9\u30C8\u306E\u524D\u666F\u8272\u3002","\u60C5\u5831\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u80CC\u666F\u8272\u3002","\u60C5\u5831\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u524D\u666F\u8272\u3002","\u60C5\u5831\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u5883\u754C\u7DDA\u8272\u3002","\u8B66\u544A\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u80CC\u666F\u8272\u3002","\u8B66\u544A\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u524D\u666F\u8272\u3002","\u8B66\u544A\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30A8\u30E9\u30FC\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30E9\u30FC\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u524D\u666F\u8272\u3002","\u30A8\u30E9\u30FC\u306E\u91CD\u5927\u5EA6\u3092\u793A\u3059\u5165\u529B\u691C\u8A3C\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3\u306E\u80CC\u666F\u3002","\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3 \u30EA\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002","\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3\u306E\u524D\u666F\u3002","\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3\u306E\u5883\u754C\u7DDA\u3002","\u30DC\u30BF\u30F3\u306E\u524D\u666F\u8272\u3002","\u30DC\u30BF\u30F3\u306E\u533A\u5207\u308A\u8A18\u53F7\u306E\u8272\u3002","\u30DC\u30BF\u30F3\u306E\u80CC\u666F\u8272\u3002","\u30DB\u30D0\u30FC\u6642\u306E\u30DC\u30BF\u30F3\u80CC\u666F\u8272\u3002","\u30DC\u30BF\u30F3\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30DC\u30BF\u30F3\u306E 2 \u6B21\u7684\u306A\u524D\u666F\u8272\u3002","\u30DC\u30BF\u30F3\u306E 2 \u6B21\u7684\u306A\u80CC\u666F\u8272\u3002","\u30DB\u30D0\u30FC\u6642\u306E\u30DC\u30BF\u30F3\u306E 2 \u6B21\u7684\u306A\u80CC\u666F\u8272\u3002","\u30D0\u30C3\u30B8\u306E\u80CC\u666F\u8272\u3002\u30D0\u30C3\u30B8\u3068\u306F\u5C0F\u3055\u306A\u60C5\u5831\u30E9\u30D9\u30EB\u306E\u3053\u3068\u3067\u3059\u3002\u4F8B:\u691C\u7D22\u7D50\u679C\u306E\u6570","\u30D0\u30C3\u30B8\u306E\u524D\u666F\u8272\u3002\u30D0\u30C3\u30B8\u3068\u306F\u5C0F\u3055\u306A\u60C5\u5831\u30E9\u30D9\u30EB\u306E\u3053\u3068\u3067\u3059\u3002\u4F8B:\u691C\u7D22\u7D50\u679C\u306E\u6570","\u30D3\u30E5\u30FC\u304C\u30B9\u30AF\u30ED\u30FC\u30EB\u3055\u308C\u305F\u3053\u3068\u3092\u793A\u3059\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC\u306E\u5F71\u3002","\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC\u306E\u30B9\u30E9\u30A4\u30C0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30DB\u30D0\u30FC\u6642\u306E\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC \u30B9\u30E9\u30A4\u30C0\u30FC\u80CC\u666F\u8272\u3002","\u30AF\u30EA\u30C3\u30AF\u6642\u306E\u30B9\u30AF\u30ED\u30FC\u30EB \u30D0\u30FC \u30B9\u30E9\u30A4\u30C0\u30FC\u80CC\u666F\u8272\u3002","\u6642\u9593\u306E\u304B\u304B\u308B\u64CD\u4F5C\u3067\u8868\u793A\u3059\u308B\u30D7\u30ED\u30B0\u30EC\u30B9 \u30D0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u30A8\u30E9\u30FC \u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30A8\u30E9\u30FC\u3092\u793A\u3059\u6CE2\u7DDA\u306E\u524D\u666F\u8272\u3002","\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u30A8\u30E9\u30FC\u306E\u4E8C\u91CD\u4E0B\u7DDA\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u8B66\u544A\u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u8B66\u544A\u3092\u793A\u3059\u6CE2\u7DDA\u306E\u524D\u666F\u8272\u3002","\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u8B66\u544A\u306E\u4E8C\u91CD\u4E0B\u7DDA\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u60C5\u5831\u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u60C5\u5831\u3092\u793A\u3059\u6CE2\u7DDA\u306E\u524D\u666F\u8272\u3002","\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u60C5\u5831\u306E\u4E8C\u91CD\u4E0B\u7DDA\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u30D2\u30F3\u30C8\u3092\u793A\u3059\u6CE2\u7DDA\u306E\u524D\u666F\u8272\u3002","\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u30D2\u30F3\u30C8\u306E\u4E8C\u91CD\u4E0B\u7DDA\u306E\u8272\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u67A0\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u65E2\u5B9A\u306E\u524D\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u80CC\u666F\u8272","\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u30DB\u30D0\u30FC\u6642\u306E\u80CC\u666F\u8272","\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u3067\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u5883\u754C\u7DDA\u306E\u8272"," \u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u3067\u306E\u56FA\u5B9A\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u5F71\u306E\u8272","\u691C\u7D22/\u7F6E\u63DB\u7A93\u306A\u3069\u3001\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u691C\u7D22/\u7F6E\u63DB\u306A\u3069\u3092\u884C\u3046\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u524D\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5883\u754C\u7DDA\u8272\u3002\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u5883\u754C\u7DDA\u304C\u3042\u308A\u3001\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u3088\u3063\u3066\u914D\u8272\u3092\u4E0A\u66F8\u304D\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3067\u306E\u307F\u3053\u306E\u914D\u8272\u306F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30D0\u30FC\u306E\u5883\u754C\u7DDA\u8272\u3002\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u30B5\u30A4\u30BA\u5909\u66F4\u306E\u5883\u754C\u7DDA\u304C\u3042\u308A\u3001\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u3088\u3063\u3066\u914D\u8272\u3092\u4E0A\u66F8\u304D\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3067\u306E\u307F\u3053\u306E\u914D\u8272\u306F\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC\u306E\u80CC\u666F\u8272\u3002\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u30B3\u30DE\u30F3\u30C9 \u30D1\u30EC\u30C3\u30C8\u306E\u3088\u3046\u306A\u30D4\u30C3\u30AB\u30FC\u306E\u30B3\u30F3\u30C6\u30CA\u30FC\u3067\u3059\u3002","\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC\u306E\u524D\u666F\u8272\u3002\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u30B3\u30DE\u30F3\u30C9 \u30D1\u30EC\u30C3\u30C8\u306E\u3088\u3046\u306A\u30D4\u30C3\u30AB\u30FC\u306E\u30B3\u30F3\u30C6\u30CA\u30FC\u3067\u3059\u3002","\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC \u306E\u30BF\u30A4\u30C8\u30EB\u306E\u80CC\u666F\u8272\u3002\u30AF\u30A4\u30C3\u30AF \u30D4\u30C3\u30AB\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u30B3\u30DE\u30F3\u30C9 \u30D1\u30EC\u30C3\u30C8\u306E\u3088\u3046\u306A\u30D4\u30C3\u30AB\u30FC\u306E\u30B3\u30F3\u30C6\u30CA\u30FC\u3067\u3059\u3002","\u30E9\u30D9\u30EB\u3092\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\u305F\u3081\u306E\u30AF\u30EA\u30C3\u30AF\u9078\u629E\u306E\u8272\u3002","\u5883\u754C\u7DDA\u3092\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\u305F\u3081\u306E\u30AF\u30A4\u30C3\u30AF\u9078\u629E\u306E\u8272\u3002","\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306E\u80CC\u666F\u8272\u3067\u3059\u3002\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u3092\u8868\u3059\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306E\u524D\u666F\u8272\u3067\u3059\u3002\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u3092\u8868\u3059\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306E\u5883\u754C\u7DDA\u306E\u8272\u3067\u3059\u3002\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u3092\u8868\u3059\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306E\u4E0B\u306E\u5883\u754C\u7DDA\u306E\u8272\u3067\u3059\u3002\u30AD\u30FC \u30D0\u30A4\u30F3\u30C9 \u30E9\u30D9\u30EB\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u3092\u8868\u3059\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u306E\u8272\u3002","\u30CF\u30A4 \u30B3\u30F3\u30C8\u30E9\u30B9\u30C8\u306E\u9078\u629E\u6E08\u307F\u30C6\u30AD\u30B9\u30C8\u306E\u8272\u3002","\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u9078\u629E\u7BC4\u56F2\u306E\u540C\u3058\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u9818\u57DF\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u9078\u629E\u7BC4\u56F2\u3068\u540C\u3058\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u73FE\u5728\u306E\u691C\u7D22\u4E00\u81F4\u9805\u76EE\u306E\u8272\u3002","\u305D\u306E\u4ED6\u306E\u691C\u7D22\u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u9805\u76EE\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u691C\u7D22\u3092\u5236\u9650\u3059\u308B\u7BC4\u56F2\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u73FE\u5728\u306E\u691C\u7D22\u4E00\u81F4\u9805\u76EE\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u4ED6\u306E\u691C\u7D22\u4E00\u81F4\u9805\u76EE\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u691C\u7D22\u3092\u5236\u9650\u3059\u308B\u7BC4\u56F2\u306E\u5883\u754C\u7DDA\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u691C\u7D22\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30AF\u30A8\u30EA\u306E\u8272\u304C\u4E00\u81F4\u3057\u307E\u3059\u3002","\u691C\u7D22\u30A8\u30C7\u30A3\u30BF\u30FC \u30AF\u30A8\u30EA\u306E\u5883\u754C\u7DDA\u306E\u8272\u304C\u4E00\u81F4\u3057\u307E\u3059\u3002","\u691C\u7D22\u30D3\u30E5\u30FC\u30EC\u30C3\u30C8\u306E\u5B8C\u4E86\u30E1\u30C3\u30BB\u30FC\u30B8\u5185\u306E\u30C6\u30AD\u30B9\u30C8\u306E\u8272\u3002","\u30DB\u30D0\u30FC\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u8A9E\u306E\u4E0B\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30DB\u30D0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30DB\u30D0\u30FC\u306E\u524D\u666F\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC \u30DB\u30D0\u30FC\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u30DB\u30D0\u30FC\u306E\u30B9\u30C6\u30FC\u30BF\u30B9 \u30D0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30EA\u30F3\u30AF\u306E\u8272\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u524D\u666F\u8272","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u80CC\u666F\u8272","\u7A2E\u985E\u306E\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u524D\u666F\u8272","\u7A2E\u985E\u306E\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u80CC\u666F\u8272","\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u524D\u666F\u8272","\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u30A4\u30F3\u30E9\u30A4\u30F3 \u30D2\u30F3\u30C8\u306E\u80CC\u666F\u8272","\u96FB\u7403\u30A2\u30AF\u30B7\u30E7\u30F3 \u30A2\u30A4\u30B3\u30F3\u306B\u4F7F\u7528\u3059\u308B\u8272\u3002","\u81EA\u52D5\u4FEE\u6B63\u306E\u96FB\u7403\u30A2\u30AF\u30B7\u30E7\u30F3 \u30A2\u30A4\u30B3\u30F3\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u308B\u8272\u3002","\u96FB\u7403 AI \u30A2\u30A4\u30B3\u30F3\u306B\u4F7F\u7528\u3059\u308B\u8272\u3002","\u633F\u5165\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u524A\u9664\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u633F\u5165\u3055\u308C\u305F\u884C\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u524A\u9664\u3057\u305F\u884C\u306E\u80CC\u666F\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u633F\u5165\u3055\u308C\u305F\u884C\u306E\u4F59\u767D\u306E\u80CC\u666F\u8272\u3002","\u524A\u9664\u3055\u308C\u305F\u884C\u306E\u4F59\u767D\u306E\u80CC\u666F\u8272\u3002","\u633F\u5165\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u3064\u3044\u3066\u3001\u5DEE\u5206\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u3092\u524D\u9762\u306B\u7F6E\u304D\u307E\u3059\u3002","\u524A\u9664\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u3064\u3044\u3066\u3001\u5DEE\u5206\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u3092\u524D\u9762\u306B\u7F6E\u304D\u307E\u3059\u3002","\u633F\u5165\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u8F2A\u90ED\u306E\u8272\u3002","\u524A\u9664\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306E\u8F2A\u90ED\u306E\u8272\u3002","2 \u3064\u306E\u30C6\u30AD\u30B9\u30C8 \u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9593\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5BFE\u89D2\u7DDA\u306E\u5857\u308A\u3064\u3076\u3057\u8272\u3002\u5BFE\u89D2\u7DDA\u306E\u5857\u308A\u3064\u3076\u3057\u306F\u3001\u6A2A\u306B\u4E26\u3079\u3066\u6BD4\u8F03\u3059\u308B\u30D3\u30E5\u30FC\u3067\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u30D6\u30ED\u30C3\u30AF\u306E\u80CC\u666F\u8272\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u30D6\u30ED\u30C3\u30AF\u306E\u524D\u666F\u8272\u3002","\u5DEE\u5206\u30A8\u30C7\u30A3\u30BF\u30FC\u5185\u306E\u5909\u66F4\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30FC\u30C9\u306E\u80CC\u666F\u8272\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u80CC\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u524D\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5834\u5408\u306E\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u306B\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306E\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u306E\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC \u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u306E\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC\u306B\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5834\u5408\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u80CC\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u524D\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306E\u30A2\u30A4\u30B3\u30F3\u524D\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u80CC\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u524D\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306E\u30A2\u30A4\u30B3\u30F3\u524D\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u3068\u304D\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u80CC\u666F\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u304C\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5834\u5408\u306E\u3001\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u8272\u3002\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30EA\u30B9\u30C8\u3084\u30C4\u30EA\u30FC\u306B\u306F\u30AD\u30FC\u30DC\u30FC\u30C9 \u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u3042\u308A\u3001\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u306F\u3053\u308C\u304C\u3042\u308A\u307E\u305B\u3093\u3002","\u30DE\u30A6\u30B9\u64CD\u4F5C\u3067\u9805\u76EE\u3092\u30DB\u30D0\u30FC\u3059\u308B\u3068\u304D\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u80CC\u666F\u3002","\u30DE\u30A6\u30B9\u64CD\u4F5C\u3067\u9805\u76EE\u3092\u30DB\u30D0\u30FC\u3059\u308B\u3068\u304D\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u524D\u666F\u3002","\u30DE\u30A6\u30B9\u64CD\u4F5C\u3067\u9805\u76EE\u3092\u4ED6\u306E\u9805\u76EE\u306E\u4E0A\u306B\u79FB\u52D5\u3059\u308B\u3068\u304D\u306E\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC\u306E\u30C9\u30E9\u30C3\u30B0 \u30A2\u30F3\u30C9 \u30C9\u30ED\u30C3\u30D7\u306E\u80CC\u666F\u3002","\u30DE\u30A6\u30B9\u3092\u4F7F\u7528\u3057\u3066\u30A2\u30A4\u30C6\u30E0\u3092\u30A2\u30A4\u30C6\u30E0\u9593\u3067\u79FB\u52D5\u3059\u308B\u3068\u304D\u306E\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC\u306E\u30C9\u30E9\u30C3\u30B0 \u30A2\u30F3\u30C9 \u30C9\u30ED\u30C3\u30D7\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u5185\u3092\u691C\u7D22\u3057\u3066\u3044\u308B\u3068\u304D\u3001\u4E00\u81F4\u3057\u305F\u5F37\u8ABF\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u524D\u666F\u8272\u3002","\u30C4\u30EA\u30FC/\u30EA\u30B9\u30C8\u5185\u3092\u691C\u7D22\u3057\u3066\u3044\u308B\u3068\u304D\u3001\u4E00\u81F4\u3057\u305F\u5F37\u8ABF\u306E\u30C4\u30EA\u30FC/\u30EA\u30B9\u30C8\u306E\u524D\u666F\u8272\u3002","\u7121\u52B9\u306A\u9805\u76EE\u306E\u30C4\u30EA\u30FC\u30EA\u30B9\u30C8\u306E\u524D\u666F\u8272\u3002\u305F\u3068\u3048\u3070\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30FC\u306E\u672A\u89E3\u6C7A\u306A\u30EB\u30FC\u30C8\u3002","\u30A8\u30E9\u30FC\u3092\u542B\u3080\u30EA\u30B9\u30C8\u9805\u76EE\u306E\u524D\u666F\u8272\u3002","\u8B66\u544A\u304C\u542B\u307E\u308C\u308B\u30EA\u30B9\u30C8\u9805\u76EE\u306E\u524D\u666F\u8272\u3002","\u30EA\u30B9\u30C8\u304A\u3088\u3073\u30C4\u30EA\u30FC\u306E\u578B\u30D5\u30A3\u30EB\u30BF\u30FC \u30A6\u30A7\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u30EA\u30B9\u30C8\u304A\u3088\u3073\u30C4\u30EA\u30FC\u306E\u578B\u30D5\u30A3\u30EB\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u8272\u3002","\u4E00\u81F4\u9805\u76EE\u304C\u306A\u3044\u5834\u5408\u306E\u3001\u30EA\u30B9\u30C8\u304A\u3088\u3073\u30C4\u30EA\u30FC\u306E\u578B\u30D5\u30A3\u30EB\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3\u8272\u3002","\u30EA\u30B9\u30C8\u304A\u3088\u3073\u30C4\u30EA\u30FC\u306E\u578B\u30D5\u30A3\u30EB\u30BF\u30FC \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5F71\u306E\u8272\u3002","\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3055\u308C\u305F\u4E00\u81F4\u306E\u80CC\u666F\u8272\u3002","\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3055\u308C\u305F\u4E00\u81F4\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u30C4\u30EA\u30FC \u30B9\u30C8\u30ED\u30FC\u30AF\u306E\u8272\u3002","\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306A\u3044\u30A4\u30F3\u30C7\u30F3\u30C8 \u30AC\u30A4\u30C9\u306E\u30C4\u30EA\u30FC \u30B9\u30C8\u30ED\u30FC\u30AF\u306E\u8272\u3002","\u5217\u9593\u306E\u8868\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u5947\u6570\u30C6\u30FC\u30D6\u30EB\u884C\u306E\u80CC\u666F\u8272\u3002","\u5F37\u8ABF\u8868\u793A\u3055\u308C\u3066\u3044\u306A\u3044\u9805\u76EE\u306E\u30EA\u30B9\u30C8/\u30C4\u30EA\u30FC\u524D\u666F\u8272\u3002 ","\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u8981\u7D20\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u80CC\u666F\u8272\u3002","\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u524D\u666F\u8272\u3002","\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u8981\u7D20\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u4EE3\u308F\u308A\u306B quickInputList.focusBackground \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30AF\u30A4\u30C3\u30AF\u9078\u629E\u306E\u524D\u666F\u8272\u3002","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30AF\u30A4\u30C3\u30AF\u9078\u629E\u306E\u30A2\u30A4\u30B3\u30F3\u524D\u666F\u8272\u3002","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u9805\u76EE\u306E\u30AF\u30A4\u30C3\u30AF\u9078\u629E\u306E\u80CC\u666F\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u524D\u666F\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u80CC\u666F\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u3067\u9078\u629E\u3055\u308C\u305F\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u524D\u666F\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u3067\u9078\u629E\u3055\u308C\u305F\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u80CC\u666F\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u3067\u9078\u629E\u3055\u308C\u305F\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30E1\u30CB\u30E5\u30FC\u5185\u306E\u30E1\u30CB\u30E5\u30FC\u9805\u76EE\u306E\u5883\u754C\u7DDA\u8272\u3002","\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u4E0A\u306B\u30DE\u30A6\u30B9 \u30DD\u30A4\u30F3\u30BF\u30FC\u3092\u5408\u308F\u305B\u305F\u3068\u304D\u306E\u30C4\u30FC\u30EB \u30D0\u30FC\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3","\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u4E0A\u306B\u30DE\u30A6\u30B9 \u30DD\u30A4\u30F3\u30BF\u30FC\u3092\u5408\u308F\u305B\u305F\u3068\u304D\u306E\u30C4\u30FC\u30EB \u30D0\u30FC\u306E\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3","\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u4E0A\u306B\u30DE\u30A6\u30B9 \u30DD\u30A4\u30F3\u30BF\u30FC\u3092\u5408\u308F\u305B\u308B\u3068\u30C4\u30FC\u30EB \u30D0\u30FC\u306E\u80CC\u666F\u304C\u8868\u793A\u3055\u308C\u308B","\u30B9\u30CB\u30DA\u30C3\u30C8 tabstop \u306E\u80CC\u666F\u8272\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30B9\u30CB\u30DA\u30C3\u30C8 tabstop \u306E\u5883\u754C\u7DDA\u306E\u8272\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u6700\u5F8C\u306E tabstop \u306E\u80CC\u666F\u8272\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u6700\u5F8C\u306E\u30BF\u30D6\u30B9\u30C8\u30C3\u30D7\u3067\u5883\u754C\u7DDA\u306E\u8272\u3092\u5F37\u8ABF\u8868\u793A\u3057\u307E\u3059\u3002","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u968E\u5C64\u30EA\u30F3\u30AF\u306E\u9805\u76EE\u306E\u8272\u3002","\u968E\u5C64\u30EA\u30F3\u30AF\u306E\u9805\u76EE\u306E\u80CC\u666F\u8272\u3002","\u30D5\u30A9\u30FC\u30AB\u30B9\u3055\u308C\u305F\u968E\u5C64\u30EA\u30F3\u30AF\u306E\u9805\u76EE\u306E\u8272\u3002","\u9078\u629E\u3055\u308C\u305F\u968E\u5C64\u30EA\u30F3\u30AF\u306E\u9805\u76EE\u306E\u8272\u3002","\u968E\u5C64\u9805\u76EE\u30D4\u30C3\u30AB\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u73FE\u5728\u306E\u30D8\u30C3\u30C0\u30FC\u306E\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u73FE\u5728\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u7740\u4FE1\u30D8\u30C3\u30C0\u30FC\u306E\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u7740\u4FE1\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u5171\u901A\u306E\u5148\u7956\u306E\u30D8\u30C3\u30C0\u30FC\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u30A4\u30F3\u30E9\u30A4\u30F3 \u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u5171\u901A\u306E\u5148\u7956\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u80CC\u666F\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u884C\u5185\u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u30D8\u30C3\u30C0\u30FC\u3068\u30B9\u30D7\u30EA\u30C3\u30BF\u30FC\u306E\u5883\u754C\u7DDA\u306E\u8272\u3002","\u884C\u5185\u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u73FE\u5728\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u524D\u666F\u8272\u3002","\u884C\u5185\u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u5165\u529B\u5074\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u524D\u666F\u8272\u3002","\u884C\u5185\u30DE\u30FC\u30B8\u7AF6\u5408\u306E\u5171\u901A\u306E\u7956\u5148\u6982\u8981\u30EB\u30FC\u30E9\u30FC\u524D\u666F\u8272\u3002","\u691C\u51FA\u3055\u308C\u305F\u4E00\u81F4\u9805\u76EE\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u9078\u629E\u7BC4\u56F2\u3092\u5F37\u8ABF\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u6982\u8981\u30EB\u30FC\u30E9\u30FC \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002\u3053\u306E\u8272\u306F\u3001\u57FA\u672C\u88C5\u98FE\u304C\u975E\u8868\u793A\u306B\u306A\u3089\u306A\u3044\u3088\u3046\u4E0D\u900F\u660E\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002","\u4E00\u81F4\u3092\u691C\u7D22\u3059\u308B\u305F\u3081\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u7E70\u308A\u8FD4\u3057\u9078\u629E\u3059\u308B\u7BC4\u56F2\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u9078\u629E\u7BC4\u56F2\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u60C5\u5831\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u8B66\u544A\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u30A8\u30E9\u30FC\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30DE\u30FC\u30AB\u30FC\u306E\u8272\u3002","\u30DF\u30CB\u30DE\u30C3\u30D7\u306E\u80CC\u666F\u8272\u3002",'\u30DF\u30CB\u30DE\u30C3\u30D7\u306B\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3055\u308C\u308B\u524D\u666F\u8981\u7D20\u306E\u4E0D\u900F\u660E\u5EA6\u3002\u305F\u3068\u3048\u3070\u3001"#000000c0" \u3067\u306F\u300175% \u306E\u4E0D\u900F\u660E\u5EA6\u3067\u8981\u7D20\u3092\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3057\u307E\u3059\u3002',"\u30DF\u30CB\u30DE\u30C3\u30D7 \u30B9\u30E9\u30A4\u30C0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30DB\u30D0\u30FC\u30EA\u30F3\u30B0\u6642\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30B9\u30E9\u30A4\u30C0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u3068\u304D\u306E\u30DF\u30CB\u30DE\u30C3\u30D7 \u30B9\u30E9\u30A4\u30C0\u30FC\u306E\u80CC\u666F\u8272\u3002","\u554F\u984C\u306E\u30A8\u30E9\u30FC \u30A2\u30A4\u30B3\u30F3\u306B\u4F7F\u7528\u3055\u308C\u308B\u8272\u3002","\u554F\u984C\u306E\u8B66\u544A\u30A2\u30A4\u30B3\u30F3\u306B\u4F7F\u7528\u3055\u308C\u308B\u8272\u3002","\u554F\u984C\u60C5\u5831\u30A2\u30A4\u30B3\u30F3\u306B\u4F7F\u7528\u3055\u308C\u308B\u8272\u3002","\u30B0\u30E9\u30D5\u3067\u4F7F\u7528\u3055\u308C\u308B\u524D\u666F\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u6C34\u5E73\u7DDA\u306B\u4F7F\u7528\u3055\u308C\u308B\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u8D64\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u9752\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u9EC4\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u30AA\u30EC\u30F3\u30B8\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u7DD1\u8272\u3002","\u30B0\u30E9\u30D5\u306E\u8996\u899A\u5316\u306B\u4F7F\u7528\u3055\u308C\u308B\u7D2B\u8272\u3002"],"vs/platform/theme/common/iconRegistry":["\u4F7F\u7528\u3059\u308B\u30D5\u30A9\u30F3\u30C8\u306E ID\u3002\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u3001\u6700\u521D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u30D5\u30A9\u30F3\u30C8\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","\u30A2\u30A4\u30B3\u30F3\u5B9A\u7FA9\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30D5\u30A9\u30F3\u30C8\u6587\u5B57\u3002","\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306B\u3042\u308B\u9589\u3058\u308B\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u524D\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5834\u6240\u306B\u79FB\u52D5\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002","\u6B21\u306E\u30A8\u30C7\u30A3\u30BF\u30FC\u306E\u5834\u6240\u306B\u79FB\u52D5\u3059\u308B\u305F\u3081\u306E\u30A2\u30A4\u30B3\u30F3\u3002"],"vs/platform/undoRedo/common/undoRedoService":["\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u9589\u3058\u3089\u308C\u3001\u30C7\u30A3\u30B9\u30AF\u4E0A\u3067\u5909\u66F4\u3055\u308C\u307E\u3057\u305F: {0}\u3002","\u4EE5\u4E0B\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E92\u63DB\u6027\u306E\u306A\u3044\u65B9\u6CD5\u3067\u5909\u66F4\u3055\u308C\u307E\u3057\u305F: {0}\u3002","\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3067\u3057\u305F\u3002{1}","\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3067\u3057\u305F\u3002{1}","{1} \u306B\u5909\u66F4\u304C\u52A0\u3048\u3089\u308C\u305F\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3067\u3057\u305F","{1} \u3067\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u65E2\u306B\u5B9F\u884C\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066 '{0}' \u3092\u5143\u306B\u623B\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u305D\u306E\u671F\u9593\u306B\u5B9F\u884C\u4E2D\u3067\u3042\u3063\u305F\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066 '{0}' \u3092\u5143\u306B\u623B\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u5143\u306B\u623B\u3057\u307E\u3059\u304B?","{0} \u500B\u306E\u30D5\u30A1\u30A4\u30EB\u3067\u5143\u306B\u623B\u3059(&&U)","\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5143\u306B\u623B\u3059","\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u65E2\u306B\u5B9F\u884C\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001'{0}' \u3092\u5143\u306B\u623B\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002","'{0}' \u3092\u5143\u306B\u623B\u3057\u307E\u3059\u304B?","\u306F\u3044(&&Y)","\u3044\u3044\u3048","\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u3084\u308A\u76F4\u3057\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002{1}","\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u3084\u308A\u76F4\u3057\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002{1}","{1} \u306B\u5909\u66F4\u304C\u52A0\u3048\u3089\u308C\u305F\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3067 '{0}' \u3092\u518D\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","{1} \u3067\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u65E2\u306B\u5B9F\u884C\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066 '{0}' \u3092\u3084\u308A\u76F4\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u305D\u306E\u671F\u9593\u306B\u5B9F\u884C\u4E2D\u3067\u3042\u3063\u305F\u305F\u3081\u3001\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066 '{0}' \u3092\u3084\u308A\u76F4\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F","\u5143\u306B\u623B\u3059\u307E\u305F\u306F\u3084\u308A\u76F4\u3057\u64CD\u4F5C\u304C\u65E2\u306B\u5B9F\u884C\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001'{0}' \u3092\u3084\u308A\u76F4\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002"],"vs/platform/workspace/common/workspace":["\u30B3\u30FC\u30C9 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ja.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.js new file mode 100644 index 0000000..49906cc --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputToggles":["Match Case","Match Whole Word","Use Regular Expression"],"vs/base/browser/ui/findinput/replaceInput":["input","Preserve Case"],"vs/base/browser/ui/hover/hoverWidget":["Inspect this in the accessible view with {0}.","Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."],"vs/base/browser/ui/iconLabel/iconLabelHover":["Loading..."],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Warning: {0}","Info: {0}"," or {0} for history"," ({0} for history)","Cleared Input"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Unbound"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Select Box"],"vs/base/browser/ui/toolbar/toolbar":["More Actions..."],"vs/base/browser/ui/tree/abstractTree":["Filter","Fuzzy Match","Type to filter","Type to search","Type to search","Close","No elements found."],"vs/base/common/actions":["(empty)"],"vs/base/common/errorMessage":["{0}: {1}","A system error occurred ({0})","An unknown error occurred. Please consult the log for more details.","An unknown error occurred. Please consult the log for more details.","{0} ({1} errors in total)","An unknown error occurred. Please consult the log for more details."],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","Super","Control","Shift","Option","Command","Control","Shift","Alt","Windows","Control","Shift","Alt","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["editor","The editor is not accessible at this time.","{0} To enable screen reader optimized mode, use {1}","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it."],"vs/editor/browser/coreCommands":["Stick to the end even when going to longer lines","Stick to the end even when going to longer lines","Removed secondary cursors"],"vs/editor/browser/editorExtensions":["&&Undo","Undo","&&Redo","Redo","&&Select All","Select All"],"vs/editor/browser/widget/codeEditorWidget":["The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.","Increase Multi Cursor Limit"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["Icon for 'Insert' in accessible diff viewer.","Icon for 'Remove' in accessible diff viewer.","Icon for 'Close' in accessible diff viewer.","Close","Accessible Diff Viewer. Use arrow up and down to navigate.","no lines changed","1 line changed","{0} lines changed","Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}","blank","{0} unchanged line {1}","{0} original line {1} modified line {2}","+ {0} modified line {1}","- {0} original line {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" use {0} to open the accessibility help."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["Copy deleted lines","Copy deleted line","Copy changed lines","Copy changed line","Copy deleted line ({0})","Copy changed line ({0})","Revert this change"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["Use Inline View When Space Is Limited","Show Moved Code Blocks","Open Accessible Diff Viewer","Toggle Collapse Unchanged Regions","Toggle Show Moved Code Blocks","Toggle Use Inline View When Space Is Limited","Diff Editor","Switch Side","Exit Compare Move","Collapse All Unchanged Regions","Show All Unchanged Regions","Accessible Diff Viewer","Go to Next Difference","Go to Previous Difference"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["Fold Unchanged Region","Click or drag to show more above","Show Unchanged Region","Click or drag to show more below","{0} hidden lines","Double click to unfold"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["Code moved with changes to line {0}-{1}","Code moved with changes from line {0}-{1}","Code moved to line {0}-{1}","Code moved from line {0}-{1}"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["Revert Selected Changes","Revert Change"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["The border color for text that got moved in the diff editor.","The active border color for text that got moved in the diff editor.","The color of the shadow around unchanged region widgets.","Line decoration for inserts in the diff editor.","Line decoration for removals in the diff editor."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["Hold {0} key to mouse over"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["The background color of the diff editor's header","The background color of the multi file diff editor","The border color of the multi file diff editor"],"vs/editor/common/config/editorConfigurationSchema":["Editor","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.',"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","Remove trailing auto inserted whitespace.","Special handling for large files to disable certain memory intensive features.","Turn off Word Based Suggestions.","Only suggest words from the active document.","Suggest words from all open documents of the same language.","Suggest words from all open documents.","Controls whether completions should be computed based on words in the document and from which documents they are computed.","Semantic highlighting enabled for all color themes.","Semantic highlighting disabled for all color themes.","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.","Controls whether the semanticHighlighting is shown for the languages that support it.","Keep peek editors open even when double-clicking their content or when hitting `Escape`.","Lines above this length will not be tokenized for performance reasons","Controls whether the tokenization should happen asynchronously on a web worker.","Controls whether async tokenization should be logged. For debugging only.","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.","Defines the bracket symbols that increase or decrease the indentation.","The opening bracket character or string sequence.","The closing bracket character or string sequence.","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.","The opening bracket character or string sequence.","The closing bracket character or string sequence.","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.","Maximum file size in MB for which to compute diffs. Use 0 for no limit.","Controls whether the diff editor shows the diff side by side or inline.","If the diff editor width is smaller than this value, the inline view is used.","If enabled and the editor width is too small, the inline view is used.","When enabled, the diff editor shows arrows in its glyph margin to revert changes.","When enabled, the diff editor ignores changes in leading or trailing whitespace.","Controls whether the diff editor shows +/- indicators for added/removed changes.","Controls whether the editor shows CodeLens.","Lines will never wrap.","Lines will wrap at the viewport width.","Lines will wrap according to the {0} setting.","Uses the legacy diffing algorithm.","Uses the advanced diffing algorithm.","Controls whether the diff editor shows unchanged regions.","Controls how many lines are used for unchanged regions.","Controls how many lines are used as a minimum for unchanged regions.","Controls how many lines are used as context when comparing unchanged regions.","Controls whether the diff editor should show detected code moves.","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted."],"vs/editor/common/config/editorOptions":["Use platform APIs to detect when a Screen Reader is attached.","Optimize for usage with a Screen Reader.","Assume a screen reader is not attached.","Controls if the UI should run in a mode where it is optimized for screen readers.","Controls whether a space character is inserted when commenting.","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.","Controls whether copying without a selection copies the current line.","Controls whether the cursor should jump to find matches while typing.","Never seed search string from the editor selection.","Always seed search string from the editor selection, including word at cursor position.","Only seed search string from the editor selection.","Controls whether the search string in the Find Widget is seeded from the editor selection.","Never turn on Find in Selection automatically (default).","Always turn on Find in Selection automatically.","Turn on Find in Selection automatically when multiple lines of content are selected.","Controls the condition for turning on Find in Selection automatically.","Controls whether the Find Widget should read or modify the shared find clipboard on macOS.","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property.","Controls the font size in pixels.",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.','Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.',"Show Peek view of the results (default)","Go to the primary result and show a Peek view","Go to the primary result and enable Peek-less navigation to others","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.","Controls the behavior the 'Go to References'-command when multiple target locations exist.","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.","Controls whether the hover is shown.","Controls the delay in milliseconds after which the hover is shown.","Controls whether the hover should remain visible when mouse is moved over it.","Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.","Prefer showing hovers above the line, if there's space.","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.","Disable the code action menu.","Show the code action menu when the cursor is on lines with code.","Show the code action menu when the cursor is on lines with code or on empty lines.","Enables the Code Action lightbulb in the editor.","Shows the nested current scopes during the scroll at the top of the editor.","Defines the maximum number of sticky lines to show.","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.","Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.","Enables the inlay hints in the editor.","Inlay hints are enabled","Inlay hints are showing by default and hide when holding {0}","Inlay hints are hidden by default and show when holding {0}","Inlay hints are disabled","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","Enables the padding around the inlay hints in the editor.",`Controls the line height. + - Use 0 to automatically compute the line height from the font size. + - Values between 0 and 8 will be used as a multiplier with the font size. + - Values greater than or equal to 8 will be used as effective values.`,"Controls whether the minimap is shown.","Controls whether the minimap is hidden automatically.","The minimap has the same size as the editor contents (and might scroll).","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).","The minimap will shrink as necessary to never be larger than the editor (no scrolling).","Controls the size of the minimap.","Controls the side where to render the minimap.","Controls when the minimap slider is shown.","Scale of content drawn in the minimap: 1, 2 or 3.","Render the actual characters on a line as opposed to color blocks.","Limit the width of the minimap to render at most a certain number of columns.","Controls the amount of space between the top edge of the editor and the first line.","Controls the amount of space between the bottom edge of the editor and the last line.","Enables a pop-up that shows parameter documentation and type information as you type.","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.","Quick suggestions show inside the suggest widget","Quick suggestions show as ghost text","Quick suggestions are disabled","Enable quick suggestions inside strings.","Enable quick suggestions inside comments.","Enable quick suggestions outside of strings and comments.","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","Line numbers are not rendered.","Line numbers are rendered as absolute number.","Line numbers are rendered as distance in lines to cursor position.","Line numbers are rendered every 10 lines.","Controls the display of line numbers.","Number of monospace characters at which this editor ruler will render.","Color of this editor ruler.","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.","The vertical scrollbar will be visible only when necessary.","The vertical scrollbar will always be visible.","The vertical scrollbar will always be hidden.","Controls the visibility of the vertical scrollbar.","The horizontal scrollbar will be visible only when necessary.","The horizontal scrollbar will always be visible.","The horizontal scrollbar will always be hidden.","Controls the visibility of the horizontal scrollbar.","The width of the vertical scrollbar.","The height of the horizontal scrollbar.","Controls whether clicks scroll by page or jump to click position.","When set, the horizontal scrollbar will not increase the size of the editor's content.","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.","Controls whether characters that just reserve space or have no width at all are highlighted.","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.","Controls whether characters in comments should also be subject to Unicode highlighting.","Controls whether characters in strings should also be subject to Unicode highlighting.","Defines allowed characters that are not being highlighted.","Unicode characters that are common in allowed locales are not being highlighted.","Controls whether to automatically show inline suggestions in the editor.","Show the inline suggestion toolbar whenever an inline suggestion is shown.","Show the inline suggestion toolbar when hovering over an inline suggestion.","Never show the inline suggestion toolbar.","Controls when to show the inline suggestion toolbar.","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.","Controls the font family of the inline suggestions.","Controls whether to show inline edits in the editor.","Show the inline edit toolbar whenever an inline suggestion is shown.","Show the inline edit toolbar when hovering over an inline suggestion.","Never show the inline edit toolbar.","Controls when to show the inline edit toolbar.","Controls the font family of the inline edit.","Controls whether to color the background of inline edits.","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","Controls whether each bracket type has its own independent color pool.","Enables bracket pair guides.","Enables bracket pair guides only for the active bracket pair.","Disables bracket pair guides.","Controls whether bracket pair guides are enabled or not.","Enables horizontal guides as addition to vertical bracket pair guides.","Enables horizontal guides only for the active bracket pair.","Disables horizontal bracket pair guides.","Controls whether horizontal bracket pair guides are enabled or not.","Controls whether the editor should highlight the active bracket pair.","Controls whether the editor should render indent guides.","Highlights the active indent guide.","Highlights the active indent guide even if bracket guides are highlighted.","Do not highlight the active indent guide.","Controls whether the editor should highlight the active indent guide.","Insert suggestion without overwriting text right of the cursor.","Insert suggestion and overwrite text right of the cursor.","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.","Controls whether filtering and sorting suggestions accounts for small typos.","Controls whether sorting favors words that appear close to the cursor.","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).","Always select a suggestion when automatically triggering IntelliSense.","Never select a suggestion when automatically triggering IntelliSense.","Select a suggestion only when triggering IntelliSense from a trigger character.","Select a suggestion only when triggering IntelliSense as you type.","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.","Controls whether an active snippet prevents quick suggestions.","Controls whether to show or hide icons in suggestions.","Controls the visibility of the status bar at the bottom of the suggest widget.","Controls whether to preview the suggestion outcome in the editor.","Controls whether suggest details show inline with the label or only in the details widget.","This setting is deprecated. The suggest widget can now be resized.","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.","When enabled IntelliSense shows `method`-suggestions.","When enabled IntelliSense shows `function`-suggestions.","When enabled IntelliSense shows `constructor`-suggestions.","When enabled IntelliSense shows `deprecated`-suggestions.","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.","When enabled IntelliSense shows `field`-suggestions.","When enabled IntelliSense shows `variable`-suggestions.","When enabled IntelliSense shows `class`-suggestions.","When enabled IntelliSense shows `struct`-suggestions.","When enabled IntelliSense shows `interface`-suggestions.","When enabled IntelliSense shows `module`-suggestions.","When enabled IntelliSense shows `property`-suggestions.","When enabled IntelliSense shows `event`-suggestions.","When enabled IntelliSense shows `operator`-suggestions.","When enabled IntelliSense shows `unit`-suggestions.","When enabled IntelliSense shows `value`-suggestions.","When enabled IntelliSense shows `constant`-suggestions.","When enabled IntelliSense shows `enum`-suggestions.","When enabled IntelliSense shows `enumMember`-suggestions.","When enabled IntelliSense shows `keyword`-suggestions.","When enabled IntelliSense shows `text`-suggestions.","When enabled IntelliSense shows `color`-suggestions.","When enabled IntelliSense shows `file`-suggestions.","When enabled IntelliSense shows `reference`-suggestions.","When enabled IntelliSense shows `customcolor`-suggestions.","When enabled IntelliSense shows `folder`-suggestions.","When enabled IntelliSense shows `typeParameter`-suggestions.","When enabled IntelliSense shows `snippet`-suggestions.","When enabled IntelliSense shows `user`-suggestions.","When enabled IntelliSense shows `issues`-suggestions.","Whether leading and trailing whitespace should always be selected.","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.","No indentation. Wrapped lines begin at column 1.","Wrapped lines get the same indentation as the parent.","Wrapped lines get +1 indentation toward the parent.","Wrapped lines get +2 indentation toward the parent.","Controls the indentation of wrapped lines.","Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped.","Show the drop selector widget after a file is dropped into the editor.","Never show the drop selector widget. Instead the default drop provider is always used.","Controls whether you can paste content in different ways.","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted.","Show the paste selector widget after content is pasted into the editor.","Never show the paste selector widget. Instead the default pasting behavior is always used.","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.","Only accept a suggestion with `Enter` when it makes a textual change.","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.","Editor content","Control whether inline suggestions are announced by a screen reader.","Use language configurations to determine when to autoclose brackets.","Autoclose brackets only when the cursor is to the left of whitespace.","Controls whether the editor should automatically close brackets after the user adds an opening bracket.","Use language configurations to determine when to autoclose comments.","Autoclose comments only when the cursor is to the left of whitespace.","Controls whether the editor should automatically close comments after the user adds an opening comment.","Remove adjacent closing quotes or brackets only if they were automatically inserted.","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.","Type over closing quotes or brackets only if they were automatically inserted.","Controls whether the editor should type over closing quotes or brackets.","Use language configurations to determine when to autoclose quotes.","Autoclose quotes only when the cursor is to the left of whitespace.","Controls whether the editor should automatically close quotes after the user adds an opening quote.","The editor will not insert indentation automatically.","The editor will keep the current line's indentation.","The editor will keep the current line's indentation and honor language defined brackets.","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.","Use language configurations to determine when to automatically surround selections.","Surround with quotes but not brackets.","Surround with brackets but not quotes.","Controls whether the editor should automatically surround selections when typing quotes or brackets.","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.","Controls whether the editor shows CodeLens.","Controls the font family for CodeLens.","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.","Controls whether the editor should render the inline color decorators and color picker.","Make the color picker appear both on click and hover of the color decorator","Make the color picker appear on hover of the color decorator","Make the color picker appear on click of the color decorator","Controls the condition to make a color picker appear from a color decorator","Controls the max number of color decorators that can be rendered in an editor at once.","Enable that the selection with the mouse and keys is doing column selection.","Controls whether syntax highlighting should be copied into the clipboard.","Control the cursor animation style.","Smooth caret animation is disabled.","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture.","Smooth caret animation is always enabled.","Controls whether the smooth caret animation should be enabled.","Controls the cursor style.","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.","`cursorSurroundingLines` is enforced always.","Controls when `#cursorSurroundingLines#` should be enforced.","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.","Controls whether the editor should allow moving selections via drag and drop.","Use a new rendering method with svgs.","Use a new rendering method with font characters.","Use the stable rendering method.","Controls whether whitespace is rendered with a new, experimental method.","Scrolling speed multiplier when pressing `Alt`.","Controls whether the editor has code folding enabled.","Use a language-specific folding strategy if available, else the indentation-based one.","Use the indentation-based folding strategy.","Controls the strategy for computing folding ranges.","Controls whether the editor should highlight folded ranges.","Controls whether the editor automatically collapses import ranges.","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.","Controls whether clicking on the empty content after a folded line will unfold the line.","Controls the font family.","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.","Controls whether the editor should automatically format the line after typing.","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.","Controls whether the cursor should be hidden in the overview ruler.","Controls the letter spacing in pixels.","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.","Controls whether the editor should detect links and make them clickable.","Highlight matching brackets.","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.","Zoom the font of the editor when using mouse wheel and holding `Cmd`.","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.","Merge multiple cursors when they are overlapping.","Maps to `Control` on Windows and Linux and to `Command` on macOS.","Maps to `Alt` on Windows and Linux and to `Option` on macOS.","The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Each cursor pastes a single line of the text.","Each cursor pastes the full text.","Controls pasting when the line count of the pasted text matches the cursor count.","Controls the max number of cursors that can be in an active editor at once.","Does not highlight occurrences.","Highlights occurrences only in the current file.","Experimental: Highlights occurrences across all valid open files.","Controls whether occurrences should be highlighted across open files.","Controls whether a border should be drawn around the overview ruler.","Focus the tree when opening peek","Focus the editor when opening peek","Controls whether to focus the inline editor or the tree in the peek widget.","Controls whether the Go to Definition mouse gesture always opens the peek widget.","Controls the delay in milliseconds after which quick suggestions will show up.","Controls whether the editor auto renames on type.","Deprecated, use `editor.linkedEditing` instead.","Controls whether the editor should render control characters.","Render last line number when the file ends with a newline.","Highlights both the gutter and the current line.","Controls how the editor should render the current line highlight.","Controls if the editor should render the current line highlight only when the editor is focused.","Render whitespace characters except for single spaces between words.","Render whitespace characters only on selected text.","Render only trailing whitespace characters.","Controls how the editor should render whitespace characters.","Controls whether selections should have rounded corners.","Controls the number of extra characters beyond which the editor will scroll horizontally.","Controls whether the editor will scroll beyond the last line.","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.","Controls whether the Linux primary clipboard should be supported.","Controls whether the editor should highlight matches similar to the selection.","Always show the folding controls.","Never show the folding controls and reduce the gutter size.","Only show the folding controls when the mouse is over the gutter.","Controls when the folding controls on the gutter are shown.","Controls fading out of unused code.","Controls strikethrough deprecated variables.","Show snippet suggestions on top of other suggestions.","Show snippet suggestions below other suggestions.","Show snippets suggestions with other suggestions.","Do not show snippet suggestions.","Controls whether snippets are shown with other suggestions and how they are sorted.","Controls whether the editor will scroll using an animation.","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.","Font size for the suggest widget. When set to {0}, the value of {1} is used.","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","Controls whether suggestions should automatically show up when typing trigger characters.","Always select the first suggestion.","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.","Controls how suggestions are pre-selected when showing the suggest list.","Tab complete will insert the best matching suggestion when pressing tab.","Disable tab completions.","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.","Enables tab completions.","Unusual line terminators are automatically removed.","Unusual line terminators are ignored.","Unusual line terminators prompt to be removed.","Remove unusual line terminators that might cause problems.","Inserting and deleting whitespace follows tab stops.","Use the default line break rule.","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.","Characters that will be used as word separators when doing word related navigations or operations.","Lines will never wrap.","Lines will wrap at the viewport width.","Lines will wrap at `#editor.wordWrapColumn#`.","Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.","Controls how lines should wrap.","Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.","Controls whether inline color decorations should be shown using the default document color provider","Controls whether the editor receives tabs or defers them to the workbench for navigation."],"vs/editor/common/core/editorColorRegistry":["Background color for the highlight of line at the cursor position.","Background color for the border around the line at the cursor position.","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.","Background color of the border around highlighted ranges.","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.","Background color of the border around highlighted symbols.","Color of the editor cursor.","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.","Color of whitespace characters in the editor.","Color of editor line numbers.","Color of the editor indentation guides.","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.","Color of the active editor indentation guides.","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.","Color of the editor indentation guides (1).","Color of the editor indentation guides (2).","Color of the editor indentation guides (3).","Color of the editor indentation guides (4).","Color of the editor indentation guides (5).","Color of the editor indentation guides (6).","Color of the active editor indentation guides (1).","Color of the active editor indentation guides (2).","Color of the active editor indentation guides (3).","Color of the active editor indentation guides (4).","Color of the active editor indentation guides (5).","Color of the active editor indentation guides (6).","Color of editor active line number","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.","Color of editor active line number","Color of the final editor line when editor.renderFinalNewline is set to dimmed.","Color of the editor rulers.","Foreground color of editor CodeLens","Background color behind matching brackets","Color for matching brackets boxes","Color of the overview ruler border.","Background color of the editor overview ruler.","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.","Border color of unnecessary (unused) source code in the editor.",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`,"Border color of ghost text in the editor.","Foreground color of the ghost text in the editor.","Background color of the ghost text in the editor.","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for errors.","Overview ruler marker color for warnings.","Overview ruler marker color for infos.","Foreground color of brackets (1). Requires enabling bracket pair colorization.","Foreground color of brackets (2). Requires enabling bracket pair colorization.","Foreground color of brackets (3). Requires enabling bracket pair colorization.","Foreground color of brackets (4). Requires enabling bracket pair colorization.","Foreground color of brackets (5). Requires enabling bracket pair colorization.","Foreground color of brackets (6). Requires enabling bracket pair colorization.","Foreground color of unexpected brackets.","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.","Background color of active bracket pair guides (6). Requires enabling bracket pair guides.","Border color used to highlight unicode characters.","Background color used to highlight unicode characters."],"vs/editor/common/editorContextKeys":["Whether the editor text has focus (cursor is blinking)","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)","Whether an editor or a rich text input has focus (cursor is blinking)","Whether the editor is read-only","Whether the context is a diff editor","Whether the context is an embedded diff editor","Whether the context is a multi diff editor","Whether all files in multi diff editor are collapsed","Whether the diff editor has changes","Whether a moved code block is selected for comparison","Whether the accessible diff viewer is visible","Whether the diff editor render side by side inline breakpoint is reached","Whether `editor.columnSelection` is enabled","Whether the editor has text selected","Whether the editor has multiple selections","Whether `Tab` will move focus out of the editor","Whether the editor hover is visible","Whether the editor hover is focused","Whether the sticky scroll is focused","Whether the sticky scroll is visible","Whether the standalone color picker is visible","Whether the standalone color picker is focused","Whether the editor is part of a larger editor (e.g. notebooks)","The language identifier of the editor","Whether the editor has a completion item provider","Whether the editor has a code actions provider","Whether the editor has a code lens provider","Whether the editor has a definition provider","Whether the editor has a declaration provider","Whether the editor has an implementation provider","Whether the editor has a type definition provider","Whether the editor has a hover provider","Whether the editor has a document highlight provider","Whether the editor has a document symbol provider","Whether the editor has a reference provider","Whether the editor has a rename provider","Whether the editor has a signature help provider","Whether the editor has an inline hints provider","Whether the editor has a document formatting provider","Whether the editor has a document selection formatting provider","Whether the editor has multiple document formatting providers","Whether the editor has multiple document selection formatting providers"],"vs/editor/common/languages":["array","boolean","class","constant","constructor","enumeration","enumeration member","event","field","file","function","interface","key","method","module","namespace","null","number","object","operator","package","property","string","struct","type parameter","variable","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["Plain Text"],"vs/editor/common/model/editStack":["Typing"],"vs/editor/common/standaloneStrings":["Developer: Inspect Tokens","Go to Line/Column...","Show all Quick Access Providers","Command Palette","Show And Run Commands","Go to Symbol...","Go to Symbol by Category...","Editor content","Press Alt+F1 for Accessibility Options.","Toggle High Contrast Theme","Made {0} edits in {1} files"],"vs/editor/common/viewLayout/viewLineRenderer":["Show more ({0})","{0} chars"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["Selection Anchor","Anchor set at {0}:{1}","Set Selection Anchor","Go to Selection Anchor","Select from Anchor to Cursor","Cancel Selection Anchor"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["Overview ruler marker color for matching brackets.","Go to Bracket","Select to Bracket","Remove Brackets","Go to &&Bracket","Select the text inside and including the brackets or curly braces"],"vs/editor/contrib/caretOperations/browser/caretOperations":["Move Selected Text Left","Move Selected Text Right"],"vs/editor/contrib/caretOperations/browser/transpose":["Transpose Letters"],"vs/editor/contrib/clipboard/browser/clipboard":["Cu&&t","Cut","Cut","Cut","&&Copy","Copy","Copy","Copy","&&Paste","Paste","Paste","Paste","Copy With Syntax Highlighting","Copy As","Copy As","Share","Share","Share"],"vs/editor/contrib/codeAction/browser/codeAction":["An unknown error occurred while applying the code action"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["Kind of the code action to run.","Controls when the returned actions are applied.","Always apply the first returned code action.","Apply the first returned code action if it is the only one.","Do not apply the returned code actions.","Controls if only preferred code actions should be returned.","Quick Fix...","No code actions available","No preferred code actions for '{0}' available","No code actions for '{0}' available","No preferred code actions available","No code actions available","Refactor...","No preferred refactorings for '{0}' available","No refactorings for '{0}' available","No preferred refactorings available","No refactorings available","Source Action...","No preferred source actions for '{0}' available","No source actions for '{0}' available","No preferred source actions available","No source actions available","Organize Imports","No organize imports action available","Fix All","No fix all action available","Auto Fix...","No auto fixes available"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["Enable/disable showing group headers in the Code Action menu.","Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."],"vs/editor/contrib/codeAction/browser/codeActionController":["Context: {0} at line {1} and column {2}.","Hide Disabled","Show Disabled"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["More Actions...","Quick Fix","Extract","Inline","Rewrite","Move","Surround With","Source Action"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["Run: {0}","Show Code Actions. Preferred Quick Fix Available ({0})","Show Code Actions ({0})","Show Code Actions"],"vs/editor/contrib/codelens/browser/codelensController":["Show CodeLens Commands For Current Line","Select a command"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["Click to toggle color options (rgb/hsl/hex)","Icon to close the color picker"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&Show or Focus Standalone Color Picker","Hide the Color Picker","Insert Color with Standalone Color Picker","Show or Focus Standalone Color Picker"],"vs/editor/contrib/comment/browser/comment":["Toggle Line Comment","&&Toggle Line Comment","Add Line Comment","Remove Line Comment","Toggle Block Comment","Toggle &&Block Comment"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Minimap","Render Characters","Vertical size","Proportional","Fill","Fit","Slider","Mouse Over","Always","Show Editor Context Menu"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["Cursor Undo","Cursor Redo"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["Paste As...","The id of the paste edit to try applying. If not provided, the editor will show a picker.","Paste as Text"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["Whether the paste widget is showing","Show paste options...","No paste edits for '{0}' found","Running paste handlers. Click to cancel","Select Paste Action","Running paste handlers"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["Built-in","Insert Plain Text","Insert Uris","Insert Uri","Insert Paths","Insert Path","Insert Relative Paths","Insert Relative Path","Insert HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["Configures the default drop provider to use for content of a given mime type."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["Whether the drop widget is showing","Show drop options...","Running drop handlers. Click to cancel"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["Whether the editor runs a cancellable operation, e.g. like 'Peek References'"],"vs/editor/contrib/find/browser/findController":["The file is too large to perform a replace all operation.","Find","&&Find","Find With Arguments","Find With Selection","Find Next","Find Previous","Go to Match...","No matches. Try searching for something else.","Type a number to go to a specific match (between 1 and {0})","Please type a number between 1 and {0}","Please type a number between 1 and {0}","Find Next Selection","Find Previous Selection","Replace","&&Replace"],"vs/editor/contrib/find/browser/findWidget":["Icon for 'Find in Selection' in the editor find widget.","Icon to indicate that the editor find widget is collapsed.","Icon to indicate that the editor find widget is expanded.","Icon for 'Replace' in the editor find widget.","Icon for 'Replace All' in the editor find widget.","Icon for 'Find Previous' in the editor find widget.","Icon for 'Find Next' in the editor find widget.","Find / Replace","Find","Find","Previous Match","Next Match","Find in Selection","Close","Replace","Replace","Replace","Replace All","Toggle Replace","Only the first {0} results are highlighted, but all find operations work on the entire text.","{0} of {1}","No results","{0} found","{0} found for '{1}'","{0} found for '{1}', at {2}","{0} found for '{1}'","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior."],"vs/editor/contrib/folding/browser/folding":["Unfold","Unfold Recursively","Fold","Toggle Fold","Fold Recursively","Fold All Block Comments","Fold All Regions","Unfold All Regions","Fold All Except Selected","Unfold All Except Selected","Fold All","Unfold All","Go to Parent Fold","Go to Previous Folding Range","Go to Next Folding Range","Create Folding Range from Selection","Remove Manual Folding Ranges","Fold Level {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.","Color of the folding control in the editor gutter.","Icon for expanded ranges in the editor glyph margin.","Icon for collapsed ranges in the editor glyph margin.","Icon for manually collapsed ranges in the editor glyph margin.","Icon for manually expanded ranges in the editor glyph margin.","Click to expand the range.","Click to collapse the range."],"vs/editor/contrib/fontZoom/browser/fontZoom":["Increase Editor Font Size","Decrease Editor Font Size","Reset Editor Font Size"],"vs/editor/contrib/format/browser/formatActions":["Format Document","Format Selection"],"vs/editor/contrib/gotoError/browser/gotoError":["Go to Next Problem (Error, Warning, Info)","Icon for goto next marker.","Go to Previous Problem (Error, Warning, Info)","Icon for goto previous marker.","Go to Next Problem in Files (Error, Warning, Info)","Next &&Problem","Go to Previous Problem in Files (Error, Warning, Info)","Previous &&Problem"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["Error","Warning","Info","Hint","{0} at {1}. ","{0} of {1} problems","{0} of {1} problem","Editor marker navigation widget error color.","Editor marker navigation widget error heading background.","Editor marker navigation widget warning color.","Editor marker navigation widget warning heading background.","Editor marker navigation widget info color.","Editor marker navigation widget info heading background.","Editor marker navigation widget background."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["Peek","Definitions","No definition found for '{0}'","No definition found","Go to &&Definition","Declarations","No declaration found for '{0}'","No declaration found","Go to &&Declaration","No declaration found for '{0}'","No declaration found","Type Definitions","No type definition found for '{0}'","No type definition found","Go to &&Type Definition","Implementations","No implementation found for '{0}'","No implementation found","Go to &&Implementations","No references found for '{0}'","No references found","Go to &&References","References","References","Locations","No results for '{0}'","References","Go to Definition","Open Definition to the Side","Peek Definition","Go to Declaration","Peek Declaration","Go to Type Definition","Peek Type Definition","Go to Implementations","Peek Implementations","Go to References","Peek References","Go to Any Symbol"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["Click to show {0} definitions."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["Whether reference peek is visible, like 'Peek References' or 'Peek Definition'","Loading...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} references","{0} reference","References"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["no preview available","No results","References"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["in {0} on line {1} at column {2}","{0} in {1} on line {2} at column {3}","1 symbol in {0}, full path {1}","{0} symbols in {1}, full path {2}","No results found","Found 1 symbol in {0}","Found {0} symbols in {1}","Found {0} symbols in {1} files"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["Whether there are symbol locations that can be navigated via keyboard-only.","Symbol {0} of {1}, {2} for next","Symbol {0} of {1}"],"vs/editor/contrib/hover/browser/hover":["Show or Focus Hover","The hover will not automatically take focus.","The hover will take focus only if it is already visible.","The hover will automatically take focus when it appears.","Show Definition Preview Hover","Scroll Up Hover","Scroll Down Hover","Scroll Left Hover","Scroll Right Hover","Page Up Hover","Page Down Hover","Go To Top Hover","Go To Bottom Hover"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["Loading...","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`."],"vs/editor/contrib/hover/browser/markerHoverParticipant":["View Problem","No quick fixes available","Checking for quick fixes...","No quick fixes available","Quick Fix..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["Replace with Previous Value","Replace with Next Value"],"vs/editor/contrib/indentation/browser/indentation":["Convert Indentation to Spaces","Convert Indentation to Tabs","Configured Tab Size","Default Tab Size","Current Tab Size","Select Tab Size for Current File","Indent Using Tabs","Indent Using Spaces","Change Tab Display Size","Detect Indentation from Content","Reindent Lines","Reindent Selected Lines"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["Double-click to insert","cmd + click","ctrl + click","option + click","alt + click","Go to Definition ({0}), right click for more","Go to Definition ({0})","Execute Command"],"vs/editor/contrib/inlineCompletions/browser/commands":["Show Next Inline Suggestion","Show Previous Inline Suggestion","Trigger Inline Suggestion","Accept Next Word Of Inline Suggestion","Accept Word","Accept Next Line Of Inline Suggestion","Accept Line","Accept Inline Suggestion","Accept","Hide Inline Suggestion","Always Show Toolbar"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["Suggestion:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["Whether an inline suggestion is visible","Whether the inline suggestion starts with whitespace","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab","Whether suggestions should be suppressed for the current suggestion"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["Inspect this in the accessible view ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["Icon for show next parameter hint.","Icon for show previous parameter hint.","{0} ({1})","Previous","Next"],"vs/editor/contrib/lineSelection/browser/lineSelection":["Expand Line Selection"],"vs/editor/contrib/linesOperations/browser/linesOperations":["Copy Line Up","&&Copy Line Up","Copy Line Down","Co&&py Line Down","Duplicate Selection","&&Duplicate Selection","Move Line Up","Mo&&ve Line Up","Move Line Down","Move &&Line Down","Sort Lines Ascending","Sort Lines Descending","Delete Duplicate Lines","Trim Trailing Whitespace","Delete Line","Indent Line","Outdent Line","Insert Line Above","Insert Line Below","Delete All Left","Delete All Right","Join Lines","Transpose Characters around the Cursor","Transform to Uppercase","Transform to Lowercase","Transform to Title Case","Transform to Snake Case","Transform to Camel Case","Transform to Kebab Case"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["Start Linked Editing","Background color when the editor auto renames on type."],"vs/editor/contrib/links/browser/links":["Failed to open this link because it is not well-formed: {0}","Failed to open this link because its target is missing.","Execute command","Follow link","cmd + click","ctrl + click","option + click","alt + click","Execute command {0}","Open Link"],"vs/editor/contrib/message/browser/messageController":["Whether the editor is currently showing an inline message"],"vs/editor/contrib/multicursor/browser/multicursor":["Cursor added: {0}","Cursors added: {0}","Add Cursor Above","&&Add Cursor Above","Add Cursor Below","A&&dd Cursor Below","Add Cursors to Line Ends","Add C&&ursors to Line Ends","Add Cursors To Bottom","Add Cursors To Top","Add Selection To Next Find Match","Add &&Next Occurrence","Add Selection To Previous Find Match","Add P&&revious Occurrence","Move Last Selection To Next Find Match","Move Last Selection To Previous Find Match","Select All Occurrences of Find Match","Select All &&Occurrences","Change All Occurrences","Focus Next Cursor","Focuses the next cursor","Focus Previous Cursor","Focuses the previous cursor"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Trigger Parameter Hints"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["Icon for show next parameter hint.","Icon for show previous parameter hint.","{0}, hint","Foreground color of the active item in the parameter hint."],"vs/editor/contrib/peekView/browser/peekView":["Whether the current code editor is embedded inside peek","Close","Background color of the peek view title area.","Color of the peek view title.","Color of the peek view title info.","Color of the peek view borders and arrow.","Background color of the peek view result list.","Foreground color for line nodes in the peek view result list.","Foreground color for file nodes in the peek view result list.","Background color of the selected entry in the peek view result list.","Foreground color of the selected entry in the peek view result list.","Background color of the peek view editor.","Background color of the gutter in the peek view editor.","Background color of sticky scroll in the peek view editor.","Match highlight color in the peek view result list.","Match highlight color in the peek view editor.","Match highlight border in the peek view editor."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["Open a text editor first to go to a line.","Go to line {0} and character {1}.","Go to line {0}.","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.","Current Line: {0}, Character: {1}. Type a line number to navigate to."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["To go to a symbol, first open a text editor with symbol information.","The active text editor does not provide symbol information.","No matching editor symbols","No editor symbols","Open to the Side","Open to the Bottom","symbols ({0})","properties ({0})","methods ({0})","functions ({0})","constructors ({0})","variables ({0})","classes ({0})","structs ({0})","events ({0})","operators ({0})","interfaces ({0})","namespaces ({0})","packages ({0})","type parameters ({0})","modules ({0})","properties ({0})","enumerations ({0})","enumeration members ({0})","strings ({0})","files ({0})","arrays ({0})","numbers ({0})","booleans ({0})","objects ({0})","keys ({0})","fields ({0})","constants ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["Cannot edit in read-only input","Cannot edit in read-only editor"],"vs/editor/contrib/rename/browser/rename":["No result.","An unknown error occurred while resolving rename location","Renaming '{0}' to '{1}'","Renaming {0} to {1}","Successfully renamed '{0}' to '{1}'. Summary: {2}","Rename failed to apply edits","Rename failed to compute edits","Rename Symbol","Enable/disable the ability to preview changes before renaming","Focus Next Rename Suggestion","Focus Previous Rename Suggestion"],"vs/editor/contrib/rename/browser/renameInputField":["Whether the rename input widget is visible","Whether the rename input widget is focused","Rename input. Type new name and press Enter to commit.","{0} to Rename, {1} to Preview","Received {0} rename suggestions"],"vs/editor/contrib/smartSelect/browser/smartSelect":["Expand Selection","&&Expand Selection","Shrink Selection","&&Shrink Selection"],"vs/editor/contrib/snippet/browser/snippetController2":["Whether the editor in current in snippet mode","Whether there is a next tab stop when in snippet mode","Whether there is a previous tab stop when in snippet mode","Go to next placeholder..."],"vs/editor/contrib/snippet/browser/snippetVariables":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sun","Mon","Tue","Wed","Thu","Fri","Sat","January","February","March","April","May","June","July","August","September","October","November","December","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["&&Toggle Editor Sticky Scroll","Sticky Scroll","&&Sticky Scroll","&&Focus Sticky Scroll","Toggle Editor Sticky Scroll","Focus Sticky Scroll","Select next sticky scroll line","Select previous sticky scroll line","Go to focused sticky scroll line","Select Editor"],"vs/editor/contrib/suggest/browser/suggest":["Whether any suggestion is focused","Whether suggestion details are visible","Whether there are multiple suggestions to pick from","Whether inserting the current suggestion yields in a change or has everything already been typed","Whether suggestions are inserted when pressing Enter","Whether the current suggestion has insert and replace behaviour","Whether the default behaviour is to insert or replace","Whether the current suggestion supports to resolve further details"],"vs/editor/contrib/suggest/browser/suggestController":["Accepting '{0}' made {1} additional edits","Trigger Suggest","Insert","Insert","Replace","Replace","Insert","show less","show more","Reset Suggest Widget Size"],"vs/editor/contrib/suggest/browser/suggestWidget":["Background color of the suggest widget.","Border color of the suggest widget.","Foreground color of the suggest widget.","Foreground color of the selected entry in the suggest widget.","Icon foreground color of the selected entry in the suggest widget.","Background color of the selected entry in the suggest widget.","Color of the match highlights in the suggest widget.","Color of the match highlights in the suggest widget when an item is focused.","Foreground color of the suggest widget status.","Loading...","No suggestions.","Suggest","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, docs: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["Close","Loading..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["Icon for more information in the suggest widget.","Read More"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Pressing Tab will now move focus to the next focusable element","Pressing Tab will now insert the tab character","Toggle Tab Key Moves Focus"],"vs/editor/contrib/tokenization/browser/tokenization":["Developer: Force Retokenize"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["Icon shown with a warning message in the extensions editor.","This document contains many non-basic ASCII unicode characters","This document contains many ambiguous unicode characters","This document contains many invisible unicode characters","Configure Unicode Highlight Options","The character {0} could be confused with the ASCII character {1}, which is more common in source code.","The character {0} could be confused with the character {1}, which is more common in source code.","The character {0} is invisible.","The character {0} is not a basic ASCII character.","Adjust settings","Disable Highlight In Comments","Disable highlighting of characters in comments","Disable Highlight In Strings","Disable highlighting of characters in strings","Disable Ambiguous Highlight","Disable highlighting of ambiguous characters","Disable Invisible Highlight","Disable highlighting of invisible characters","Disable Non ASCII Highlight","Disable highlighting of non basic ASCII characters","Show Exclude Options","Exclude {0} (invisible character) from being highlighted","Exclude {0} from being highlighted",'Allow unicode characters that are more common in the language "{0}".'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["Unusual Line Terminators","Detected unusual line terminators","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.","&&Remove Unusual Line Terminators","Ignore"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.","Border color of a symbol during read-access, like reading a variable.","Border color of a symbol during write-access, like writing to a variable.","Border color of a textual occurrence for a symbol.","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["Go to Next Symbol Highlight","Go to Previous Symbol Highlight","Trigger Symbol Highlight"],"vs/editor/contrib/wordOperations/browser/wordOperations":["Delete Word"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["Error on Line","Error","Warning on Line","Warning","Folded Area on Line","Folded","Breakpoint on Line","Breakpoint","Inline Suggestion on Line","Terminal Quick Fix","Quick Fix","Debugger Stopped on Breakpoint","Breakpoint","No Inlay Hints on Line","No Inlay Hints","Task Completed","Task Completed","Task Failed","Task Failed","Terminal Command Failed","Command Failed","Terminal Bell","Terminal Bell","Notebook Cell Completed","Notebook Cell Completed","Notebook Cell Failed","Notebook Cell Failed","Diff Line Inserted","Diff Line Deleted","Diff Line Modified","Chat Request Sent","Chat Request Sent","Chat Response Received","Chat Response Pending","Chat Response Pending","Clear","Clear","Save","Save","Format","Format"],"vs/platform/action/common/actionCommonCategories":["View","Help","Test","File","Preferences","Developer"],"vs/platform/actionWidget/browser/actionList":["{0} to apply, {1} to preview","{0} to apply","{0}, Disabled Reason: {1}","Action Widget"],"vs/platform/actionWidget/browser/actionWidget":["Background color for toggled action items in action bar.","Whether the action widget list is visible","Hide action widget","Select previous action","Select next action","Accept selected action","Preview selected action"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0} +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["Hide","Reset Menu"],"vs/platform/actions/common/menuService":["Hide '{0}'"],"vs/platform/configuration/common/configurationRegistry":["Default Language Configuration Overrides","Configure settings to be overridden for the {0} language.","Configure editor settings to be overridden for a language.","This setting does not support per-language configuration.","Configure editor settings to be overridden for a language.","This setting does not support per-language configuration.","Cannot register an empty property","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.","Cannot register '{0}'. This property is already registered.","Cannot register '{0}'. The associated policy {1} is already registered with {2}."],"vs/platform/contextkey/browser/contextKeyService":["A command that returns information about context keys"],"vs/platform/contextkey/common/contextkey":["Empty context key expression","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.","'in' after 'not'.","closing parenthesis ')'","Unexpected token","Did you forget to put && or || before the token?","Unexpected end of expression","Did you forget to put a context key?",`Expected: {0} +Received: '{1}'.`],"vs/platform/contextkey/common/contextkeys":["Whether the operating system is macOS","Whether the operating system is Linux","Whether the operating system is Windows","Whether the platform is a web browser","Whether the operating system is macOS on a non-browser platform","Whether the operating system is iOS","Whether the platform is a mobile web browser","Quality type of VS Code","Whether keyboard focus is inside an input box"],"vs/platform/contextkey/common/scanner":["Did you mean {0}?","Did you mean {0} or {1}?","Did you mean {0}, {1} or {2}?","Did you forget to open or close the quote?","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'."],"vs/platform/history/browser/contextScopedHistoryWidget":["Whether suggestion are visible"],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) was pressed. Waiting for second key of chord...","({0}) was pressed. Waiting for next key of chord...","The key combination ({0}, {1}) is not a command.","The key combination ({0}, {1}) is not a command."],"vs/platform/list/browser/listService":["Workbench","Maps to `Control` on Windows and Linux and to `Command` on macOS.","Maps to `Alt` on Windows and Linux and to `Option` on macOS.","The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.","Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.","Controls whether clicks in the scrollbar scroll page by page.","Controls tree indentation in pixels.","Controls whether the tree should render indent guides.","Controls whether lists and trees have smooth scrolling.","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.","Scrolling speed multiplier when pressing `Alt`.","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.","Filter elements when searching.","Controls the default find mode for lists and trees in the workbench.","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.","Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.","Use fuzzy matching when searching.","Use contiguous matching when searching.","Controls the type of matching used when searching lists and trees in the workbench.","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.","Controls whether sticky scrolling is enabled in trees.","Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run."],"vs/platform/markers/common/markers":["Error","Warning","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["recently used","similar commands","commonly used","other commands","similar commands","{0}, {1}","Command '{0}' resulted in an error"],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["Back","Press 'Enter' to confirm your input or 'Escape' to cancel","{0}/{1}","Type to narrow down results."],"vs/platform/quickinput/browser/quickInputController":["Toggle all checkboxes","{0} Results","{0} Selected","OK","Custom","Back ({0})","Back"],"vs/platform/quickinput/browser/quickInputList":["Quick Input"],"vs/platform/quickinput/browser/quickInputUtils":["Click to execute command '{0}'"],"vs/platform/theme/common/colorRegistry":["Overall foreground color. This color is only used if not overridden by a component.","Overall foreground for disabled elements. This color is only used if not overridden by a component.","Overall foreground color for error messages. This color is only used if not overridden by a component.","Foreground color for description text providing additional information, for example for a label.","The default color for icons in the workbench.","Overall border color for focused elements. This color is only used if not overridden by a component.","An extra border around elements to separate them from others for greater contrast.","An extra border around active elements to separate them from others for greater contrast.","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.","Color for text separators.","Foreground color for links in text.","Foreground color for links in text when clicked on and on mouse hover.","Foreground color for preformatted text segments.","Background color for preformatted text segments.","Background color for block quotes in text.","Border color for block quotes in text.","Background color for code blocks in text.","Shadow color of widgets such as find/replace inside the editor.","Border color of widgets such as find/replace inside the editor.","Input box background.","Input box foreground.","Input box border.","Border color of activated options in input fields.","Background color of activated options in input fields.","Background hover color of options in input fields.","Foreground color of activated options in input fields.","Input box foreground color for placeholder text.","Input validation background color for information severity.","Input validation foreground color for information severity.","Input validation border color for information severity.","Input validation background color for warning severity.","Input validation foreground color for warning severity.","Input validation border color for warning severity.","Input validation background color for error severity.","Input validation foreground color for error severity.","Input validation border color for error severity.","Dropdown background.","Dropdown list background.","Dropdown foreground.","Dropdown border.","Button foreground color.","Button separator color.","Button background color.","Button background color when hovering.","Button border color.","Secondary button foreground color.","Secondary button background color.","Secondary button background color when hovering.","Badge background color. Badges are small information labels, e.g. for search results count.","Badge foreground color. Badges are small information labels, e.g. for search results count.","Scrollbar shadow to indicate that the view is scrolled.","Scrollbar slider background color.","Scrollbar slider background color when hovering.","Scrollbar slider background color when clicked on.","Background color of the progress bar that can show for long running operations.","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.","Foreground color of error squigglies in the editor.","If set, color of double underlines for errors in the editor.","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.","Foreground color of warning squigglies in the editor.","If set, color of double underlines for warnings in the editor.","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.","Foreground color of info squigglies in the editor.","If set, color of double underlines for infos in the editor.","Foreground color of hint squigglies in the editor.","If set, color of double underlines for hints in the editor.","Border color of active sashes.","Editor background color.","Editor default foreground color.","Background color of sticky scroll in the editor","Background color of sticky scroll on hover in the editor","Border color of sticky scroll in the editor"," Shadow color of sticky scroll in the editor","Background color of editor widgets, such as find/replace.","Foreground color of editor widgets, such as find/replace.","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.","Quick picker background color. The quick picker widget is the container for pickers like the command palette.","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.","Quick picker color for grouping labels.","Quick picker color for grouping borders.","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.","Color of the editor selection.","Color of the selected text for high contrast.","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.","Border color for regions with the same content as the selection.","Color of the current search match.","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.","Border color of the current search match.","Border color of the other search matches.","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.","Color of the Search Editor query matches.","Border color of the Search Editor query matches.","Color of the text in the search viewlet's completion message.","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.","Background color of the editor hover.","Foreground color of the editor hover.","Border color of the editor hover.","Background color of the editor hover status bar.","Color of active links.","Foreground color of inline hints","Background color of inline hints","Foreground color of inline hints for types","Background color of inline hints for types","Foreground color of inline hints for parameters","Background color of inline hints for parameters","The color used for the lightbulb actions icon.","The color used for the lightbulb auto fix actions icon.","The color used for the lightbulb AI icon.","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.","Background color for the margin where lines got inserted.","Background color for the margin where lines got removed.","Diff overview ruler foreground for inserted content.","Diff overview ruler foreground for removed content.","Outline color for the text that got inserted.","Outline color for text that got removed.","Border color between the two text editors.","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.","The background color of unchanged blocks in the diff editor.","The foreground color of unchanged blocks in the diff editor.","The background color of unchanged code in the diff editor.","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree background when hovering over items using the mouse.","List/Tree foreground when hovering over items using the mouse.","List/Tree drag and drop background when moving items over other items when using the mouse.","List/Tree drag and drop border color when moving items between items when using the mouse.","List/Tree foreground color of the match highlights when searching inside the list/tree.","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.","List/Tree foreground color for invalid items, for example an unresolved root in explorer.","Foreground color of list items containing errors.","Foreground color of list items containing warnings.","Background color of the type filter widget in lists and trees.","Outline color of the type filter widget in lists and trees.","Outline color of the type filter widget in lists and trees, when there are no matches.","Shadow color of the type filter widget in lists and trees.","Background color of the filtered match.","Border color of the filtered match.","Tree stroke color for the indentation guides.","Tree stroke color for the indentation guides that are not active.","Table border color between columns.","Background color for odd table rows.","List/Tree foreground color for items that are deemphasized. ","Background color of checkbox widget.","Background color of checkbox widget when the element it's in is selected.","Foreground color of checkbox widget.","Border color of checkbox widget.","Border color of checkbox widget when the element it's in is selected.","Please use quickInputList.focusBackground instead","Quick picker foreground color for the focused item.","Quick picker icon foreground color for the focused item.","Quick picker background color for the focused item.","Border color of menus.","Foreground color of menu items.","Background color of menu items.","Foreground color of the selected menu item in menus.","Background color of the selected menu item in menus.","Border color of the selected menu item in menus.","Color of a separator menu item in menus.","Toolbar background when hovering over actions using the mouse","Toolbar outline when hovering over actions using the mouse","Toolbar background when holding the mouse over actions","Highlight background color of a snippet tabstop.","Highlight border color of a snippet tabstop.","Highlight background color of the final tabstop of a snippet.","Highlight border color of the final tabstop of a snippet.","Color of focused breadcrumb items.","Background color of breadcrumb items.","Color of focused breadcrumb items.","Color of selected breadcrumb items.","Background color of breadcrumb item picker.","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.","Border color on headers and the splitter in inline merge-conflicts.","Current overview ruler foreground for inline merge-conflicts.","Incoming overview ruler foreground for inline merge-conflicts.","Common ancestor overview ruler foreground for inline merge-conflicts.","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.","Minimap marker color for find matches.","Minimap marker color for repeating editor selections.","Minimap marker color for the editor selection.","Minimap marker color for infos.","Minimap marker color for warnings.","Minimap marker color for errors.","Minimap background color.",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.',"Minimap slider background color.","Minimap slider background color when hovering.","Minimap slider background color when clicked on.","The color used for the problems error icon.","The color used for the problems warning icon.","The color used for the problems info icon.","The foreground color used in charts.","The color used for horizontal lines in charts.","The red color used in chart visualizations.","The blue color used in chart visualizations.","The yellow color used in chart visualizations.","The orange color used in chart visualizations.","The green color used in chart visualizations.","The purple color used in chart visualizations."],"vs/platform/theme/common/iconRegistry":["The id of the font to use. If not set, the font that is defined first is used.","The font character associated with the icon definition.","Icon for the close action in widgets.","Icon for goto previous editor location.","Icon for goto next editor location."],"vs/platform/undoRedo/common/undoRedoService":["The following files have been closed and modified on disk: {0}.","The following files have been modified in an incompatible way: {0}.","Could not undo '{0}' across all files. {1}","Could not undo '{0}' across all files. {1}","Could not undo '{0}' across all files because changes were made to {1}","Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}","Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime","Would you like to undo '{0}' across all files?","&&Undo in {0} Files","Undo this &&File","Could not undo '{0}' because there is already an undo or redo operation running.","Would you like to undo '{0}'?","&&Yes","No","Could not redo '{0}' across all files. {1}","Could not redo '{0}' across all files. {1}","Could not redo '{0}' across all files because changes were made to {1}","Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}","Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime","Could not redo '{0}' because there is already an undo or redo operation running."],"vs/platform/workspace/common/workspace":["Code Workspace"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ko.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ko.js new file mode 100644 index 0000000..42398b8 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ko.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.ko",{"vs/base/browser/ui/actionbar/actionViewItems":["{0}({1})"],"vs/base/browser/ui/findinput/findInput":["\uC785\uB825"],"vs/base/browser/ui/findinput/findInputToggles":["\uB300/\uC18C\uBB38\uC790 \uAD6C\uBD84","\uB2E8\uC5B4 \uB2E8\uC704\uB85C","\uC815\uADDC\uC2DD \uC0AC\uC6A9"],"vs/base/browser/ui/findinput/replaceInput":["\uC785\uB825","\uB300/\uC18C\uBB38\uC790 \uBCF4\uC874"],"vs/base/browser/ui/hover/hoverWidget":["{0}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC \uC811\uADFC\uC131 \uBCF4\uAE30\uC5D0\uC11C \uC774\uB97C \uAC80\uC0AC\uD569\uB2C8\uB2E4.","\uD604\uC7AC \uD0A4 \uBC14\uC778\uB529\uC744 \uD1B5\uD574 \uD2B8\uB9AC\uAC70\uD560 \uC218 \uC5C6\uB294 \uC811\uADFC\uC131 \uBCF4\uAE30 \uC5F4\uAE30 \uBA85\uB839\uC744 \uD1B5\uD574 \uC811\uADFC\uC131 \uBCF4\uAE30\uC5D0\uC11C \uC774\uB97C \uAC80\uC0AC\uD569\uB2C8\uB2E4."],"vs/base/browser/ui/iconLabel/iconLabelHover":["\uB85C\uB4DC \uC911..."],"vs/base/browser/ui/inputbox/inputBox":["\uC624\uB958: {0}","\uACBD\uACE0: {0}","\uC815\uBCF4: {0}"," \uB610\uB294 {0} \uAE30\uB85D\uC758 \uACBD\uC6B0"," ({0} \uAE30\uB85D\uC6A9)","\uC785\uB825\uC774 \uC9C0\uC6CC\uC9D0"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["\uBC14\uC778\uB529 \uC548 \uB428"],"vs/base/browser/ui/selectBox/selectBoxCustom":["Box \uC120\uD0DD"],"vs/base/browser/ui/toolbar/toolbar":["\uAE30\uD0C0 \uC791\uC5C5..."],"vs/base/browser/ui/tree/abstractTree":["\uD544\uD130","\uC720\uC0AC \uD56D\uBAA9 \uC77C\uCE58","\uD544\uD130\uB9C1\uD560 \uD615\uC2DD","\uC785\uB825\uD558\uC5EC \uAC80\uC0C9","\uC785\uB825\uD558\uC5EC \uAC80\uC0C9","\uB2EB\uAE30","\uCC3E\uC740 \uC694\uC18C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."],"vs/base/common/actions":["(\uBE44\uC5B4 \uC788\uC74C)"],"vs/base/common/errorMessage":["{0}: {1}","\uC2DC\uC2A4\uD15C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4({0}).","\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB85C\uADF8\uB97C \uCC38\uC870\uD558\uC138\uC694.","\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB85C\uADF8\uB97C \uCC38\uC870\uD558\uC138\uC694.","{0}(\uCD1D {1}\uAC1C\uC758 \uC624\uB958)","\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB85C\uADF8\uB97C \uCC38\uC870\uD558\uC138\uC694."],"vs/base/common/keybindingLabels":["Ctrl","Shift","","Windows","Ctrl","Shift","","\uC288\uD37C","Ctrl","Shift","\uC635\uC158","\uBA85\uB839","Ctrl","Shift","","Windows","Ctrl","Shift","","\uC288\uD37C"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\uD3B8\uC9D1\uAE30","\uD604\uC7AC \uD3B8\uC9D1\uAE30\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","{0} \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8 \uCD5C\uC801\uD654 \uBAA8\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uB824\uBA74 {1}","{0} \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8 \uCD5C\uC801\uD654 \uBAA8\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uB824\uBA74 {1}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC \uBE60\uB978 \uC120\uD0DD\uC744 \uC5F4\uACE0 \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8 \uC811\uADFC\uC131 \uBAA8\uB4DC \uD1A0\uAE00 \uBA85\uB839\uC744 \uC2E4\uD589\uD569\uB2C8\uB2E4(\uC774 \uBA85\uB839\uC740 \uD604\uC7AC \uD0A4\uBCF4\uB4DC\uB97C \uD1B5\uD574 \uD2B8\uB9AC\uAC70\uD560 \uC218 \uC5C6\uC74C).","{0} {1}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC \uD0A4 \uBC14\uC778\uB529 \uD3B8\uC9D1\uAE30\uC5D0 \uC561\uC138\uC2A4\uD558\uC5EC \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8 \uC811\uADFC\uC131 \uBAA8\uB4DC \uD1A0\uAE00 \uBA85\uB839\uC5D0 \uB300\uD55C \uD0A4 \uBC14\uC778\uB529\uC744 \uD560\uB2F9\uD558\uACE0 \uC2E4\uD589\uD558\uC138\uC694."],"vs/editor/browser/coreCommands":["\uB354 \uAE34 \uC904\uB85C \uC774\uB3D9\uD558\uB294 \uACBD\uC6B0\uC5D0\uB3C4 \uB05D\uC5D0 \uACE0\uC815","\uB354 \uAE34 \uC904\uB85C \uC774\uB3D9\uD558\uB294 \uACBD\uC6B0\uC5D0\uB3C4 \uB05D\uC5D0 \uACE0\uC815","\uBCF4\uC870 \uCEE4\uC11C\uAC00 \uC81C\uAC70\uB428"],"vs/editor/browser/editorExtensions":["\uC2E4\uD589 \uCDE8\uC18C(&&U)","\uC2E4\uD589 \uCDE8\uC18C","\uB2E4\uC2DC \uC2E4\uD589(&&R)","\uB2E4\uC2DC \uC2E4\uD589","\uBAA8\uB450 \uC120\uD0DD(&&S)","\uBAA8\uB450 \uC120\uD0DD"],"vs/editor/browser/widget/codeEditorWidget":["\uCEE4\uC11C \uC218\uB97C {0}\uAC1C\uB85C \uC81C\uD55C\uD588\uC2B5\uB2C8\uB2E4. \uB354 \uD070 \uBCC0\uACBD \uB0B4\uC6A9\uC744 \uC704\uD574\uC11C\uB294 [\uCC3E\uC544\uC11C \uAD50\uCCB4](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace)\uB97C \uC0AC\uC6A9\uD558\uAC70\uB098 \uD3B8\uC9D1\uAE30 \uB2E4\uC911 \uCEE4\uC11C \uC81C\uD55C \uC124\uC815\uC744 \uB298\uB9AC\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4.","\uB2E4\uC911 \uCEE4\uC11C \uC81C\uD55C \uB298\uB9AC\uAE30"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4\uC758 '\uC0BD\uC785' \uC544\uC774\uCF58.","\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4\uC758 '\uC81C\uAC70' \uC544\uC774\uCF58.","\uC811\uADFC \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4\uC758 '\uB2EB\uAE30' \uC544\uC774\uCF58.","\uB2EB\uAE30","\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4\uC785\uB2C8\uB2E4. \uD0D0\uC0C9\uD558\uB824\uBA74 \uC704\uCABD \uBC0F \uC544\uB798\uCABD \uD654\uC0B4\uD45C\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uBCC0\uACBD\uB41C \uC904 \uC5C6\uC74C","\uC120 1\uAC1C \uBCC0\uACBD\uB428","\uC904 {0}\uAC1C \uBCC0\uACBD\uB428","\uCC28\uC774 {0}/{1}: \uC6D0\uB798 \uC904 {2}, {3}, \uC218\uC815\uB41C \uC904 {4}, {5}","\uBE44\uC5B4 \uC788\uC74C","{0} \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC904 {1}","{0} \uC6D0\uB798 \uC904 {1} \uC218\uC815\uB41C \uC904 {2}","+ {0} \uC218\uC815\uB41C \uC904 {1}","- {0} \uC6D0\uB798 \uC904 {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" {0}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC \uC811\uADFC\uC131 \uB3C4\uC6C0\uB9D0\uC744 \uC5FD\uB2C8\uB2E4."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["\uC0AD\uC81C\uB41C \uC904 \uBCF5\uC0AC","\uC0AD\uC81C\uB41C \uC904 \uBCF5\uC0AC","\uBCC0\uACBD\uB41C \uC904 \uBCF5\uC0AC","\uBCC0\uACBD\uB41C \uC904 \uBCF5\uC0AC","\uC0AD\uC81C\uB41C \uC904 \uBCF5\uC0AC({0})","\uBCC0\uACBD\uB41C \uC904({0}) \uBCF5\uC0AC","\uC774 \uBCC0\uACBD \uB0B4\uC6A9 \uB418\uB3CC\uB9AC\uAE30"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["\uACF5\uAC04\uC774 \uC81C\uD55C\uB41C \uACBD\uC6B0 \uC778\uB77C\uC778 \uBCF4\uAE30 \uC0AC\uC6A9","\uC774\uB3D9\uB41C \uCF54\uB4DC \uBE14\uB85D \uD45C\uC2DC","\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4 \uC5F4\uAE30","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED \uCD95\uC18C \uD1A0\uAE00","\uC774\uB3D9\uB41C \uCF54\uB4DC \uBE14\uB85D \uD45C\uC2DC \uD1A0\uAE00","\uACF5\uAC04\uC774 \uC81C\uD55C\uB41C \uACBD\uC6B0 \uC778\uB77C\uC778 \uBCF4\uAE30 \uC0AC\uC6A9 \uC124\uC815/\uD574\uC81C","diff \uD3B8\uC9D1\uAE30","\uC2A4\uC704\uCE58 \uCABD","\uBE44\uAD50 \uC774\uB3D9 \uC885\uB8CC","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uBAA8\uB4E0 \uC601\uC5ED \uCD95\uC18C","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uBAA8\uB4E0 \uC601\uC5ED \uD45C\uC2DC","\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4","\uB2E4\uC74C \uB2E4\uB978 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9","\uB2E4\uC74C \uB2E4\uB978 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED \uC811\uAE30","\uC704\uC5D0 \uC790\uC138\uD788 \uD45C\uC2DC\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uAC70\uB098 \uB04C\uC5B4\uB2E4 \uB193\uAE30","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED \uD45C\uC2DC","\uC544\uB798\uC5D0 \uC790\uC138\uD788 \uD45C\uC2DC\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uAC70\uB098 \uB04C\uC5B4\uB2E4 \uB193\uAE30","\uC228\uACA8\uC9C4 \uC120 {0}\uAC1C","\uB450 \uBC88 \uD074\uB9AD\uD558\uC5EC \uD3BC\uCE58\uAE30"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["\uBCC0\uACBD \uC0AC\uD56D\uACFC \uD568\uAED8 \uCF54\uB4DC\uAC00 {0} - {1}\uC904\uB85C \uC774\uB3D9\uB428","\uBCC0\uACBD \uC0AC\uD56D\uACFC \uD568\uAED8 \uCF54\uB4DC\uAC00 {0} - {1}\uC904\uC5D0\uC11C \uC774\uB3D9\uB428","\uCF54\uB4DC\uAC00 {0} - {1}\uC904\uB85C \uC774\uB3D9\uB428","\uCF54\uB4DC\uAC00 {0} - {1}\uC904\uC5D0\uC11C \uC774\uB3D9\uB428"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["\uC120\uD0DD\uD55C \uBCC0\uACBD \uB0B4\uC6A9 \uB418\uB3CC\uB9AC\uAE30","\uBCC0\uACBD \uB0B4\uC6A9 \uB418\uB3CC\uB9AC\uAE30"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC774\uB3D9\uB41C \uD14D\uC2A4\uD2B8\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC774\uB3D9\uB41C \uD14D\uC2A4\uD2B8\uC758 \uD65C\uC131 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED \uC704\uC82F \uC8FC\uC704\uC758 \uADF8\uB9BC\uC790 \uC0C9\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC758 \uC0BD\uC785\uC5D0 \uB300\uD55C \uC904 \uB370\uCF54\uB808\uC774\uC158\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC758 \uC81C\uAC70\uC5D0 \uB300\uD55C \uC904 \uB370\uCF54\uB808\uC774\uC158\uC785\uB2C8\uB2E4."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["{0} \uD0A4\uB97C \uB20C\uB7EC \uB9C8\uC6B0\uC2A4\uB97C \uC704\uC5D0 \uB193\uAE30"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["diff \uD3B8\uC9D1\uAE30 \uD5E4\uB354\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB2E4\uC911 \uD30C\uC77C diff \uD3B8\uC9D1\uAE30 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB2E4\uC911 \uD30C\uC77C \uCC28\uC774 \uD3B8\uC9D1\uAE30\uC758 \uD14C\uB450\uB9AC \uC0C9"],"vs/editor/common/config/editorConfigurationSchema":["\uD3B8\uC9D1\uAE30","\uD0ED\uC774 \uAC19\uC740 \uACF5\uBC31\uC758 \uC218\uC785\uB2C8\uB2E4. \uC774 \uC124\uC815\uC740 {0}\uC774(\uAC00) \uCF1C\uC838 \uC788\uC744 \uB54C \uD30C\uC77C \uB0B4\uC6A9\uC744 \uAE30\uBC18\uC73C\uB85C \uC7AC\uC815\uC758\uB429\uB2C8\uB2E4.",`\uB4E4\uC5EC\uC4F0\uAE30 \uB610\uB294 \`"tabSize"\uC5D0\uC11C '#editor.tabSize#'\uC758 \uAC12\uC744 \uC0AC\uC6A9\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uB294 \uACF5\uBC31 \uC218\uC785\uB2C8\uB2E4. \uC774 \uC124\uC815\uC740 '#editor.detectIndentation#'\uC774 \uCF1C\uC838 \uC788\uB294 \uACBD\uC6B0 \uD30C\uC77C \uB0B4\uC6A9\uC5D0 \uB530\uB77C \uC7AC\uC815\uC758\uB429\uB2C8\uB2E4.`,"`Tab`\uC744 \uB204\uB97C \uB54C \uACF5\uBC31\uC744 \uC0BD\uC785\uD558\uC138\uC694. \uC774 \uC124\uC815\uC740 {0}\uC774(\uAC00) \uCF1C\uC838 \uC788\uC744 \uB54C \uD30C\uC77C \uB0B4\uC6A9\uC744 \uAE30\uBC18\uC73C\uB85C \uC7AC\uC815\uC758\uB429\uB2C8\uB2E4.","\uD30C\uC77C \uB0B4\uC6A9\uC744 \uAE30\uBC18\uC73C\uB85C \uD30C\uC77C\uC744 \uC5F4 \uB54C {0} \uBC0F {1}\uC744(\uB97C) \uC790\uB3D9\uC73C\uB85C \uAC10\uC9C0\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB05D\uC5D0 \uC790\uB3D9 \uC0BD\uC785\uB41C \uACF5\uBC31\uC744 \uC81C\uAC70\uD569\uB2C8\uB2E4.","\uD070 \uD30C\uC77C\uC5D0 \uB300\uD55C \uD2B9\uC218 \uCC98\uB9AC\uB85C, \uBA54\uBAA8\uB9AC\uB97C \uB9CE\uC774 \uC0AC\uC6A9\uD558\uB294 \uD2B9\uC815 \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uB2E8\uC5B4 \uAE30\uBC18 \uCD94\uCC9C\uC744 \uB055\uB2C8\uB2E4.","\uD65C\uC131 \uBB38\uC11C\uC5D0\uC11C\uB9CC \uB2E8\uC5B4\uB97C \uC81C\uC548\uD569\uB2C8\uB2E4.","\uAC19\uC740 \uC5B8\uC5B4\uC758 \uBAA8\uB4E0 \uC5F4\uB9B0 \uBB38\uC11C\uC5D0\uC11C \uB2E8\uC5B4\uB97C \uC81C\uC548\uD569\uB2C8\uB2E4.","\uBAA8\uB4E0 \uC5F4\uB9B0 \uBB38\uC11C\uC5D0\uC11C \uB2E8\uC5B4\uB97C \uC81C\uC548\uD569\uB2C8\uB2E4.","\uBB38\uC11C\uC758 \uB2E8\uC5B4\uB97C \uAE30\uC900\uC73C\uB85C \uC644\uC131\uB3C4\uB97C \uACC4\uC0B0\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80 \uBC0F \uC644\uC131\uB3C4\uAC00 \uACC4\uC0B0\uB418\uB294 \uBB38\uC11C\uB97C \uAE30\uC900\uC73C\uB85C \uACC4\uC0B0\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBAA8\uB4E0 \uC0C9 \uD14C\uB9C8\uC5D0 \uB300\uD574 \uC758\uBBF8 \uCCB4\uACC4 \uAC15\uC870 \uD45C\uC2DC\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uBAA8\uB4E0 \uC0C9 \uD14C\uB9C8\uC5D0 \uB300\uD574 \uC758\uBBF8 \uCCB4\uACC4 \uAC15\uC870 \uD45C\uC2DC\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC758\uBBF8 \uCCB4\uACC4 \uAC15\uC870 \uD45C\uC2DC\uB294 \uD604\uC7AC \uC0C9 \uD14C\uB9C8\uC758 `semanticHighlighting` \uC124\uC815\uC5D0 \uB530\uB77C \uAD6C\uC131\uB429\uB2C8\uB2E4.","semanticHighlighting\uC774 \uC9C0\uC6D0\uD558\uB294 \uC5B8\uC5B4\uC5D0 \uB300\uD574 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD574\uB2F9 \uCF58\uD150\uCE20\uB97C \uB450 \uBC88 \uD074\uB9AD\uD558\uAC70\uB098 'Esc' \uD0A4\uB97C \uB204\uB974\uB354\uB77C\uB3C4 Peek \uD3B8\uC9D1\uAE30\uB97C \uC5F4\uB9B0 \uC0C1\uD0DC\uB85C \uC720\uC9C0\uD569\uB2C8\uB2E4.","\uC774 \uAE38\uC774\uB97C \uCD08\uACFC\uD558\uB294 \uC904\uC740 \uC131\uB2A5\uC0C1\uC758 \uC774\uC720\uB85C \uD1A0\uD070\uD654\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC6F9 \uC791\uC5C5\uC790\uC5D0\uC11C \uD1A0\uD070\uD654\uAC00 \uBE44\uB3D9\uAE30\uC801\uC73C\uB85C \uC218\uD589\uB418\uC5B4\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBE44\uB3D9\uAE30 \uD1A0\uD070\uD654\uAC00 \uAE30\uB85D\uB418\uC5B4\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uB514\uBC84\uAE45 \uC804\uC6A9\uC785\uB2C8\uB2E4.","\uB808\uAC70\uC2DC \uBC31\uADF8\uB77C\uC6B4\uB4DC \uD1A0\uD070\uD654\uC5D0 \uB300\uD574 \uBE44\uB3D9\uAE30 \uD1A0\uD070\uD654\uB97C \uD655\uC778\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uD1A0\uD070\uD654 \uC18D\uB3C4\uAC00 \uB290\uB824\uC9C8 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB514\uBC84\uAE45 \uC804\uC6A9\uC785\uB2C8\uB2E4.","\uB4E4\uC5EC\uC4F0\uAE30\uB97C \uB298\uB9AC\uAC70\uB098 \uC904\uC774\uB294 \uB300\uAD04\uD638 \uAE30\uD638\uB97C \uC815\uC758\uD569\uB2C8\uB2E4.","\uC5EC\uB294 \uB300\uAD04\uD638 \uBB38\uC790 \uB610\uB294 \uBB38\uC790\uC5F4 \uC2DC\uD000\uC2A4\uC785\uB2C8\uB2E4.","\uB2EB\uB294 \uB300\uAD04\uD638 \uBB38\uC790 \uB610\uB294 \uBB38\uC790\uC5F4 \uC2DC\uD000\uC2A4\uC785\uB2C8\uB2E4.","\uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB294 \uACBD\uC6B0 \uC911\uCCA9 \uC218\uC900\uC5D0 \uB530\uB77C \uC0C9\uC774 \uC9C0\uC815\uB41C \uB300\uAD04\uD638 \uC30D\uC744 \uC815\uC758\uD569\uB2C8\uB2E4.","\uC5EC\uB294 \uB300\uAD04\uD638 \uBB38\uC790 \uB610\uB294 \uBB38\uC790\uC5F4 \uC2DC\uD000\uC2A4\uC785\uB2C8\uB2E4.","\uB2EB\uB294 \uB300\uAD04\uD638 \uBB38\uC790 \uB610\uB294 \uBB38\uC790\uC5F4 \uC2DC\uD000\uC2A4\uC785\uB2C8\uB2E4.","diff \uACC4\uC0B0\uC774 \uCDE8\uC18C\uB41C \uD6C4 \uBC00\uB9AC\uCD08 \uB2E8\uC704\uB85C \uC2DC\uAC04\uC744 \uC81C\uD55C\uD569\uB2C8\uB2E4. \uC81C\uD55C \uC2DC\uAC04\uC774 \uC5C6\uB294 \uACBD\uC6B0 0\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uCC28\uC774\uB97C \uACC4\uC0B0\uD560 \uCD5C\uB300 \uD30C\uC77C \uD06C\uAE30(MB)\uC785\uB2C8\uB2E4. \uC81C\uD55C\uC774 \uC5C6\uC73C\uBA74 0\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C diff\uB97C \uB098\uB780\uD788 \uD45C\uC2DC\uD560\uC9C0 \uC778\uB77C\uC778\uC73C\uB85C \uD45C\uC2DC\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30 \uB108\uBE44\uAC00 \uC774 \uAC12\uBCF4\uB2E4 \uC791\uC73C\uBA74 \uC778\uB77C\uC778 \uBDF0\uAC00 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uACE0 \uD3B8\uC9D1\uAE30 \uB108\uBE44\uAC00 \uB108\uBB34 \uC791\uC744 \uACBD\uC6B0 \uC778\uB77C\uC778 \uBCF4\uAE30\uAC00 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD65C\uC131\uD654\uB418\uBA74 diff \uD3B8\uC9D1\uAE30\uB294 \uBCC0\uACBD \uB0B4\uC6A9\uC744 \uB418\uB3CC\uB9AC\uAE30 \uC704\uD574 \uAE00\uB9AC\uD504 \uC5EC\uBC31\uC5D0 \uD654\uC0B4\uD45C\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uBA74 Diff \uD3B8\uC9D1\uAE30\uAC00 \uC120\uD589 \uB610\uB294 \uD6C4\uD589 \uACF5\uBC31\uC758 \uBCC0\uACBD \uB0B4\uC6A9\uC744 \uBB34\uC2DC\uD569\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uCD94\uAC00/\uC81C\uAC70\uB41C \uBCC0\uACBD \uB0B4\uC6A9\uC5D0 \uB300\uD574 +/- \uD45C\uC2DC\uAE30\uB97C \uD45C\uC2DC\uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C CodeLens\uB97C \uD45C\uC2DC\uD560 \uAC83\uC778\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC904\uC774 \uBC14\uB00C\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uBDF0\uD3EC\uD2B8 \uB108\uBE44\uC5D0\uC11C \uC904\uC774 \uBC14\uB01D\uB2C8\uB2E4.","\uC904\uC740 {0} \uC124\uC815\uC5D0 \uB530\uB77C \uC904 \uBC14\uAFC8\uB429\uB2C8\uB2E4.","\uB808\uAC70\uC2DC \uBE44\uAD50 \uC54C\uACE0\uB9AC\uC998\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uACE0\uAE09 \uBE44\uAD50 \uC54C\uACE0\uB9AC\uC998\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC904 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED\uC758 \uCD5C\uC18C\uAC12\uC73C\uB85C \uC0AC\uC6A9\uB418\uB294 \uC904 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uC601\uC5ED\uC744 \uBE44\uAD50\uD560 \uB54C \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uC0AC\uC6A9\uB418\uB294 \uC904 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uAC10\uC9C0\uB41C \uCF54\uB4DC \uC774\uB3D9\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBB38\uC790\uAC00 \uC0BD\uC785\uB418\uAC70\uB098 \uC0AD\uC81C\uB41C \uC704\uCE58\uB97C \uBCFC \uC218 \uC788\uB3C4\uB85D diff \uD3B8\uC9D1\uAE30\uC5D0 \uBE48 \uC7A5\uC2DD\uC801 \uC694\uC18C\uB97C \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4."],"vs/editor/common/config/editorOptions":["\uD50C\uB7AB\uD3FC API\uB97C \uC0AC\uC6A9\uD558\uC5EC \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC774 \uC5F0\uACB0\uB41C \uC2DC\uAE30\uB97C \uAC10\uC9C0\uD569\uB2C8\uB2E4.","\uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC0AC\uC6A9\uC744 \uCD5C\uC801\uD654\uD569\uB2C8\uB2E4.","\uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC774 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uB2E4\uACE0 \uAC00\uC815\uD569\uB2C8\uB2E4.","\uD654\uBA74 \uD310\uB3C5\uAE30\uC5D0 \uCD5C\uC801\uD654\uB41C \uBAA8\uB4DC\uC5D0\uC11C UI\uB97C \uC2E4\uD589\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC8FC\uC11D\uC744 \uB2EC \uB54C \uACF5\uBC31 \uBB38\uC790\uB97C \uC0BD\uC785\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBE48 \uC904\uC744 \uC904 \uC8FC\uC11D\uC5D0 \uB300\uD55C \uD1A0\uAE00, \uCD94\uAC00 \uB610\uB294 \uC81C\uAC70 \uC791\uC5C5\uC73C\uB85C \uBB34\uC2DC\uD574\uC57C \uD558\uB294\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC120\uD0DD \uC601\uC5ED \uC5C6\uC774 \uD604\uC7AC \uC904 \uBCF5\uC0AC \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC785\uB825\uD558\uB294 \uB3D9\uC548 \uC77C\uCE58 \uD56D\uBAA9\uC744 \uCC3E\uAE30 \uC704\uD55C \uCEE4\uC11C \uC774\uB3D9 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uAC80\uC0C9 \uBB38\uC790\uC5F4\uC744 \uC2DC\uB4DC\uD558\uC9C0 \uB9C8\uC138\uC694.","\uCEE4\uC11C \uC704\uCE58\uC758 \uB2E8\uC5B4\uB97C \uD3EC\uD568\uD558\uC5EC \uD56D\uC0C1 \uD3B8\uC9D1\uAE30 \uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uAC80\uC0C9 \uBB38\uC790\uC5F4\uC744 \uC2DC\uB4DC\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C\uB9CC \uAC80\uC0C9 \uBB38\uC790\uC5F4\uC744 \uC2DC\uB4DC\uD558\uC138\uC694.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD\uC5D0\uC11C Find Widget\uC758 \uAC80\uC0C9 \uBB38\uC790\uC5F4\uC744 \uC2DC\uB529\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uCC3E\uAE30\uB97C \uC790\uB3D9\uC73C\uB85C \uCF1C\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4(\uAE30\uBCF8\uAC12).","\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uCC3E\uAE30\uB97C \uD56D\uC0C1 \uC790\uB3D9\uC73C\uB85C \uCF2D\uB2C8\uB2E4.","\uC5EC\uB7EC \uC904\uC758 \uCF58\uD150\uCE20\uB97C \uC120\uD0DD\uD558\uBA74 \uC120\uD0DD \uD56D\uBAA9\uC5D0\uC11C \uCC3E\uAE30\uAC00 \uC790\uB3D9\uC73C\uB85C \uCF1C\uC9D1\uB2C8\uB2E4.","\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uCC3E\uAE30\uB97C \uC790\uB3D9\uC73C\uB85C \uC124\uC815\uD558\uB294 \uC870\uAC74\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","macOS\uC5D0\uC11C Find Widget\uC774 \uACF5\uC720 \uD074\uB9BD\uBCF4\uB4DC \uCC3E\uAE30\uB97C \uC77D\uC744\uC9C0 \uC218\uC815\uD560\uC9C0 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC704\uC82F \uCC3E\uAE30\uC5D0\uC11C \uD3B8\uC9D1\uAE30 \uB9E8 \uC704\uC5D0 \uC904\uC744 \uCD94\uAC00\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. true\uC778 \uACBD\uC6B0 \uC704\uC82F \uCC3E\uAE30\uAC00 \uD45C\uC2DC\uB418\uBA74 \uCCAB \uBC88\uC9F8 \uC904 \uC704\uB85C \uC2A4\uD06C\uB864\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uB354 \uC774\uC0C1 \uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC744 \uB54C \uAC80\uC0C9\uC744 \uCC98\uC74C\uC774\uB098 \uB05D\uC5D0\uC11C \uC790\uB3D9\uC73C\uB85C \uB2E4\uC2DC \uC2DC\uC791\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAE00\uAF34 \uD569\uC790('calt' \uBC0F 'liga' \uAE00\uAF34 \uAE30\uB2A5)\uB97C \uC0AC\uC6A9\uD558\uAC70\uB098 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4. 'font-feature-settings' CSS \uC18D\uC131\uC758 \uC138\uBD84\uD654\uB41C \uC81C\uC5B4\uB97C \uC704\uD574 \uBB38\uC790\uC5F4\uB85C \uBCC0\uACBD\uD569\uB2C8\uB2E4.","\uBA85\uC2DC\uC801 'font-feature-settings' CSS \uC18D\uC131\uC785\uB2C8\uB2E4. \uD569\uC790\uB97C \uCF1C\uAC70\uB098 \uAEBC\uC57C \uD558\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uBD80\uC6B8\uC744 \uB300\uC2E0 \uC804\uB2EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uAE00\uAF34 \uD569\uC790 \uB610\uB294 \uAE00\uAF34 \uAE30\uB2A5\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4. CSS 'font-feature-settings' \uC18D\uC131\uC758 \uAC12\uC5D0 \uB300\uD574 \uD569\uC790 \uB610\uB294 \uBB38\uC790\uC5F4\uC744 \uC0AC\uC6A9\uD558\uAC70\uB098 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD558\uAE30 \uC704\uD55C \uBD80\uC6B8\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.","font-weight\uC5D0\uC11C font-variation-settings\uB85C \uBCC0\uD658\uC744 \uC0AC\uC6A9/\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. 'font-variation-settings' CSS \uC18D\uC131\uC758 \uC138\uBD84\uD654\uB41C \uCEE8\uD2B8\uB864\uC744 \uC704\uD574 \uC774\uB97C \uBB38\uC790\uC5F4\uB85C \uBCC0\uACBD\uD569\uB2C8\uB2E4.","\uBA85\uC2DC\uC801 'font-variation-settings' CSS \uC18D\uC131\uC785\uB2C8\uB2E4. font-weight\uB9CC font-variation-settings\uB85C \uBCC0\uD658\uD574\uC57C \uD558\uB294 \uACBD\uC6B0 \uBD80\uC6B8\uC744 \uB300\uC2E0 \uC804\uB2EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uAE00\uAF34 \uBCC0\uD615\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4. font-weight\uC5D0\uC11C font-variation-settings\uB85C \uBCC0\uD658\uC744 \uC0AC\uC6A9/\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD558\uB294 \uBD80\uC6B8\uC774\uAC70\uB098 CSS 'font-variation-settings' \uC18D\uC131 \uAC12\uC5D0 \uB300\uD55C \uBB38\uC790\uC5F4\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uAE00\uAF34 \uD06C\uAE30(\uD53D\uC140)\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.",'"\uD45C\uC900" \uBC0F "\uAD75\uAC8C" \uD0A4\uC6CC\uB4DC \uB610\uB294 1~1000 \uC0AC\uC774\uC758 \uC22B\uC790\uB9CC \uD5C8\uC6A9\uB429\uB2C8\uB2E4.','\uAE00\uAF34 \uB450\uAED8\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. "\uD45C\uC900" \uBC0F "\uAD75\uAC8C" \uD0A4\uC6CC\uB4DC \uB610\uB294 1~1000 \uC0AC\uC774\uC758 \uC22B\uC790\uB97C \uD5C8\uC6A9\uD569\uB2C8\uB2E4.',"\uACB0\uACFC\uC758 Peek \uBCF4\uAE30 \uD45C\uC2DC(\uAE30\uBCF8\uAC12)","\uAE30\uBCF8 \uACB0\uACFC\uB85C \uC774\uB3D9\uD558\uC5EC Peek \uBCF4\uAE30\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uAE30\uBCF8 \uACB0\uACFC\uB85C \uC774\uB3D9\uD558\uC5EC \uB2E4\uB978 \uD56D\uBAA9\uC5D0 \uB300\uD574 Peek \uC5C6\uB294 \uD0D0\uC0C9\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uC774 \uC124\uC815\uC740 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 'editor.editor.gotoLocation.multipleDefinitions' \uB610\uB294 'editor.editor.gotoLocation.multipleImplementations'\uC640 \uAC19\uC740 \uBCC4\uB3C4\uC758 \uC124\uC815\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.","\uC5EC\uB7EC \uB300\uC0C1 \uC704\uCE58\uAC00 \uC788\uB294 \uACBD\uC6B0 '\uC815\uC758\uB85C \uC774\uB3D9' \uBA85\uB839 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5EC\uB7EC \uB300\uC0C1 \uC704\uCE58\uAC00 \uC788\uB294 \uACBD\uC6B0 '\uC720\uD615 \uC815\uC758\uB85C \uC774\uB3D9' \uBA85\uB839 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5EC\uB7EC \uB300\uC0C1 \uC704\uCE58\uAC00 \uC788\uB294 \uACBD\uC6B0 'Go to Declaration' \uBA85\uB839 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5EC\uB7EC \uB300\uC0C1 \uC704\uCE58\uAC00 \uC788\uB294 \uACBD\uC6B0 '\uAD6C\uD604\uC73C\uB85C \uC774\uB3D9' \uBA85\uB839 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5EC\uB7EC \uB300\uC0C1 \uC704\uCE58\uAC00 \uC788\uB294 \uACBD\uC6B0 '\uCC38\uC870\uB85C \uC774\uB3D9' \uBA85\uB839 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","'\uC815\uC758\uB85C \uC774\uB3D9'\uC758 \uACB0\uACFC\uAC00 \uD604\uC7AC \uC704\uCE58\uC77C \uB54C \uC2E4\uD589\uB418\uB294 \uB300\uCCB4 \uBA85\uB839 ID\uC785\uB2C8\uB2E4.","'\uD615\uC2DD \uC815\uC758\uB85C \uC774\uB3D9'\uC758 \uACB0\uACFC\uAC00 \uD604\uC7AC \uC704\uCE58\uC77C \uB54C \uC2E4\uD589\uB418\uB294 \uB300\uCCB4 \uBA85\uB839 ID\uC785\uB2C8\uB2E4.","'\uC120\uC5B8\uC73C\uB85C \uC774\uB3D9'\uC758 \uACB0\uACFC\uAC00 \uD604\uC7AC \uC704\uCE58\uC77C \uB54C \uC2E4\uD589\uB418\uB294 \uB300\uCCB4 \uBA85\uB839 ID\uC785\uB2C8\uB2E4.","'\uAD6C\uD604\uC73C\uB85C \uC774\uB3D9'\uC758 \uACB0\uACFC\uAC00 \uD604\uC7AC \uC704\uCE58\uC77C \uB54C \uC2E4\uD589\uB418\uB294 \uB300\uCCB4 \uBA85\uB839 ID\uC785\uB2C8\uB2E4.","'\uCC38\uC870\uB85C \uC774\uB3D9'\uC758 \uACB0\uACFC\uAC00 \uD604\uC7AC \uC704\uCE58\uC77C \uB54C \uC2E4\uD589\uB418\uB294 \uB300\uCCB4 \uBA85\uB839 ID\uC785\uB2C8\uB2E4.","\uD638\uBC84 \uD45C\uC2DC \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD638\uBC84\uAC00 \uD45C\uC2DC\uB418\uAE30 \uC804\uAE4C\uC9C0\uC758 \uC9C0\uC5F0 \uC2DC\uAC04(\uBC00\uB9AC\uCD08)\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB97C \uD574\uB2F9 \uD56D\uBAA9 \uC704\uB85C \uC774\uB3D9\uD560 \uB54C \uD638\uBC84\uB97C \uACC4\uC18D \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD638\uBC84\uAC00 \uC228\uACA8\uC9C0\uAE30 \uC804\uAE4C\uC9C0\uC758 \uC9C0\uC5F0 \uC2DC\uAC04(\uBC00\uB9AC\uCD08)\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. 'editor.hover.sticky'\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uACF5\uBC31\uC774 \uC788\uB294 \uACBD\uC6B0 \uC120 \uC704\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uAC00\uC838\uAC00\uB294 \uAC83\uC744 \uD45C\uC2DC\uD558\uB294 \uAC83\uC744 \uC120\uD638\uD569\uB2C8\uB2E4.","\uBAA8\uB4E0 \uBB38\uC790\uAC00 \uB3D9\uC77C\uD55C \uB108\uBE44\uB77C\uACE0 \uAC00\uC815\uD569\uB2C8\uB2E4. \uC774 \uC54C\uACE0\uB9AC\uC998\uC740 \uACE0\uC815 \uD3ED \uAE00\uAF34\uACFC \uBB38\uC790 \uBAA8\uC591\uC758 \uB108\uBE44\uAC00 \uAC19\uC740 \uD2B9\uC815 \uC2A4\uD06C\uB9BD\uD2B8(\uC608: \uB77C\uD2F4 \uBB38\uC790)\uC5D0 \uC801\uC808\uD788 \uC791\uB3D9\uD558\uB294 \uBE60\uB978 \uC54C\uACE0\uB9AC\uC998\uC785\uB2C8\uB2E4.","\uB798\uD551 \uC810 \uACC4\uC0B0\uC744 \uBE0C\uB77C\uC6B0\uC800\uC5D0 \uC704\uC784\uD569\uB2C8\uB2E4. \uC774 \uC54C\uACE0\uB9AC\uC998\uC740 \uB9E4\uC6B0 \uB290\uB824\uC11C \uB300\uC6A9\uB7C9 \uD30C\uC77C\uC758 \uACBD\uC6B0 \uC911\uB2E8\uB420 \uC218 \uC788\uC9C0\uB9CC \uBAA8\uB4E0 \uACBD\uC6B0\uC5D0 \uC801\uC808\uD788 \uC791\uB3D9\uD569\uB2C8\uB2E4.","\uB798\uD551 \uC9C0\uC810\uC744 \uACC4\uC0B0\uD558\uB294 \uC54C\uACE0\uB9AC\uC998\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC811\uADFC\uC131 \uBAA8\uB4DC\uC5D0\uC11C\uB294 \uCD5C\uC0C1\uC758 \uD658\uACBD\uC744 \uC704\uD574 \uACE0\uAE09 \uAE30\uB2A5\uC774 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uCF54\uB4DC \uC791\uC5C5 \uBA54\uB274\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uCF54\uB4DC\uAC00 \uC788\uB294 \uC904\uC5D0 \uC788\uC744 \uB54C \uCF54\uB4DC \uB3D9\uC791 \uBA54\uB274\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uCF54\uB4DC\uAC00 \uC788\uB294 \uC904 \uB610\uB294 \uBE48 \uC904\uC5D0 \uC788\uB294 \uACBD\uC6B0 \uCF54\uB4DC \uB3D9\uC791 \uBA54\uB274\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uCF54\uB4DC \uB3D9\uC791 \uC804\uAD6C\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC704\uCABD\uC5D0\uC11C \uC2A4\uD06C\uB864\uD558\uB294 \uB3D9\uC548 \uC911\uCCA9\uB41C \uD604\uC7AC \uBC94\uC704\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uD45C\uC2DC\uD560 \uCD5C\uB300 \uACE0\uC815 \uC120 \uC218\uB97C \uC815\uC758\uD569\uB2C8\uB2E4.","\uACE0\uC815\uD560 \uC904\uC744 \uACB0\uC815\uD558\uB294 \uB370 \uC0AC\uC6A9\uD560 \uBAA8\uB378\uC744 \uC815\uC758\uD569\uB2C8\uB2E4. \uAC1C\uC694 \uBAA8\uB378\uC774 \uC5C6\uC73C\uBA74 \uB4E4\uC5EC\uC4F0\uAE30 \uBAA8\uB378\uC5D0 \uD574\uB2F9\uD558\uB294 \uC811\uAE30 \uACF5\uAE09\uC790 \uBAA8\uB378\uC5D0\uC11C \uB300\uCCB4\uB429\uB2C8\uB2E4. \uC774 \uC21C\uC11C\uB294 \uC138 \uAC00\uC9C0 \uACBD\uC6B0 \uBAA8\uB450 \uC801\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uB97C \uC0AC\uC6A9\uD558\uC5EC \uACE0\uC815 \uC2A4\uD06C\uB864 \uC2A4\uD06C\uB864\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB808\uC774 \uD78C\uD2B8\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uC778\uB808\uC774 \uD78C\uD2B8\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC74C","\uC778\uB808\uC774 \uD78C\uD2B8\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uD45C\uC2DC\uB418\uACE0 {0}\uC744(\uB97C) \uAE38\uAC8C \uB204\uB97C \uB54C \uC228\uACA8\uC9D1\uB2C8\uB2E4.","\uC778\uB808\uC774 \uD78C\uD2B8\uB294 \uAE30\uBCF8\uAC12\uC73C\uB85C \uC228\uACA8\uC838 \uC788\uC73C\uBA70 {0}\uC744(\uB97C) \uAE38\uAC8C \uB204\uB974\uBA74 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC778\uB808\uC774 \uD78C\uD2B8\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB808\uC774 \uD78C\uD2B8\uC758 \uAE00\uAF34 \uD06C\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uAE30\uBCF8\uC801\uC73C\uB85C {0}\uC740(\uB294) \uAD6C\uC131\uB41C \uAC12\uC774 {1}\uBCF4\uB2E4 \uC791\uAC70\uB098 \uD3B8\uC9D1\uAE30 \uAE00\uAF34 \uD06C\uAE30\uBCF4\uB2E4 \uD070 \uACBD\uC6B0\uC5D0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB808\uC774 \uD78C\uD2B8\uC758 \uAE00\uAF34 \uD328\uBC00\uB9AC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uBE44\uC6CC \uB450\uBA74 {0}\uC774(\uAC00) \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB808\uC774 \uD78C\uD2B8 \uC8FC\uC704\uC758 \uD328\uB529\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.",`\uC120 \uB192\uC774\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \r + - 0\uC744 \uC0AC\uC6A9\uD558\uC5EC \uAE00\uAF34 \uD06C\uAE30\uC5D0\uC11C \uC904 \uB192\uC774\uB97C \uC790\uB3D9\uC73C\uB85C \uACC4\uC0B0\uD569\uB2C8\uB2E4.\r + - 0\uC5D0\uC11C 8 \uC0AC\uC774\uC758 \uAC12\uC740 \uAE00\uAF34 \uD06C\uAE30\uC758 \uC2B9\uC218\uB85C \uC0AC\uC6A9\uB429\uB2C8\uB2E4.\r + - 8\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC740 \uAC12\uC774 \uC720\uD6A8 \uAC12\uC73C\uB85C \uC0AC\uC6A9\uB429\uB2C8\uB2E4.`,"\uBBF8\uB2C8\uB9F5 \uD45C\uC2DC \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5\uC744 \uC790\uB3D9\uC73C\uB85C \uC228\uAE38\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5\uC758 \uD06C\uAE30\uB294 \uD3B8\uC9D1\uAE30 \uB0B4\uC6A9\uACFC \uB3D9\uC77C\uD558\uBA70 \uC2A4\uD06C\uB864\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uB192\uC774\uB97C \uB9DE\uCD94\uAE30 \uC704\uD574 \uD544\uC694\uC5D0 \uB530\uB77C \uBBF8\uB2C8\uB9F5\uC774 \uD655\uC7A5\uB418\uAC70\uB098 \uCD95\uC18C\uB429\uB2C8\uB2E4(\uC2A4\uD06C\uB864 \uC5C6\uC74C).","\uBBF8\uB2C8\uB9F5\uC744 \uD3B8\uC9D1\uAE30\uBCF4\uB2E4 \uC791\uAC8C \uC720\uC9C0\uD560 \uC218 \uC788\uB3C4\uB85D \uD544\uC694\uC5D0 \uB530\uB77C \uBBF8\uB2C8\uB9F5\uC774 \uCD95\uC18C\uB429\uB2C8\uB2E4(\uC2A4\uD06C\uB864 \uC5C6\uC74C).","\uBBF8\uB2C8\uB9F5\uC758 \uD06C\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5\uC744 \uB80C\uB354\uB9C1\uD560 \uCE21\uBA74\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5 \uC2AC\uB77C\uC774\uB354\uAC00 \uD45C\uC2DC\uB418\uB294 \uC2DC\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5\uC5D0 \uADF8\uB824\uC9C4 \uCF58\uD150\uCE20\uC758 \uBC30\uC728: 1, 2 \uB610\uB294 3.","\uC904\uC758 \uC2E4\uC81C \uBB38\uC790(\uC0C9 \uBE14\uB85D \uC544\uB2D8)\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.","\uCD5C\uB300 \uD2B9\uC815 \uC218\uC758 \uC5F4\uC744 \uB80C\uB354\uB9C1\uD558\uB3C4\uB85D \uBBF8\uB2C8\uB9F5\uC758 \uB108\uBE44\uB97C \uC81C\uD55C\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uC704\uCABD \uAC00\uC7A5\uC790\uB9AC\uC640 \uCCAB \uBC88\uC9F8 \uC904 \uC0AC\uC774\uC758 \uACF5\uBC31\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uC544\uB798\uCABD \uAC00\uC7A5\uC790\uB9AC\uC640 \uB9C8\uC9C0\uB9C9 \uC904 \uC0AC\uC774\uC758 \uACF5\uBC31\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC785\uB825\uACFC \uB3D9\uC2DC\uC5D0 \uB9E4\uAC1C\uBCC0\uC218 \uBB38\uC11C\uC640 \uC720\uD615 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD558\uB294 \uD31D\uC5C5\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uB9E4\uAC1C\uBCC0\uC218 \uD78C\uD2B8 \uBA54\uB274\uC758 \uC8FC\uAE30 \uD639\uC740 \uBAA9\uB85D\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD558\uC600\uC744\uB54C \uC885\uB8CC\uD560 \uAC83\uC778\uC9C0 \uC5EC\uBD80\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F \uB0B4\uBD80\uC5D0 \uBE60\uB978 \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uBE60\uB978 \uC81C\uC548\uC774 \uC720\uB839 \uD14D\uC2A4\uD2B8\uB85C \uD45C\uC2DC\uB428","\uBE60\uB978 \uC81C\uC548\uC774 \uC0AC\uC6A9 \uC911\uC9C0\uB418\uC5C8\uC2B5\uB2C8\uB2E4.","\uBB38\uC790\uC5F4 \uB0B4\uC5D0\uC11C \uBE60\uB978 \uC81C\uC548\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uC8FC\uC11D \uB0B4\uC5D0\uC11C \uBE60\uB978 \uC81C\uC548\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uBB38\uC790\uC5F4 \uBC0F \uC8FC\uC11D \uC678\uBD80\uC5D0\uC11C \uBE60\uB978 \uC81C\uC548\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uC785\uB825\uD558\uB294 \uB3D9\uC548 \uC81C\uC548\uC744 \uC790\uB3D9\uC73C\uB85C \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC774\uAC83\uC740 \uC8FC\uC11D, \uBB38\uC790\uC5F4 \uBC0F \uAE30\uD0C0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uAE30 \uC704\uD574 \uC81C\uC5B4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uBE60\uB978 \uC81C\uC548\uC740 \uACE0\uC2A4\uD2B8 \uD14D\uC2A4\uD2B8 \uB610\uB294 \uC81C\uC548 \uC704\uC82F\uC73C\uB85C \uD45C\uC2DC\uD558\uB3C4\uB85D \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB610\uD55C \uC81C\uC548\uC774 \uD2B9\uC218 \uBB38\uC790\uC5D0 \uC758\uD574 \uC2E4\uD589\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD558\uB294 '{0}'-\uC124\uC815\uC5D0 \uC720\uC758\uD558\uC138\uC694.","\uC904 \uBC88\uD638\uB294 \uB80C\uB354\uB9C1\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC904 \uBC88\uD638\uB294 \uC808\uB300\uAC12\uC73C\uB85C \uB80C\uB354\uB9C1 \uB429\uB2C8\uB2E4.","\uC904 \uBC88\uD638\uB294 \uCEE4\uC11C \uC704\uCE58\uC5D0\uC11C \uC904 \uAC04\uACA9 \uAC70\uB9AC\uB85C \uB80C\uB354\uB9C1 \uB429\uB2C8\uB2E4.","\uC904 \uBC88\uD638\uB294 \uB9E4 10 \uC904\uB9C8\uB2E4 \uB80C\uB354\uB9C1\uC774 \uC774\uB8E8\uC5B4\uC9D1\uB2C8\uB2E4.","\uC904 \uBC88\uD638\uC758 \uD45C\uC2DC \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC774 \uD3B8\uC9D1\uAE30 \uB208\uAE08\uC790\uC5D0\uC11C \uB80C\uB354\uB9C1\uD560 \uACE0\uC815 \uD3ED \uBB38\uC790 \uC218\uC785\uB2C8\uB2E4.","\uC774 \uD3B8\uC9D1\uAE30 \uB208\uAE08\uC790\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uD2B9\uC815 \uC218\uC758 \uACE0\uC815 \uD3ED \uBB38\uC790 \uB4A4\uC5D0 \uC138\uB85C \uB208\uAE08\uC790\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4. \uC5EC\uB7EC \uB208\uAE08\uC790\uC758 \uACBD\uC6B0 \uC5EC\uB7EC \uAC12\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uBC30\uC5F4\uC774 \uBE44\uC5B4 \uC788\uB294 \uACBD\uC6B0 \uB208\uAE08\uC790\uAC00 \uADF8\uB824\uC9C0\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC138\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uB294 \uD544\uC694\uD55C \uACBD\uC6B0\uC5D0\uB9CC \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC138\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uAC00 \uD56D\uC0C1 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC138\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uB97C \uD56D\uC0C1 \uC228\uAE41\uB2C8\uB2E4.","\uC138\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uC758 \uD45C\uC2DC \uC720\uD615\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uB294 \uD544\uC694\uD55C \uACBD\uC6B0\uC5D0\uB9CC \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uAC00 \uD56D\uC0C1 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uB97C \uD56D\uC0C1 \uC228\uAE41\uB2C8\uB2E4.","\uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uC758 \uD45C\uC2DC \uC720\uD615\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC138\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uC758 \uB108\uBE44\uC785\uB2C8\uB2E4.","\uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uC758 \uB192\uC774\uC785\uB2C8\uB2E4.","\uD074\uB9AD\uC774 \uD398\uC774\uC9C0\uBCC4\uB85C \uC2A4\uD06C\uB864\uB418\uB294\uC9C0 \uB610\uB294 \uD074\uB9AD \uC704\uCE58\uB85C \uC774\uB3D9\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC124\uC815\uD558\uBA74 \uAC00\uB85C \uC2A4\uD06C\uB864 \uB9C9\uB300\uAC00 \uD3B8\uC9D1\uAE30 \uCF58\uD150\uCE20\uC758 \uD06C\uAE30\uB97C \uB298\uB9AC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uAE30\uBCF8\uC774 \uC544\uB2CC \uBAA8\uB4E0 ASCII \uBB38\uC790\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. U+0020\uACFC U+007E \uC0AC\uC774\uC758 \uBB38\uC790, \uD0ED, \uC904 \uBC14\uAFC8 \uBC0F \uCE90\uB9AC\uC9C0 \uB9AC\uD134\uB9CC \uAE30\uBCF8 ASCII\uB85C \uAC04\uC8FC\uB429\uB2C8\uB2E4.","\uACF5\uBC31\uB9CC \uC608\uC57D\uD558\uAC70\uB098 \uB108\uBE44\uAC00 \uC804\uD600 \uC5C6\uB294 \uBB38\uC790\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD604\uC7AC \uC0AC\uC6A9\uC790 \uB85C\uCE98\uC5D0\uC11C \uACF5\uD1B5\uB418\uB294 \uBB38\uC790\uB97C \uC81C\uC678\uD55C \uAE30\uBCF8 ASCII \uBB38\uC790\uC640 \uD63C\uB3D9\uD560 \uC218 \uC788\uB294 \uBB38\uC790\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC8FC\uC11D\uC758 \uBB38\uC790\uC5D0\uB3C4 \uC720\uB2C8\uCF54\uB4DC \uAC15\uC870 \uD45C\uC2DC\uB97C \uC801\uC6A9\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBB38\uC790\uC5F4\uC758 \uBB38\uC790\uC5D0\uB3C4 \uC720\uB2C8\uCF54\uB4DC \uAC15\uC870 \uD45C\uC2DC\uB97C \uC801\uC6A9\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAC15\uC870 \uD45C\uC2DC\uB418\uC9C0 \uC54A\uB294 \uD5C8\uC6A9\uB41C \uBB38\uC790\uB97C \uC815\uC758\uD569\uB2C8\uB2E4.","\uD5C8\uC6A9\uB41C \uB85C\uCE98\uC5D0\uC11C \uACF5\uD1B5\uC801\uC778 \uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uB294 \uAC15\uC870 \uD45C\uC2DC\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB77C\uC778 \uC81C\uC548\uC744 \uC790\uB3D9\uC73C\uB85C \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C\uC744 \uD45C\uC2DC\uD790 \uB54C\uB9C8\uB2E4 \uC778\uB77C\uC778 \uCD94\uCC9C \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C\uC744 \uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0A4\uBA74 \uC778\uB77C\uC778 \uCD94\uCC9C \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD560 \uC2DC\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uC81C\uC548\uC774 \uC81C\uC548 \uC704\uC82F\uACFC \uC0C1\uD638 \uC791\uC6A9\uD558\uB294 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uBA74 \uC778\uB77C\uC778 \uC81C\uC548\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC744 \uB54C \uC81C\uC548 \uC704\uC82F\uC774 \uC790\uB3D9\uC73C\uB85C \uD45C\uC2DC\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uC81C\uC548\uC758 \uAE00\uAF34 \uD328\uBC00\uB9AC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB77C\uC778 \uD3B8\uC9D1 \uB0B4\uC6A9\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C\uC744 \uD45C\uC2DC\uD560 \uB54C\uB9C8\uB2E4 \uC778\uB77C\uC778 \uD3B8\uC9D1 \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uCD94\uCC9C\uC744 \uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0A4\uBA74 \uC778\uB77C\uC778 \uD3B8\uC9D1 \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uD3B8\uC9D1 \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uD3B8\uC9D1 \uB3C4\uAD6C \uBAA8\uC74C\uC744 \uD45C\uC2DC\uD560 \uC2DC\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uD3B8\uC9D1\uC758 \uAE00\uAF34 \uD328\uBC00\uB9AC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uD3B8\uC9D1\uC758 \uBC30\uACBD\uC5D0 \uC0C9\uC744 \uC801\uC6A9\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. {0}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC \uB300\uAD04\uD638 \uAC15\uC870 \uC0C9\uC744 \uC7AC\uC815\uC758\uD569\uB2C8\uB2E4.","\uAC01 \uB300\uAD04\uD638 \uD615\uC2DD\uC5D0 \uACE0\uC720\uD55C \uB3C5\uB9BD\uC801\uC778 \uC0C9 \uD480\uC774 \uC788\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638 \uC30D \uAC00\uC774\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D\uC5D0 \uB300\uD574\uC11C\uB9CC \uB300\uAD04\uD638 \uC30D \uAC00\uC774\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638 \uC30D \uAC00\uC774\uB4DC\uB97C \uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uC0AC\uC6A9 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC218\uC9C1 \uB300\uAD04\uD638 \uC30D \uAC00\uC774\uB4DC\uC5D0 \uCD94\uAC00\uD558\uC5EC \uC218\uD3C9 \uAC00\uC774\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D\uC5D0 \uB300\uD574\uC11C\uB9CC \uC218\uD3C9 \uAC00\uC774\uB4DC\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uC218\uD3C9 \uB300\uAD04\uD638 \uC30D \uAC00\uC774\uB4DC\uB97C \uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4.","\uAC00\uB85C \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uC0AC\uC6A9 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uAC00 \uD65C\uC131 \uBE0C\uB798\uD0B7 \uC30D\uC744 \uAC15\uC870 \uD45C\uC2DC\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB4E4\uC5EC\uC4F0\uAE30 \uAC00\uC774\uB4DC\uB97C \uB80C\uB354\uB9C1\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120\uC744 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uBE0C\uB798\uD0B7 \uC548\uB0B4\uC120\uC774 \uAC15\uC870 \uD45C\uC2DC\uB41C \uACBD\uC6B0\uC5D0\uB3C4 \uD65C\uC131 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120\uC744 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120\uC744 \uAC15\uC870 \uD45C\uC2DC\uD558\uC9C0 \uB9C8\uC138\uC694.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD65C\uC131 \uB4E4\uC5EC\uC4F0\uAE30 \uAC00\uC774\uB4DC\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uC758 \uD14D\uC2A4\uD2B8 \uC624\uB978\uCABD\uC744 \uB36E\uC5B4 \uC4F0\uC9C0\uC54A\uACE0 \uC81C\uC548\uC744 \uC0BD\uC785\uD569\uB2C8\uB2E4.","\uC81C\uC548\uC744 \uC0BD\uC785\uD558\uACE0 \uCEE4\uC11C\uC758 \uC624\uB978\uCABD \uD14D\uC2A4\uD2B8\uB97C \uB36E\uC5B4\uC501\uB2C8\uB2E4.","\uC644\uB8CC\uB97C \uC218\uB77D\uD560 \uB54C \uB2E8\uC5B4\uB97C \uB36E\uC5B4\uC4F8\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC774\uAC83\uC740 \uC774 \uAE30\uB2A5\uC744 \uC120\uD0DD\uD558\uB294 \uD655\uC7A5\uC5D0 \uB530\uB77C \uB2E4\uB985\uB2C8\uB2E4.","\uC81C\uC548 \uD544\uD130\uB9C1 \uBC0F \uC815\uB82C\uC5D0\uC11C \uC791\uC740 \uC624\uD0C0\uB97C \uC124\uBA85\uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC815\uB82C\uD560 \uB54C \uCEE4\uC11C \uADFC\uCC98\uC5D0 \uD45C\uC2DC\uB418\uB294 \uB2E8\uC5B4\uB97C \uC6B0\uC120\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC800\uC7A5\uB41C \uC81C\uC548 \uC0AC\uD56D \uC120\uD0DD \uD56D\uBAA9\uC744 \uC5EC\uB7EC \uC791\uC5C5 \uC601\uC5ED \uBC0F \uCC3D\uC5D0\uC11C \uACF5\uC720\uD560 \uAC83\uC778\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4(`#editor.suggestSelection#` \uD544\uC694).","IntelliSense\uB97C \uC790\uB3D9\uC73C\uB85C \uD2B8\uB9AC\uAC70\uD560 \uB54C \uD56D\uC0C1 \uC81C\uC548\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.","IntelliSense\uB97C \uC790\uB3D9\uC73C\uB85C \uD2B8\uB9AC\uAC70\uD560 \uB54C \uC81C\uC548\uC744 \uC120\uD0DD\uD558\uC9C0 \uB9C8\uC138\uC694.","\uD2B8\uB9AC\uAC70 \uBB38\uC790\uC5D0\uC11C IntelliSense\uB97C \uD2B8\uB9AC\uAC70\uD560 \uB54C\uB9CC \uC81C\uC548\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.","\uC785\uB825\uD560 \uB54C IntelliSense\uB97C \uD2B8\uB9AC\uAC70\uD560 \uB54C\uB9CC \uC81C\uC548\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.","\uC704\uC82F\uC774 \uD45C\uC2DC\uB420 \uB54C \uC81C\uC548\uC744 \uC120\uD0DD\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC774\uB294 \uC790\uB3D9\uC73C\uB85C \uD2B8\uB9AC\uAC70\uB41C \uC81C\uC548('#editor.quickSuggestions#' \uBC0F '#editor.suggestOnTriggerCharacters#')\uC5D0\uB9CC \uC801\uC6A9\uB418\uBA70, \uC81C\uC548\uC774 \uBA85\uC2DC\uC801\uC73C\uB85C \uD638\uCD9C\uB420 \uB54C \uD56D\uC0C1 \uC120\uD0DD\uB429\uB2C8\uB2E4(\uC608: 'Ctrl+Space'\uB97C \uD1B5\uD574).","\uD65C\uC131 \uCF54\uB4DC \uC870\uAC01\uC774 \uBE60\uB978 \uC81C\uC548\uC744 \uBC29\uC9C0\uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC81C\uC548\uC758 \uC544\uC774\uCF58\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F \uD558\uB2E8\uC758 \uC0C1\uD0DC \uD45C\uC2DC\uC904 \uAC00\uC2DC\uC131\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC81C\uC548 \uACB0\uACFC\uB97C \uBBF8\uB9AC\uBCFC\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC81C\uC548 \uC138\uBD80 \uC815\uBCF4\uAC00 \uB808\uC774\uBE14\uACFC \uD568\uAED8 \uC778\uB77C\uC778\uC5D0 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC544\uB2C8\uBA74 \uC138\uBD80 \uC815\uBCF4 \uC704\uC82F\uC5D0\uB9CC \uD45C\uC2DC\uB418\uB294\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC774 \uC124\uC815\uC740 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC774\uC81C \uC81C\uC548 \uC704\uC82F\uC758 \uD06C\uAE30\uB97C \uC870\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC774 \uC124\uC815\uC740 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 'editor.suggest.showKeywords'\uB610\uB294 'editor.suggest.showSnippets'\uC640 \uAC19\uC740 \uBCC4\uB3C4\uC758 \uC124\uC815\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 `\uBA54\uC11C\uB4DC` \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD568\uC218' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC0DD\uC131\uC790' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC74C' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","IntelliSense \uD544\uD130\uB9C1\uC744 \uD65C\uC131\uD654\uD558\uBA74 \uCCAB \uBC88\uC9F8 \uBB38\uC790\uAC00 \uB2E8\uC5B4 \uC2DC\uC791 \uBD80\uBD84\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4(\uC608: `c`\uC758 \uACBD\uC6B0 `Console` \uB610\uB294 `WebContext`\uAC00 \uB420 \uC218 \uC788\uC73C\uBA70 `description`\uC740 _\uC548 \uB428_). \uBE44\uD65C\uC131\uD654\uD558\uBA74 IntelliSense\uAC00 \uB354 \uB9CE\uC740 \uACB0\uACFC\uB97C \uD45C\uC2DC\uD558\uC9C0\uB9CC \uC5EC\uC804\uD788 \uC77C\uCE58 \uD488\uC9C8\uC744 \uAE30\uC900\uC73C\uB85C \uC815\uB82C\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD544\uB4DC' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uBCC0\uC218' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD074\uB798\uC2A4' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uAD6C\uC870' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC778\uD130\uD398\uC774\uC2A4' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uBAA8\uB4C8' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC18D\uC131' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC774\uBCA4\uD2B8' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 `\uC5F0\uC0B0\uC790` \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uB2E8\uC704' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uAC12' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC0C1\uC218' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC5F4\uAC70\uD615' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 `enumMember` \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD0A4\uC6CC\uB4DC' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD14D\uC2A4\uD2B8' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC0C9' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 `\uD30C\uC77C` \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uCC38\uC870' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC0C9' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uD3F4\uB354' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB41C \uACBD\uC6B0 IntelliSense\uC5D0 'typeParameter' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uBA74 IntelliSense\uC5D0 '\uCF54\uB4DC \uC870\uAC01' \uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","IntelliSense\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD558\uBA74 `user`-\uC81C\uC548\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","IntelliSense\uB97C \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD55C \uACBD\uC6B0 `issues`-\uC81C\uC548\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC120\uD589 \uBC0F \uD6C4\uD589 \uACF5\uBC31\uC744 \uD56D\uC0C1 \uC120\uD0DD\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uC785\uB2C8\uB2E4.","\uD558\uC704 \uB2E8\uC5B4(\uC608: 'fooBar'\uC758 'foo' \uB610\uB294 'foo_bar')\uB97C \uC120\uD0DD\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uC785\uB2C8\uB2E4.","\uB4E4\uC5EC\uC4F0\uAE30\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC904 \uBC14\uAFC8 \uD589\uC774 \uC5F4 1\uC5D0\uC11C \uC2DC\uC791\uB429\uB2C8\uB2E4.","\uC904 \uBC14\uAFC8 \uD589\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uAC00 \uBD80\uBAA8\uC640 \uB3D9\uC77C\uD569\uB2C8\uB2E4.","\uC904 \uBC14\uAFC8 \uD589\uC774 \uBD80\uBAA8 \uCABD\uC73C\uB85C +1\uB9CC\uD07C \uB4E4\uC5EC\uC4F0\uAE30\uB429\uB2C8\uB2E4.","\uC904 \uBC14\uAFC8 \uD589\uC774 \uBD80\uBAA8 \uCABD\uC73C\uB85C +2\uB9CC\uD07C \uB4E4\uC5EC\uC4F0\uAE30\uB429\uB2C8\uB2E4.","\uC904 \uBC14\uAFC8 \uD589\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD30C\uC77C\uC744 \uC5EC\uB294 \uB300\uC2E0 `shift`\uB97C \uB204\uB978 \uCC44 \uD30C\uC77C\uC744 \uD14D\uC2A4\uD2B8 \uD3B8\uC9D1\uAE30\uB85C \uB04C\uC5B4\uC11C \uB193\uC744 \uC218 \uC788\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0 \uD30C\uC77C\uC744 \uB04C\uC5B4 \uB193\uC744 \uB54C \uC704\uC82F\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC774 \uC704\uC82F\uC744 \uC0AC\uC6A9\uD558\uBA74 \uD30C\uC77C\uC744 \uB4DC\uB86D\uD558\uB294 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD30C\uC77C\uC774 \uD3B8\uC9D1\uAE30\uC5D0 \uB4DC\uB86D\uB41C \uD6C4 \uB4DC\uB86D \uC120\uD0DD\uAE30 \uC704\uC82F\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uB4DC\uB86D \uC120\uD0DD\uAE30 \uC704\uC82F\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 \uAE30\uBCF8 \uB4DC\uB86D \uACF5\uAE09\uC790\uAC00 \uD56D\uC0C1 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uCF58\uD150\uCE20\uB97C \uB2E4\uB978 \uBC29\uBC95\uC73C\uB85C \uBD99\uC5EC\uB123\uC744 \uC218 \uC788\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCF58\uD150\uCE20\uB97C \uD3B8\uC9D1\uAE30\uC5D0 \uBD99\uC5EC\uB123\uC744 \uB54C \uC704\uC82F\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC774 \uC704\uC82F\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD30C\uC77C\uC744 \uBD99\uC5EC\uB123\uB294 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uCF58\uD150\uCE20\uB97C \uD3B8\uC9D1\uAE30\uC5D0 \uBD99\uC5EC\uB123\uC740 \uD6C4 \uBD99\uC5EC\uB123\uAE30 \uC120\uD0DD\uAE30 \uC704\uC82F\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uBD99\uC5EC\uB123\uAE30 \uC120\uD0DD\uAE30 \uC704\uC82F\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 \uAE30\uBCF8 \uBD99\uC5EC\uB123\uAE30 \uB3D9\uC791\uC774 \uD56D\uC0C1 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uCEE4\uBC0B \uBB38\uC790\uC5D0 \uB300\uD55C \uC81C\uC548\uC744 \uD5C8\uC6A9\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4 JavaScript\uC5D0\uC11C\uB294 \uC138\uBBF8\uCF5C\uB860(';')\uC774 \uC81C\uC548\uC744 \uD5C8\uC6A9\uD558\uACE0 \uD574\uB2F9 \uBB38\uC790\uB97C \uC785\uB825\uD558\uB294 \uCEE4\uBC0B \uBB38\uC790\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8\uB97C \uBCC0\uACBD\uD560 \uB54C `Enter` \uD0A4\uB97C \uC0AC\uC6A9\uD55C \uC81C\uC548\uB9CC \uD5C8\uC6A9\uD569\uB2C8\uB2E4.","'Tab' \uD0A4 \uC678\uC5D0 'Enter' \uD0A4\uC5D0 \uB300\uD55C \uC81C\uC548\uB3C4 \uD5C8\uC6A9\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC0C8 \uC904\uC744 \uC0BD\uC785\uD558\uB294 \uB3D9\uC791\uACFC \uC81C\uC548\uC744 \uD5C8\uC6A9\uD558\uB294 \uB3D9\uC791 \uAC04\uC758 \uBAA8\uD638\uD568\uC744 \uC5C6\uC568 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC5D0\uC11C \uD55C \uBC88\uC5D0 \uC77D\uC744 \uC218 \uC788\uB294 \uD3B8\uC9D1\uAE30 \uC904 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC744 \uAC80\uC0C9\uD558\uBA74 \uAE30\uBCF8\uAC12\uC774 500\uC73C\uB85C \uC790\uB3D9 \uC124\uC815\uB429\uB2C8\uB2E4. \uACBD\uACE0: \uAE30\uBCF8\uAC12\uBCF4\uB2E4 \uD070 \uC218\uC758 \uACBD\uC6B0 \uC131\uB2A5\uC5D0 \uC601\uD5A5\uC744 \uBBF8\uCE69\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCF58\uD150\uCE20","\uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC5D0\uC11C \uC778\uB77C\uC778 \uC81C\uC548\uC744 \uBC1C\uD45C\uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5B8\uC5B4 \uAD6C\uC131\uC744 \uC0AC\uC6A9\uD558\uC5EC \uB300\uAD04\uD638\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744 \uACBD\uC6B0\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uACF5\uBC31\uC758 \uC67C\uCABD\uC5D0 \uC788\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uB300\uAD04\uD638\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC2B5\uB2C8\uB2E4.","\uC0AC\uC6A9\uC790\uAC00 \uC5EC\uB294 \uAD04\uD638\uB97C \uCD94\uAC00\uD55C \uD6C4 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uAD04\uD638\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5B8\uC5B4 \uAD6C\uC131\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC8FC\uC11D\uC744 \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744 \uACBD\uC6B0\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uACF5\uBC31\uC758 \uC67C\uCABD\uC5D0 \uC788\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uC8FC\uC11D\uC744 \uC790\uB3D9\uC73C\uB85C \uB2EB\uC2B5\uB2C8\uB2E4.","\uC0AC\uC6A9\uC790\uAC00 \uC5EC\uB294 \uC8FC\uC11D\uC744 \uCD94\uAC00\uD55C \uD6C4 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC8FC\uC11D\uC744 \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uC811\uD55C \uB2EB\uB294 \uB530\uC634\uD45C \uB610\uB294 \uB300\uAD04\uD638\uAC00 \uC790\uB3D9\uC73C\uB85C \uC0BD\uC785\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uC81C\uAC70\uD569\uB2C8\uB2E4.","\uC0AD\uC81C\uD560 \uB54C \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uC811\uD55C \uB2EB\uB294 \uB530\uC634\uD45C \uB610\uB294 \uB300\uAD04\uD638\uB97C \uC81C\uAC70\uD574\uC57C \uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB2EB\uAE30 \uB530\uC634\uD45C \uB610\uB294 \uB300\uAD04\uD638\uAC00 \uC790\uB3D9\uC73C\uB85C \uC0BD\uC785\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uD574\uB2F9 \uD56D\uBAA9 \uC704\uC5D0 \uC785\uB825\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uC790\uAC00 \uB2EB\uB294 \uB530\uC634\uD45C \uB610\uB294 \uB300\uAD04\uD638 \uC704\uC5D0 \uC785\uB825\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5B8\uC5B4 \uAD6C\uC131\uC744 \uC0AC\uC6A9\uD558\uC5EC \uB530\uC634\uD45C\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744 \uACBD\uC6B0\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uACF5\uBC31\uC758 \uC67C\uCABD\uC5D0 \uC788\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uB530\uC634\uD45C\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC2B5\uB2C8\uB2E4.","\uC0AC\uC6A9\uC790\uAC00 \uC5EC\uB294 \uB530\uC634\uD45C\uB97C \uCD94\uAC00\uD55C \uD6C4 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB530\uC634\uD45C\uB97C \uC790\uB3D9\uC73C\uB85C \uB2EB\uC744\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uB294 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC790\uB3D9\uC73C\uB85C \uC0BD\uC785\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uB294 \uD604\uC7AC \uC904\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uB294 \uD604\uC7AC \uC904\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC720\uC9C0\uD558\uACE0 \uC5B8\uC5B4 \uC815\uC758 \uB300\uAD04\uD638\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uB294 \uD604\uC7AC \uC904\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC720\uC9C0\uD558\uACE0 \uC5B8\uC5B4 \uC815\uC758 \uB300\uAD04\uD638\uB97C \uC874\uC911\uD558\uBA70 \uC5B8\uC5B4\uBCC4\uB85C \uC815\uC758\uB41C \uD2B9\uBCC4 EnterRules\uB97C \uD638\uCD9C\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uB294 \uD604\uC7AC \uC904\uC758 \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC720\uC9C0\uD558\uACE0, \uC5B8\uC5B4 \uC815\uC758 \uB300\uAD04\uD638\uB97C \uC874\uC911\uD558\uACE0, \uC5B8\uC5B4\uC5D0 \uC758\uD574 \uC815\uC758\uB41C \uD2B9\uBCC4 EnterRules\uB97C \uD638\uCD9C\uD558\uACE0, \uC5B8\uC5B4\uC5D0 \uC758\uD574 \uC815\uC758\uB41C \uB4E4\uC5EC\uC4F0\uAE30 \uADDC\uCE59\uC744 \uC874\uC911\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9\uC790\uAC00 \uC904\uC744 \uC785\uB825, \uBD99\uC5EC\uB123\uAE30, \uC774\uB3D9 \uB610\uB294 \uB4E4\uC5EC\uC4F0\uAE30 \uD560 \uB54C \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uC790\uB3D9\uC73C\uB85C \uC870\uC815\uD558\uB3C4\uB85D \uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC5B8\uC5B4 \uAD6C\uC131\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC120\uD0DD \uD56D\uBAA9\uC744 \uC790\uB3D9\uC73C\uB85C \uB458\uB7EC\uC300 \uACBD\uC6B0\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uAC00 \uC544\uB2CC \uB530\uC634\uD45C\uB85C \uB458\uB7EC\uC309\uB2C8\uB2E4.","\uB530\uC634\uD45C\uAC00 \uC544\uB2CC \uB300\uAD04\uD638\uB85C \uB458\uB7EC\uC309\uB2C8\uB2E4.","\uB530\uC634\uD45C \uB610\uB294 \uB300\uAD04\uD638 \uC785\uB825 \uC2DC \uD3B8\uC9D1\uAE30\uAC00 \uC790\uB3D9\uC73C\uB85C \uC120\uD0DD \uC601\uC5ED\uC744 \uB458\uB7EC\uC300\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB4E4\uC5EC\uC4F0\uAE30\uC5D0 \uACF5\uBC31\uC744 \uC0AC\uC6A9\uD560 \uB54C \uD0ED \uBB38\uC790\uC758 \uC120\uD0DD \uB3D9\uC791\uC744 \uC5D0\uBBAC\uB808\uC774\uD2B8\uD569\uB2C8\uB2E4. \uC120\uD0DD \uC601\uC5ED\uC774 \uD0ED \uC815\uC9C0\uC5D0 \uACE0\uC815\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C CodeLens\uB97C \uD45C\uC2DC\uD560 \uAC83\uC778\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","CodeLens\uC758 \uAE00\uAF34 \uD328\uBC00\uB9AC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","CodeLens\uC758 \uAE00\uAF34 \uD06C\uAE30(\uD53D\uC140)\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. 0\uC73C\uB85C \uC124\uC815\uD558\uBA74 `#editor.fontSize#`\uC758 90%\uAC00 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC778\uB77C\uC778 \uC0C9 \uB370\uCF54\uB808\uC774\uD130 \uBC0F \uC0C9 \uC120\uD0DD\uC744 \uB80C\uB354\uB9C1\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC0C9 \uB370\uCF54\uB808\uC774\uD130\uB97C \uD074\uB9AD\uD558\uACE0 \uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uC0C9 \uC120\uD0DD\uAE30\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC0C9 \uB370\uCF54\uB808\uC774\uD130\uB97C \uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0A4\uBA74 \uC0C9 \uC120\uD0DD\uAE30\uAC00 \uD45C\uC2DC\uB418\uB3C4\uB85D \uC124\uC815","\uC0C9 \uB370\uCF54\uB808\uC774\uD130\uB97C \uD074\uB9AD\uD560 \uB54C \uC0C9 \uC120\uD0DD\uAE30\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC0C9 \uB370\uCF54\uB808\uC774\uD130\uC5D0\uC11C \uC0C9 \uC120\uD0DD\uAE30\uB97C \uD45C\uC2DC\uD558\uB3C4\uB85D \uC870\uAC74\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD55C \uBC88\uC5D0 \uB80C\uB354\uB9C1\uD560 \uC218 \uC788\uB294 \uCD5C\uB300 \uC0C9 \uB370\uCF54\uB808\uC774\uD130 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uC640 \uD0A4\uB85C \uC120\uD0DD\uD55C \uC601\uC5ED\uC5D0\uC11C \uC5F4\uC744 \uC120\uD0DD\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uAD6C\uBB38 \uAC15\uC870 \uD45C\uC2DC\uB97C \uD074\uB9BD\uBCF4\uB4DC\uB85C \uBCF5\uC0AC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCEE4\uC11C \uC560\uB2C8\uBA54\uC774\uC158 \uC2A4\uD0C0\uC77C\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBD80\uB4DC\uB7EC\uC6B4 \uCE90\uB7FF \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBD80\uB4DC\uB7EC\uC6B4 \uCE90\uB7FF \uC560\uB2C8\uBA54\uC774\uC158\uC740 \uC0AC\uC6A9\uC790\uAC00 \uBA85\uC2DC\uC801 \uC81C\uC2A4\uCC98\uB97C \uC0AC\uC6A9\uD558\uC5EC \uCEE4\uC11C\uB97C \uC774\uB3D9\uD560 \uB54C\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uBD80\uB4DC\uB7EC\uC6B4 \uCE90\uB7FF \uC560\uB2C8\uBA54\uC774\uC158\uC740 \uD56D\uC0C1 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uB9E4\uB044\uB7EC\uC6B4 \uCE90\uB7FF \uC560\uB2C8\uBA54\uC774\uC158\uC758 \uC0AC\uC6A9 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCEE4\uC11C \uC2A4\uD0C0\uC77C\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCEE4\uC11C \uC8FC\uBCC0\uC5D0 \uD45C\uC2DC\uB418\uB294 \uC120\uD589 \uC904(\uCD5C\uC18C 0)\uACFC \uD6C4\uD589 \uC904(\uCD5C\uC18C 1)\uC758 \uCD5C\uC18C \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC77C\uBD80 \uB2E4\uB978 \uD3B8\uC9D1\uAE30\uC5D0\uC11C\uB294 'scrollOff' \uB610\uB294 'scrollOffset'\uC73C\uB85C \uC54C\uB824\uC838 \uC788\uC2B5\uB2C8\uB2E4.","'cursorSurroundingLines'\uB294 \uD0A4\uBCF4\uB4DC \uB098 API\uB97C \uD1B5\uD574 \uD2B8\uB9AC\uAC70\uB420 \uB54C\uB9CC \uC801\uC6A9\uB429\uB2C8\uB2E4.","`cursorSurroundingLines`\uB294 \uD56D\uC0C1 \uC801\uC6A9\uB429\uB2C8\uB2E4.","'#cursorSurroundingLines#'\uB97C \uC801\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","`#editor.cursorStyle#` \uC124\uC815\uC774 'line'\uC73C\uB85C \uC124\uC815\uB418\uC5B4 \uC788\uC744 \uB54C \uCEE4\uC11C\uC758 \uB113\uC774\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB04C\uC5B4\uC11C \uB193\uAE30\uB85C \uC120\uD0DD \uC601\uC5ED\uC744 \uC774\uB3D9\uD560 \uC218 \uC788\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","svgs\uC640 \uD568\uAED8 \uC0C8 \uB80C\uB354\uB9C1 \uBA54\uC11C\uB4DC\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uAE00\uAF34 \uBB38\uC790\uC640 \uD568\uAED8 \uC0C8 \uB80C\uB354\uB9C1 \uBC29\uBC95\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uC548\uC815\uC801\uC778 \uB80C\uB354\uB9C1 \uBC29\uBC95\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uACF5\uBC31\uC774 \uC0C8\uB85C\uC6B4 \uC2E4\uD5D8\uC801 \uBA54\uC11C\uB4DC\uB85C \uB80C\uB354\uB9C1\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","'Alt' \uD0A4\uB97C \uB204\uB97C \uB54C \uC2A4\uD06C\uB864 \uC18D\uB3C4 \uC2B9\uC218\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0 \uCF54\uB4DC \uC811\uAE30\uAC00 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uACBD\uC6B0 \uC5B8\uC5B4\uBCC4 \uC811\uAE30 \uC804\uB7B5\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uB4E4\uC5EC\uC4F0\uAE30 \uAE30\uBC18 \uC804\uB7B5\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uB4E4\uC5EC\uC4F0\uAE30 \uAE30\uBC18 \uC811\uAE30 \uC804\uB7B5\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uC811\uAE30 \uBC94\uC704\uB97C \uACC4\uC0B0\uD558\uAE30 \uC704\uD55C \uC804\uB7B5\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC811\uD78C \uBC94\uC704\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uAC00\uC838\uC624\uAE30 \uBC94\uC704\uB97C \uC790\uB3D9\uC73C\uB85C \uCD95\uC18C\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3F4\uB354\uBE14 \uC601\uC5ED\uC758 \uCD5C\uB300 \uC218\uC785\uB2C8\uB2E4. \uD604\uC7AC \uC6D0\uBCF8\uC5D0 \uD3F4\uB354\uBE14 \uC601\uC5ED\uC774 \uB9CE\uC744 \uB54C \uC774 \uAC12\uC744 \uB298\uB9AC\uBA74 \uD3B8\uC9D1\uAE30\uC758 \uBC18\uC751\uC774 \uB5A8\uC5B4\uC9C8 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC811\uD78C \uC904\uC774 \uC904\uC744 \uD3BC\uCE5C \uD6C4 \uBE48 \uCF58\uD150\uCE20\uB97C \uD074\uB9AD\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAE00\uAF34 \uD328\uBC00\uB9AC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBD99\uC5EC\uB123\uC740 \uCF58\uD150\uCE20\uC758 \uC11C\uC2DD\uC744 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC790\uB3D9\uC73C\uB85C \uC9C0\uC815\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uD3EC\uB9F7\uD130\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC5B4\uC57C \uD558\uBA70 \uD3EC\uB9F7\uD130\uAC00 \uBB38\uC11C\uC5D0\uC11C \uBC94\uC704\uC758 \uC11C\uC2DD\uC744 \uC9C0\uC815\uD560 \uC218 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.","\uC785\uB825 \uD6C4 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC790\uB3D9\uC73C\uB85C \uC904\uC758 \uC11C\uC2DD\uC744 \uC9C0\uC815\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC138\uB85C \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC744 \uB80C\uB354\uB9C1\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC740 \uC8FC\uB85C \uB514\uBC84\uAE45\uC5D0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uCEE4\uC11C\uAC00 \uAC1C\uC694 \uB208\uAE08\uC790\uC5D0\uC11C \uAC00\uB824\uC838\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBB38\uC790 \uAC04\uACA9(\uD53D\uC140)\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC5F0\uACB0\uB41C \uD3B8\uC9D1\uC774 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uC5C8\uB294\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC5B8\uC5B4\uC5D0 \uB530\uB77C \uAD00\uB828 \uAE30\uD638(\uC608: HTML \uD0DC\uADF8)\uAC00 \uD3B8\uC9D1 \uC911\uC5D0 \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB9C1\uD06C\uB97C \uAC10\uC9C0\uD558\uACE0 \uD074\uB9AD\uD560 \uC218 \uC788\uAC8C \uB9CC\uB4E4\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC77C\uCE58\uD558\uB294 \uB300\uAD04\uD638\uB97C \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4 \uD720 \uC2A4\uD06C\uB864 \uC774\uBCA4\uD2B8\uC758 `deltaX` \uBC0F `deltaY`\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC2B9\uC218\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4 \uD720\uC744 \uC0AC\uC6A9\uD560 \uB54C 'Cmd` \uD0A4\uB97C \uB204\uB974\uACE0 \uC788\uC73C\uBA74 \uD3B8\uC9D1\uAE30\uC758 \uAE00\uAF34\uC744 \uD655\uB300/\uCD95\uC18C\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4 \uD720\uC744 \uC0AC\uC6A9\uD560 \uB54C 'Ctrl' \uD0A4\uB97C \uB204\uB974\uACE0 \uC788\uC73C\uBA74 \uD3B8\uC9D1\uAE30\uC758 \uAE00\uAF34\uC744 \uD655\uB300/\uCD95\uC18C\uD569\uB2C8\uB2E4.","\uC5EC\uB7EC \uCEE4\uC11C\uAC00 \uACB9\uCE58\uB294 \uACBD\uC6B0 \uCEE4\uC11C\uB97C \uBCD1\uD569\uD569\uB2C8\uB2E4.","Windows\uC640 Linux\uC758 'Control'\uC744 macOS\uC758 'Command'\uB85C \uB9E4\uD551\uD569\uB2C8\uB2E4.","Windows\uC640 Linux\uC758 'Alt'\uB97C macOS\uC758 'Option'\uC73C\uB85C \uB9E4\uD551\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uC5EC\uB7EC \uCEE4\uC11C\uB97C \uCD94\uAC00\uD560 \uB54C \uC0AC\uC6A9\uD560 \uC218\uC815\uC790\uC785\uB2C8\uB2E4. [\uC815\uC758\uB85C \uC774\uB3D9] \uBC0F [\uB9C1\uD06C \uC5F4\uAE30] \uB9C8\uC6B0\uC2A4 \uC81C\uC2A4\uCC98\uAC00 [\uBA40\uD2F0\uCEE4\uC11C \uC218\uC815\uC790\uC640](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier) \uCDA9\uB3CC\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC870\uC815\uB429\uB2C8\uB2E4.","\uAC01 \uCEE4\uC11C\uB294 \uD14D\uC2A4\uD2B8 \uD55C \uC904\uC744 \uBD99\uC5EC\uB123\uC2B5\uB2C8\uB2E4.","\uAC01 \uCEE4\uC11C\uB294 \uC804\uCCB4 \uD14D\uC2A4\uD2B8\uB97C \uBD99\uC5EC\uB123\uC2B5\uB2C8\uB2E4.","\uBD99\uC5EC\uB123\uC740 \uD14D\uC2A4\uD2B8\uC758 \uC904 \uC218\uAC00 \uCEE4\uC11C \uC218\uC640 \uC77C\uCE58\uD558\uB294 \uACBD\uC6B0 \uBD99\uC5EC\uB123\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD55C \uBC88\uC5D0 \uD65C\uC131 \uD3B8\uC9D1\uAE30\uC5D0 \uC788\uC744 \uC218 \uC788\uB294 \uCD5C\uB300 \uCEE4\uC11C \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBC1C\uC0DD \uD56D\uBAA9\uC744 \uAC15\uC870 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uD604\uC7AC \uD30C\uC77C\uC758 \uBC1C\uC0DD \uD56D\uBAA9\uB9CC \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC2E4\uD5D8\uC801: \uBAA8\uB4E0 \uC720\uD6A8\uD55C \uC5F4\uB9B0 \uD30C\uC77C\uC5D0\uC11C \uBC1C\uC0DD \uD56D\uBAA9\uC744 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC5F4\uB9B0 \uD30C\uC77C \uC804\uCCB4\uC5D0\uC11C \uBC1C\uC0DD \uC218\uB97C \uAC15\uC870 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAC1C\uC694 \uB208\uAE08\uC790 \uC8FC\uC704\uC5D0 \uD14C\uB450\uB9AC\uB97C \uADF8\uB9B4\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","Peek\uB97C \uC5EC\uB294 \uB3D9\uC548 \uD2B8\uB9AC\uC5D0 \uD3EC\uCEE4\uC2A4","\uBBF8\uB9AC \uBCF4\uAE30\uB97C \uC5F4 \uB54C \uD3B8\uC9D1\uAE30\uC5D0 \uD3EC\uCEE4\uC2A4","\uBBF8\uB9AC \uBCF4\uAE30 \uC704\uC82F\uC5D0\uC11C \uC778\uB77C\uC778 \uD3B8\uC9D1\uAE30\uC5D0 \uD3EC\uCEE4\uC2A4\uB97C \uB458\uC9C0 \uB610\uB294 \uD2B8\uB9AC\uC5D0 \uD3EC\uCEE4\uC2A4\uB97C \uB458\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC774\uB3D9 \uC815\uC758 \uB9C8\uC6B0\uC2A4 \uC81C\uC2A4\uCC98\uAC00 \uD56D\uC0C1 \uBBF8\uB9AC \uBCF4\uAE30 \uC704\uC82F\uC744 \uC5F4\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBE60\uB978 \uC81C\uC548\uC744 \uD45C\uC2DC\uD558\uAE30 \uC804\uAE4C\uC9C0\uC758 \uC9C0\uC5F0 \uC2DC\uAC04(\uBC00\uB9AC\uCD08)\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uAC00 \uC720\uD615\uC5D0 \uB530\uB77C \uC790\uB3D9\uC73C\uB85C \uC774\uB984\uC744 \uBC14\uAFC0\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 `editor.linkedEditing`\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC81C\uC5B4 \uBB38\uC790\uB97C \uB80C\uB354\uB9C1\uD560\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD30C\uC77C\uC774 \uC904 \uBC14\uAFC8\uC73C\uB85C \uB05D\uB098\uBA74 \uB9C8\uC9C0\uB9C9 \uC904 \uBC88\uD638\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.","\uC81C\uBCF8\uC6A9 \uC5EC\uBC31\uACFC \uD604\uC7AC \uC904\uC744 \uBAA8\uB450 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uAC00 \uD604\uC7AC \uC904 \uAC15\uC870 \uD45C\uC2DC\uB97C \uB80C\uB354\uB9C1\uD558\uB294 \uBC29\uC2DD\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD604\uC7AC \uC904 \uAC15\uC870 \uD45C\uC2DC\uB97C \uB80C\uB354\uB9C1\uD574\uC57C \uD558\uB294\uC9C0 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB2E8\uC5B4 \uC0AC\uC774\uC758 \uACF5\uBC31 \uD558\uB098\uB97C \uC81C\uC678\uD55C \uACF5\uBC31 \uBB38\uC790\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.","\uC120\uD0DD\uD55C \uD14D\uC2A4\uD2B8\uC5D0\uC11C\uB9CC \uACF5\uBC31 \uBB38\uC790\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.","\uD6C4\uD589 \uACF5\uBC31 \uBB38\uC790\uB9CC \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACF5\uBC31 \uBB38\uC790\uB97C \uB80C\uB354\uB9C1\uD560 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC120\uD0DD \uD56D\uBAA9\uC758 \uBAA8\uC11C\uB9AC\uB97C \uB465\uAE00\uAC8C \uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uAC00\uB85C\uB85C \uC2A4\uD06C\uB864\uB418\uB294 \uBC94\uC704\uB97C \uBC97\uC5B4\uB098\uB294 \uCD94\uAC00 \uBB38\uC790\uC758 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB9C8\uC9C0\uB9C9 \uC904 \uC774\uD6C4\uB85C \uC2A4\uD06C\uB864\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC138\uB85C\uC640 \uAC00\uB85C\uB85C \uB3D9\uC2DC\uC5D0 \uC2A4\uD06C\uB864\uD560 \uB54C\uC5D0\uB9CC \uC8FC\uCD95\uC744 \uB530\uB77C\uC11C \uC2A4\uD06C\uB864\uD569\uB2C8\uB2E4. \uD2B8\uB799\uD328\uB4DC\uC5D0\uC11C \uC138\uB85C\uB85C \uC2A4\uD06C\uB864\uD560 \uB54C \uAC00\uB85C \uB4DC\uB9AC\uD504\uD2B8\uB97C \uBC29\uC9C0\uD569\uB2C8\uB2E4.","Linux \uC8FC \uD074\uB9BD\uBCF4\uB4DC\uC758 \uC9C0\uC6D0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uAC00 \uC120\uD0DD \uD56D\uBAA9\uACFC \uC720\uC0AC\uD55C \uC77C\uCE58 \uD56D\uBAA9\uC744 \uAC15\uC870 \uD45C\uC2DC\uD574\uC57C\uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC811\uAE30 \uCEE8\uD2B8\uB864\uC744 \uD56D\uC0C1 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC811\uAE30 \uCEE8\uD2B8\uB864\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uACE0 \uC5EC\uBC31 \uD06C\uAE30\uB97C \uC904\uC774\uC138\uC694.","\uB9C8\uC6B0\uC2A4\uAC00 \uC5EC\uBC31 \uC704\uC5D0 \uC788\uC744 \uB54C\uC5D0\uB9CC \uC811\uAE30 \uCEE8\uD2B8\uB864\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC5EC\uBC31\uC758 \uC811\uAE30 \uCEE8\uD2B8\uB864\uC774 \uD45C\uC2DC\uB418\uB294 \uC2DC\uAE30\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294 \uCF54\uB4DC\uC758 \uD398\uC774\uB4DC \uC544\uC6C3\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uCDE8\uC18C\uC120 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uB294 \uBCC0\uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB2E4\uB978 \uC81C\uC548 \uC704\uC5D0 \uC870\uAC01 \uC81C\uC548\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uB2E4\uB978 \uC81C\uC548 \uC544\uB798\uC5D0 \uC870\uAC01 \uC81C\uC548\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uB2E4\uB978 \uC81C\uC548\uACFC \uD568\uAED8 \uC870\uAC01 \uC81C\uC548\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01 \uC81C\uC548\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01\uC774 \uB2E4\uB978 \uCD94\uCC9C\uACFC \uD568\uAED8 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80 \uBC0F \uC815\uB82C \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC2A4\uD06C\uB864\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uC644\uC131\uC774 \uD45C\uC2DC\uB420 \uB54C \uD654\uBA74 \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC811\uADFC\uC131 \uD78C\uD2B8\uB97C \uC81C\uACF5\uD574\uC57C \uD558\uB294\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F\uC758 \uAE00\uAF34 \uD06C\uAE30\uC785\uB2C8\uB2E4. {0}(\uC73C)\uB85C \uC124\uC815\uD558\uBA74 {1} \uAC12\uC774 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F\uC758 \uC904 \uB192\uC774\uC785\uB2C8\uB2E4. {0}(\uC73C)\uB85C \uC124\uC815\uD558\uBA74 {1} \uAC12\uC774 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uCD5C\uC18C\uAC12\uC740 8\uC785\uB2C8\uB2E4.","\uD2B8\uB9AC\uAC70 \uBB38\uC790\uB97C \uC785\uB825\uD560 \uB54C \uC81C\uC548\uC744 \uC790\uB3D9\uC73C\uB85C \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD56D\uC0C1 \uCCAB \uBC88\uC9F8 \uC81C\uC548\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.","`log`\uAC00 \uCD5C\uADFC\uC5D0 \uC644\uB8CC\uB418\uC5C8\uC73C\uBBC0\uB85C \uCD94\uAC00 \uC785\uB825\uC5D0\uC11C \uC81C\uC548\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uCD5C\uADFC \uC81C\uC548\uC744 \uC120\uD0DD\uD558\uC138\uC694(\uC608: `console.| -> console.log`).","\uD574\uB2F9 \uC81C\uC548\uC744 \uC644\uB8CC\uD55C \uC774\uC804 \uC811\uB450\uC0AC\uC5D0 \uB530\uB77C \uC81C\uC548\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4(\uC608: `co -> console` \uBC0F `con -> const`).","\uC81C\uC548 \uBAA9\uB85D\uC744 \uD45C\uC2DC\uD560 \uB54C \uC81C\uD55C\uC774 \uBBF8\uB9AC \uC120\uD0DD\uB418\uB294 \uBC29\uC2DD\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD0ED \uC644\uB8CC\uB294 \uD0ED\uC744 \uB204\uB97C \uB54C \uAC00\uC7A5 \uC77C\uCE58\uD558\uB294 \uC81C\uC548\uC744 \uC0BD\uC785\uD569\uB2C8\uB2E4.","\uD0ED \uC644\uC131\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uC811\uB450\uC0AC\uAC00 \uC77C\uCE58\uD558\uB294 \uACBD\uC6B0 \uCF54\uB4DC \uC870\uAC01\uC744 \uD0ED \uC644\uB8CC\uD569\uB2C8\uB2E4. 'quickSuggestions'\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC744 \uB54C \uAC00\uC7A5 \uC798 \uC791\uB3D9\uD569\uB2C8\uB2E4.","\uD0ED \uC644\uC131\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD569\uB2C8\uB2E4.","\uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790\uAC00 \uC790\uB3D9\uC73C\uB85C \uC81C\uAC70\uB429\uB2C8\uB2E4.","\uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790\uAC00 \uBB34\uC2DC\uB429\uB2C8\uB2E4.","\uC81C\uAC70\uD560 \uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790 \uD504\uB86C\uD504\uD2B8\uC785\uB2C8\uB2E4.","\uBB38\uC81C\uB97C \uC77C\uC73C\uD0AC \uC218 \uC788\uB294 \uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4.","\uD0ED \uC815\uC9C0 \uB4A4\uC5D0 \uACF5\uBC31\uC744 \uC0BD\uC785 \uBC0F \uC0AD\uC81C\uD569\uB2C8\uB2E4.","\uAE30\uBCF8 \uC904 \uBC14\uAFC8 \uADDC\uCE59\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uB2E8\uC5B4 \uBD84\uB9AC\uB294 \uC911\uAD6D\uC5B4/\uC77C\uBCF8\uC5B4/\uD55C\uAD6D\uC5B4(CJK) \uD14D\uC2A4\uD2B8\uC5D0 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. CJK\uAC00 \uC544\uB2CC \uD14D\uC2A4\uD2B8 \uB3D9\uC791\uC740 \uC77C\uBC18 \uD14D\uC2A4\uD2B8 \uB3D9\uC791\uACFC \uAC19\uC2B5\uB2C8\uB2E4.","\uC911\uAD6D\uC5B4/\uC77C\uBCF8\uC5B4/\uD55C\uAD6D\uC5B4(CJK) \uD14D\uC2A4\uD2B8\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB2E8\uC5B4 \uBD84\uB9AC \uADDC\uCE59\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB2E8\uC5B4 \uAD00\uB828 \uD0D0\uC0C9 \uB610\uB294 \uC791\uC5C5\uC744 \uC218\uD589\uD560 \uB54C \uB2E8\uC5B4 \uAD6C\uBD84 \uAE30\uD638\uB85C \uC0AC\uC6A9\uD560 \uBB38\uC790\uC785\uB2C8\uB2E4.","\uC904\uC774 \uBC14\uB00C\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uBDF0\uD3EC\uD2B8 \uB108\uBE44\uC5D0\uC11C \uC904\uC774 \uBC14\uB01D\uB2C8\uB2E4.","`#editor.wordWrapColumn#`\uC5D0\uC11C \uC904\uC774 \uBC14\uB01D\uB2C8\uB2E4.","\uBDF0\uD3EC\uD2B8\uC758 \uCD5C\uC18C\uAC12 \uBC0F `#editor.wordWrapColumn#`\uC5D0\uC11C \uC904\uC774 \uBC14\uB01D\uB2C8\uB2E4.","\uC904 \uBC14\uAFC8 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","`#editor.wordWrap#`\uC774 `wordWrapColumn` \uB610\uB294 'bounded'\uC778 \uACBD\uC6B0 \uD3B8\uC9D1\uAE30\uC758 \uC5F4 \uC904 \uBC14\uAFC8\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAE30\uBCF8 \uBB38\uC11C \uC0C9 \uACF5\uAE09\uC790\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC778\uB77C\uC778 \uC0C9 \uC7A5\uC2DD\uC744 \uD45C\uC2DC\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD0ED\uC744 \uBC1B\uC744\uC9C0 \uB610\uB294 \uD0D0\uC0C9\uC744 \uC704\uD574 \uC6CC\uD06C\uBCA4\uCE58\uB85C \uBBF8\uB8F0\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4."],"vs/editor/common/core/editorColorRegistry":["\uCEE4\uC11C \uC704\uCE58\uC758 \uC904 \uAC15\uC870 \uD45C\uC2DC\uC5D0 \uB300\uD55C \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uCEE4\uC11C \uC704\uCE58\uC758 \uC904 \uD14C\uB450\uB9AC\uC5D0 \uB300\uD55C \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBE60\uB978 \uC5F4\uAE30 \uBC0F \uCC3E\uAE30 \uAE30\uB2A5 \uB4F1\uC744 \uD1B5\uD574 \uAC15\uC870 \uD45C\uC2DC\uB41C \uC601\uC5ED\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAC15\uC870 \uC601\uC5ED \uC8FC\uBCC0\uC758 \uD14C\uB450\uB9AC\uC5D0 \uB300\uD55C \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4","\uAC15\uC870 \uD45C\uC2DC\uB41C \uAE30\uD638(\uC608: \uC815\uC758\uB85C \uC774\uB3D9 \uB610\uB294 \uB2E4\uC74C/\uC774\uC804 \uAE30\uD638\uB85C \uC774\uB3D9)\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC0C1\uC740 \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAC15\uC870 \uD45C\uC2DC\uB41C \uAE30\uD638 \uC8FC\uC704\uC758 \uD14C\uB450\uB9AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCEE4\uC11C \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCEE4\uC11C\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBE14\uB85D \uCEE4\uC11C\uC640 \uACB9\uCE58\uB294 \uAE00\uC790\uC758 \uC0C9\uC0C1\uC744 \uC0AC\uC6A9\uC790 \uC815\uC758\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uACF5\uBC31 \uBB38\uC790 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC904 \uBC88\uD638 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9\uC785\uB2C8\uB2E4.","'editorIndentGuide.background'\uB294 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 'editorIndentGuide.background1'\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9\uC785\uB2C8\uB2E4.","'editorIndentGuide.activeBackground'\uB294 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 'editorIndentGuide.activeBackground1'\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(1).","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(2).","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(3).","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(4).","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(5).","\uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(6).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(1).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(2).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(3).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(4).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(5).","\uD65C\uC131 \uD3B8\uC9D1\uAE30 \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120 \uC0C9(6).","\uD3B8\uC9D1\uAE30 \uD65C\uC131 \uC601\uC5ED \uC904\uBC88\uD638 \uC0C9\uC0C1","ID\uB294 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 'editorLineNumber.activeForeground'\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.","\uD3B8\uC9D1\uAE30 \uD65C\uC131 \uC601\uC5ED \uC904\uBC88\uD638 \uC0C9\uC0C1","editor.renderFinalNewline\uC774 \uD750\uB9AC\uAC8C \uC124\uC815\uB41C \uACBD\uC6B0 \uCD5C\uC885 \uD3B8\uC9D1\uAE30 \uC904\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB208\uAE08\uC758 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCF54\uB4DC \uB80C\uC988\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC77C\uCE58\uD558\uB294 \uAD04\uD638 \uB4A4\uC758 \uBC30\uACBD\uC0C9","\uC77C\uCE58\uD558\uB294 \uBE0C\uB798\uD0B7 \uBC15\uC2A4\uC758 \uC0C9\uC0C1","\uAC1C\uC694 \uB208\uAE08 \uACBD\uACC4\uC758 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uAC1C\uC694 \uB208\uAE08\uC790\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uAC70\uD130\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAC70\uD130\uC5D0\uB294 \uAE00\uB9AC\uD504 \uC5EC\uBC31\uACFC \uD589 \uC218\uAC00 \uC788\uC2B5\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC758 \uBD88\uD544\uC694\uD55C(\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294) \uC18C\uC2A4 \uCF54\uB4DC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.",`\uD3B8\uC9D1\uAE30\uC758 \uBD88\uD544\uC694\uD55C(\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294) \uC18C\uC2A4 \uCF54\uB4DC \uBD88\uD22C\uBA85\uB3C4\uC785\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4 "#000000c0"\uC740 75% \uBD88\uD22C\uBA85\uB3C4\uB85C \uCF54\uB4DC\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4. \uACE0\uB300\uBE44 \uD14C\uB9C8\uC758 \uACBD\uC6B0 \uD398\uC774\uB4DC \uC544\uC6C3\uD558\uC9C0 \uC54A\uACE0 'editorUnnecessaryCode.border' \uD14C\uB9C8 \uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uBD88\uD544\uC694\uD55C \uCF54\uB4DC\uC5D0 \uBC11\uC904\uC744 \uADF8\uC73C\uC138\uC694.`,"\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC2A4\uD2B8 \uD14D\uC2A4\uD2B8\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC2A4\uD2B8 \uD14D\uC2A4\uD2B8\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC2A4\uD2B8 \uD14D\uC2A4\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBC94\uC704\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uD45C\uC2DD \uC0C9\uC774 \uAC15\uC870 \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC624\uB958\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uB9C8\uCEE4 \uC0C9\uC785\uB2C8\uB2E4.","\uACBD\uACE0\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uB9C8\uCEE4 \uC0C9\uC785\uB2C8\uB2E4.","\uC815\uBCF4\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uB9C8\uCEE4 \uC0C9\uC785\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(1)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(2)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(3)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(4)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(5)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9(6)\uC785\uB2C8\uB2E4. \uB300\uAD04\uD638 \uC30D \uC0C9 \uC9C0\uC815\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uC608\uAE30\uCE58 \uC54A\uC740 \uB300\uAD04\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(1). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(2). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(3). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(4). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(5). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(6). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(1). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(2). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(3). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(4). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(5). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uD65C\uC131 \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4(6). \uB300\uAD04\uD638 \uC30D \uC548\uB0B4\uC120\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","\uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uB97C \uAC15\uC870 \uD45C\uC2DC\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uB294 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uB97C \uAC15\uC870 \uD45C\uC2DC\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uB294 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4."],"vs/editor/common/editorContextKeys":["\uD3B8\uC9D1\uAE30 \uD14D\uC2A4\uD2B8\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80(\uCEE4\uC11C\uAC00 \uAE5C\uBC15\uC784)","\uD3B8\uC9D1\uAE30 \uB610\uB294 \uD3B8\uC9D1\uAE30 \uC704\uC82F\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80(\uC608: \uD3EC\uCEE4\uC2A4\uAC00 \uCC3E\uAE30 \uC704\uC82F\uC5D0 \uC788\uC74C)","\uD3B8\uC9D1\uAE30 \uB610\uB294 \uC11C\uC2DD \uC788\uB294 \uD14D\uC2A4\uD2B8 \uC785\uB825\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80(\uCEE4\uC11C\uAC00 \uAE5C\uBC15\uC784)","\uD3B8\uC9D1\uAE30\uAC00 \uC77D\uAE30 \uC804\uC6A9\uC778\uC9C0 \uC5EC\uBD80","\uCEE8\uD14D\uC2A4\uD2B8\uAC00 diff \uD3B8\uC9D1\uAE30\uC778\uC9C0 \uC5EC\uBD80","\uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uD3EC\uD568\uB41C diff \uD3B8\uC9D1\uAE30\uC778\uC9C0 \uC5EC\uBD80","\uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uB2E4\uC911 diff \uD3B8\uC9D1\uAE30\uC778\uC9C0 \uC5EC\uBD80","\uB2E4\uC911 diff \uD3B8\uC9D1\uAE30\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC774 \uCD95\uC18C\uB418\uB294\uC9C0 \uC5EC\uBD80","diff \uD3B8\uC9D1\uAE30\uC5D0 \uBCC0\uACBD \uC0AC\uD56D\uC774 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uC774\uB3D9\uB41C \uCF54\uB4DC \uBE14\uB85D\uC774 \uBE44\uAD50\uB97C \uC704\uD574 \uC120\uD0DD\uB418\uC5C8\uB294\uC9C0 \uC5EC\uBD80","\uC561\uC138\uC2A4 \uAC00\uB2A5\uD55C Diff \uBDF0\uC5B4 \uD45C\uC2DC \uC5EC\uBD80","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB098\uB780\uD788 \uC778\uB77C\uC778 \uC911\uB2E8\uC810\uC5D0 \uC5F0\uACB0\uD560\uC9C0 \uC5EC\uBD80","'editor.columnSelection'\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uB418\uC5B4 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC120\uD0DD\uB41C \uD14D\uC2A4\uD2B8\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC5EC\uB7EC \uAC1C\uC758 \uC120\uD0DD \uD56D\uBAA9\uC774 \uC788\uB294\uC9C0 \uC5EC\uBD80","'Tab' \uD0A4\uB97C \uB204\uB974\uBA74 \uD3B8\uC9D1\uAE30 \uBC16\uC73C\uB85C \uD3EC\uCEE4\uC2A4\uAC00 \uC774\uB3D9\uD558\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30 \uD638\uBC84\uAC00 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30 \uAC00\uB9AC\uD0A4\uAE30\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uC2A4\uD2F0\uD0A4 \uC2A4\uD06C\uB864\uC758 \uD3EC\uCEE4\uC2A4 \uC5EC\uBD80","\uC2A4\uD2F0\uD0A4 \uC2A4\uD06C\uB864\uC758 \uAC00\uC2DC\uC131 \uC5EC\uBD80","\uB3C5\uB9BD \uC2E4\uD589\uD615 \uC0C9 \uD3B8\uC9D1\uAE30\uAC00 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uB3C5\uB9BD \uC2E4\uD589\uD615 \uC0C9 \uD3B8\uC9D1\uAE30\uAC00 \uD3EC\uCEE4\uC2A4\uB418\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uAC00 \uB354 \uD070 \uD3B8\uC9D1\uAE30(\uC608: \uC804\uC790 \uD544\uAE30\uC7A5)\uC5D0 \uC18D\uD574 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC758 \uC5B8\uC5B4 \uC2DD\uBCC4\uC790","\uD3B8\uC9D1\uAE30\uC5D0 \uC644\uC131 \uD56D\uBAA9 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uCF54\uB4DC \uC791\uC5C5 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 CodeLens \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC815\uC758 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC120\uC5B8 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uAD6C\uD604 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uD615\uC2DD \uC815\uC758 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uD638\uBC84 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uBB38\uC11C \uAC15\uC870 \uD45C\uC2DC \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uBB38\uC11C \uAE30\uD638 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uCC38\uC870 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC774\uB984 \uBC14\uAFB8\uAE30 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC2DC\uADF8\uB2C8\uCC98 \uB3C4\uC6C0\uB9D0 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC778\uB77C\uC778 \uD78C\uD2B8 \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uBB38\uC11C \uC11C\uC2DD \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uBB38\uC11C \uC120\uD0DD \uC11C\uC2DD \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC5EC\uB7EC \uAC1C\uC758 \uBB38\uC11C \uC11C\uC2DD \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD3B8\uC9D1\uAE30\uC5D0 \uC5EC\uB7EC \uAC1C\uC758 \uBB38\uC11C \uC120\uD0DD \uC11C\uC2DD \uACF5\uAE09\uC790\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80"],"vs/editor/common/languages":["\uBC30\uC5F4","\uBD80\uC6B8","\uD074\uB798\uC2A4","\uC0C1\uC218","\uC0DD\uC131\uC790","\uC5F4\uAC70\uD615","\uC5F4\uAC70\uD615 \uBA64\uBC84","\uC774\uBCA4\uD2B8","\uD544\uB4DC","\uD30C\uC77C","\uD568\uC218","\uC778\uD130\uD398\uC774\uC2A4","\uD0A4","\uBA54\uC11C\uB4DC","\uBAA8\uB4C8","\uB124\uC784\uC2A4\uD398\uC774\uC2A4","Null","\uC22B\uC790","\uAC1C\uCCB4","\uC5F0\uC0B0\uC790","\uD328\uD0A4\uC9C0","\uC18D\uC131","\uBB38\uC790\uC5F4","\uAD6C\uC870\uCCB4","\uD615\uC2DD \uB9E4\uAC1C \uBCC0\uC218","\uBCC0\uC218","{0}({1})"],"vs/editor/common/languages/modesRegistry":["\uC77C\uBC18 \uD14D\uC2A4\uD2B8"],"vs/editor/common/model/editStack":["\uC785\uB825\uD558\uB294 \uC911"],"vs/editor/common/standaloneStrings":["\uAC1C\uBC1C\uC790: \uAC80\uC0AC \uD1A0\uD070","\uC904/\uC5F4\uB85C \uC774\uB3D9...","\uBE60\uB978 \uC561\uC138\uC2A4 \uACF5\uAE09\uC790 \uBAA8\uB450 \uD45C\uC2DC","\uBA85\uB839 \uD314\uB808\uD2B8","\uBA85\uB839 \uD45C\uC2DC \uBC0F \uC2E4\uD589","\uAE30\uD638\uB85C \uAC00\uC11C...","\uBC94\uC8FC\uBCC4 \uAE30\uD638\uB85C \uC774\uB3D9...","\uD3B8\uC9D1\uAE30 \uCF58\uD150\uCE20","\uC811\uADFC\uC131 \uC635\uC158\uC740 Alt+F1\uC744 \uB20C\uB7EC\uC5EC \uD569\uB2C8\uB2E4.","\uACE0\uB300\uBE44 \uD14C\uB9C8\uB85C \uC804\uD658","{1} \uD30C\uC77C\uC5D0\uC11C \uD3B8\uC9D1\uC744 {0}\uAC1C \uD588\uC2B5\uB2C8\uB2E4."],"vs/editor/common/viewLayout/viewLineRenderer":["\uC790\uC138\uD788 \uD45C\uC2DC({0})","{0}\uC790"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["\uC120\uD0DD \uC575\uCEE4 \uC9C0\uC810","{0}\uC5D0 \uC124\uC815\uB41C \uC575\uCEE4: {1}","\uC120\uD0DD \uC575\uCEE4 \uC9C0\uC810 \uC124\uC815","\uC120\uD0DD \uC575\uCEE4 \uC9C0\uC810\uC73C\uB85C \uC774\uB3D9","\uC575\uCEE4\uC5D0\uC11C \uCEE4\uC11C\uB85C \uC120\uD0DD","\uC120\uD0DD \uC575\uCEE4 \uC9C0\uC810 \uCDE8\uC18C"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\uAD04\uD638\uC5D0 \uD574\uB2F9\uD558\uB294 \uC601\uC5ED\uC744 \uD45C\uC2DC\uC790\uC5D0 \uCC44\uC0C9\uD558\uC5EC \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uB300\uAD04\uD638\uB85C \uC774\uB3D9","\uAD04\uD638\uAE4C\uC9C0 \uC120\uD0DD","\uB300\uAD04\uD638 \uC81C\uAC70","\uB300\uAD04\uD638\uB85C \uC774\uB3D9(&&B)","\uB300\uAD04\uD638 \uB610\uB294 \uC911\uAD04\uD638\uB97C \uD3EC\uD568\uD558\uC5EC \uB0B4\uBD80 \uD14D\uC2A4\uD2B8\uB97C \uC120\uD0DD\uD569\uB2C8\uB2E4."],"vs/editor/contrib/caretOperations/browser/caretOperations":["\uC120\uD0DD\uD55C \uD14D\uC2A4\uD2B8\uB97C \uC67C\uCABD\uC73C\uB85C \uC774\uB3D9","\uC120\uD0DD\uD55C \uD14D\uC2A4\uD2B8\uB97C \uC624\uB978\uCABD\uC73C\uB85C \uC774\uB3D9"],"vs/editor/contrib/caretOperations/browser/transpose":["\uBB38\uC790 \uBC14\uAFB8\uAE30"],"vs/editor/contrib/clipboard/browser/clipboard":["\uC798\uB77C\uB0B4\uAE30(&&T)","\uC798\uB77C\uB0B4\uAE30","\uC798\uB77C\uB0B4\uAE30","\uC798\uB77C\uB0B4\uAE30","\uBCF5\uC0AC(&&C)","\uBCF5\uC0AC","\uBCF5\uC0AC","\uBCF5\uC0AC","\uBD99\uC5EC\uB123\uAE30(&&P)","\uBD99\uC5EC\uB123\uAE30","\uBD99\uC5EC\uB123\uAE30","\uBD99\uC5EC\uB123\uAE30","\uAD6C\uBB38\uC744 \uAC15\uC870 \uD45C\uC2DC\uD558\uC5EC \uBCF5\uC0AC","\uB2E4\uC74C\uC73C\uB85C \uBCF5\uC0AC","\uB2E4\uC74C\uC73C\uB85C \uBCF5\uC0AC","\uACF5\uC720","\uACF5\uC720","\uACF5\uC720"],"vs/editor/contrib/codeAction/browser/codeAction":["\uCF54\uB4DC \uC791\uC5C5\uC744 \uC801\uC6A9\uD558\uB294 \uC911 \uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/codeAction/browser/codeActionCommands":["\uC2E4\uD589\uD560 \uCF54\uB4DC \uC791\uC5C5\uC758 \uC885\uB958\uC785\uB2C8\uB2E4.","\uBC18\uD658\uB41C \uC791\uC5C5\uC774 \uC801\uC6A9\uB418\uB294 \uACBD\uC6B0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD56D\uC0C1 \uBC18\uD658\uB41C \uCCAB \uBC88\uC9F8 \uCF54\uB4DC \uC791\uC5C5\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4.","\uCCAB \uBC88\uC9F8 \uBC18\uD658\uB41C \uCF54\uB4DC \uC791\uC5C5\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4(\uC774 \uC791\uC5C5\uB9CC \uC788\uB294 \uACBD\uC6B0).","\uBC18\uD658\uB41C \uCF54\uB4DC \uC791\uC5C5\uC744 \uC801\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.","\uAE30\uBCF8 \uCF54\uB4DC \uC791\uC5C5\uB9CC \uBC18\uD658\uB418\uB3C4\uB85D \uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBE60\uB978 \uC218\uC815...","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uCF54\uB4DC \uB3D9\uC791\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","'{0}'\uC5D0 \uB300\uD55C \uAE30\uBCF8 \uCF54\uB4DC \uC791\uC5C5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","'{0}'\uC5D0 \uB300\uD55C \uCF54\uB4DC \uC791\uC5C5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uAE30\uBCF8 \uCF54\uB4DC \uC791\uC5C5 \uC5C6\uC74C","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uCF54\uB4DC \uB3D9\uC791\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","\uB9AC\uD329\uD130\uB9C1...","'{0}'\uC5D0 \uB300\uD55C \uAE30\uBCF8 \uB9AC\uD329\uD130\uB9C1 \uC5C6\uC74C","'{0}'\uC5D0 \uB300\uD55C \uB9AC\uD329\uD130\uB9C1 \uC5C6\uC74C","\uAE30\uBCF8 \uC124\uC815 \uB9AC\uD329\uD130\uB9C1\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uB9AC\uD399\uD130\uB9C1\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC18C\uC2A4 \uC791\uC5C5...","'{0}'\uC5D0 \uB300\uD55C \uAE30\uBCF8 \uC18C\uC2A4 \uC791\uC5C5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","'{0}'\uC5D0 \uB300\uD55C \uC18C\uC2A4 \uC791\uC5C5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uAE30\uBCF8 \uC6D0\uBCF8 \uC791\uC5C5 \uC5C6\uC74C","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uC18C\uC2A4 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","\uAC00\uC838\uC624\uAE30 \uAD6C\uC131","\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uAC00\uC838\uC624\uAE30 \uAD6C\uC131 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA8\uB450 \uC218\uC815","\uBAA8\uB4E0 \uC791\uC5C5 \uC218\uC815 \uC0AC\uC6A9 \uBD88\uAC00","\uC790\uB3D9 \uC218\uC815...","\uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uC790\uB3D9 \uC218\uC815 \uC5C6\uC74C"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["\uCF54\uB4DC \uC791\uC5C5 \uBA54\uB274\uC5D0 \uADF8\uB8F9 \uD5E4\uB354 \uD45C\uC2DC\uB97C \uD65C\uC131\uD654/\uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4.","\uD604\uC7AC \uC9C4\uB2E8 \uC911\uC774 \uC544\uB2D0 \uB54C \uC904 \uB0B4\uC5D0\uC11C \uAC00\uC7A5 \uAC00\uAE4C\uC6B4 \uBE60\uB978 \uC218\uC815 \uD45C\uC2DC\uB97C \uC0AC\uC6A9/\uC0AC\uC6A9 \uC548 \uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4."],"vs/editor/contrib/codeAction/browser/codeActionController":["\uCEE8\uD14D\uC2A4\uD2B8: \uC904 {1} \uBC0F \uC5F4 {2}\uC758 {0}\uC785\uB2C8\uB2E4.","\uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294 \uD56D\uBAA9 \uC228\uAE30\uAE30","\uBE44\uD65C\uC131\uD654\uB41C \uD56D\uBAA9 \uD45C\uC2DC"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["\uCD94\uAC00 \uC791\uC5C5...","\uBE60\uB978 \uC218\uC815","\uCD94\uCD9C","\uC778\uB77C\uC778","\uC7AC\uC791\uC131","\uC774\uB3D9","\uCF54\uB4DC \uAC10\uC2F8\uAE30","\uC18C\uC2A4 \uC791\uC5C5"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["\uC2E4\uD589: {0}","\uCF54\uB4DC \uC791\uC5C5 \uD45C\uC2DC. \uAE30\uBCF8 \uC124\uC815 \uBE60\uB978 \uC218\uC815 \uC0AC\uC6A9 \uAC00\uB2A5({0})","\uCF54\uB4DC \uC791\uC5C5 \uD45C\uC2DC({0})","\uCF54\uB4DC \uC791\uC5C5 \uD45C\uC2DC"],"vs/editor/contrib/codelens/browser/codelensController":["\uD604\uC7AC \uC904\uC5D0 \uB300\uD55C \uCF54\uB4DC \uB80C\uC988 \uBA85\uB839 \uD45C\uC2DC","\uBA85\uB839 \uC120\uD0DD"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["\uC0C9 \uC635\uC158\uC744 \uD1A0\uAE00\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uC138\uC694(rgb/hsl/hex).","\uC0C9 \uD3B8\uC9D1\uAE30\uB97C \uB2EB\uB294 \uC544\uC774\uCF58"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["\uB3C5\uB9BD \uC2E4\uD589\uD615 \uC0C9 \uD3B8\uC9D1\uAE30 \uD45C\uC2DC \uB610\uB294 \uD3EC\uCEE4\uC2A4(&&S)","\uC0C9 \uD3B8\uC9D1\uAE30 \uC228\uAE30\uAE30","\uB3C5\uB9BD \uC2E4\uD589\uD615 \uC0C9 \uD3B8\uC9D1\uAE30\uB85C \uC0C9 \uC0BD\uC785","\uB3C5\uB9BD \uC2E4\uD589\uD615 \uC0C9 \uD3B8\uC9D1\uAE30 \uD45C\uC2DC \uB610\uB294 \uD3EC\uCEE4\uC2A4"],"vs/editor/contrib/comment/browser/comment":["\uC904 \uC8FC\uC11D \uC124\uC815/\uD574\uC81C","\uC904 \uC8FC\uC11D \uC124\uC815/\uD574\uC81C(&&T)","\uC904 \uC8FC\uC11D \uCD94\uAC00","\uC904 \uC8FC\uC11D \uC81C\uAC70","\uBE14\uB85D \uC8FC\uC11D \uC124\uC815/\uD574\uC81C","\uBE14\uB85D \uC8FC\uC11D \uC124\uC815/\uD574\uC81C(&&B)"],"vs/editor/contrib/contextmenu/browser/contextmenu":["\uBBF8\uB2C8\uB9F5","\uBB38\uC790 \uB80C\uB354\uB9C1","\uC138\uB85C \uD06C\uAE30","\uBE44\uB840","\uCC44\uC6B0\uAE30","\uB9DE\uCDA4","\uC2AC\uB77C\uC774\uB354","\uB9C8\uC6B0\uC2A4 \uC704\uB85C","\uD56D\uC0C1","\uD3B8\uC9D1\uAE30 \uC0C1\uD669\uC5D0 \uB9DE\uB294 \uBA54\uB274 \uD45C\uC2DC"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["\uCEE4\uC11C \uC2E4\uD589 \uCDE8\uC18C","\uCEE4\uC11C \uB2E4\uC2DC \uC2E4\uD589"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uBD99\uC5EC\uB123\uAE30...","\uC801\uC6A9\uD560 \uBD99\uC5EC\uB123\uAE30 \uD3B8\uC9D1\uC758 ID\uC785\uB2C8\uB2E4. \uC81C\uACF5\uD558\uC9C0 \uC54A\uC73C\uBA74 \uD3B8\uC9D1\uAE30\uC5D0 \uC120\uD0DD\uAE30\uAC00 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8\uB85C \uBD99\uC5EC\uB123\uAE30"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["\uBD99\uC5EC\uB123\uAE30 \uC704\uC82F\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uBD99\uC5EC\uB123\uAE30 \uC635\uC158 \uD45C\uC2DC...","'{0}'\uC5D0 \uB300\uD55C \uBD99\uC5EC\uB123\uAE30 \uD3B8\uC9D1\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBD99\uC5EC\uB123\uAE30 \uCC98\uB9AC\uAE30\uB97C \uC2E4\uD589\uD558\uB294 \uC911\uC785\uB2C8\uB2E4. \uCDE8\uC18C\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uC138\uC694.","\uBD99\uC5EC\uB123\uAE30 \uC791\uC5C5 \uC120\uD0DD","\uBD99\uC5EC\uB123\uAE30 \uCC98\uB9AC\uAE30\uB97C \uC2E4\uD589\uD558\uB294 \uC911"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["\uAE30\uBCF8 \uC81C\uACF5","\uC77C\uBC18 \uD14D\uC2A4\uD2B8 \uC0BD\uC785","URI \uC0BD\uC785","URI \uC0BD\uC785","\uACBD\uB85C \uC0BD\uC785","\uACBD\uB85C \uC0BD\uC785","\uC0C1\uB300 \uACBD\uB85C \uC0BD\uC785","\uC0C1\uB300 \uACBD\uB85C \uC0BD\uC785","HTML \uC0BD\uC785"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["\uC9C0\uC815\uB41C MIME \uD615\uC2DD\uC758 \uCF58\uD150\uCE20\uC5D0 \uC0AC\uC6A9\uD560 \uAE30\uBCF8 \uB4DC\uB86D \uACF5\uAE09\uC790\uB97C \uAD6C\uC131\uD569\uB2C8\uB2E4."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["\uB4DC\uB86D \uC704\uC82F\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uB4DC\uB86D \uC635\uC158 \uD45C\uC2DC...","\uB4DC\uB86D \uCC98\uB9AC\uAE30\uB97C \uC2E4\uD589\uD558\uB294 \uC911\uC785\uB2C8\uB2E4. \uCDE8\uC18C\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uC138\uC694."],"vs/editor/contrib/editorState/browser/keybindingCancellation":["\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uCDE8\uC18C \uAC00\uB2A5\uD55C \uC791\uC5C5(\uC608: '\uCC38\uC870 \uD53C\uD0B9')\uC744 \uC2E4\uD589\uD558\uB294\uC9C0 \uC5EC\uBD80"],"vs/editor/contrib/find/browser/findController":["\uD30C\uC77C\uC774 \uB108\uBB34 \uCEE4\uC11C \uBAA8\uB450 \uBC14\uAFB8\uAE30 \uC791\uC5C5\uC744 \uC218\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uCC3E\uAE30","\uCC3E\uAE30(&&F)","\uC778\uC218\uB85C \uCC3E\uAE30","\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uCC3E\uAE30","\uB2E4\uC74C \uCC3E\uAE30","\uC774\uC804 \uCC3E\uAE30","\uC77C\uCE58 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9...","\uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uB978 \uB0B4\uC6A9\uC73C\uB85C \uAC80\uC0C9\uD574 \uBCF4\uC138\uC694.","\uD2B9\uC815 \uC77C\uCE58 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9\uD558\uB824\uBA74 \uC22B\uC790\uB97C \uC785\uB825\uD558\uC138\uC694(1~{0} \uC0AC\uC774).","1\uC5D0\uC11C {0} \uC0AC\uC774\uC758 \uC22B\uC790\uB97C \uC785\uB825\uD558\uC138\uC694","1\uC5D0\uC11C {0} \uC0AC\uC774\uC758 \uC22B\uC790\uB97C \uC785\uB825\uD558\uC138\uC694","\uB2E4\uC74C \uC120\uD0DD \uCC3E\uAE30","\uC774\uC804 \uC120\uD0DD \uCC3E\uAE30","\uBC14\uAFB8\uAE30","\uBC14\uAFB8\uAE30(&&R)"],"vs/editor/contrib/find/browser/findWidget":["\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC5D0\uC11C '\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uCC3E\uAE30'\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC774 \uCD95\uC18C\uB418\uC5C8\uC74C\uC744 \uB098\uD0C0\uB0B4\uB294 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC774 \uD655\uC7A5\uB418\uC5C8\uC74C\uC744 \uB098\uD0C0\uB0B4\uB294 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC5D0\uC11C '\uBC14\uAFB8\uAE30'\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC5D0\uC11C '\uBAA8\uB450 \uBC14\uAFB8\uAE30'\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC5D0\uC11C '\uC774\uC804 \uCC3E\uAE30'\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uCC3E\uAE30 \uC704\uC82F\uC5D0\uC11C '\uB2E4\uC74C \uCC3E\uAE30'\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uCC3E\uAE30/\uBC14\uAFB8\uAE30","\uCC3E\uAE30","\uCC3E\uAE30","\uC774\uC804 \uAC80\uC0C9 \uACB0\uACFC","\uB2E4\uC74C \uAC80\uC0C9 \uACB0\uACFC","\uC120\uD0DD \uD56D\uBAA9\uC5D0\uC11C \uCC3E\uAE30","\uB2EB\uAE30","\uBC14\uAFB8\uAE30","\uBC14\uAFB8\uAE30","\uBC14\uAFB8\uAE30","\uBAA8\uB450 \uBC14\uAFB8\uAE30","\uBC14\uAFB8\uAE30 \uC124\uC815/\uD574\uC81C","\uCC98\uC74C {0}\uAC1C\uC758 \uACB0\uACFC\uAC00 \uAC15\uC870 \uD45C\uC2DC\uB418\uC9C0\uB9CC \uBAA8\uB4E0 \uCC3E\uAE30 \uC791\uC5C5\uC740 \uC804\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0 \uB300\uD574 \uC218\uD589\uB429\uB2C8\uB2E4.","{1}\uC758 {0}","\uACB0\uACFC \uC5C6\uC74C","{0}\uAC1C \uCC3E\uC74C","'{1}'\uC5D0 \uB300\uD55C {0}\uC744(\uB97C) \uCC3E\uC74C","{2}\uC5D0\uC11C '{1}'\uC5D0 \uB300\uD55C {0}\uC744(\uB97C) \uCC3E\uC74C","'{1}'\uC5D0 \uB300\uD55C {0}\uC744(\uB97C) \uCC3E\uC74C","Ctrl+Enter\uB97C \uB204\uB974\uBA74 \uC774\uC81C \uBAA8\uB4E0 \uD56D\uBAA9\uC744 \uBC14\uAFB8\uC9C0 \uC54A\uACE0 \uC904 \uBC14\uAFC8\uC744 \uC0BD\uC785\uD569\uB2C8\uB2E4. editor.action.replaceAll\uC758 \uD0A4 \uBC14\uC778\uB529\uC744 \uC218\uC815\uD558\uC5EC \uC774 \uB3D9\uC791\uC744 \uC7AC\uC815\uC758\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/folding/browser/folding":["\uD3BC\uCE58\uAE30","\uC7AC\uADC0\uC801\uC73C\uB85C \uD3BC\uCE58\uAE30","\uC811\uAE30","\uC811\uAE30 \uC804\uD658","\uC7AC\uADC0\uC801\uC73C\uB85C \uC811\uAE30","\uBAA8\uB4E0 \uBE14\uB85D \uCF54\uBA58\uD2B8\uB97C \uC811\uAE30","\uBAA8\uB4E0 \uC601\uC5ED \uC811\uAE30","\uBAA8\uB4E0 \uC601\uC5ED \uD3BC\uCE58\uAE30","\uC120\uD0DD\uD55C \uD56D\uBAA9\uC744 \uC81C\uC678\uD55C \uBAA8\uB4E0 \uD56D\uBAA9 \uC811\uAE30","\uC120\uD0DD\uD55C \uD56D\uBAA9\uC744 \uC81C\uC678\uD55C \uBAA8\uB4E0 \uD56D\uBAA9 \uD45C\uC2DC","\uBAA8\uB450 \uC811\uAE30","\uBAA8\uB450 \uD3BC\uCE58\uAE30","\uBD80\uBAA8 \uD3F4\uB529\uC73C\uB85C \uC774\uB3D9","\uC774\uC804 \uC811\uAE30 \uBC94\uC704\uB85C \uC774\uB3D9","\uB2E4\uC74C \uC811\uAE30 \uBC94\uC704\uB85C \uC774\uB3D9","\uC120\uD0DD \uC601\uC5ED\uC5D0\uC11C \uC811\uAE30 \uBC94\uC704 \uB9CC\uB4E4\uAE30","\uC218\uB3D9 \uD3F4\uB529 \uBC94\uC704 \uC81C\uAC70","\uC218\uC900 {0} \uC811\uAE30"],"vs/editor/contrib/folding/browser/foldingDecorations":["\uC811\uD78C \uBC94\uC704\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC0C9\uC740 \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uAE30 \uC704\uD574 \uBD88\uD22C\uBA85\uD574\uC11C\uB294 \uC548 \uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC5EC\uBC31\uC758 \uC811\uAE30 \uCEE8\uD2B8\uB864 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC5D0\uC11C \uD655\uC7A5\uB41C \uBC94\uC704\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC5D0\uC11C \uCD95\uC18C\uB41C \uBC94\uC704\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC5D0\uC11C \uC218\uB3D9\uC73C\uB85C \uCD95\uC18C\uB41C \uBC94\uC704\uC5D0 \uB300\uD55C \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uBB38\uC790 \uBAA8\uC591 \uC5EC\uBC31\uC5D0\uC11C \uC218\uB3D9\uC73C\uB85C \uD655\uC7A5\uB41C \uBC94\uC704\uC5D0 \uB300\uD55C \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uBC94\uC704\uB97C \uD655\uC7A5\uD558\uB824\uBA74 \uD074\uB9AD\uD569\uB2C8\uB2E4.","\uBC94\uC704\uB97C \uCD95\uC18C\uD558\uB824\uBA74 \uD074\uB9AD\uD569\uB2C8\uB2E4."],"vs/editor/contrib/fontZoom/browser/fontZoom":["\uD3B8\uC9D1\uAE30 \uAE00\uAF34 \uD06C\uAE30 \uB298\uB9AC\uAE30","\uD3B8\uC9D1\uAE30 \uAE00\uAF34 \uD06C\uAE30 \uC904\uC774\uAE30","\uD3B8\uC9D1\uAE30 \uAE00\uAF34 \uD06C\uAE30 \uB2E4\uC2DC \uC124\uC815"],"vs/editor/contrib/format/browser/formatActions":["\uBB38\uC11C \uC11C\uC2DD","\uC120\uD0DD \uC601\uC5ED \uC11C\uC2DD"],"vs/editor/contrib/gotoError/browser/gotoError":["\uB2E4\uC74C \uBB38\uC81C\uB85C \uC774\uB3D9 (\uC624\uB958, \uACBD\uACE0, \uC815\uBCF4)","\uB2E4\uC74C \uB9C8\uCEE4\uB85C \uC774\uB3D9\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC774\uC804 \uBB38\uC81C\uB85C \uC774\uB3D9 (\uC624\uB958, \uACBD\uACE0, \uC815\uBCF4)","\uC774\uC804 \uB9C8\uCEE4\uB85C \uC774\uB3D9\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uD30C\uC77C\uC758 \uB2E4\uC74C \uBB38\uC81C\uB85C \uC774\uB3D9 (\uC624\uB958, \uACBD\uACE0, \uC815\uBCF4)","\uB2E4\uC74C \uBB38\uC81C(&&P)","\uD30C\uC77C\uC758 \uC774\uC804 \uBB38\uC81C\uB85C \uC774\uB3D9 (\uC624\uB958, \uACBD\uACE0, \uC815\uBCF4)","\uC774\uC804 \uBB38\uC81C(&&P)"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["\uC624\uB958","\uACBD\uACE0","\uC815\uBCF4","\uD78C\uD2B8","{1}\uC758 {0}\uC785\uB2C8\uB2E4. ","\uBB38\uC81C {1}\uAC1C \uC911 {0}\uAC1C","\uBB38\uC81C {1}\uAC1C \uC911 {0}\uAC1C","\uD3B8\uC9D1\uAE30 \uD45C\uC2DD \uD0D0\uC0C9 \uC704\uC82F \uC624\uB958 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB9C8\uCEE4 \uD0D0\uC0C9 \uC704\uC82F \uC624\uB958 \uC81C\uBAA9 \uBC30\uACBD.","\uD3B8\uC9D1\uAE30 \uD45C\uC2DD \uD0D0\uC0C9 \uC704\uC82F \uACBD\uACE0 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB9C8\uCEE4 \uD0D0\uC0C9 \uC704\uC82F \uACBD\uACE0 \uC81C\uBAA9 \uBC30\uACBD.","\uD3B8\uC9D1\uAE30 \uD45C\uC2DD \uD0D0\uC0C9 \uC704\uC82F \uC815\uBCF4 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB9C8\uCEE4 \uD0D0\uC0C9 \uC704\uC82F \uC815\uBCF4 \uC81C\uBAA9 \uBC30\uACBD.","\uD3B8\uC9D1\uAE30 \uD45C\uC2DD \uD0D0\uC0C9 \uC704\uC82F \uBC30\uACBD\uC785\uB2C8\uB2E4."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["\uD53C\uD0B9","\uC815\uC758","'{0}'\uC5D0 \uB300\uD55C \uC815\uC758\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC815\uC758\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C","\uC815\uC758\uB85C \uC774\uB3D9(&&D)","\uC120\uC5B8","'{0}'\uC5D0 \uB300\uD55C \uC120\uC5B8\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C","\uC120\uC5B8\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C","\uC120\uC5B8\uC73C\uB85C \uC774\uB3D9(&&D)","'{0}'\uC5D0 \uB300\uD55C \uC120\uC5B8\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C","\uC120\uC5B8\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C","\uD615\uC2DD \uC815\uC758","'{0}'\uC5D0 \uB300\uD55C \uD615\uC2DD \uC815\uC758\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uD615\uC2DD \uC815\uC758\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uD615\uC2DD \uC815\uC758\uB85C \uC774\uB3D9(&&T)","\uAD6C\uD604","'{0}'\uC5D0 \uB300\uD55C \uAD6C\uD604\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uAD6C\uD604\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uAD6C\uD604\uC73C\uB85C \uC774\uB3D9(&&I)","'{0}'\uC5D0 \uB300\uD55C \uCC38\uC870\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uCC38\uC870\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uCC38\uC870\uB85C \uC774\uB3D9(&&R)","\uCC38\uC870","\uCC38\uC870","\uC704\uCE58","'{0}'\uC5D0 \uB300\uD55C \uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC74C","\uCC38\uC870","\uC815\uC758\uB85C \uC774\uB3D9","\uCE21\uBA74\uC5D0\uC11C \uC815\uC758 \uC5F4\uAE30","\uC815\uC758 \uD53C\uD0B9","\uC120\uC5B8\uC73C\uB85C \uC774\uB3D9","\uC120\uC5B8 \uBBF8\uB9AC \uBCF4\uAE30","\uD615\uC2DD \uC815\uC758\uB85C \uC774\uB3D9","\uD615\uC2DD \uC815\uC758 \uBBF8\uB9AC \uBCF4\uAE30","\uAD6C\uD604\uC73C\uB85C \uC774\uB3D9","\uD53C\uD0B9 \uAD6C\uD604","\uCC38\uC870\uB85C \uC774\uB3D9","\uCC38\uC870 \uBBF8\uB9AC \uBCF4\uAE30","\uC784\uC758\uC758 \uAE30\uD638\uB85C \uC774\uB3D9"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["{0}\uAC1C \uC815\uC758\uB97C \uD45C\uC2DC\uD558\uB824\uBA74 \uD074\uB9AD\uD558\uC138\uC694."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["'\uCC38\uC870 \uD53C\uD0B9' \uB610\uB294 '\uC815\uC758 \uD53C\uD0B9'\uACFC \uAC19\uC774 \uCC38\uC870 \uD53C\uD0B9\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uB85C\uB4DC \uC911...","{0}({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["\uCC38\uC870 {0}\uAC1C","\uCC38\uC870 {0}\uAC1C","\uCC38\uC870"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["\uBBF8\uB9AC \uBCF4\uAE30\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uACB0\uACFC \uC5C6\uC74C","\uCC38\uC870"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["{2} \uC5F4\uC5D0 \uC788\uB294 {1} \uD589\uC758 {0}\uC5D0","{3} \uC5F4\uC5D0\uC11C {2} \uD589\uC758 {1}\uC5D0 {0}","{0}\uC758 \uAE30\uD638 1\uAC1C, \uC804\uCCB4 \uACBD\uB85C {1}","{1}\uC758 \uAE30\uD638 {0}\uAC1C, \uC804\uCCB4 \uACBD\uB85C {2}","\uACB0\uACFC \uC5C6\uC74C","{0}\uC5D0\uC11C \uAE30\uD638 1\uAC1C\uB97C \uCC3E\uC558\uC2B5\uB2C8\uB2E4.","{1}\uC5D0\uC11C \uAE30\uD638 {0}\uAC1C\uB97C \uCC3E\uC558\uC2B5\uB2C8\uB2E4.","{1}\uAC1C \uD30C\uC77C\uC5D0\uC11C \uAE30\uD638 {0}\uAC1C\uB97C \uCC3E\uC558\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["\uD0A4\uBCF4\uB4DC\uB9CC\uC73C\uB85C \uD0D0\uC0C9\uD560 \uC218 \uC788\uB294 \uAE30\uD638 \uC704\uCE58\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","{1}\uC758 {0} \uAE30\uD638, \uB2E4\uC74C\uC758 \uACBD\uC6B0 {2}","{1}\uC758 \uAE30\uD638 {0}"],"vs/editor/contrib/hover/browser/hover":["\uAC00\uB9AC\uD0A4\uAE30 \uB610\uB294 \uD3EC\uCEE4\uC2A4 \uD45C\uC2DC","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uCF1C\uB3C4 \uD3EC\uCEE4\uC2A4\uAC00 \uC62E\uACA8 \uAC00\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0A4\uBA74 \uC774\uBBF8 \uD45C\uC2DC\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uD3EC\uCEE4\uC2A4\uAC00 \uC62E\uACA8 \uAC11\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0A4\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uB098\uD0C0\uB098\uB294 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC790\uB3D9\uC73C\uB85C \uC62E\uACA8 \uAC11\uB2C8\uB2E4.","\uC815\uC758 \uBBF8\uB9AC \uBCF4\uAE30 \uAC00\uB9AC\uD0A8 \uD56D\uBAA9 \uD45C\uC2DC","\uC704\uB85C \uC2A4\uD06C\uB864 \uAC00\uB9AC\uD0A4\uAE30","\uC544\uB798\uB85C \uC2A4\uD06C\uB864 \uAC00\uB9AC\uD0A4\uAE30","\uC67C\uCABD\uC73C\uB85C \uC2A4\uD06C\uB864 \uAC00\uB9AC\uD0A4\uAE30","\uC624\uB978\uCABD\uC73C\uB85C \uC2A4\uD06C\uB864 \uAC00\uB9AC\uD0A4\uAE30","\uD398\uC774\uC9C0 \uC704\uB85C \uAC00\uB9AC\uD0A4\uAE30","\uD398\uC774\uC9C0 \uC544\uB798\uCABD \uAC00\uB9AC\uD0A4\uAE30","\uC704\uCABD \uAC00\uB9AC\uD0A4\uAE30\uB85C \uC774\uB3D9","\uC544\uB798\uCABD \uAC00\uB9AC\uD0A4\uAE30\uB85C \uC774\uB3D9"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["\uB85C\uB4DC \uC911...","\uC131\uB2A5\uC0C1\uC758 \uC774\uC720\uB85C \uAE34 \uC904\uB85C \uC778\uD574 \uB80C\uB354\uB9C1\uC774 \uC77C\uC2DC \uC911\uC9C0\uB418\uC5C8\uC2B5\uB2C8\uB2E4. `editor.stopRenderingLineAfter`\uB97C \uD1B5\uD574 \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC131\uB2A5\uC0C1\uC758 \uC774\uC720\uB85C \uAE34 \uC904\uC758 \uACBD\uC6B0 \uD1A0\uD070\uD654\uB97C \uAC74\uB108\uB701\uB2C8\uB2E4. \uC774 \uD56D\uBAA9\uC740 'editor.maxTokenizationLineLength'\uB97C \uD1B5\uD574 \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/hover/browser/markerHoverParticipant":["\uBB38\uC81C \uBCF4\uAE30","\uBE60\uB978 \uC218\uC815\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uBE60\uB978 \uC218\uC815\uC744 \uD655\uC778\uD558\uB294 \uC911...","\uBE60\uB978 \uC218\uC815\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C","\uBE60\uB978 \uC218\uC815..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["\uC774\uC804 \uAC12\uC73C\uB85C \uBC14\uAFB8\uAE30","\uB2E4\uC74C \uAC12\uC73C\uB85C \uBC14\uAFB8\uAE30"],"vs/editor/contrib/indentation/browser/indentation":["\uB4E4\uC5EC\uC4F0\uAE30\uB97C \uACF5\uBC31\uC73C\uB85C \uBCC0\uD658","\uB4E4\uC5EC\uC4F0\uAE30\uB97C \uD0ED\uC73C\uB85C \uBCC0\uD658","\uAD6C\uC131\uB41C \uD0ED \uD06C\uAE30","\uAE30\uBCF8 \uD0ED \uD06C\uAE30","\uD604\uC7AC \uD0ED \uD06C\uAE30","\uD604\uC7AC \uD30C\uC77C\uC758 \uD0ED \uD06C\uAE30 \uC120\uD0DD","\uD0ED\uC744 \uC0AC\uC6A9\uD55C \uB4E4\uC5EC\uC4F0\uAE30","\uACF5\uBC31\uC744 \uC0AC\uC6A9\uD55C \uB4E4\uC5EC\uC4F0\uAE30","\uD0ED \uD45C\uC2DC \uD06C\uAE30 \uBCC0\uACBD","\uCF58\uD150\uCE20\uC5D0\uC11C \uB4E4\uC5EC\uC4F0\uAE30 \uAC10\uC9C0","\uC904 \uB2E4\uC2DC \uB4E4\uC5EC\uC4F0\uAE30","\uC120\uD0DD\uD55C \uC904 \uB2E4\uC2DC \uB4E4\uC5EC\uC4F0\uAE30"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["\uC0BD\uC785\uD558\uB824\uBA74 \uB450 \uBC88 \uD074\uB9AD","Cmd+\uD074\uB9AD","Ctrl+\uD074\uB9AD","Option+\uD074\uB9AD","Alt+\uD074\uB9AD","\uC815\uC758({0})\uB85C \uC774\uB3D9\uD558\uC5EC \uC790\uC138\uD788 \uC54C\uC544\uBCF4\uB824\uBA74 \uB9C8\uC6B0\uC2A4 \uC624\uB978\uCABD \uB2E8\uCD94\uB97C \uD074\uB9AD\uD569\uB2C8\uB2E4.","\uC815\uC758\uB85C \uC774\uB3D9({0})","\uBA85\uB839 \uC2E4\uD589"],"vs/editor/contrib/inlineCompletions/browser/commands":["\uB2E4\uC74C \uC778\uB77C\uC778 \uC81C\uC548 \uD45C\uC2DC","\uC774\uC804 \uC778\uB77C\uC778 \uC81C\uC548 \uD45C\uC2DC","\uC778\uB77C\uC778 \uC81C\uC548 \uD2B8\uB9AC\uAC70","\uC778\uB77C\uC778 \uC81C\uC548\uC758 \uB2E4\uC74C \uB2E8\uC5B4 \uC218\uB77D","\uB2E8\uC5B4 \uC218\uB77D","\uC778\uB77C\uC778 \uC81C\uC548\uC758 \uB2E4\uC74C \uC904 \uC218\uB77D","\uC904 \uC218\uB77D","\uC778\uB77C\uC778 \uCD94\uCC9C \uC218\uB77D","\uC218\uB77D","\uC778\uB77C\uC778 \uC81C\uC548 \uC228\uAE30\uAE30","\uD56D\uC0C1 \uB3C4\uAD6C \uBAA8\uC74C \uD45C\uC2DC"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["\uC81C\uC548:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["\uC778\uB77C\uC778 \uC81C\uC548 \uD45C\uC2DC \uC5EC\uBD80","\uC778\uB77C\uC778 \uC81C\uC548\uC774 \uACF5\uBC31\uC73C\uB85C \uC2DC\uC791\uD558\uB294\uC9C0 \uC5EC\uBD80","\uC778\uB77C\uC778 \uC81C\uC548\uC774 \uD0ED\uC5D0 \uC758\uD574 \uC0BD\uC785\uB418\uB294 \uAC83\uBCF4\uB2E4 \uC791\uC740 \uACF5\uBC31\uC73C\uB85C \uC2DC\uC791\uD558\uB294\uC9C0 \uC5EC\uBD80","\uD604\uC7AC \uC81C\uC548\uC5D0 \uB300\uD55C \uC81C\uC548 \uD45C\uC2DC \uC5EC\uBD80"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\uC811\uADFC\uC131 \uBCF4\uAE30\uC5D0\uC11C \uC774\uB97C \uAC80\uC0AC({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["\uB2E4\uC74C \uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8 \uD45C\uC2DC\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC774\uC804 \uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8 \uD45C\uC2DC\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","{0}({1})","\uC774\uC804","\uB2E4\uC74C"],"vs/editor/contrib/lineSelection/browser/lineSelection":["\uC120 \uC120\uD0DD \uC601\uC5ED \uD655\uC7A5"],"vs/editor/contrib/linesOperations/browser/linesOperations":["\uC704\uC5D0 \uC904 \uBCF5\uC0AC","\uC704\uC5D0 \uC904 \uBCF5\uC0AC(&&C)","\uC544\uB798\uC5D0 \uC904 \uBCF5\uC0AC","\uC544\uB798\uC5D0 \uC904 \uBCF5\uC0AC(&&P)","\uC911\uBCF5\uB41C \uC120\uD0DD \uC601\uC5ED","\uC911\uBCF5\uB41C \uC120\uD0DD \uC601\uC5ED(&&D)","\uC904 \uC704\uB85C \uC774\uB3D9","\uC904 \uC704\uB85C \uC774\uB3D9(&&V)","\uC904 \uC544\uB798\uB85C \uC774\uB3D9","\uC904 \uC544\uB798\uB85C \uC774\uB3D9(&&L)","\uC904\uC744 \uC624\uB984\uCC28\uC21C \uC815\uB82C","\uC904\uC744 \uB0B4\uB9BC\uCC28\uC21C\uC73C\uB85C \uC815\uB82C","\uC911\uBCF5 \uB77C\uC778 \uC0AD\uC81C","\uD6C4\uD589 \uACF5\uBC31 \uC790\uB974\uAE30","\uC904 \uC0AD\uC81C","\uC904 \uB4E4\uC5EC\uC4F0\uAE30","\uC904 \uB0B4\uC5B4\uC4F0\uAE30","\uC704\uC5D0 \uC904 \uC0BD\uC785","\uC544\uB798\uC5D0 \uC904 \uC0BD\uC785","\uC67C\uCABD \uBAA8\uB450 \uC0AD\uC81C","\uC6B0\uCE21\uC5D0 \uC788\uB294 \uD56D\uBAA9 \uC0AD\uC81C","\uC904 \uC5F0\uACB0","\uCEE4\uC11C \uC8FC\uC704 \uBB38\uC790 \uBC14\uAFB8\uAE30","\uB300\uBB38\uC790\uB85C \uBCC0\uD658","\uC18C\uBB38\uC790\uB85C \uBCC0\uD658","\uB2E8\uC5B4\uC758 \uCCAB \uAE00\uC790\uB97C \uB300\uBB38\uC790\uB85C \uBCC0\uD658","\uC2A4\uB124\uC774\uD06C \uD45C\uAE30\uBC95\uC73C\uB85C \uBCC0\uD658","Camel Case\uB85C \uBCC0\uD658","Kebab \uC0AC\uB840\uB85C \uBCC0\uD658"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["\uC5F0\uACB0\uB41C \uD3B8\uC9D1 \uC2DC\uC791","\uD615\uC2DD\uC758 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC790\uB3D9\uC73C\uB85C \uC774\uB984\uC744 \uBC14\uAFC0 \uB54C\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4."],"vs/editor/contrib/links/browser/links":["{0} \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC774 \uB9C1\uD06C\uB97C \uC5F4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4","\uB300\uC0C1\uC774 \uC5C6\uC73C\uBBC0\uB85C \uC774 \uB9C1\uD06C\uB97C \uC5F4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.","\uBA85\uB839 \uC2E4\uD589","\uB9C1\uD06C\uB85C \uC774\uB3D9","Cmd+\uD074\uB9AD","Ctrl+\uD074\uB9AD","Option+\uD074\uB9AD","Alt+\uD074\uB9AD","\uBA85\uB839 {0} \uC2E4\uD589","\uB9C1\uD06C \uC5F4\uAE30"],"vs/editor/contrib/message/browser/messageController":["\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD604\uC7AC \uC778\uB77C\uC778 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD558\uB294\uC9C0 \uC5EC\uBD80"],"vs/editor/contrib/multicursor/browser/multicursor":["\uCEE4\uC11C\uAC00 \uCD94\uAC00\uB428: {0}","\uCEE4\uC11C\uAC00 \uCD94\uAC00\uB428: {0}","\uC704\uC5D0 \uCEE4\uC11C \uCD94\uAC00","\uC704\uC5D0 \uCEE4\uC11C \uCD94\uAC00(&&A)","\uC544\uB798\uC5D0 \uCEE4\uC11C \uCD94\uAC00","\uC544\uB798\uC5D0 \uCEE4\uC11C \uCD94\uAC00(&&D)","\uC904 \uB05D\uC5D0 \uCEE4\uC11C \uCD94\uAC00","\uC904 \uB05D\uC5D0 \uCEE4\uC11C \uCD94\uAC00(&&U)","\uB9E8 \uC544\uB798\uC5D0 \uCEE4\uC11C \uCD94\uAC00","\uB9E8 \uC704\uC5D0 \uCEE4\uC11C \uCD94\uAC00","\uB2E4\uC74C \uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uC5D0 \uC120\uD0DD \uD56D\uBAA9 \uCD94\uAC00","\uB2E4\uC74C \uD56D\uBAA9 \uCD94\uAC00(&&N)","\uC774\uC804 \uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uC5D0 \uC120\uD0DD \uD56D\uBAA9 \uCD94\uAC00","\uC774\uC804 \uD56D\uBAA9 \uCD94\uAC00(&&R)","\uB2E4\uC74C \uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uB85C \uB9C8\uC9C0\uB9C9 \uC120\uD0DD \uD56D\uBAA9 \uC774\uB3D9","\uB9C8\uC9C0\uB9C9 \uC120\uD0DD \uD56D\uBAA9\uC744 \uC774\uC804 \uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uB85C \uC774\uB3D9","\uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uC758 \uBAA8\uB4E0 \uD56D\uBAA9 \uC120\uD0DD","\uBAA8\uB4E0 \uD56D\uBAA9 \uC120\uD0DD(&&O)","\uBAA8\uB4E0 \uD56D\uBAA9 \uBCC0\uACBD","\uB2E4\uC74C \uCEE4\uC11C \uD3EC\uCEE4\uC2A4","\uB2E4\uC74C \uCEE4\uC11C\uC5D0 \uD3EC\uCEE4\uC2A4\uB97C \uB9DE\uCDA5\uB2C8\uB2E4.","\uC774\uC804 \uCEE4\uC11C \uD3EC\uCEE4\uC2A4","\uC774\uC804 \uCEE4\uC11C\uC5D0 \uD3EC\uCEE4\uC2A4\uB97C \uB9DE\uCDA5\uB2C8\uB2E4."],"vs/editor/contrib/parameterHints/browser/parameterHints":["\uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8 \uD2B8\uB9AC\uAC70"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["\uB2E4\uC74C \uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8 \uD45C\uC2DC\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC774\uC804 \uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8 \uD45C\uC2DC\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","{0}, \uD78C\uD2B8","\uB9E4\uAC1C \uBCC0\uC218 \uD78C\uD2B8\uC5D0 \uC788\uB294 \uD65C\uC131 \uD56D\uBAA9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4."],"vs/editor/contrib/peekView/browser/peekView":["\uD604\uC7AC \uCF54\uB4DC \uD3B8\uC9D1\uAE30\uAC00 \uD53C\uD0B9 \uB0B4\uBD80\uC5D0 \uD3EC\uD568\uB418\uC5C8\uB294\uC9C0 \uC5EC\uBD80","\uB2EB\uAE30","Peek \uBDF0 \uC81C\uBAA9 \uC601\uC5ED\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uC81C\uBAA9 \uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uC81C\uBAA9 \uC815\uBCF4 \uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uD14C\uB450\uB9AC \uBC0F \uD654\uC0B4\uD45C \uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC5D0\uC11C \uB77C\uC778 \uB178\uB4DC\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC5D0\uC11C \uD30C\uC77C \uB178\uB4DC\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD\uB41C \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD\uB41C \uD56D\uBAA9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uD3B8\uC9D1\uAE30\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uD3B8\uC9D1\uAE30\uC758 \uAC70\uD130 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD53C\uD0B9 \uBDF0 \uD3B8\uC9D1\uAE30\uC758 \uACE0\uC815 \uC2A4\uD06C\uB864 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uACB0\uACFC \uBAA9\uB85D\uC758 \uC77C\uCE58 \uD56D\uBAA9 \uAC15\uC870 \uD45C\uC2DC \uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uD3B8\uC9D1\uAE30\uC758 \uC77C\uCE58 \uD56D\uBAA9 \uAC15\uC870 \uD45C\uC2DC \uC0C9\uC785\uB2C8\uB2E4.","Peek \uBDF0 \uD3B8\uC9D1\uAE30\uC758 \uC77C\uCE58 \uD56D\uBAA9 \uAC15\uC870 \uD45C\uC2DC \uD14C\uB450\uB9AC\uC785\uB2C8\uB2E4."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\uC6B0\uC120 \uD14D\uC2A4\uD2B8 \uD3B8\uC9D1\uAE30\uB97C \uC5F4\uACE0 \uC904\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","\uC904 {0} \uBC0F \uBB38\uC790 {1}(\uC73C)\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","{0} \uC904\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","\uD604\uC7AC \uC904: {0}, \uBB38\uC790: {1} \uC774\uB3D9\uD560 \uC904 1~{2} \uC0AC\uC774\uC758 \uBC88\uD638\uB97C \uC785\uB825\uD569\uB2C8\uB2E4.","\uD604\uC7AC \uC904: {0}, \uBB38\uC790: {1}. \uC774\uB3D9\uD560 \uC904 \uBC88\uD638\uB97C \uC785\uB825\uD569\uB2C8\uB2E4."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\uAE30\uD638\uB85C \uC774\uB3D9\uD558\uB824\uBA74 \uBA3C\uC800 \uAE30\uD638 \uC815\uBCF4\uAC00 \uC788\uB294 \uD14D\uC2A4\uD2B8 \uD3B8\uC9D1\uAE30\uB97C \uC5FD\uB2C8\uB2E4.","\uD65C\uC131 \uC0C1\uD0DC\uC758 \uD14D\uC2A4\uD2B8 \uD3B8\uC9D1\uAE30\uB294 \uAE30\uD638 \uC815\uBCF4\uB97C \uC81C\uACF5\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC77C\uCE58\uD558\uB294 \uD3B8\uC9D1\uAE30 \uAE30\uD638 \uC5C6\uC74C","\uD3B8\uC9D1\uAE30 \uAE30\uD638 \uC5C6\uC74C","\uCE21\uBA74\uC5D0\uC11C \uC5F4\uAE30","\uD558\uB2E8\uC5D0 \uC5F4\uAE30","\uAE30\uD638({0})","\uC18D\uC131({0})","\uBA54\uC11C\uB4DC({0})","\uD568\uC218({0})","\uC0DD\uC131\uC790({0})","\uBCC0\uC218({0})","\uD074\uB798\uC2A4({0})","\uAD6C\uC870\uCCB4({0})","\uC774\uBCA4\uD2B8({0})","\uC5F0\uC0B0\uC790({0})","\uC778\uD130\uD398\uC774\uC2A4({0})","\uB124\uC784\uC2A4\uD398\uC774\uC2A4({0})","\uD328\uD0A4\uC9C0({0})","\uD615\uC2DD \uB9E4\uAC1C \uBCC0\uC218({0})","\uBAA8\uB4C8({0})","\uC18D\uC131({0})","\uC5F4\uAC70\uD615({0})","\uC5F4\uAC70\uD615 \uBA64\uBC84({0})","\uBB38\uC790\uC5F4({0})","\uD30C\uC77C({0})","\uBC30\uC5F4({0})","\uC22B\uC790({0})","\uBD80\uC6B8({0})","\uAC1C\uCCB4({0})","\uD0A4({0})","\uD544\uB4DC({0})","\uC0C1\uC218({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["\uC77D\uAE30 \uC804\uC6A9 \uC785\uB825\uC5D0\uC11C\uB294 \uD3B8\uC9D1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC77D\uAE30 \uC804\uC6A9 \uD3B8\uC9D1\uAE30\uC5D0\uC11C\uB294 \uD3B8\uC9D1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/rename/browser/rename":["\uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC704\uCE58 \uC774\uB984\uC744 \uBC14\uAFB8\uB294 \uC911 \uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.","'{0}'\uC5D0\uC11C '{1}'(\uC73C)\uB85C \uC774\uB984\uC744 \uBC14\uAFB8\uB294 \uC911","{1}\uC5D0 {0} \uC774\uB984 \uBC14\uAFB8\uAE30","'{0}'\uC744(\uB97C) '{1}'(\uC73C)\uB85C \uC774\uB984\uC744 \uBCC0\uACBD\uD588\uC2B5\uB2C8\uB2E4. \uC694\uC57D: {2}","\uC774\uB984 \uBC14\uAFB8\uAE30\uB97C \uD1B5\uD574 \uD3B8\uC9D1 \uB0B4\uC6A9\uC744 \uC801\uC6A9\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.","\uC774\uB984 \uBC14\uAFB8\uAE30\uB97C \uD1B5\uD574 \uD3B8\uC9D1 \uB0B4\uC6A9\uC744 \uACC4\uC0B0\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.","\uAE30\uD638 \uC774\uB984 \uBC14\uAFB8\uAE30","\uC774\uB984\uC744 \uBC14\uAFB8\uAE30 \uC804\uC5D0 \uBCC0\uACBD \uB0B4\uC6A9\uC744 \uBBF8\uB9AC \uBCFC \uC218 \uC788\uB294 \uAE30\uB2A5 \uC0AC\uC6A9/\uC0AC\uC6A9 \uC548 \uD568","\uD3EC\uCEE4\uC2A4 \uB2E4\uC74C \uC774\uB984 \uBC14\uAFB8\uAE30 \uC81C\uC548","\uC774\uC804 \uC774\uB984 \uBC14\uAFB8\uAE30 \uC81C\uC548 \uD3EC\uCEE4\uC2A4"],"vs/editor/contrib/rename/browser/renameInputField":["\uC785\uB825 \uC774\uB984 \uBC14\uAFB8\uAE30 \uC704\uC82F\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uC785\uB825 \uC774\uB984 \uBC14\uAFB8\uAE30 \uC704\uC82F\uC774 \uD3EC\uCEE4\uC2A4\uB418\uC5C8\uB294\uC9C0 \uC5EC\uBD80","\uC785\uB825 \uC774\uB984\uC744 \uBC14\uAFB8\uC138\uC694. \uC0C8 \uC774\uB984\uC744 \uC785\uB825\uD55C \uB2E4\uC74C [Enter] \uD0A4\uB97C \uB20C\uB7EC \uCEE4\uBC0B\uD558\uC138\uC694.","\uC774\uB984 \uBC14\uAFB8\uAE30 {0}, \uBBF8\uB9AC \uBCF4\uAE30 {1}","{0} \uC774\uB984 \uBC14\uAFB8\uAE30 \uC81C\uC548\uC744 \uBC1B\uC2B5\uB2C8\uB2E4."],"vs/editor/contrib/smartSelect/browser/smartSelect":["\uC120\uD0DD \uC601\uC5ED \uD655\uC7A5","\uC120\uD0DD \uC601\uC5ED \uD655\uC7A5(&&E)","\uC120\uD0DD \uC601\uC5ED \uCD95\uC18C","\uC120\uD0DD \uC601\uC5ED \uCD95\uC18C(&&S)"],"vs/editor/contrib/snippet/browser/snippetController2":["\uD604\uC7AC \uD3B8\uC9D1\uAE30\uAC00 \uCF54\uB4DC \uC870\uAC01 \uBAA8\uB4DC\uC778\uC9C0 \uC5EC\uBD80","\uCF54\uB4DC \uC870\uAC01 \uBAA8\uB4DC\uC77C \uB54C \uB2E4\uC74C \uD0ED \uC815\uC9C0\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uCF54\uB4DC \uC870\uAC01 \uBAA8\uB4DC\uC77C \uB54C \uC774\uC804 \uD0ED \uC815\uC9C0\uAC00 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uB2E4\uC74C \uC790\uB9AC \uD45C\uC2DC\uC790\uB85C \uC774\uB3D9..."],"vs/editor/contrib/snippet/browser/snippetVariables":["\uC77C\uC694\uC77C","\uC6D4\uC694\uC77C","\uD654\uC694\uC77C","\uC218\uC694\uC77C","\uBAA9\uC694\uC77C","\uAE08\uC694\uC77C","\uD1A0\uC694\uC77C","\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0","1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4","1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["\uD3B8\uC9D1\uAE30 \uACE0\uC815 \uC2A4\uD06C\uB864 \uD1A0\uAE00(&\uD1A0\uAE00)","\uACE0\uC815 \uC2A4\uD06C\uB864","\uACE0\uC815 \uC2A4\uD06C\uB864(&&S)","\uACE0\uC815 \uC2A4\uD06C\uB864 \uD3EC\uCEE4\uC2A4(&&F)","\uD3B8\uC9D1\uAE30 \uACE0\uC815 \uC2A4\uD06C\uB864 \uD1A0\uAE00","\uACE0\uC815 \uC2A4\uD06C\uB864 \uD3EC\uCEE4\uC2A4","\uB2E4\uC74C \uACE0\uC815 \uC2A4\uD06C\uB864 \uC120 \uC120\uD0DD","\uC774\uC804 \uACE0\uC815 \uC2A4\uD06C\uB864 \uC120 \uC120\uD0DD","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uACE0\uC815 \uC2A4\uD06C\uB864 \uC120\uC73C\uB85C \uC774\uB3D9","\uD3B8\uC9D1\uAE30 \uC120\uD0DD"],"vs/editor/contrib/suggest/browser/suggest":["\uC81C\uC548\uC5D0 \uCD08\uC810\uC744 \uB9DE\uCD94\uB294\uC9C0 \uC5EC\uBD80","\uC81C\uC548 \uC138\uBD80 \uC815\uBCF4\uAC00 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80","\uC120\uD0DD\uD560 \uC218 \uC788\uB294 \uC5EC\uB7EC \uC81C\uC548\uC774 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uD604\uC7AC \uC81C\uC548\uC744 \uC0BD\uC785\uD558\uBA74 \uBCC0\uACBD \uB0B4\uC6A9\uC774 \uC0DD\uC131\uB418\uB294\uC9C0 \uB610\uB294 \uBAA8\uB4E0 \uD56D\uBAA9\uC774 \uC774\uBBF8 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uC5EC\uBD80"," \uD0A4\uB97C \uB204\uB97C \uB54C \uC81C\uC548\uC774 \uC0BD\uC785\uB418\uB294\uC9C0 \uC5EC\uBD80","\uD604\uC7AC \uC81C\uC548\uC5D0 \uC0BD\uC785 \uBC0F \uBC14\uAFB8\uAE30 \uB3D9\uC791\uC774 \uC788\uB294\uC9C0 \uC5EC\uBD80","\uAE30\uBCF8 \uB3D9\uC791\uC774 \uC0BD\uC785\uC778\uC9C0 \uB610\uB294 \uBC14\uAFB8\uAE30\uC778\uC9C0 \uC5EC\uBD80","\uD604\uC7AC \uC81C\uC548\uC5D0\uC11C \uCD94\uAC00 \uC138\uBD80 \uC815\uBCF4\uB97C \uD655\uC778\uD558\uB3C4\uB85D \uC9C0\uC6D0\uD558\uB294\uC9C0 \uC5EC\uBD80"],"vs/editor/contrib/suggest/browser/suggestController":["{0}\uC758 {1}\uAC1C\uC758 \uC218\uC815\uC0AC\uD56D\uC744 \uC218\uB77D\uD558\uB294 \uC911","\uC81C\uC548 \uD56D\uBAA9 \uD2B8\uB9AC\uAC70","\uC0BD\uC785","\uC0BD\uC785","\uBC14\uAFB8\uAE30","\uBC14\uAFB8\uAE30","\uC0BD\uC785","\uAC04\uB2E8\uD788 \uD45C\uC2DC","\uB354 \uBCF4\uAE30","\uC81C\uC548 \uC704\uC82F \uD06C\uAE30 \uB2E4\uC2DC \uC124\uC815"],"vs/editor/contrib/suggest/browser/suggestWidget":["\uC81C\uC548 \uC704\uC82F\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uD55C \uC704\uC82F\uC5D0\uC11C \uC120\uD0DD\uB41C \uD56D\uBAA9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uD55C \uC704\uC82F\uC5D0\uC11C \uC120\uD0DD\uB41C \uD56D\uBAA9\uC758 \uC544\uC774\uCF58 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uD55C \uC704\uC82F\uC5D0\uC11C \uC120\uD0DD\uB41C \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F\uC758 \uC77C\uCE58 \uD56D\uBAA9 \uAC15\uC870 \uD45C\uC2DC \uC0C9\uC785\uB2C8\uB2E4.","\uD56D\uBAA9\uC5D0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uC744 \uB54C \uCD94\uCC9C \uC704\uC82F\uC5D0\uC11C \uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC758 \uC0C9\uC774 \uAC15\uC870 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC81C\uC548 \uC704\uC82F \uC0C1\uD0DC\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB85C\uB4DC \uC911...","\uC81C\uC548 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC81C\uC548","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, \uBB38\uC11C: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["\uB2EB\uAE30","\uB85C\uB4DC \uC911..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["\uC81C\uC548 \uC704\uC82F\uC5D0\uC11C \uC790\uC138\uD55C \uC815\uBCF4\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC790\uC138\uD55C \uC815\uBCF4"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0}({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["\uBC30\uC5F4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uBD80\uC6B8 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD074\uB798\uC2A4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC0C9 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC0C1\uC218 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC0DD\uC131\uC790 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC5F4\uAC70\uC790 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC5F4\uAC70\uC790 \uBA64\uBC84 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC774\uBCA4\uD2B8 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD544\uB4DC \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uD30C\uC77C \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD3F4\uB354 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD568\uC218 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC778\uD130\uD398\uC774\uC2A4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uD0A4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uD0A4\uC6CC\uB4DC \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uBA54\uC11C\uB4DC \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uBAA8\uB4C8 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uB124\uC784\uC2A4\uD398\uC774\uC2A4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","null \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC22B\uC790 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uAC1C\uCCB4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC5F0\uC0B0\uC790 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD328\uD0A4\uC9C0 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uC18D\uC131 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uCC38\uC870 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uBB38\uC790\uC5F4 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uAD6C\uC870 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.","\uD615\uC2DD \uB9E4\uAC1C\uBCC0\uC218 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uB2E8\uC704 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uBCC0\uC218 \uAE30\uD638\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uD638\uB294 \uAC1C\uC694, \uC774\uB3D9 \uACBD\uB85C \uBC0F \uC81C\uC548 \uC704\uC82F\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["\uC774\uC81C \uD0A4\uB97C \uB204\uB974\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uB2E4\uC74C \uD3EC\uCEE4\uC2A4 \uAC00\uB2A5\uD55C \uC694\uC18C\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","\uC774\uC81C \uD0A4\uB97C \uB204\uB974\uBA74 \uD0ED \uBB38\uC790\uAC00 \uC0BD\uC785\uB429\uB2C8\uB2E4."," \uD0A4\uB85C \uD3EC\uCEE4\uC2A4 \uC774\uB3D9 \uC124\uC815/\uD574\uC81C"],"vs/editor/contrib/tokenization/browser/tokenization":["\uAC1C\uBC1C\uC790: \uAC15\uC81C\uB85C \uB2E4\uC2DC \uD1A0\uD070\uD654"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["\uD655\uC7A5 \uD3B8\uC9D1\uAE30\uC5D0 \uACBD\uACE0 \uBA54\uC2DC\uC9C0\uC640 \uD568\uAED8 \uD45C\uC2DC\uB418\uB294 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC774 \uBB38\uC11C\uC5D0\uB294 \uAE30\uBCF8 ASCII \uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uAC00 \uC544\uB2CC \uBB38\uC790\uAC00 \uB9CE\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.","\uC774 \uBB38\uC11C\uC5D0\uB294 \uBAA8\uD638\uD55C \uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uAC00 \uB9CE\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.","\uC774 \uBB38\uC11C\uC5D0\uB294 \uBCF4\uC774\uC9C0 \uC54A\uB294 \uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uAC00 \uB9CE\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uB2C8\uCF54\uB4DC \uAC15\uC870 \uD45C\uC2DC \uC635\uC158 \uAD6C\uC131","\uBB38\uC790 {0}\uC740(\uB294) \uC18C\uC2A4 \uCF54\uB4DC\uC5D0\uC11C \uB354 \uC77C\uBC18\uC801\uC778 ASCII \uBB38\uC790 {1}\uACFC(\uC640) \uD63C\uB3D9\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","{0} \uBB38\uC790\uB294 \uC18C\uC2A4 \uCF54\uB4DC\uC5D0\uC11C \uB354 \uC77C\uBC18\uC801\uC778 {1} \uBB38\uC790\uC640 \uD63C\uB3D9\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","{0} \uBB38\uC790\uAC00 \uBCF4\uC774\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","{0} \uBB38\uC790\uB294 \uAE30\uBCF8 ASCII \uBB38\uC790\uAC00 \uC544\uB2D9\uB2C8\uB2E4.","\uC124\uC815 \uC870\uC815","\uBA54\uBAA8\uC5D0\uC11C \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uBA54\uBAA8\uC5D0\uC11C \uBB38\uC790 \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uBB38\uC790\uC5F4\uC5D0\uC11C \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uBB38\uC790\uC5F4\uC5D0\uC11C \uBB38\uC790 \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uBAA8\uD638\uD55C \uAC15\uC870 \uC0AC\uC6A9 \uC548 \uD568","\uBAA8\uD638\uD55C \uBB38\uC790 \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uBCF4\uC774\uC9C0 \uC54A\uB294 \uAC15\uC870 \uC0AC\uC6A9 \uC548 \uD568","\uBCF4\uC774\uC9C0 \uC54A\uB294 \uBB38\uC790 \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","ASCII\uAC00 \uBB38\uC790\uAC00 \uC544\uB2CC \uAC15\uC870 \uC0AC\uC6A9 \uC548 \uD568","\uAE30\uBCF8\uC774 \uC544\uB2CC ASCII \uBB38\uC790 \uAC15\uC870 \uD45C\uC2DC \uC0AC\uC6A9 \uC548 \uD568","\uC81C\uC678 \uC635\uC158 \uD45C\uC2DC","{0}(\uBCF4\uC774\uC9C0 \uC54A\uB294 \uBB38\uC790)\uC774(\uAC00) \uAC15\uC870 \uD45C\uC2DC\uB418\uC9C0 \uC54A\uB3C4\uB85D \uC81C\uC678","\uAC15\uC870 \uD45C\uC2DC\uC5D0\uC11C {0} \uC81C\uC678",'\uC5B8\uC5B4 "{0}"\uC5D0\uC11C \uB354 \uC77C\uBC18\uC801\uC778 \uC720\uB2C8\uCF54\uB4DC \uBB38\uC790\uB97C \uD5C8\uC6A9\uD569\uB2C8\uB2E4.'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["\uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790","\uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790\uAC00 \uAC80\uC0C9\uB428","\uC774 \uD30C\uC77C \u2018\r\n\u2019\uC5D0 LS(\uC904 \uAD6C\uBD84 \uAE30\uD638) \uB610\uB294 PS(\uB2E8\uB77D \uAD6C\uBD84 \uAE30\uD638) \uAC19\uC740 \uD558\uB098 \uC774\uC0C1\uC758 \uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790 \uBB38\uC790\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.{0}\r\n\uD30C\uC77C\uC5D0\uC11C \uC81C\uAC70\uD558\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4. `editor.unusualLineTerminators`\uB97C \uD1B5\uD574 \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uBE44\uC815\uC0C1\uC801\uC778 \uC904 \uC885\uACB0\uC790 \uC81C\uAC70(&&R)","\uBB34\uC2DC"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["\uBCC0\uC218 \uC77D\uAE30\uC640 \uAC19\uC740 \uC77D\uAE30 \uC561\uC138\uC2A4 \uC911 \uAE30\uD638\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uBCC0\uC218\uC5D0 \uC4F0\uAE30\uC640 \uAC19\uC740 \uC4F0\uAE30 \uC561\uC138\uC2A4 \uC911 \uAE30\uD638\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAE30\uD638\uC5D0 \uB300\uD55C \uD14D\uC2A4\uD2B8 \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uBCC0\uC218 \uC77D\uAE30\uC640 \uAC19\uC740 \uC77D\uAE30 \uC561\uC138\uC2A4 \uC911 \uAE30\uD638\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBCC0\uC218\uC5D0 \uC4F0\uAE30\uC640 \uAC19\uC740 \uC4F0\uAE30 \uC561\uC138\uC2A4 \uC911 \uAE30\uD638\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uAE30\uD638\uC5D0 \uB300\uD55C \uD14D\uC2A4\uD2B8 \uD56D\uBAA9\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uAE30\uD638 \uAC15\uC870 \uD45C\uC2DC\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uD45C\uC2DD \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC4F0\uAE30 \uC561\uC138\uC2A4 \uAE30\uD638\uC5D0 \uB300\uD55C \uAC1C\uC694 \uB208\uAE08\uC790 \uD45C\uC2DD \uC0C9\uC774 \uAC15\uC870 \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAE30\uD638\uC5D0 \uB300\uD55C \uD14D\uC2A4\uD2B8 \uD56D\uBAA9\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uB9C8\uCEE4 \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["\uB2E4\uC74C \uAC15\uC870 \uAE30\uD638\uB85C \uC774\uB3D9","\uC774\uC804 \uAC15\uC870 \uAE30\uD638\uB85C \uC774\uB3D9","\uAE30\uD638 \uAC15\uC870 \uD45C\uC2DC \uD2B8\uB9AC\uAC70"],"vs/editor/contrib/wordOperations/browser/wordOperations":["\uB2E8\uC5B4 \uC0AD\uC81C"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["\uC904\uC5D0 \uB300\uD55C \uC624\uB958","\uC624\uB958","\uC904\uC5D0 \uB300\uD55C \uACBD\uACE0","\uACBD\uACE0","\uC904\uC758 \uC811\uD78C \uBD80\uBD84","\uC811\uD798","\uC904\uC758 \uC911\uB2E8\uC810","\uC911\uB2E8\uC810","\uC904\uC758 \uC778\uB77C\uC778 \uC81C\uC548","\uD130\uBBF8\uB110 \uBE60\uB978 \uC218\uC815","\uBE60\uB978 \uC218\uC815","\uC911\uB2E8\uC810\uC5D0\uC11C \uC911\uC9C0\uB41C \uB514\uBC84\uAC70","\uC911\uB2E8\uC810","\uC904\uC758 \uC778\uB808\uC774 \uD78C\uD2B8 \uC5C6\uC74C","\uC778\uB808\uC774 \uD78C\uD2B8 \uC5C6\uC74C","\uC791\uC5C5 \uC644\uB8CC","\uC644\uB8CC\uB41C \uC791\uC5C5","\uC791\uC5C5 \uC2E4\uD328","\uC791\uC5C5 \uC2E4\uD328","\uD130\uBBF8\uB110 \uBA85\uB839 \uC2E4\uD328","\uBA85\uB839\uC774 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","\uD130\uBBF8\uB110 \uBCA8","\uD130\uBBF8\uB110 \uBCA8","Notebook \uC140 \uC644\uB8CC\uB428","Notebook \uC140 \uC644\uB8CC\uB428","Notebook \uC140 \uC2E4\uD328","Notebook \uC140 \uC2E4\uD328","Diff \uC904 \uC0BD\uC785\uB428","Diff \uC904 \uC0AD\uC81C\uB428","Diff \uC904 \uC218\uC815\uB428","\uCC44\uD305 \uC694\uCCAD \uC804\uC1A1\uB428","\uCC44\uD305 \uC694\uCCAD \uC804\uC1A1\uB428","\uCC44\uD305 \uC751\uB2F5 \uC218\uC2E0\uB428","\uCC44\uD305 \uC751\uB2F5 \uB300\uAE30 \uC911","\uCC44\uD305 \uC751\uB2F5 \uB300\uAE30 \uC911","\uC9C0\uC6B0\uAE30","\uC9C0\uC6B0\uAE30","\uC800\uC7A5","\uC800\uC7A5","\uD615\uC2DD","\uC11C\uC2DD"],"vs/platform/action/common/actionCommonCategories":["\uBCF4\uAE30","\uB3C4\uC6C0\uB9D0","\uD14C\uC2A4\uD2B8","\uD30C\uC77C","\uAE30\uBCF8 \uC124\uC815","\uAC1C\uBC1C\uC790"],"vs/platform/actionWidget/browser/actionList":["\uC801\uC6A9\uD558\uB824\uBA74 {0}, \uBBF8\uB9AC \uBCF4\uAE30\uB97C \uBCF4\uB824\uBA74 {1}","\uC2E0\uCCAD\uD558\uB824\uBA74 {0}","{0}, \uC0AC\uC6A9 \uC548 \uD568 \uC774\uC720: {1}","\uC791\uC5C5 \uC704\uC82F"],"vs/platform/actionWidget/browser/actionWidget":["\uC791\uC5C5 \uD45C\uC2DC\uC904\uC5D0\uC11C \uD1A0\uAE00\uB41C \uC791\uC5C5 \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC791\uC5C5 \uC704\uC82F \uBAA9\uB85D \uD45C\uC2DC \uC5EC\uBD80","\uC791\uC5C5 \uC704\uC82F \uC228\uAE30\uAE30","\uC774\uC804 \uC791\uC5C5 \uC120\uD0DD","\uB2E4\uC74C \uC791\uC5C5 \uC120\uD0DD","\uC120\uD0DD\uD55C \uC791\uC5C5 \uC218\uB77D","\uC120\uD0DD\uD55C \uC791\uC5C5 \uBBF8\uB9AC \uBCF4\uAE30"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0}({1})","{0}({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["\uC228\uAE30\uAE30","\uBA54\uB274 \uB2E4\uC2DC \uC124\uC815"],"vs/platform/actions/common/menuService":["'{0}' \uC228\uAE30\uAE30"],"vs/platform/configuration/common/configurationRegistry":["\uAE30\uBCF8 \uC5B8\uC5B4 \uAD6C\uC131 \uC7AC\uC815\uC758","{0}\uC5D0\uC11C \uC7AC\uC815\uC758\uD560 \uC124\uC815\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.","\uC5B8\uC5B4\uC5D0 \uB300\uD574 \uC7AC\uC815\uC758\uD560 \uD3B8\uC9D1\uAE30 \uC124\uC815\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.","\uC774 \uC124\uC815\uC740 \uC5B8\uC5B4\uBCC4 \uAD6C\uC131\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uC5B8\uC5B4\uC5D0 \uB300\uD574 \uC7AC\uC815\uC758\uD560 \uD3B8\uC9D1\uAE30 \uC124\uC815\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.","\uC774 \uC124\uC815\uC740 \uC5B8\uC5B4\uBCC4 \uAD6C\uC131\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uBE48 \uC18D\uC131\uC744 \uB4F1\uB85D\uD560 \uC218 \uC5C6\uC74C","'{0}'\uC744(\uB97C) \uB4F1\uB85D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC774\uB294 \uC5B8\uC5B4\uBCC4 \uD3B8\uC9D1\uAE30 \uC124\uC815\uC744 \uC124\uBA85\uD558\uB294 \uC18D\uC131 \uD328\uD134\uC778 '\\\\[.*\\\\]$'\uACFC(\uC640) \uC77C\uCE58\uD569\uB2C8\uB2E4. 'configurationDefaults' \uAE30\uC5EC\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.","'{0}'\uC744(\uB97C) \uB4F1\uB85D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC774 \uC18D\uC131\uC740 \uC774\uBBF8 \uB4F1\uB85D\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.","'{0}'\uC744(\uB97C) \uB4F1\uB85D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC5F0\uACB0\uB41C \uC815\uCC45 {1}\uC774(\uAC00) \uC774\uBBF8 {2}\uC5D0 \uB4F1\uB85D\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."],"vs/platform/contextkey/browser/contextKeyService":["\uCEE8\uD14D\uC2A4\uD2B8 \uD0A4\uC5D0 \uB300\uD55C \uC815\uBCF4\uB97C \uBC18\uD658\uD558\uB294 \uBA85\uB839"],"vs/platform/contextkey/common/contextkey":["\uBE48 \uCEE8\uD14D\uC2A4\uD2B8 \uD0A4 \uC2DD","\uC2DD \uC4F0\uB294 \uAC83\uC744 \uC78A\uC73C\uC168\uB098\uC694? \uD56D\uC0C1 'false' \uB610\uB294 'true'\uB97C \uB123\uC5B4 \uAC01\uAC01 false \uB610\uB294 true\uB85C \uD3C9\uAC00\uD560 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","'not' \uB4A4\uC5D0 'in'\uC774 \uC788\uC2B5\uB2C8\uB2E4.","\uB2EB\uB294 \uAD04\uD638 ')'","\uC608\uAE30\uCE58 \uC54A\uC740 \uD1A0\uD070","\uD1A0\uD070 \uC55E\uC5D0 && \uB610\uB294 ||\uB97C \uC785\uB825\uD558\uB294 \uAC83\uC744 \uC78A\uC73C\uC168\uB098\uC694?","\uD544\uC694\uD558\uC9C0 \uC54A\uC740 \uC2DD\uC758 \uB05D","\uCEE8\uD14D\uC2A4\uD2B8 \uD0A4\uB97C \uC785\uB825\uD558\uB294 \uAC83\uC744 \uC78A\uC73C\uC168\uB098\uC694?",`\uC608\uC0C1: {0}\r +\uC218\uC2E0\uB428: '{1}'.`],"vs/platform/contextkey/common/contextkeys":["\uC6B4\uC601 \uCCB4\uC81C\uAC00 macOS\uC778\uC9C0 \uC5EC\uBD80","\uC6B4\uC601 \uCCB4\uC81C\uAC00 Linux\uC778\uC9C0 \uC5EC\uBD80","\uC6B4\uC601 \uCCB4\uC81C\uAC00 Windows\uC778\uC9C0 \uC5EC\uBD80","\uD50C\uB7AB\uD3FC\uC774 \uC6F9 \uBE0C\uB77C\uC6B0\uC800\uC778\uC9C0 \uC5EC\uBD80","\uBE0C\uB77C\uC6B0\uC800 \uAE30\uBC18\uC774 \uC544\uB2CC \uD50C\uB7AB\uD3FC\uC5D0\uC11C \uC6B4\uC601 \uCCB4\uC81C\uAC00 macOS\uC778\uC9C0 \uC5EC\uBD80","\uC6B4\uC601 \uCCB4\uC81C\uAC00 iOS\uC778\uC9C0 \uC5EC\uBD80","\uD50C\uB7AB\uD3FC\uC774 \uBAA8\uBC14\uC77C \uC6F9 \uBE0C\uB77C\uC6B0\uC800\uC778\uC9C0 \uC5EC\uBD80","VS \uCF54\uB4DC\uC758 \uD488\uC9C8 \uC720\uD615","\uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uAC00 \uC785\uB825 \uC0C1\uC790 \uB0B4\uC5D0 \uC788\uB294\uC9C0 \uC5EC\uBD80"],"vs/platform/contextkey/common/scanner":["{0}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","{0} \uB610\uB294 {1}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","{0}, {1} \uB610\uB294 {2}\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","\uACAC\uC801\uC744 \uC5F4\uAC70\uB098 \uB2EB\uB294 \uAC83\uC744 \uC78A\uC73C\uC168\uB098\uC694?","'/'(\uC2AC\uB798\uC2DC) \uBB38\uC790\uB97C \uC774\uC2A4\uCF00\uC774\uD504\uD558\uB294 \uAC83\uC744 \uC78A\uC73C\uC168\uB098\uC694? \uC774\uC2A4\uCF00\uC774\uD504\uD558\uB824\uBA74 \uC55E\uC5D0 \uBC31\uC2AC\uB77C\uC2DC \uB450 \uAC1C(\uC608: '\\\\/')\uB97C \uB123\uC2B5\uB2C8\uB2E4."],"vs/platform/history/browser/contextScopedHistoryWidget":["\uC81C\uC548\uC774 \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80"],"vs/platform/keybinding/common/abstractKeybindingService":["({0})\uC744(\uB97C) \uB20C\uB800\uC2B5\uB2C8\uB2E4. \uB458\uC9F8 \uD0A4\uB294 \uC7A0\uC2DC \uAE30\uB2E4\uB838\uB2E4\uAC00 \uB204\uB974\uC2ED\uC2DC\uC624...","({0})\uC744(\uB97C) \uB20C\uB800\uC2B5\uB2C8\uB2E4. \uCF54\uB4DC\uC758 \uB2E4\uC74C \uD0A4\uB97C \uAE30\uB2E4\uB9AC\uB294 \uC911...","\uD0A4 \uC870\uD569({0}, {1})\uC740 \uBA85\uB839\uC774 \uC544\uB2D9\uB2C8\uB2E4.","\uD0A4 \uC870\uD569({0}, {1})\uC740 \uBA85\uB839\uC774 \uC544\uB2D9\uB2C8\uB2E4."],"vs/platform/list/browser/listService":["\uC6CC\uD06C\uBCA4\uCE58","Windows\uC640 Linux\uC758 'Control'\uC744 macOS\uC758 'Command'\uB85C \uB9E4\uD551\uD569\uB2C8\uB2E4.","Windows\uC640 Linux\uC758 'Alt'\uB97C macOS\uC758 'Option'\uC73C\uB85C \uB9E4\uD551\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uD2B8\uB9AC\uC640 \uBAA9\uB85D\uC758 \uD56D\uBAA9\uC744 \uB2E4\uC911 \uC120\uD0DD\uC5D0 \uCD94\uAC00\uD560 \uB54C \uC0AC\uC6A9\uD560 \uD55C\uC815\uC790\uC785\uB2C8\uB2E4(\uC608\uB97C \uB4E4\uC5B4 \uD0D0\uC0C9\uAE30\uC5D0\uC11C \uD3B8\uC9D1\uAE30\uC640 SCM \uBCF4\uAE30\uB97C \uC5EC\uB294 \uACBD\uC6B0). '\uC606\uC5D0\uC11C \uC5F4\uAE30' \uB9C8\uC6B0\uC2A4 \uC81C\uC2A4\uCC98(\uC9C0\uC6D0\uB418\uB294 \uACBD\uC6B0)\uB294 \uB2E4\uC911 \uC120\uD0DD \uD55C\uC815\uC790\uC640 \uCDA9\uB3CC\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC870\uC815\uB429\uB2C8\uB2E4.","\uD2B8\uB9AC\uC640 \uBAA9\uB85D\uC5D0\uC11C \uB9C8\uC6B0\uC2A4\uB97C \uC0AC\uC6A9\uD558\uC5EC \uD56D\uBAA9\uC744 \uC5EC\uB294 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4(\uC9C0\uC6D0\uB418\uB294 \uACBD\uC6B0). \uC77C\uBD80 \uD2B8\uB9AC\uC640 \uBAA9\uB85D\uC5D0\uC11C\uB294 \uC774 \uC124\uC815\uC744 \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uACBD\uC6B0 \uBB34\uC2DC\uD558\uB3C4\uB85D \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC5D0\uC11C \uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC758 \uAC00\uB85C \uC2A4\uD06C\uB864 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uACBD\uACE0: \uC774 \uC124\uC815\uC744 \uCF1C\uBA74 \uC131\uB2A5\uC5D0 \uC601\uD5A5\uC744 \uBBF8\uCE69\uB2C8\uB2E4.","\uC2A4\uD06C\uB864 \uB9C9\uB300 \uC2A4\uD06C\uB864 \uD398\uC774\uC9C0\uC758 \uD398\uC774\uC9C0\uBCC4 \uD074\uB9AD \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD2B8\uB9AC \uB4E4\uC5EC\uC4F0\uAE30\uB97C \uD53D\uC140 \uB2E8\uC704\uB85C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD2B8\uB9AC\uC5D0\uC11C \uB4E4\uC5EC\uC4F0\uAE30 \uAC00\uC774\uB4DC\uB97C \uB80C\uB354\uB9C1\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uBAA9\uB85D\uACFC \uD2B8\uB9AC\uC5D0 \uBD80\uB4DC\uB7EC\uC6B4 \uD654\uBA74 \uC774\uB3D9 \uAE30\uB2A5\uC774 \uC788\uB294\uC9C0\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4 \uD720 \uC2A4\uD06C\uB864 \uC774\uBCA4\uD2B8\uC758 `deltaX` \uBC0F `deltaY`\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC2B9\uC218\uC785\uB2C8\uB2E4.","'Alt' \uD0A4\uB97C \uB204\uB97C \uB54C \uC2A4\uD06C\uB864 \uC18D\uB3C4 \uC2B9\uC218\uC785\uB2C8\uB2E4.","\uAC80\uC0C9\uD560 \uB54C \uC694\uC18C\uB97C \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uCD94\uAC00 \uC704\uC544\uB798 \uD0D0\uC0C9\uC740 \uAC15\uC870 \uD45C\uC2DC\uB41C \uC694\uC18C\uB9CC \uD0D0\uC0C9\uD569\uB2C8\uB2E4.","\uAC80\uC0C9\uD560 \uB54C \uC694\uC18C\uB97C \uD544\uD130\uB9C1\uD569\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC5D0\uC11C \uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC758 \uAE30\uBCF8 \uCC3E\uAE30 \uBAA8\uB4DC\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uAC04\uB2E8\uD55C \uD0A4\uBCF4\uB4DC \uD0D0\uC0C9\uC5D0\uC11C\uB294 \uD0A4\uBCF4\uB4DC \uC785\uB825\uACFC \uC77C\uCE58\uD558\uB294 \uC694\uC18C\uC5D0 \uC9D1\uC911\uD569\uB2C8\uB2E4. \uC77C\uCE58\uB294 \uC811\uB450\uC0AC\uC5D0\uC11C\uB9CC \uC218\uD589\uB429\uB2C8\uB2E4.","\uD0A4\uBCF4\uB4DC \uD0D0\uC0C9 \uAC15\uC870 \uD45C\uC2DC\uC5D0\uC11C\uB294 \uD0A4\uBCF4\uB4DC \uC785\uB825\uACFC \uC77C\uCE58\uD558\uB294 \uC694\uC18C\uB97C \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uC774\uD6C4\uB85C \uD0D0\uC0C9\uC5D0\uC11C \uC704 \uBC0F \uC544\uB798\uB85C \uC774\uB3D9\uD558\uB294 \uACBD\uC6B0 \uAC15\uC870 \uD45C\uC2DC\uB41C \uC694\uC18C\uB9CC \uD2B8\uB798\uBC84\uC2A4\uD569\uB2C8\uB2E4.","\uD0A4\uBCF4\uB4DC \uD0D0\uC0C9 \uD544\uD130\uB9C1\uC5D0\uC11C\uB294 \uD0A4\uBCF4\uB4DC \uC785\uB825\uACFC \uC77C\uCE58\uD558\uC9C0 \uC54A\uB294 \uC694\uC18C\uB97C \uBAA8\uB450 \uD544\uD130\uB9C1\uD558\uC5EC \uC228\uAE41\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC758 \uBAA9\uB85D \uBC0F \uD2B8\uB9AC \uD0A4\uBCF4\uB4DC \uD0D0\uC0C9 \uC2A4\uD0C0\uC77C\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uAC04\uC18C\uD654\uD558\uACE0, \uAC15\uC870 \uD45C\uC2DC\uD558\uACE0, \uD544\uD130\uB9C1\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uB300\uC2E0 'workbench.list.defaultFindMode' \uBC0F 'workbench.list.typeNavigationMode'\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.","\uAC80\uC0C9\uD560 \uB54C \uC720\uC0AC \uD56D\uBAA9 \uC77C\uCE58\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uAC80\uC0C9\uD560 \uB54C \uC5F0\uC18D \uC77C\uCE58\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC5D0\uC11C \uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uB97C \uAC80\uC0C9\uD560 \uB54C \uC0AC\uC6A9\uD558\uB294 \uC77C\uCE58 \uC720\uD615\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uD3F4\uB354 \uC774\uB984\uC744 \uD074\uB9AD\uD560 \uB54C \uD2B8\uB9AC \uD3F4\uB354\uAC00 \uD655\uC7A5\uB418\uB294 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. \uC77C\uBD80 \uD2B8\uB9AC\uC640 \uBAA9\uB85D\uC5D0\uC11C\uB294 \uC774 \uC124\uC815\uC744 \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uACBD\uC6B0 \uBB34\uC2DC\uD558\uB3C4\uB85D \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uD2B8\uB9AC\uC5D0\uC11C \uACE0\uC815 \uC2A4\uD06C\uB864\uC744 \uC0AC\uC6A9\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","`#workbench.tree.enableStickyScroll#`\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC124\uC815\uD55C \uACBD\uC6B0 \uD2B8\uB9AC\uC5D0 \uD45C\uC2DC\uB418\uB294 \uACE0\uC815 \uC694\uC18C\uC758 \uC218\uB97C \uC81C\uC5B4\uD569\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC758 \uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC5D0\uC11C \uD615\uC2DD \uD0D0\uC0C9\uC774 \uC791\uB3D9\uD558\uB294 \uBC29\uC2DD\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4. 'trigger'\uB85C \uC124\uC815 \uC2DC 'list.triggerTypeNavigation' \uBA85\uB839\uC774 \uC2E4\uD589\uB418\uBA74 \uD615\uC2DD \uD0D0\uC0C9\uC774 \uC2DC\uC791\uB429\uB2C8\uB2E4."],"vs/platform/markers/common/markers":["\uC624\uB958","\uACBD\uACE0","\uC815\uBCF4"],"vs/platform/quickinput/browser/commandsQuickAccess":["\uCD5C\uADFC\uC5D0 \uC0AC\uC6A9\uD55C \uD56D\uBAA9","\uC720\uC0AC\uD55C \uBA85\uB839","\uC77C\uBC18\uC801\uC73C\uB85C \uC0AC\uC6A9\uB428","\uAE30\uD0C0 \uBA85\uB839","\uC720\uC0AC\uD55C \uBA85\uB839","{0}, {1}","'{0}' \uBA85\uB839\uC5D0\uC11C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["\uB4A4\uB85C","\uC785\uB825\uC744 \uD655\uC778\uD558\uB824\uBA74 'Enter' \uD0A4\uB97C \uB204\uB974\uACE0, \uCDE8\uC18C\uD558\uB824\uBA74 'Esc' \uD0A4\uB97C \uB204\uB974\uC138\uC694.","{0} / {1}","\uACB0\uACFC\uC758 \uBC94\uC704\uB97C \uCD95\uC18C\uD558\uB824\uBA74 \uC785\uB825\uD558\uC138\uC694."],"vs/platform/quickinput/browser/quickInputController":["\uBAA8\uB4E0 \uD655\uC778\uB780 \uC120\uD0DD/\uD574\uC81C","{0}\uAC1C \uACB0\uACFC","{0} \uC120\uD0DD\uB428","\uD655\uC778","\uC0AC\uC6A9\uC790 \uC9C0\uC815","\uB4A4\uB85C({0})","\uB4A4\uB85C"],"vs/platform/quickinput/browser/quickInputList":["\uBE60\uB978 \uC785\uB825"],"vs/platform/quickinput/browser/quickInputUtils":["'{0}' \uBA85\uB839\uC744 \uC2E4\uD589\uD558\uB824\uBA74 \uD074\uB9AD"],"vs/platform/theme/common/colorRegistry":["\uC804\uCCB4 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC740 \uAD6C\uC131 \uC694\uC18C\uC5D0\uC11C \uC7AC\uC815\uC758\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uBE44\uD65C\uC131\uD654\uB41C \uC694\uC18C\uC758 \uC804\uCCB4 \uC804\uACBD\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC740 \uAD6C\uC131 \uC694\uC18C\uC5D0\uC11C \uC7AC\uC815\uC758\uD558\uC9C0 \uC54A\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uC624\uB958 \uBA54\uC2DC\uC9C0\uC5D0 \uB300\uD55C \uC804\uCCB4 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC740 \uAD6C\uC131 \uC694\uC18C\uC5D0\uC11C \uC7AC\uC815\uC758\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uB808\uC774\uBE14\uACFC \uAC19\uC774 \uCD94\uAC00 \uC815\uBCF4\uB97C \uC81C\uACF5\uD558\uB294 \uC124\uBA85 \uD14D\uC2A4\uD2B8\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58 \uC544\uC774\uCF58\uC758 \uAE30\uBCF8 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uC694\uC18C\uC758 \uC804\uCCB4 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC740 \uAD6C\uC131 \uC694\uC18C\uC5D0\uC11C \uC7AC\uC815\uC758\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uB354 \uB69C\uB837\uC774 \uB300\uBE44\uB418\uB3C4\uB85D \uC694\uC18C\uB97C \uB2E4\uB978 \uC694\uC18C\uC640 \uAD6C\uBD84\uD558\uB294 \uC694\uC18C \uC8FC\uC704\uC758 \uCD94\uAC00 \uD14C\uB450\uB9AC\uC785\uB2C8\uB2E4.","\uB354 \uB69C\uB837\uC774 \uB300\uBE44\uB418\uB3C4\uB85D \uC694\uC18C\uB97C \uB2E4\uB978 \uC694\uC18C\uC640 \uAD6C\uBD84\uD558\uB294 \uD65C\uC131 \uC694\uC18C \uC8FC\uC704\uC758 \uCD94\uAC00 \uD14C\uB450\uB9AC\uC785\uB2C8\uB2E4.","\uC6CC\uD06C\uBCA4\uCE58\uC758 \uD14D\uC2A4\uD2B8 \uC120\uD0DD(\uC608: \uC785\uB825 \uD544\uB4DC \uB610\uB294 \uD14D\uC2A4\uD2B8 \uC601\uC5ED) \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uD3B8\uC9D1\uAE30 \uB0B4\uC758 \uC120\uD0DD\uC5D0\uB294 \uC801\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uAD6C\uBD84\uC790 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uB0B4 \uB9C1\uD06C\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD074\uB9AD\uD558\uACE0 \uB9C8\uC6B0\uC2A4\uAC00 \uC62C\uB77C\uAC04 \uC0C1\uD0DC\uC758 \uD14D\uC2A4\uD2B8 \uB0B4 \uB9C1\uD06C\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBBF8\uB9AC \uC11C\uC2DD\uC774 \uC9C0\uC815\uB41C \uD14D\uC2A4\uD2B8 \uC138\uADF8\uBA3C\uD2B8\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBBF8\uB9AC \uC11C\uC2DD\uC774 \uC9C0\uC815\uB41C \uD14D\uC2A4\uD2B8 \uC138\uADF8\uBA3C\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uB0B4 \uBE14\uB85D \uC778\uC6A9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uB0B4 \uBE14\uB85D \uC778\uC6A9\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD14D\uC2A4\uD2B8 \uB0B4 \uCF54\uB4DC \uBE14\uB85D\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB0B4\uC5D0\uC11C \uCC3E\uAE30/\uBC14\uAFB8\uAE30 \uAC19\uC740 \uC704\uC82F\uC758 \uADF8\uB9BC\uC790 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB0B4\uC5D0\uC11C \uCC3E\uAE30/\uBC14\uAFB8\uAE30\uC640 \uAC19\uC740 \uC704\uC82F\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC785\uB825 \uC0C1\uC790 \uBC30\uACBD\uC785\uB2C8\uB2E4.","\uC785\uB825 \uC0C1\uC790 \uC804\uACBD\uC785\uB2C8\uB2E4.","\uC785\uB825 \uC0C1\uC790 \uD14C\uB450\uB9AC\uC785\uB2C8\uB2E4.","\uC785\uB825 \uD544\uB4DC\uC5D0\uC11C \uD65C\uC131\uD654\uB41C \uC635\uC158\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC785\uB825 \uD544\uB4DC\uC5D0\uC11C \uD65C\uC131\uD654\uB41C \uC635\uC158\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC785\uB825 \uD544\uB4DC\uC5D0 \uC788\uB294 \uC635\uC158\uC758 \uBC30\uACBD \uAC00\uB9AC\uD0A4\uAE30 \uC0C9\uC785\uB2C8\uB2E4.","\uC785\uB825 \uD544\uB4DC\uC5D0\uC11C \uD65C\uC131\uD654\uB41C \uC635\uC158\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC704\uCE58 \uD45C\uC2DC\uC790 \uD14D\uC2A4\uD2B8\uC5D0 \uB300\uD55C \uC785\uB825 \uC0C1\uC790 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC815\uBCF4 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC815\uBCF4 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC815\uBCF4 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uACBD\uACE0 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uACBD\uACE0 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uACBD\uACE0 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC624\uB958 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC624\uB958 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC624\uB958 \uC2EC\uAC01\uB3C4\uC758 \uC785\uB825 \uC720\uD6A8\uC131 \uAC80\uC0AC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uB4DC\uB86D\uB2E4\uC6B4 \uBC30\uACBD\uC785\uB2C8\uB2E4.","\uB4DC\uB86D\uB2E4\uC6B4 \uBAA9\uB85D \uBC30\uACBD\uC785\uB2C8\uB2E4.","\uB4DC\uB86D\uB2E4\uC6B4 \uC804\uACBD\uC785\uB2C8\uB2E4.","\uB4DC\uB86D\uB2E4\uC6B4 \uD14C\uB450\uB9AC\uC785\uB2C8\uB2E4.","\uB2E8\uCD94 \uAE30\uBCF8 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB2E8\uCD94 \uAD6C\uBD84 \uAE30\uD638 \uC0C9\uC785\uB2C8\uB2E4.","\uB2E8\uCD94 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uB2E8\uCD94 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBC84\uD2BC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBCF4\uC870 \uB2E8\uCD94 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBCF4\uC870 \uB2E8\uCD94 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uBCF4\uC870 \uB2E8\uCD94 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBC30\uC9C0 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBC30\uC9C0\uB294 \uAC80\uC0C9 \uACB0\uACFC \uC218\uC640 \uAC19\uC740 \uC18C\uB7C9\uC758 \uC815\uBCF4 \uB808\uC774\uBE14\uC785\uB2C8\uB2E4.","\uBC30\uC9C0 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBC30\uC9C0\uB294 \uAC80\uC0C9 \uACB0\uACFC \uC218\uC640 \uAC19\uC740 \uC18C\uB7C9\uC758 \uC815\uBCF4 \uB808\uC774\uBE14\uC785\uB2C8\uB2E4.","\uC2A4\uD06C\uB864\uB418\uB294 \uBCF4\uAE30\uB97C \uB098\uD0C0\uB0B4\uB294 \uC2A4\uD06C\uB864 \uB9C9\uB300 \uADF8\uB9BC\uC790\uC785\uB2C8\uB2E4.","\uC2A4\uD06C\uB864 \uB9C9\uB300 \uC2AC\uB77C\uC774\uBC84 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uC2A4\uD06C\uB864 \uB9C9\uB300 \uC2AC\uB77C\uC774\uB354 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD074\uB9AD\uB41C \uC0C1\uD0DC\uC77C \uB54C \uC2A4\uD06C\uB864 \uB9C9\uB300 \uC2AC\uB77C\uC774\uB354 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC7A5\uAE30 \uC791\uC5C5\uC744 \uB300\uC0C1\uC73C\uB85C \uD45C\uC2DC\uB420 \uC218 \uC788\uB294 \uC9C4\uD589\uB960 \uD45C\uC2DC\uC904\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC624\uB958 \uD14D\uC2A4\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB0B4 \uC624\uB958 \uD45C\uC2DC\uC120\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC124\uC815\uB41C \uACBD\uC6B0 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC624\uB958\uB97C \uB098\uD0C0\uB0B4\uB294 \uC774\uC911 \uBC11\uC904\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACBD\uACE0 \uD14D\uC2A4\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB0B4 \uACBD\uACE0 \uD45C\uC2DC\uC120\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC124\uC815\uB41C \uACBD\uC6B0 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACBD\uACE0\uB97C \uB098\uD0C0\uB0B4\uB294 \uC774\uC911 \uBC11\uC904\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC815\uBCF4 \uD14D\uC2A4\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uB0B4 \uC815\uBCF4 \uD45C\uC2DC\uC120\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC124\uC815\uB41C \uACBD\uC6B0 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uC815\uBCF4\uB97C \uB098\uD0C0\uB0B4\uB294 \uC774\uC911 \uBC11\uC904 \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD78C\uD2B8 \uD45C\uC2DC\uC120\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC124\uC815\uB41C \uACBD\uC6B0 \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uD78C\uD2B8\uB97C \uB098\uD0C0\uB0B4\uB294 \uC774\uC911 \uBC11\uC904 \uC0C9\uC785\uB2C8\uB2E4.","\uD65C\uC131 \uC100\uC2DC\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uAE30\uBCF8 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC815 \uC2A4\uD06C\uB864\uC758 \uBC30\uACBD\uC0C9","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uACE0\uC815 \uC2A4\uD06C\uB864\uC758 \uBC30\uACBD\uC0C9","\uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC815 \uC2A4\uD06C\uB864\uC758 \uD14C\uB450\uB9AC \uC0C9"," \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uACE0\uC815 \uC2A4\uD06C\uB864\uC758 \uADF8\uB9BC\uC790 \uC0C9","\uCC3E\uAE30/\uBC14\uAFB8\uAE30 \uAC19\uC740 \uD3B8\uC9D1\uAE30 \uC704\uC82F\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uCC3E\uAE30/\uBC14\uAFB8\uAE30\uC640 \uAC19\uC740 \uD3B8\uC9D1\uAE30 \uC704\uC82F\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC704\uC82F\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4. \uC704\uC82F\uC5D0 \uD14C\uB450\uB9AC\uAC00 \uC788\uACE0 \uC704\uC82F\uC774 \uC0C9\uC0C1\uC744 \uBB34\uC2DC\uD558\uC9C0 \uC54A\uC744 \uB54C\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC704\uC82F \uD06C\uAE30 \uC870\uC815 \uB9C9\uB300\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4. \uC774 \uC0C9\uC740 \uC704\uC82F\uC5D0\uC11C \uD06C\uAE30 \uC870\uC815 \uB9C9\uB300\uB97C \uD45C\uC2DC\uD558\uB3C4\uB85D \uC120\uD0DD\uD558\uACE0 \uC704\uC82F\uC5D0\uC11C \uC0C9\uC744 \uC7AC\uC9C0\uC815\uD558\uC9C0 \uC54A\uB294 \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uBE60\uB978 \uC120\uD0DD\uAE30 \uBC30\uACBD\uC0C9. \uBE60\uB978 \uC120\uD0DD\uAE30 \uC704\uC82F\uC740 \uBA85\uB839 \uD314\uB808\uD2B8\uC640 \uAC19\uC740 \uC120\uD0DD\uAE30\uB97C \uC704\uD55C \uCEE8\uD14C\uC774\uB108\uC785\uB2C8\uB2E4.","\uBE60\uB978 \uC120\uD0DD\uAE30 \uC804\uACBD\uC0C9. \uC774 \uBE60\uB978 \uC120\uD0DD\uAE30 \uC704\uC82F\uC740 \uBA85\uB839 \uD314\uB808\uD2B8\uC640 \uAC19\uC740 \uC120\uD0DD\uAE30\uB97C \uC704\uD55C \uCEE8\uD14C\uC774\uB108\uC785\uB2C8\uB2E4.","\uBE60\uB978 \uC120\uD0DD\uAE30 \uC81C\uBAA9 \uBC30\uACBD\uC0C9. \uC774 \uBE60\uB978 \uC120\uD0DD\uAE30 \uC704\uC82F\uC740 \uBA85\uB839 \uD314\uB808\uD2B8\uC640 \uAC19\uC740 \uC120\uD0DD\uAE30\uB97C \uC704\uD55C \uCEE8\uD14C\uC774\uB108\uC785\uB2C8\uB2E4.","\uADF8\uB8F9\uD654 \uB808\uC774\uBE14\uC5D0 \uB300\uD55C \uBE60\uB978 \uC120\uD0DD\uAE30 \uC0C9\uC785\uB2C8\uB2E4.","\uADF8\uB8F9\uD654 \uD14C\uB450\uB9AC\uC5D0 \uB300\uD55C \uBE60\uB978 \uC120\uD0DD\uAE30 \uC0C9\uC785\uB2C8\uB2E4.","\uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14\uC740 \uBC14\uB85C \uAC00\uAE30 \uD0A4\uB97C \uB098\uD0C0\uB0B4\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14\uC740 \uBC14\uB85C \uAC00\uAE30 \uD0A4\uB97C \uB098\uD0C0\uB0B4\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4. \uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14\uC740 \uBC14\uB85C \uAC00\uAE30 \uD0A4\uB97C \uB098\uD0C0\uB0B4\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14 \uD14C\uB450\uB9AC \uC544\uB798\uCABD \uC0C9\uC785\uB2C8\uB2E4. \uD0A4 \uBC14\uC778\uB529 \uB808\uC774\uBE14\uC740 \uBC14\uB85C \uAC00\uAE30 \uD0A4\uB97C \uB098\uD0C0\uB0B4\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD \uC601\uC5ED\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uACE0\uB300\uBE44\uB97C \uC704\uD55C \uC120\uD0DD \uD14D\uC2A4\uD2B8\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uBE44\uD65C\uC131 \uD3B8\uC9D1\uAE30\uC758 \uC120\uD0DD \uD56D\uBAA9 \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC120\uD0DD \uC601\uC5ED\uACFC \uB3D9\uC77C\uD55C \uCF58\uD150\uCE20\uAC00 \uC788\uB294 \uC601\uC5ED\uC758 \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC120\uD0DD \uC601\uC5ED\uACFC \uB3D9\uC77C\uD55C \uCF58\uD150\uCE20\uAC00 \uC788\uB294 \uC601\uC5ED\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD604\uC7AC \uAC80\uC0C9 \uC77C\uCE58 \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uAE30\uD0C0 \uAC80\uC0C9 \uC77C\uCE58 \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAC80\uC0C9\uC744 \uC81C\uD55C\uD558\uB294 \uBC94\uC704\uC758 \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uD604\uC7AC \uAC80\uC0C9\uACFC \uC77C\uCE58\uD558\uB294 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uB2E4\uB978 \uAC80\uC0C9\uACFC \uC77C\uCE58\uD558\uB294 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uAC80\uC0C9\uC744 \uC81C\uD55C\uD558\uB294 \uBC94\uC704\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uAC80\uC0C9 \uD3B8\uC9D1\uAE30 \uCFFC\uB9AC\uC758 \uC0C9\uC0C1\uC774 \uC77C\uCE58\uD569\uB2C8\uB2E4.","\uAC80\uC0C9 \uD3B8\uC9D1\uAE30 \uCFFC\uB9AC\uC758 \uD14C\uB450\uB9AC \uC0C9\uC0C1\uC774 \uC77C\uCE58\uD569\uB2C8\uB2E4.","\uAC80\uC0C9 \uBDF0\uB81B \uC644\uB8CC \uBA54\uC2DC\uC9C0\uC758 \uD14D\uC2A4\uD2B8 \uC0C9\uC785\uB2C8\uB2E4.","\uD638\uBC84\uAC00 \uD45C\uC2DC\uB41C \uB2E8\uC5B4 \uC544\uB798\uB97C \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uD638\uBC84\uC758 \uBC30\uACBD\uC0C9.","\uD3B8\uC9D1\uAE30 \uD638\uBC84\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uD638\uBC84\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uD638\uBC84 \uC0C1\uD0DC \uD45C\uC2DC\uC904\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD65C\uC131 \uB9C1\uD06C\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uC804\uACBD\uC0C9","\uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uBC30\uACBD\uC0C9","\uD615\uC2DD\uC5D0 \uB300\uD55C \uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uC804\uACBD\uC0C9","\uD615\uC2DD\uC5D0 \uB300\uD55C \uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uBC30\uACBD\uC0C9","\uB9E4\uAC1C \uBCC0\uC218\uC5D0 \uB300\uD55C \uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uC804\uACBD\uC0C9","\uB9E4\uAC1C \uBCC0\uC218\uC5D0 \uB300\uD55C \uC778\uB77C\uC778 \uD78C\uD2B8\uC758 \uBC30\uACBD\uC0C9","\uC804\uAD6C \uC791\uC5C5 \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uC804\uAD6C \uC790\uB3D9 \uC218\uC815 \uC791\uC5C5 \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uC804\uAD6C AI \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uC0BD\uC785\uB41C \uD14D\uC2A4\uD2B8\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC81C\uAC70\uB41C \uD14D\uC2A4\uD2B8 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC0BD\uC785\uB41C \uC904\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC81C\uAC70\uB41C \uC904\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uC0C9\uC0C1\uC740 \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC904\uC774 \uC0BD\uC785\uB41C \uC5EC\uBC31\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC904\uC774 \uC81C\uAC70\uB41C \uC5EC\uBC31\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC0BD\uC785\uB41C \uCF58\uD150\uCE20\uC5D0 \uB300\uD55C \uCC28\uB4F1 \uAC1C\uC694 \uB208\uAE08\uC790 \uC804\uACBD\uC785\uB2C8\uB2E4.","\uC81C\uAC70\uB41C \uCF58\uD150\uCE20\uC5D0 \uB300\uD55C \uCC28\uB4F1 \uAC1C\uC694 \uB208\uAE08\uC790 \uC804\uACBD\uC785\uB2C8\uB2E4.","\uC0BD\uC785\uB41C \uD14D\uC2A4\uD2B8\uC758 \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4.","\uC81C\uAC70\uB41C \uD14D\uC2A4\uD2B8\uC758 \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4.","\uB450 \uD14D\uC2A4\uD2B8 \uD3B8\uC9D1\uAE30 \uC0AC\uC774\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC758 \uB300\uAC01\uC120 \uCC44\uC6B0\uAE30 \uC0C9\uC785\uB2C8\uB2E4. \uB300\uAC01\uC120 \uCC44\uC6B0\uAE30\uB294 diff \uB098\uB780\uD788 \uBCF4\uAE30\uC5D0\uC11C \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uBE14\uB85D\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uBE14\uB85D\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","diff \uD3B8\uC9D1\uAE30\uC5D0\uC11C \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC740 \uCF54\uB4DC\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131\uD654\uB418\uACE0 \uC120\uD0DD\uB418\uC5C8\uC744 \uB54C \uCD08\uC810\uC774 \uB9DE\uCDB0\uC9C4 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC724\uACFD\uC120 \uC0C9\uC0C1\uC785\uB2C8\uB2E4. \uD65C\uC131 \uBAA9\uB85D/\uD2B8\uB9AC\uC5D0\uB294 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uACE0 \uBE44\uD65C\uC131\uC5D0\uB294 \uADF8\uB807\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC544\uC774\uCF58 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uC120\uD0DD\uD55C \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC544\uC774\uCF58 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC778 \uACBD\uC6B0 \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4. \uBAA9\uB85D/\uD2B8\uB9AC\uAC00 \uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uB97C \uAC00\uC9C0\uBA70, \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uD56D\uBAA9\uC744 \uAC00\uB9AC\uD0AC \uB54C \uBAA9\uB85D/\uD2B8\uB9AC \uBC30\uACBD\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uD56D\uBAA9\uC744 \uAC00\uB9AC\uD0AC \uB54C \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uD56D\uBAA9\uC744 \uC774\uB3D9\uD560 \uB54C \uBAA9\uB85D/\uD2B8\uB9AC \uB04C\uC5B4\uC11C \uB193\uAE30 \uBC30\uACBD\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uB54C \uD56D\uBAA9 \uAC04\uC5D0 \uD56D\uBAA9\uC744 \uC774\uB3D9\uD560 \uB54C \uBAA9\uB85D/\uD2B8\uB9AC \uB04C\uC5B4\uC11C \uB193\uAE30 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC \uB0B4\uC5D0\uC11C \uAC80\uC0C9\uD560 \uB54C \uC77C\uCE58 \uD56D\uBAA9 \uAC15\uC870 \uD45C\uC2DC\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D/\uD2B8\uB9AC \uB0B4\uC5D0\uC11C \uAC80\uC0C9\uD560 \uB54C \uC77C\uCE58 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9\uC774 \uB2A5\uB3D9\uC801\uC73C\uB85C \uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC744 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.","\uC798\uBABB\uB41C \uD56D\uBAA9\uC5D0 \uB300\uD55C \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD \uC0C9(\uC608: \uD0D0\uC0C9\uAE30\uC758 \uD655\uC778\uD560 \uC218 \uC5C6\uB294 \uB8E8\uD2B8).","\uC624\uB958\uB97C \uD3EC\uD568\uD558\uB294 \uBAA9\uB85D \uD56D\uBAA9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uACBD\uACE0\uB97C \uD3EC\uD568\uD558\uB294 \uBAA9\uB85D \uD56D\uBAA9\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC5D0\uC11C \uD615\uC2DD \uD544\uD130 \uC704\uC82F\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC5D0\uC11C \uD615\uC2DD \uD544\uD130 \uC704\uC82F\uC758 \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4.","\uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC744 \uB54C \uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC5D0\uC11C \uD45C\uC2DC\uB418\uB294 \uD615\uC2DD \uD544\uD130 \uC704\uC82F\uC758 \uC724\uACFD\uC120 \uC0C9\uC785\uB2C8\uB2E4.","\uBAA9\uB85D \uBC0F \uD2B8\uB9AC\uC5D0\uC11C \uC720\uD615 \uD544\uD130 \uC704\uC82F\uC758 \uADF8\uB9BC\uC790 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uD544\uD130\uB9C1\uB41C \uC77C\uCE58 \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD544\uD130\uB9C1\uB41C \uC77C\uCE58 \uD56D\uBAA9\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uB4E4\uC5EC\uC4F0\uAE30 \uAC00\uC774\uB4DC\uC758 \uD2B8\uB9AC \uC2A4\uD2B8\uB85C\uD06C \uC0C9\uC785\uB2C8\uB2E4.","\uD65C\uC131 \uC0C1\uD0DC\uAC00 \uC544\uB2CC \uB4E4\uC5EC\uC4F0\uAE30 \uC548\uB0B4\uC120\uC758 \uD2B8\uB9AC \uC2A4\uD2B8\uB85C\uD06C \uC0C9\uC785\uB2C8\uB2E4.","\uC5F4 \uC0AC\uC774\uC758 \uD45C \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD640\uC218 \uD14C\uC774\uBE14 \uD589\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uAC15\uC870\uB418\uC9C0 \uC54A\uC740 \uD56D\uBAA9\uC758 \uBAA9\uB85D/\uD2B8\uB9AC \uC804\uACBD\uC0C9. ","\uD655\uC778\uB780 \uC704\uC82F\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD655\uC778\uB780 \uC704\uC82F\uC774 \uD3EC\uD568\uB41C \uC694\uC18C\uAC00 \uC120\uD0DD\uB41C \uACBD\uC6B0\uC758 \uD655\uC778\uB780 \uC704\uC82F \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD655\uC778\uB780 \uC704\uC82F\uC758 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD655\uC778\uB780 \uC704\uC82F\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uD655\uC778\uB780 \uC704\uC82F\uC774 \uD3EC\uD568\uB41C \uC694\uC18C\uAC00 \uC120\uD0DD\uB41C \uACBD\uC6B0\uC758 \uD655\uC778\uB780 \uC704\uC82F \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uB300\uC2E0 quickInputList.focusBackground\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBE60\uB978 \uC120\uD0DD\uAE30 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBE60\uB978 \uC120\uD0DD\uAE30 \uC544\uC774\uCF58 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uD56D\uBAA9\uC758 \uBE60\uB978 \uC120\uD0DD\uAE30 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274 \uD56D\uBAA9 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274 \uD56D\uBAA9 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274\uC758 \uC120\uD0DD\uB41C \uBA54\uB274 \uD56D\uBAA9 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274\uC758 \uC120\uD0DD\uB41C \uBA54\uB274 \uD56D\uBAA9 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274\uC758 \uC120\uD0DD\uB41C \uBA54\uB274 \uD56D\uBAA9 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uBA54\uB274\uC5D0\uC11C \uAD6C\uBD84 \uAE30\uD638 \uBA54\uB274 \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC791\uC5C5 \uC704\uB85C \uB9C8\uC6B0\uC2A4\uB97C \uAC00\uC838\uAC00\uB294 \uACBD\uC6B0 \uB3C4\uAD6C \uBAA8\uC74C \uBC30\uACBD","\uB9C8\uC6B0\uC2A4\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC791\uC5C5 \uC704\uB85C \uB9C8\uC6B0\uC2A4\uB97C \uAC00\uC838\uAC00\uB294 \uACBD\uC6B0 \uB3C4\uAD6C \uBAA8\uC74C \uC724\uACFD\uC120","\uC791\uC5C5 \uC704\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uB193\uC558\uC744 \uB54C \uB3C4\uAD6C \uBAA8\uC74C \uBC30\uACBD","\uCF54\uB4DC \uC870\uAC01 \uD0ED \uC815\uC9C0\uC758 \uAC15\uC870 \uD45C\uC2DC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01 \uD0ED \uC815\uC9C0\uC758 \uAC15\uC870 \uD45C\uC2DC \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01 \uB9C8\uC9C0\uB9C9 \uD0ED \uC815\uC9C0\uC758 \uAC15\uC870 \uD45C\uC2DC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uCF54\uB4DC \uC870\uAC01 \uB9C8\uC9C0\uB9C9 \uD0ED \uC815\uC9C0\uC758 \uAC15\uC870 \uD45C\uC2DC \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uC774\uB3D9 \uACBD\uB85C \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uC774\uB3D9 \uACBD\uB85C \uD56D\uBAA9\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD3EC\uCEE4\uC2A4\uAC00 \uC788\uB294 \uC774\uB3D9 \uACBD\uB85C \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uC120\uD0DD\uD55C \uC774\uB3D9 \uACBD\uB85C \uD56D\uBAA9\uC758 \uC0C9\uC785\uB2C8\uB2E4.","\uC774\uB3D9 \uACBD\uB85C \uD56D\uBAA9 \uC120\uD0DD\uAE30\uC758 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uD604\uC7AC \uD5E4\uB354 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uD604\uC7AC \uCF58\uD150\uCE20 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uB4E4\uC5B4\uC624\uB294 \uD5E4\uB354 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uB4E4\uC5B4\uC624\uB294 \uCF58\uD150\uCE20 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uACF5\uD1B5 \uC0C1\uC704 \uD5E4\uB354 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC758 \uACF5\uD1B5 \uC0C1\uC704 \uCF58\uD150\uCE20 \uBC30\uACBD\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC5D0\uC11C \uD5E4\uB354 \uBC0F \uC2A4\uD50C\uB9AC\uD130\uC758 \uD14C\uB450\uB9AC \uC0C9\uC785\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC5D0\uC11C \uD604\uC7AC \uAC1C\uC694 \uB208\uAE08 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC5D0\uC11C \uC218\uC2E0 \uAC1C\uC694 \uB208\uAE08 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC778\uB77C\uC778 \uBCD1\uD569 \uCDA9\uB3CC\uC5D0\uC11C \uACF5\uD1B5 \uACFC\uAC70 \uAC1C\uC694 \uB208\uAE08 \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uC77C\uCE58 \uD56D\uBAA9 \uCC3E\uAE30\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uD45C\uC2DD \uC0C9\uC785\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC120\uD0DD \uD56D\uBAA9\uC758 \uAC1C\uC694 \uB208\uAE08\uC790 \uD45C\uC2DD \uC0C9\uC774 \uAC15\uC870 \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uAE30\uBCF8 \uC7A5\uC2DD\uC744 \uC228\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC0C9\uC740 \uBD88\uD22C\uBA85\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","\uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC744 \uCC3E\uAE30 \uC704\uD55C \uBBF8\uB2C8\uB9F5 \uD45C\uC2DD \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD\uC744 \uBC18\uBCF5\uD558\uAE30 \uC704\uD55C \uBBF8\uB2C8\uB9F5 \uD45C\uC2DD \uC0C9\uC785\uB2C8\uB2E4.","\uD3B8\uC9D1\uAE30 \uC120\uD0DD \uC791\uC5C5\uC744 \uC704\uD55C \uBBF8\uB2C8\uB9F5 \uB9C8\uCEE4 \uC0C9\uC785\uB2C8\uB2E4.","\uC815\uBCF4\uC5D0 \uB300\uD55C \uBBF8\uB2C8\uB9F5 \uB9C8\uCEE4 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uACBD\uACE0\uC758 \uBBF8\uB2C8\uB9F5 \uB9C8\uCEE4 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uC624\uB958\uC5D0 \uB300\uD55C \uBBF8\uB2C8\uB9F5 \uB9C8\uCEE4 \uC0C9\uC0C1\uC785\uB2C8\uB2E4.","\uBBF8\uB2C8\uB9F5 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.",'\uBBF8\uB2C8\uB9F5\uC5D0\uC11C \uB80C\uB354\uB9C1\uB41C \uC804\uACBD \uC694\uC18C\uC758 \uBD88\uD22C\uBA85\uB3C4\uC785\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, "#000000c0"\uC740 \uBD88\uD22C\uBA85\uB3C4 75%\uB85C \uC694\uC18C\uB97C \uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.',"\uBBF8\uB2C8\uB9F5 \uC2AC\uB77C\uC774\uB354 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uB9C8\uC6B0\uC2A4\uB85C \uAC00\uB9AC\uD0AC \uB54C \uBBF8\uB2C8\uB9F5 \uC2AC\uB77C\uC774\uB354 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uD074\uB9AD\uD588\uC744 \uB54C \uBBF8\uB2C8\uB9F5 \uC2AC\uB77C\uC774\uB354 \uBC30\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uBB38\uC81C \uC624\uB958 \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC785\uB2C8\uB2E4.","\uBB38\uC81C \uACBD\uACE0 \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC785\uB2C8\uB2E4.","\uBB38\uC81C \uC815\uBCF4 \uC544\uC774\uCF58\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8\uC5D0 \uC0AC\uC6A9\uB41C \uC804\uACBD\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uAC00\uB85C\uC904\uC5D0 \uC0AC\uC6A9\uB41C \uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uBE68\uAC04\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uD30C\uB780\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB178\uB780\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC8FC\uD669\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB179\uC0C9\uC785\uB2C8\uB2E4.","\uCC28\uD2B8 \uC2DC\uAC01\uD654\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uC790\uC8FC\uC0C9\uC785\uB2C8\uB2E4."],"vs/platform/theme/common/iconRegistry":["\uC0AC\uC6A9\uD560 \uAE00\uAF34\uC758 ID\uC785\uB2C8\uB2E4. \uC124\uC815\uD558\uC9C0 \uC54A\uC73C\uBA74 \uCCAB \uBC88\uC9F8\uB85C \uC815\uC758\uD55C \uAE00\uAF34\uC774 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","\uC544\uC774\uCF58 \uC815\uC758\uC640 \uC5F0\uACB0\uB41C \uAE00\uAF34 \uBB38\uC790\uC785\uB2C8\uB2E4.","\uC704\uC82F\uC5D0\uC11C \uB2EB\uAE30 \uC791\uC5C5\uC758 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uC774\uC804 \uD3B8\uC9D1\uAE30 \uC704\uCE58\uB85C \uC774\uB3D9 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4.","\uB2E4\uC74C \uD3B8\uC9D1\uAE30 \uC704\uCE58\uB85C \uC774\uB3D9 \uC544\uC774\uCF58\uC785\uB2C8\uB2E4."],"vs/platform/undoRedo/common/undoRedoService":["{0} \uD30C\uC77C\uC774 \uB2EB\uD788\uACE0 \uB514\uC2A4\uD06C\uC5D0\uC11C \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.","{0} \uD30C\uC77C\uC740 \uD638\uD658\uB418\uC9C0 \uC54A\uB294 \uBC29\uC2DD\uC73C\uB85C \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.","\uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. {1}","\uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. {1}","{1}\uC5D0 \uBCC0\uACBD \uB0B4\uC6A9\uC774 \uC801\uC6A9\uB418\uC5C8\uC73C\uBBC0\uB85C \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","{1}\uC5D0\uC11C \uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC774\uBBC0\uB85C \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uADF8\uB3D9\uC548 \uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uBC1C\uC0DD\uD588\uAE30 \uB54C\uBB38\uC5D0 \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","\uD30C\uC77C {0}\uAC1C\uC5D0\uC11C \uC2E4\uD589 \uCDE8\uC18C(&&U)","\uC774 \uD30C\uC77C \uC2E4\uD589 \uCDE8\uC18C(&&F)","\uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC774\uBBC0\uB85C '{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","'{0}'\uC744(\uB97C) \uC2E4\uD589 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","\uC608(&&Y)","\uC544\uB2C8\uC694","\uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. {1}","\uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. {1}","{1}\uC5D0 \uBCC0\uACBD \uB0B4\uC6A9\uC774 \uC801\uC6A9\uB418\uC5C8\uC73C\uBBC0\uB85C \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","{1}\uC5D0\uC11C \uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC774\uBBC0\uB85C \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uADF8\uB3D9\uC548 \uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uBC1C\uC0DD\uD588\uAE30 \uB54C\uBB38\uC5D0 \uBAA8\uB4E0 \uD30C\uC77C\uC5D0\uC11C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","\uC2E4\uD589 \uCDE8\uC18C \uB610\uB294 \uB2E4\uC2DC \uC2E4\uD589 \uC791\uC5C5\uC774 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC774\uBBC0\uB85C '{0}'\uC744(\uB97C) \uB2E4\uC2DC \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."],"vs/platform/workspace/common/workspace":["\uCF54\uB4DC \uC791\uC5C5 \uC601\uC5ED"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ko.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ru.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ru.js new file mode 100644 index 0000000..8ea31b2 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.ru.js @@ -0,0 +1,15 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.ru",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["\u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"],"vs/base/browser/ui/findinput/findInputToggles":["\u0421 \u0443\u0447\u0435\u0442\u043E\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430","\u0421\u043B\u043E\u0432\u043E \u0446\u0435\u043B\u0438\u043A\u043E\u043C","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435"],"vs/base/browser/ui/findinput/replaceInput":["\u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435","\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0440\u0435\u0433\u0438\u0441\u0442\u0440"],"vs/base/browser/ui/hover/hoverWidget":["\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u044D\u0442\u043E\u0442 \u0430\u0441\u043F\u0435\u043A\u0442 \u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u043C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E {0}.",'\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u044D\u0442\u043E\u0442 \u0430\u0441\u043F\u0435\u043A\u0442 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439", \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0435\u043B\u044C\u0437\u044F \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448.'],"vs/base/browser/ui/iconLabel/iconLabelHover":["\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026"],"vs/base/browser/ui/inputbox/inputBox":["\u041E\u0448\u0438\u0431\u043A\u0430: {0}","\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435: {0}","\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F: {0}"," \u0438\u043B\u0438 {0} \u0434\u043B\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u0430"," ({0} \u0434\u043B\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u0430)","\u041E\u0447\u0438\u0449\u0435\u043D\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["\u0441\u0432\u043E\u0431\u043E\u0434\u043D\u044B\u0439"],"vs/base/browser/ui/selectBox/selectBoxCustom":["\u041F\u043E\u043B\u0435 \u0432\u044B\u0431\u043E\u0440\u0430"],"vs/base/browser/ui/toolbar/toolbar":["\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F..."],"vs/base/browser/ui/tree/abstractTree":["\u0424\u0438\u043B\u044C\u0442\u0440","\u041D\u0435\u0447\u0435\u0442\u043A\u043E\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442 \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430","\u0412\u0432\u043E\u0434 \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430","\u0412\u0432\u043E\u0434 \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430","\u0417\u0430\u043A\u0440\u044B\u0442\u044C","\u042D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B."],"vs/base/common/actions":["(\u043F\u0443\u0441\u0442\u043E)"],"vs/base/common/errorMessage":["{0}: {1}","\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 ({0})","\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0441\u043C. \u0432 \u0436\u0443\u0440\u043D\u0430\u043B\u0435.","\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0441\u043C. \u0432 \u0436\u0443\u0440\u043D\u0430\u043B\u0435.","{0} (\u0432\u0441\u0435\u0433\u043E \u043E\u0448\u0438\u0431\u043E\u043A: {1})","\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0441\u043C. \u0432 \u0436\u0443\u0440\u043D\u0430\u043B\u0435."],"vs/base/common/keybindingLabels":["CTRL","SHIFT","ALT","Windows","CTRL","SHIFT","ALT","Super","CTRL","SHIFT","\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440","\u041A\u043E\u043C\u0430\u043D\u0434\u0430","CTRL","SHIFT","ALT","Windows","CTRL","SHIFT","ALT","Super"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440","\u0421\u0435\u0439\u0447\u0430\u0441 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.","{0} \u0427\u0442\u043E\u0431\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u0442\u0435\u043B\u044F, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {1}",'{0} \u0427\u0442\u043E\u0431\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u0442\u0435\u043B\u044F, \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u0431\u044B\u0441\u0442\u0440\u044B\u0439 \u0432\u044B\u0431\u043E\u0440 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E {1} \u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 "\u0410\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0430 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0434\u043B\u044F \u0447\u0438\u0442\u0430\u0442\u0435\u043B\u044F", \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B.','{0} \u041D\u0430\u0437\u043D\u0430\u0447\u044C\u0442\u0435 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 \u0434\u043B\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u0410\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0430 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0434\u043B\u044F \u0447\u0438\u0442\u0430\u0442\u0435\u043B\u044F", \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0439 \u043A\u043B\u0430\u0432\u0438\u0448 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E {1} \u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043E.'],"vs/editor/browser/coreCommands":["\u0420\u0430\u0437\u043C\u0435\u0449\u0430\u0442\u044C \u043D\u0430 \u043A\u043E\u043D\u0446\u0435 \u0434\u0430\u0436\u0435 \u0434\u043B\u044F \u0431\u043E\u043B\u0435\u0435 \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A","\u0420\u0430\u0437\u043C\u0435\u0449\u0430\u0442\u044C \u043D\u0430 \u043A\u043E\u043D\u0446\u0435 \u0434\u0430\u0436\u0435 \u0434\u043B\u044F \u0431\u043E\u043B\u0435\u0435 \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A","\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043A\u0443\u0440\u0441\u043E\u0440\u044B \u0443\u0434\u0430\u043B\u0435\u043D\u044B."],"vs/editor/browser/editorExtensions":["&&\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","&&\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C","\u0412\u0435\u0440\u043D\u0443\u0442\u044C","&&\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0435","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435"],"vs/editor/browser/widget/codeEditorWidget":["\u0427\u0438\u0441\u043B\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E {0}. \u0414\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043A\u0440\u0443\u043F\u043D\u044B\u0445 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C [\u043F\u043E\u0438\u0441\u043A \u0438 \u0437\u0430\u043C\u0435\u043D\u0443](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) \u0438\u043B\u0438 \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":['\u0417\u043D\u0430\u0447\u043E\u043A "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C" \u0432 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0439','\u0417\u043D\u0430\u0447\u043E\u043A "\u0423\u0434\u0430\u043B\u0438\u0442\u044C" \u0432 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0439','\u0417\u043D\u0430\u0447\u043E\u043A "\u0417\u0430\u043A\u0440\u044B\u0442\u044C" \u0432 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0439',"\u0417\u0430\u043A\u0440\u044B\u0442\u044C","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0421\u0422\u0420\u0415\u041B\u041A\u0410 \u0412\u0412\u0415\u0420\u0425 \u0438 \u0421\u0422\u0420\u0415\u041B\u041A\u0410 \u0412\u041D\u0418\u0417 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F.","\u043D\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A","1 \u0441\u0442\u0440\u043E\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430","\u0421\u0442\u0440\u043E\u043A \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E: {0}","\u0420\u0430\u0437\u043B\u0438\u0447\u0438\u0435 {0} \u0438\u0437 {1}: \u0438\u0441\u0445\u043E\u0434\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {2}, {3}, \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {4}, {5}","\u043F\u0443\u0441\u0442\u043E\u0439","{0} \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {1}","{0} \u0438\u0441\u0445\u043E\u0434\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {1} \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {2}","+ {0} \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {1}","- {0} \u0438\u0441\u0445\u043E\u0434\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {0}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u043F\u043E \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u043C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044F\u043C."],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 ({0})","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 ({0})","\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u044D\u0442\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 \u043A\u043E\u0434\u0430","\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0439","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u0440\u0435\u0433\u0438\u043E\u043D\u043E\u0432","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 \u043A\u043E\u0434\u0430",'\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435"',"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0442\u043E\u0440\u043E\u043D\u0443","\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u0438","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u0438","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u044E","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u044E"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u0443\u044E \u043E\u0431\u043B\u0430\u0441\u0442\u044C","\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435 \u0432\u044B\u0448\u0435","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0439 \u0440\u0435\u0433\u0438\u043E\u043D","\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0438\u0436\u0435","\u0421\u043A\u0440\u044B\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 ({0})","\u0414\u0432\u0430\u0436\u0434\u044B \u0449\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["\u041A\u043E\u0434 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u0441 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043C\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 {0}-{1}","\u041A\u043E\u0434 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u0441 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043C\u0438 \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438 {0}-{1}","\u041A\u043E\u0434 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 {0}-{1}","\u041A\u043E\u0434 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438 {0}-{1}"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F","\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u043D\u043E\u0433\u043E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u043D\u043E\u0433\u043E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u0432\u043E\u043A\u0440\u0443\u0433 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439.","\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439."],"vs/editor/browser/widget/hoverWidget/hoverWidget":["\u0423\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 {0}\u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0432\u0435\u0441\u0442\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C \u043C\u044B\u0448\u0438"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0444\u0430\u0439\u043B\u043E\u0432","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0444\u0430\u0439\u043B\u043E\u0432"],"vs/editor/common/config/editorConfigurationSchema":["\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440","\u0427\u0438\u0441\u043B\u043E \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0435 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438. \u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 {0}.",'\u0427\u0438\u0441\u043B\u043E \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u0430, \u043B\u0438\u0431\u043E `"tabSize"` \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0438\u0437 "#editor.tabSize#". \u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 "#editor.detectIndentation#".',"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB. \u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 {0}.","\u041D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0443\u0442 \u043B\u0438 {0} \u0438 {1} \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u0444\u0430\u0439\u043B\u0430.","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0439 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 \u043F\u0440\u043E\u0431\u0435\u043B.","\u0421\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0434\u043B\u044F \u0431\u043E\u043B\u044C\u0448\u0438\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0441 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0444\u0443\u043D\u043A\u0446\u0438\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0438\u043D\u0442\u0435\u043D\u0441\u0438\u0432\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043F\u0430\u043C\u044F\u0442\u044C.","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043B\u043E\u0432.","\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u043E\u0432 \u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0437 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430.","\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u043E\u0432 \u0438\u0437 \u0432\u0441\u0435\u0445 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0445 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430 \u043E\u0434\u043D\u043E\u043C \u044F\u0437\u044B\u043A\u0435.","\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u043E\u0432 \u0438\u0437 \u0432\u0441\u0435\u0445 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0445 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u043B\u043E\u0432 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435 \u0438 \u0438\u0437 \u043A\u0430\u043A\u0438\u0445 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043E\u043D\u0438 \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F.","\u0421\u0435\u043C\u0430\u043D\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0446\u0432\u0435\u0442\u043E\u0432\u044B\u0445 \u0442\u0435\u043C.","\u0421\u0435\u043C\u0430\u043D\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0446\u0432\u0435\u0442\u043E\u0432\u044B\u0445 \u0442\u0435\u043C.",'\u0421\u0435\u043C\u0430\u043D\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 "semanticHighlighting" \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0446\u0432\u0435\u0442\u043E\u0432\u043E\u0439 \u0442\u0435\u043C\u044B.',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u043A\u0430\u0437 \u0441\u0435\u043C\u0430\u043D\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0438 \u0434\u043B\u044F \u044F\u0437\u044B\u043A\u043E\u0432, \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0449\u0438\u0445 \u0435\u0435.","\u041E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0431\u044B\u0441\u0442\u0440\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u0434\u0430\u0436\u0435 \u043F\u0440\u0438 \u0434\u0432\u043E\u0439\u043D\u043E\u043C \u0449\u0435\u043B\u0447\u043A\u0435 \u043F\u043E \u0435\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u043C\u0443 \u0438 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 ESC.","\u0421\u0442\u0440\u043E\u043A\u0438, \u0434\u043B\u0438\u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0435\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043C\u0435\u0447\u0435\u043D\u044B \u0438\u0437 \u0441\u043E\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u0430 \u043B\u0438 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0438\u0441\u0445\u043E\u0434\u0438\u0442\u044C \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E \u0432 \u0440\u0430\u0431\u043E\u0447\u0435\u0439 \u0440\u043E\u043B\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u0443\u044E \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443. \u0422\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u043E\u0442\u043B\u0430\u0434\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u0430 \u043B\u0438 \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u0430\u044F \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0442\u044C\u0441\u044F \u043F\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044E \u043A \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0444\u043E\u043D\u043E\u0432\u043E\u0439 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0435. \u041C\u043E\u0436\u0435\u0442 \u0437\u0430\u043C\u0435\u0434\u043B\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443. \u0422\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u043E\u0442\u043B\u0430\u0434\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0441\u043A\u043E\u0431\u043E\u043A, \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0438\u0435 \u0438\u043B\u0438 \u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044E\u0449\u0438\u0435 \u043E\u0442\u0441\u0442\u0443\u043F.","\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C.","\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u0430\u0440\u044B \u0441\u043A\u043E\u0431\u043E\u043A, \u0446\u0432\u0435\u0442 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u0438\u0445 \u0443\u0440\u043E\u0432\u043D\u044F \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F, \u0435\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u043E\u043F\u0446\u0438\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442\u043E\u043C.","\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C.","\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C.","\u0412\u0440\u0435\u043C\u044F \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u0432 \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445, \u043F\u043E \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. \u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 0, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u044F \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F.","\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 \u0432 \u041C\u0411 \u0434\u043B\u044F \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 0 \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u0430\u043A \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0438\u044F: \u0440\u044F\u0434\u043E\u043C \u0438\u043B\u0438 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435.","\u0415\u0441\u043B\u0438 \u0448\u0438\u0440\u0438\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043C\u0435\u043D\u044C\u0448\u0435 \u044D\u0442\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435.","\u0415\u0441\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0438 \u0448\u0438\u0440\u0438\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435.","\u0415\u0441\u043B\u0438 \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0430 \u043F\u043E\u043B\u0435 \u0433\u043B\u0438\u0444\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439.","\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043B\u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0431\u0435\u043B\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B +/- \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0445 \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0445 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 CodeLens \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0421\u0442\u0440\u043E\u043A\u0438 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u043D\u0438\u043A\u043E\u0433\u0434\u0430.","\u0421\u0442\u0440\u043E\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u043F\u043E \u0448\u0438\u0440\u0438\u043D\u0435 \u043E\u043A\u043D\u0430 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430.","\u0421\u0442\u0440\u043E\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u043E\u0439 {0}.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043F\u0440\u0438 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0438 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043A\u043E\u0434\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u0443\u0441\u0442\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C, \u0433\u0434\u0435 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u044B \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0441\u0438\u043C\u0432\u043E\u043B\u044B."],"vs/editor/common/config/editorOptions":["\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C API-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044B \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B, \u0447\u0442\u043E\u0431\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C, \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043B\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430.","\u041E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u043E \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E\u043C \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430.","\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C, \u0447\u0442\u043E \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430 \u043D\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u043E\u0431\u0435\u043B \u043F\u0440\u0438 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u043F\u0443\u0441\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F, \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432 \u043A \u0441\u0442\u0440\u043E\u043A\u0430\u043C.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043A\u043E\u043F\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u0431\u0435\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0432\u043A\u043B\u044E\u0447\u0430\u044F \u0441\u043B\u043E\u0432\u0430 \u0432 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0438\u0441\u043A\u0430 \u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043C\u043E\u0436\u043D\u043E \u043B\u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0437 \u0442\u0435\u043A\u0441\u0442\u0430, \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \xAB\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438\xBB \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E).","\u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \xAB\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438\xBB \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \xAB\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438\xBB \u043F\u0440\u0438 \u0432\u044B\u0431\u043E\u0440\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0441\u0442\u0440\u043E\u043A \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0443\u0441\u043B\u043E\u0432\u0438\u0435\u043C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \xAB\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438\xBB.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u043E \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u043E\u0431\u0449\u0438\u0439 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 macOS.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u043E \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0438\u0441\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u043E\u043A\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430. \u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 true, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u043C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u043F\u043E\u0438\u0441\u043A \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C\u0441\u044F \u0441 \u043D\u0430\u0447\u0430\u043B\u0430 (\u0438\u043B\u0438 \u0441 \u043A\u043E\u043D\u0446\u0430), \u0435\u0441\u043B\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043D\u0438\u043A\u0430\u043A\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439.",'\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u043B\u0438\u0433\u0430\u0442\u0443\u0440\u044B \u0448\u0440\u0438\u0444\u0442\u043E\u0432 (\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u0448\u0440\u0438\u0444\u0442\u0430 "calt" \u0438 "liga"). \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E\u043C CSS "font-feature-settings".','\u042F\u0432\u043D\u043E\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E CSS "font-feature-settings". \u0415\u0441\u043B\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043B\u0438\u0433\u0430\u0442\u0443\u0440\u044B, \u0432\u043C\u0435\u0441\u0442\u043E \u043D\u0435\u0433\u043E \u043C\u043E\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435.','\u041D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043B\u0438\u0433\u0430\u0442\u0443\u0440\u044B \u0438\u043B\u0438 \u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u0448\u0440\u0438\u0444\u0442\u0430. \u041C\u043E\u0436\u043D\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043B\u0438\u0433\u0430\u0442\u0443\u0440\u044B, \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 CSS "font-feature-settings".',"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0437 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 font-weight \u0432 font-variation-settings. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E\u043C CSS font-variation-settings.","\u042F\u0432\u043D\u043E\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E CSS font-variation-settings. \u0415\u0441\u043B\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043B\u0438\u0448\u044C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 font-weight \u0432 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 font-variation-settings, \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043C\u043E\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435.","\u041D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0448\u0440\u0438\u0444\u0442\u043E\u0432. \u041C\u043E\u0436\u0435\u0442 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043E\u0431\u043E\u0439 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0438\u0437 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 font-weight \u0432 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 font-variation-settings \u0438\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u0443, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 CSS font-variation-settings.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0432 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u0445.",'\u0414\u043E\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0441\u043B\u043E\u0432\u0430 "normal" \u0438\u043B\u0438 "bold" \u0438 \u0447\u0438\u0441\u043B\u0430 \u0432 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0435 \u043E\u0442 1 \u0434\u043E 1000.','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043D\u0430\u0441\u044B\u0449\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u044E \u0448\u0440\u0438\u0444\u0442\u0430. \u0414\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F: \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0441\u043B\u043E\u0432\u0430 "normal" \u0438\u043B\u0438 "bold", \u0430 \u0442\u0430\u043A\u0436\u0435 \u0447\u0438\u0441\u043B\u0430 \u0432 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0435 \u043E\u0442 1 \u0434\u043E 1000.',"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E)","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C\u0443 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0443 \u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u044B\u0441\u0442\u0440\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C\u0443 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0443 \u0438 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0431\u044B\u0441\u0442\u0440\u0443\u044E \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044E \u0434\u043B\u044F \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0445","\u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0443\u0441\u0442\u0430\u0440\u0435\u043B. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u043D\u0435\u0433\u043E \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 'editor.editor.gotoLocation.multipleDefinitions' \u0438\u043B\u0438 'editor.editor.gotoLocation.multipleImplementations'.",'\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E" \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0446\u0435\u043B\u0435\u0432\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0439.','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0442\u0438\u043F\u0430" \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0446\u0435\u043B\u0435\u0432\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0439.','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044E" \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0446\u0435\u043B\u0435\u0432\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0439.','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u043C" \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0446\u0435\u043B\u0435\u0432\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0439.','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0441\u044B\u043B\u043A\u0430\u043C" \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0446\u0435\u043B\u0435\u0432\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0439.','\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0439 \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u043A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435.','\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0442\u0438\u043F\u0430" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435.','\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0439 \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u043A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044E" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435.','\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0439, \u043A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u043C \u043A\u043E\u043C\u0430\u043D\u0434\u044B "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435.','\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0439 \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u043A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u043C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0441\u044B\u043B\u043A\u0435" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435.',"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0438 \u0432 \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u043F\u0435\u0440\u0435\u0434 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044F.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0434\u043E\u043B\u0436\u043D\u043E \u043B\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043E\u0441\u0442\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u0438\u0434\u0438\u043C\u044B\u043C \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043D\u0430 \u043D\u0435\u0433\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0438 \u0432 \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u043F\u0435\u0440\u0435\u0434 \u0441\u043A\u0440\u044B\u0442\u0438\u0435\u043C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044F. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C "editor.hover.sticky".',"\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043D\u0430\u0434 \u0441\u0442\u0440\u043E\u043A\u043E\u0439, \u0435\u0441\u043B\u0438 \u0435\u0441\u0442\u044C \u043C\u0435\u0441\u0442\u043E.","\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043E \u0432\u0441\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0438\u043C\u0435\u044E\u0442 \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u0443\u044E \u0448\u0438\u0440\u0438\u043D\u0443. \u042D\u0442\u043E \u0431\u044B\u0441\u0442\u0440\u044B\u0439 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u043C\u043E\u043D\u043E\u0448\u0438\u0440\u0438\u043D\u043D\u044B\u0445 \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0432 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432), \u0433\u0434\u0435 \u0433\u043B\u0438\u0444\u044B \u0438\u043C\u0435\u044E\u0442 \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u0443\u044E \u0448\u0438\u0440\u0438\u043D\u0443.","\u0414\u0435\u043B\u0435\u0433\u0438\u0440\u0443\u0435\u0442 \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0442\u043E\u0447\u0435\u043A \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443. \u042D\u0442\u043E \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u044B\u0439 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043A \u0437\u0430\u0432\u0438\u0441\u0430\u043D\u0438\u044F\u043C \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u0431\u043E\u043B\u044C\u0448\u0438\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u043D\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u0432\u043E \u0432\u0441\u0435\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u043E\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0442\u043E\u0447\u043A\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C, \u0447\u0442\u043E\u0431\u044B \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0442\u044C \u043D\u0430\u0438\u0431\u043E\u043B\u044C\u0448\u0435\u0435 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u043E \u0440\u0430\u0431\u043E\u0442\u044B.","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043C\u0435\u043D\u044E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430.","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430, \u0435\u0441\u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445 \u0441 \u043A\u043E\u0434\u043E\u043C.","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430, \u0435\u0441\u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430\u0445 \u0441 \u043A\u043E\u0434\u043E\u043C \u0438\u043B\u0438 \u043D\u0430 \u043F\u0443\u0441\u0442\u044B\u0445 \u0441\u0442\u0440\u043E\u043A\u0430\u0445.","\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0437\u043D\u0430\u0447\u043E\u043A \u043B\u0430\u043C\u043F\u043E\u0447\u043A\u0438 \u0434\u043B\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0442\u0435\u043A\u0443\u0449\u0438\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0432\u0435\u0440\u0445\u043D\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E \u0437\u0430\u043B\u0438\u043F\u0430\u044E\u0449\u0438\u0445 \u043B\u0438\u043D\u0438\u0439 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043C\u043E\u0434\u0435\u043B\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u0443\u044E \u0434\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u044F. \u0415\u0441\u043B\u0438 \u043C\u043E\u0434\u0435\u043B\u044C \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u044B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043E\u043D\u0430 \u043E\u0442\u043A\u0430\u0442\u0438\u0442\u0441\u044F \u043A \u043C\u043E\u0434\u0435\u043B\u0438 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A\u0430 \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043E\u0442\u043A\u0430\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043A \u043C\u043E\u0434\u0435\u043B\u0438 \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432. \u042D\u0442\u043E\u0442 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0431\u043B\u044E\u0434\u0430\u0435\u0442\u0441\u044F \u0432\u043E \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445.","\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443 Sticky Scroll \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B.","\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438 \u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u0443\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435\u043C \u043A\u043B\u0430\u0432\u0438\u0448 {0}.","\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u043A\u0440\u044B\u0442\u044B \u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0438 \u0443\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0438 {0}.","\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u044B.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0440\u0430\u0437\u043C\u0435\u0440\u043E\u043C \u0448\u0440\u0438\u0444\u0442\u0430 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E {0} \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F, \u043A\u043E\u0433\u0434\u0430 \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043C\u0435\u043D\u044C\u0448\u0435 {1} \u0438\u043B\u0438 \u0431\u043E\u043B\u044C\u0448\u0435 \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u043C \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0434\u043B\u044F \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0415\u0441\u043B\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u043E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F {0}.","\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u043F\u043E\u043B\u044F \u0432\u043E\u043A\u0440\u0443\u0433 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.",`\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u044B\u0441\u043E\u0442\u0443 \u0441\u0442\u0440\u043E\u043A\u0438. \r +\u2013 \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 0, \u0447\u0442\u043E\u0431\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0432\u044B\u0441\u043E\u0442\u0443 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u0430.\r +\u2013 \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043E\u0442 0 \u0434\u043E 8 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043C\u043D\u043E\u0436\u0438\u0442\u0435\u043B\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u0430.\r +\u2013 \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0431\u043E\u043B\u044C\u0448\u0435 \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u044B\u0435 8 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439.`,"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043A\u0440\u044B\u0442\u0430 \u043B\u0438 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","\u041C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430 \u0438\u043C\u0435\u0435\u0442 \u0442\u0430\u043A\u043E\u0439 \u0436\u0435 \u0440\u0430\u0437\u043C\u0435\u0440, \u0447\u0442\u043E \u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430).","\u041C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u044F\u0433\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u0438\u043B\u0438 \u0441\u0436\u0438\u043C\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u043C\u0435\u0440\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043F\u043E \u0432\u044B\u0441\u043E\u0442\u0435 (\u0431\u0435\u0437 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438).","\u041C\u0438\u043D\u0438\u043A\u0430\u0440\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043C\u0435\u043D\u044C\u0448\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u043C\u0435\u0440\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438, \u0447\u0442\u043E\u0431\u044B \u043D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0431\u044B\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435, \u0447\u0435\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 (\u0431\u0435\u0437 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438).","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0440\u0430\u0437\u043C\u0435\u0440\u043E\u043C \u043C\u0438\u043D\u0438\u043A\u0430\u0440\u0442\u044B.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441 \u043A\u0430\u043A\u043E\u0439 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u0437\u0443\u043D\u043E\u043A \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B.","\u041C\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E, \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043D\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0435: 1, 2 \u0438\u043B\u0438 3.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u0446\u0432\u0435\u0442\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432.","\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0448\u0438\u0440\u0438\u043D\u0443 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B, \u0447\u0442\u043E\u0431\u044B \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432 \u043D\u0435 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u043B\u043E \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E.","\u0417\u0430\u0434\u0430\u0435\u0442 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u043C\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0445\u043D\u0438\u043C \u043A\u0440\u0430\u0435\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0438 \u043F\u0435\u0440\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439.","\u0417\u0430\u0434\u0430\u0435\u0442 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u043C\u0435\u0436\u0434\u0443 \u043D\u0438\u0436\u043D\u0438\u043C \u043A\u0440\u0430\u0435\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439.","\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0441 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0435\u0439 \u043F\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0443 \u0438 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u043C\u0438 \u043E \u0442\u0438\u043F\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043D\u0430\u0431\u043E\u0440\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043C\u0435\u043D\u044E \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u043E\u0441\u0442\u0430\u0435\u0442\u0441\u044F \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u0438\u043B\u0438 \u0437\u0430\u043A\u0440\u043E\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u0438 \u043A\u043E\u043D\u0446\u0430 \u0441\u043F\u0438\u0441\u043A\u0430.","\u042D\u043A\u0441\u043F\u0440\u0435\u0441\u0441-\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u0439","\u042D\u043A\u0441\u043F\u0440\u0435\u0441\u0441-\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0434\u0432\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u043C\u044B\u0439 \u0442\u0435\u043A\u0441\u0442","\u042D\u043A\u0441\u043F\u0440\u0435\u0441\u0441-\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u044B","\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u043A\u0440\u0430\u0442\u043A\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445.","\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u043A\u0440\u0430\u0442\u043A\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0432 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F\u0445.","\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u043A\u0440\u0430\u0442\u043A\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0432\u043D\u0435 \u0441\u0442\u0440\u043E\u043A \u0438 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435. \u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043C\u043E\u0436\u043D\u043E \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0439, \u0441\u0442\u0440\u043E\u043A \u0438 \u0434\u0440\u0443\u0433\u043E\u0433\u043E \u043A\u043E\u0434\u0430. \u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u043D\u0442\u043E\u043C\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043B\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439. \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0442\u0430\u043A\u0436\u0435 \u043F\u043E\u043C\u043D\u0438\u0442\u044C \u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0435 {0}, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u043C\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u0430\u043C\u0438.","\u041D\u043E\u043C\u0435\u0440\u0430 \u0441\u0442\u0440\u043E\u043A \u043D\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0435 \u043D\u043E\u043C\u0435\u0440\u0430 \u0441\u0442\u0440\u043E\u043A.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0435 \u043D\u043E\u043C\u0435\u0440\u0430 \u0441\u0442\u0440\u043E\u043A \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F \u043A\u0430\u043A \u0440\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445 \u0434\u043E \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u041D\u043E\u043C\u0435\u0440\u0430 \u0441\u0442\u0440\u043E\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043A\u0430\u0436\u0434\u044B\u0435 10 \u0441\u0442\u0440\u043E\u043A.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u043D\u043E\u043C\u0435\u0440\u043E\u0432 \u0441\u0442\u0440\u043E\u043A.","\u0427\u0438\u0441\u043B\u043E \u043C\u043E\u043D\u043E\u0448\u0438\u0440\u0438\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043F\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043B\u0438\u043D\u0435\u0439\u043A\u0430 \u044D\u0442\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u044D\u0442\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u043F\u043E\u0441\u043B\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0447\u0438\u0441\u043B\u0430 \u043C\u043E\u043D\u043E\u0448\u0438\u0440\u0438\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u0414\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u043B\u0438\u043D\u0435\u0435\u043A \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439. \u0415\u0441\u043B\u0438 \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E \u043D\u0438 \u043E\u0434\u043D\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F, \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043D\u0435 \u0431\u0443\u0434\u0443\u0442.","\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043D\u0430 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438.","\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043D\u0430.","\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043A\u0440\u044B\u0442\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C\u044E \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438.","\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043D\u0430 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438.","\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043D\u0430.","\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043A\u0440\u044B\u0442\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C\u044E \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438.","\u0428\u0438\u0440\u0438\u043D\u0430 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438.","\u0412\u044B\u0441\u043E\u0442\u0430 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u043E\u0439 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u043E\u043C \u043A \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0449\u0435\u043B\u0447\u043A\u0430.","\u041F\u0440\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u044D\u0442\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043C \u0432\u0441\u0435\u0445 \u043D\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 ASCII. \u0411\u0430\u0437\u043E\u0432\u044B\u043C\u0438 ASCII \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043C\u0435\u0436\u0434\u0443 U+0020 \u0438 U+007E, \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u044F, \u043F\u0435\u0440\u0435\u0432\u043E\u0434 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u043A\u0430\u0440\u0435\u0442\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u044B\u0434\u0435\u043B\u044F\u044E\u0442\u0441\u044F \u043B\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u0440\u043E\u0441\u0442\u043E \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u044E\u0442 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0438\u043B\u0438 \u0432\u043E\u043E\u0431\u0449\u0435 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u0448\u0438\u0440\u0438\u043D\u044B.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0436\u043D\u043E \u0441\u043F\u0443\u0442\u0430\u0442\u044C \u0441 \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u043C\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u0430\u043C\u0438 ASCII, \u043A\u0440\u043E\u043C\u0435 \u0442\u0435\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043E\u0431\u0449\u0438\u043C\u0438 \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u044F\u0437\u044B\u043A\u043E\u0432\u043E\u043C \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F\u0445 \u0442\u0430\u043A\u0436\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C\u0441\u044F \u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445 \u0442\u0430\u043A\u0436\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C\u0441\u044F \u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u044E\u0442\u0441\u044F.","\u0421\u0438\u043C\u0432\u043E\u043B\u044B \u042E\u043D\u0438\u043A\u043E\u0434\u0430, \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043D\u044B\u0445 \u044F\u0437\u044B\u043A\u0430\u0445, \u043D\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u044E\u0442\u0441\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u043A\u0430\u0436\u0434\u043E\u043C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435.","\u041D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0441 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439. \u0415\u0441\u043B\u0438 \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043D\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438, \u043A\u043E\u0433\u0434\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u043C \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043B\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u0440\u0438 \u043A\u0430\u0436\u0434\u043E\u043C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u043C \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043D\u0443\u0436\u043D\u043E \u043B\u0438 \u0437\u0430\u043A\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u0444\u043E\u043D \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u043E\u043A.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u043B\u0438 \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0430 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {0} \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442\u043E\u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0438\u043C\u0435\u0435\u0442 \u043B\u0438 \u043A\u0430\u0436\u0434\u044B\u0439 \u0442\u0438\u043F \u0441\u043A\u043E\u0431\u043E\u043A \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u044B\u0439 \u043F\u0443\u043B \u0446\u0432\u0435\u0442\u043E\u0432.","\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u043F\u0430\u0440\u044B \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0432 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u043C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u043C \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u043F\u0430\u0440\u044B \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0434\u043E\u043B\u0436\u043D\u0430 \u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C\u0441\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u043F\u0430\u0440\u0430 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0412\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0443\u044E \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0412\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0443\u044E \u043E\u0442\u0441\u0442\u0443\u043F\u0430, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u044B \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u0441\u043A\u043E\u0431\u043E\u043A.","\u041D\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0443\u044E \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0434\u043E\u043B\u0436\u043D\u0430 \u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C\u0441\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0430\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0431\u0435\u0437 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u0430 \u043E\u0442 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u0441\u043F\u0440\u0430\u0432\u0430 \u043E\u0442 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0443\u0442 \u043B\u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u0441\u043B\u043E\u0432\u0430 \u043F\u0440\u0438 \u043F\u0440\u0438\u043D\u044F\u0442\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u044D\u0442\u043E \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0449\u0438\u0445 \u044D\u0442\u0443 \u0444\u0443\u043D\u043A\u0446\u0438\u044E.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0434\u043E\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u043B\u0438 \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u043E\u043F\u0435\u0447\u0430\u0442\u043A\u0438 \u0432 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0435 \u0441\u043B\u043E\u0432\u0430, \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0440\u044F\u0434\u043E\u043C \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u043B\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u043E \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u043C\u0438 \u0440\u0430\u0431\u043E\u0447\u0438\u043C\u0438 \u043E\u0431\u043B\u0430\u0441\u0442\u044F\u043C\u0438 \u0438 \u043E\u043A\u043D\u0430\u043C\u0438 (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F "#editor.suggestSelection#").',"\u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 IntelliSense.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0432\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 IntelliSense.","\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 IntelliSense \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043D\u043E\u0433\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u0430.","\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 IntelliSense \u043F\u043E \u043C\u0435\u0440\u0435 \u0432\u0432\u043E\u0434\u0430.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C ("#editor.quickSuggestions#" \u0438 "#editor.suggestOnTriggerCharacters#"), \u0438 \u0447\u0442\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u044F\u0432\u043D\u043E\u043C \u0432\u044B\u0437\u043E\u0432\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 "CTRL+\u041F\u0420\u041E\u0411\u0415\u041B".',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0437\u0430\u043F\u0440\u0435\u0449\u0430\u0435\u0442 \u043B\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u043A\u043E\u0434\u0430 \u044D\u043A\u0441\u043F\u0440\u0435\u0441\u0441-\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u043D\u0443\u0436\u043D\u043E \u043B\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u043A\u0438 \u0432 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0432 \u043D\u0438\u0436\u043D\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u043F\u0440\u043E\u0441\u043C\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044C \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043B\u0438 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u043C\u0435\u0442\u043A\u043E\u0439 \u0438\u043B\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439.","\u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0435\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C. \u0422\u0435\u043F\u0435\u0440\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043C\u043E\u0436\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C.","\u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0443\u0441\u0442\u0430\u0440\u0435\u043B. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u043D\u0435\u0433\u043E \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 'editor.suggest.showKeywords' \u0438\u043B\u0438 'editor.suggest.showSnippets'.",'\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "method".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "function".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "constructor".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "deprecated".','\u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438 IntelliSense \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0432\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u043B \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u0441\u043B\u043E\u0432\u0430, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "c" \u0432 "Console" \u0438\u043B\u0438 "WebContext", \u043D\u043E _\u043D\u0435_ \u0432 "description". \u0415\u0441\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D, IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0431\u043E\u043B\u044C\u0448\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432, \u043D\u043E \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u043F\u043E \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044F.','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "field".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "variable".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "class".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "struct".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "interface".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "module".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "property".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "event".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "operator".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "unit".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "value".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "constant".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "enum".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "enumMember".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "keyword".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "text".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "color".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "file".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "reference".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "customcolor".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "folder".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "typeParameter".','\u041A\u043E\u0433\u0434\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0432\u043A\u043B\u044E\u0447\u0435\u043D, \u0432 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F "snippet".','\u0412\u043E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u043E\u043C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0438 IntelliSense \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0430 "\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438".','\u0412\u043E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u043E\u043C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0438 IntelliSense \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0430 "\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B".',"\u0414\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044B\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u044B \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 \u043F\u0440\u043E\u0431\u0435\u043B\u044B.",'\u0421\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u043B\u043E\u0432\u0430 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "foo" \u0432 "fooBar" \u0438\u043B\u0438 "foo_bar").',"\u0411\u0435\u0437 \u043E\u0442\u0441\u0442\u0443\u043F\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0441\u0442\u0440\u043E\u043A \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441\u043E \u0441\u0442\u043E\u043B\u0431\u0446\u0430 1.","\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442 \u0442\u043E\u0442 \u0436\u0435 \u043E\u0442\u0441\u0442\u0443\u043F, \u0447\u0442\u043E \u0438 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430.","\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442 \u043E\u0442\u0441\u0442\u0443\u043F, \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u043D\u044B\u0439 \u043D\u0430 \u0435\u0434\u0438\u043D\u0438\u0446\u0443 \u043F\u043E \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044E \u0441 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439. ","\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442 \u043E\u0442\u0441\u0442\u0443\u043F, \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u043D\u044B\u0439 \u043D\u0430 \u0434\u0432\u0430 \u043F\u043E \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044E \u0441 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u043C \u0441\u0442\u0440\u043E\u043A \u0441 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u043E\u043C \u043F\u043E \u0441\u043B\u043E\u0432\u0430\u043C.",'\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u044E \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430 \u0432 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043F\u0440\u0438 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043D\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 "Shift" (\u0432\u043C\u0435\u0441\u0442\u043E \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F \u0444\u0430\u0439\u043B\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435).',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0441\u0431\u0440\u043E\u0441\u0435 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440. \u042D\u0442\u043E \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0442\u0435\u043C, \u043A\u0430\u043A \u0441\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0444\u0430\u0439\u043B.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0431\u0440\u043E\u0441\u0430 \u043F\u043E\u0441\u043B\u0435 \u0441\u0431\u0440\u043E\u0441\u0430 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0431\u0440\u043E\u0441\u0430. \u0412\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0441\u0431\u0440\u043E\u0441\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043C\u043E\u0436\u043D\u043E \u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u044B\u043C\u0438 \u0441\u043F\u043E\u0441\u043E\u0431\u0430\u043C\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440. \u042D\u0442\u043E \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0442\u0435\u043C, \u043A\u0430\u043A \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0444\u0430\u0439\u043B.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u043F\u043E\u0441\u043B\u0435 \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0432\u0441\u0442\u0430\u0432\u043A\u0438. \u0412\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0443\u0442 \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u0438. \u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0432 JavaScript \u0442\u043E\u0447\u043A\u0430 \u0441 \u0437\u0430\u043F\u044F\u0442\u043E\u0439 (";") \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u0438, \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442\u0441\u044F.',"\u041F\u0440\u0438\u043D\u0438\u043C\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0412\u0412\u041E\u0414 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u044F\u0435\u0442 \u0442\u0435\u043A\u0441\u0442.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0443\u0442 \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0442\u044C\u0441\u044F \u043A\u043B\u0430\u0432\u0438\u0448\u0435\u0439 \u0412\u0412\u041E\u0414 \u0432 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A \u043A\u043B\u0430\u0432\u0438\u0448\u0435 TAB. \u042D\u0442\u043E \u043F\u043E\u043C\u043E\u0433\u0430\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044C \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u043E\u0441\u0442\u0438 \u043C\u0435\u0436\u0434\u0443 \u0432\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u043E\u0432\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u0438 \u043F\u0440\u0438\u043D\u044F\u0442\u0438\u0435\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0447\u0438\u0441\u043B\u043E\u043C \u0441\u0442\u0440\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E\u043C \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430 \u0437\u0430 \u043E\u0434\u0438\u043D \u0440\u0430\u0437. \u041F\u0440\u0438 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E 500. \u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435! \u041F\u0440\u0438 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0438 \u0447\u0438\u0441\u043B\u0430 \u0441\u0442\u0440\u043E\u043A, \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u044E\u0449\u0435\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043D\u0438\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438.","\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0439\u0442\u0435 \u0442\u0435\u043C, \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043B\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E\u043C \u0447\u0442\u0435\u043D\u0438\u044F \u044D\u043A\u0440\u0430\u043D\u0430.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044F\u0437\u044B\u043A\u0430 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F \u0441\u043A\u043E\u0431\u043E\u043A.","\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0441\u043A\u043E\u0431\u043A\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0441\u043B\u0435\u0432\u0430 \u043E\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0443\u044E \u0441\u043A\u043E\u0431\u043A\u0443 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0439 \u0441\u043A\u043E\u0431\u043A\u0438.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044F\u0437\u044B\u043A\u0430 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.","\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0441\u043B\u0435\u0432\u0430 \u043E\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F.","\u0423\u0434\u0430\u043B\u044F\u0442\u044C \u0441\u043E\u0441\u0435\u0434\u043D\u0438\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0438 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u0431\u044B\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u0441\u043E\u0441\u0435\u0434\u043D\u0438\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0438\u043B\u0438 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438.","\u0417\u0430\u043C\u0435\u043D\u044F\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0438 \u0441\u043A\u043E\u0431\u043A\u0438 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0438\u043B\u0438 \u0441\u043A\u043E\u0431\u043A\u0438 \u0431\u044B\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0437\u0430\u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0438\u043B\u0438 \u0441\u043A\u043E\u0431\u043A\u0438 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044F\u0437\u044B\u043A\u0430 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F \u043A\u0430\u0432\u044B\u0447\u0435\u043A.","\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0441\u043B\u0435\u0432\u0430 \u043E\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043A\u0430\u0432\u044B\u0447\u043A\u0438, \u0435\u0441\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u0434\u043E\u0431\u0430\u0432\u0438\u043B \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0443\u044E \u043A\u0430\u0432\u044B\u0447\u043A\u0443.","\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438.","\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0441\u043A\u043E\u0431\u043A\u0438 \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u043E\u043C \u044F\u0437\u044B\u043A\u0430.","\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438, \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u043E\u043C \u0441\u043A\u043E\u0431\u043A\u0438 \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 onEnterRules, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0435 \u044F\u0437\u044B\u043A\u0430\u043C\u0438.","\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438, \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u043E\u043C \u0441\u043A\u043E\u0431\u043A\u0438, \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 onEnterRules, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0435 \u044F\u0437\u044B\u043A\u0430\u043C\u0438 \u0438 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043E\u0442\u0441\u0442\u0443\u043F\u0430 indentationRules, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0435 \u044F\u0437\u044B\u043A\u0430\u043C\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F\u044B, \u043A\u043E\u0433\u0434\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u0432\u0432\u043E\u0434\u044F\u0442, \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u044E\u0442 \u0442\u0435\u043A\u0441\u0442 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0442 \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0441\u0442\u0440\u043E\u043A.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044F\u0437\u044B\u043A\u0430 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043E\u0431\u0440\u0430\u043C\u043B\u0435\u043D\u0438\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0439.","\u041E\u0431\u0440\u0430\u043C\u043B\u044F\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u0430\u0432\u044B\u0447\u0435\u043A, \u0430 \u043D\u0435 \u0441\u043A\u043E\u0431\u043E\u043A.","\u041E\u0431\u0440\u0430\u043C\u043B\u044F\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0441\u043A\u043E\u0431\u043E\u043A, \u0430 \u043D\u0435 \u043A\u0430\u0432\u044B\u0447\u0435\u043A.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u0440\u0430\u043C\u043B\u044F\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u043A\u0430\u0432\u044B\u0447\u0435\u043A \u0438\u043B\u0438 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u042D\u043C\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u0430. \u0412\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u043E \u043A \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u043C \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 CodeLens \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u043C \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0434\u043B\u044F CodeLens.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0432 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u0445 \u0434\u043B\u044F CodeLens. \u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 0, \u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F 90% \u043E\u0442 \u0440\u0430\u0437\u043C\u0435\u0440\u0430 #editor.fontSize#.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440\u044B \u0446\u0432\u0435\u0442\u0430 \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0446\u0432\u0435\u0442\u0430.","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u043F\u0440\u0438 \u0449\u0435\u043B\u0447\u043A\u0435 \u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440 \u0446\u0432\u0435\u0442\u0430","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440 \u0446\u0432\u0435\u0442\u0430","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u043F\u0440\u0438 \u0449\u0435\u043B\u0447\u043A\u0435 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440\u0430 \u0446\u0432\u0435\u0442\u0430","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0443\u0441\u043B\u043E\u0432\u0438\u0435\u043C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u044B \u0432 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440\u0435 \u0446\u0432\u0435\u0442\u0430","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u043C \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u043C \u0446\u0432\u0435\u0442\u043E\u0432\u044B\u0445 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u043E\u0440\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0436\u043D\u043E \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E.","\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u0432\u044B\u0431\u043E\u0440 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0438 \u043C\u044B\u0448\u0438 \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u0432\u044B\u0431\u043E\u0440\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0442\u0435\u043A\u0441\u0442 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430 \u0441 \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u043E\u0439 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0442\u0438\u043B\u0435\u043C \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u041F\u043B\u0430\u0432\u043D\u0430\u044F \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0430.","\u041F\u043B\u0430\u0432\u043D\u0430\u044F \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430, \u0442\u043E\u043B\u044C\u043A\u043E \u0435\u0441\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442 \u043A\u0443\u0440\u0441\u043E\u0440 \u044F\u0432\u043D\u044B\u043C \u0436\u0435\u0441\u0442\u043E\u043C.","\u041F\u043B\u0430\u0432\u043D\u0430\u044F \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043B\u0430\u0432\u043D\u0443\u044E \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044E \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0442\u0438\u043B\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0430.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E \u0432\u0438\u0434\u0438\u043C\u044B\u0445 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0445 \u043B\u0438\u043D\u0438\u0439 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C 0) \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0445 \u043B\u0438\u043D\u0438\u0439 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C 1), \u043E\u043A\u0440\u0443\u0436\u0430\u044E\u0449\u0438\u0445 \u043A\u0443\u0440\u0441\u043E\u0440. \u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0438\u043C\u0435\u0435\u0442 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 "scrollOff" \u0438\u043B\u0438 "scrollOffset" \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430\u0445.','"cursorSurroundingLines" \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0438\u043B\u0438 API.','"cursorSurroundingLines" \u043F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0432\u043E \u0432\u0441\u0435\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445.','\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C "#cursorSurroundingLines#".',`\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0448\u0438\u0440\u0438\u043D\u043E\u0439 \u043A\u0443\u0440\u0441\u043E\u0440\u0430, \u043A\u043E\u0433\u0434\u0430 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 "#editor.cursorStyle#" \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 'line'`,"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u0441 SVG.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u0430\u043C\u0438 \u0448\u0440\u0438\u0444\u0442\u0430.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u043E\u0431\u0435\u043B \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u043D\u043E\u0432\u043E\u0433\u043E \u044D\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043C\u0435\u0442\u043E\u0434\u0430.","\u041A\u043E\u044D\u0444\u0444\u0438\u0446\u0438\u0435\u043D\u0442 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 ALT.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043B\u0438 \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044E \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430, \u0435\u0441\u043B\u0438 \u043E\u043D\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430, \u0432 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044E \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044E \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u0434\u043B\u044F \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0445 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0441\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u044B.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u044B \u0438\u043C\u043F\u043E\u0440\u0442\u0430.","\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0445 \u0440\u0435\u0433\u0438\u043E\u043D\u043E\u0432. \u0423\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043A \u0441\u043D\u0438\u0436\u0435\u043D\u0438\u044E \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043E\u0442\u043A\u043B\u0438\u043A\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0435\u0441\u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0445 \u0440\u0435\u0433\u0438\u043E\u043D\u043E\u0432.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0449\u0435\u043B\u0447\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u043F\u043E\u0441\u043B\u0435 \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u0442\u044C \u0435\u0435.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u0448\u0440\u0438\u0444\u0442\u043E\u0432.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435. \u041C\u043E\u0434\u0443\u043B\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0438 \u0438\u043C\u0435\u0442\u044C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u043C, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u044E\u0449\u0438\u043C, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435 \u0432\u0432\u043E\u0434\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0445 \u043F\u043E\u043B\u0435\u0439 \u0433\u043B\u0438\u0444\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u041F\u043E\u043B\u044F \u0433\u043B\u0438\u0444\u0430 \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0442\u043B\u0430\u0434\u043A\u0438.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u043A\u0440\u044B\u0442\u0438\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0432 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u043C \u043C\u0435\u0436\u0434\u0443 \u0431\u0443\u043A\u0432\u0430\u043C\u0438 \u0432 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u0445.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u044F\u0437\u044B\u043A\u0430, \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u0433\u0438 HTML, \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043F\u0440\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0438 \u0438 \u0434\u0435\u043B\u0430\u0442\u044C \u0438\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0449\u0435\u043B\u0447\u043A\u0430.","\u0412\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0441\u043A\u043E\u0431\u043A\u0438.","\u041C\u043D\u043E\u0436\u0438\u0442\u0435\u043B\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 deltaX \u0438 deltaY \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043A\u043E\u043B\u0435\u0441\u0438\u043A\u0430 \u043C\u044B\u0448\u0438.",'\u0423\u0432\u0435\u043B\u0438\u0447\u044C\u0442\u0435 \u0448\u0440\u0438\u0444\u0442 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043A\u043E\u043B\u0435\u0441\u043E \u043C\u044B\u0448\u0438 \u0438 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044F "Cmd".',"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u043E\u0439 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 CTRL \u0438 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0438 \u043A\u043E\u043B\u0435\u0441\u0438\u043A\u0430 \u043C\u044B\u0448\u0438.","\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0438 \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u044E\u0442\u0441\u044F.","\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 CTRL \u0432 Windows \u0438 Linux \u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 COMMAND \u0432 macOS.","\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 ALT \u0432 Windows \u0438 Linux \u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 OPTION \u0432 macOS.",'\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438. \u0416\u0435\u0441\u0442\u044B \u043C\u044B\u0448\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E" \u0438 "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443" \u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u0442\u0430\u043A, \u0447\u0442\u043E\u0431\u044B \u043E\u043D\u0438 \u043D\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u043E\u0432\u0430\u043B\u0438 c [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).',"\u041A\u0430\u0436\u0434\u044B\u0439 \u043A\u0443\u0440\u0441\u043E\u0440 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043E\u0434\u043D\u0443 \u0441\u0442\u0440\u043E\u043A\u0443 \u0442\u0435\u043A\u0441\u0442\u0430.","\u041A\u0430\u0436\u0434\u044B\u0439 \u043A\u0443\u0440\u0441\u043E\u0440 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u043B\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043A\u043E\u0439, \u043A\u043E\u0433\u0434\u0430 \u0447\u0438\u0441\u043B\u043E \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0438\u0441\u043B\u0443 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u043C \u0447\u0438\u0441\u043B\u043E\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0433\u0443\u0442 \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u041D\u0435 \u0432\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F.","\u0412\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u0444\u0430\u0439\u043B\u0435.","\u042D\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F: \u0432\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0432\u043E \u0432\u0441\u0435\u0445 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0445 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0445 \u0444\u0430\u0439\u043B\u0430\u0445.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0432 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0445 \u0444\u0430\u0439\u043B\u0430\u0445.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u0430 \u043B\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0435.","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u0434\u0435\u0440\u0435\u0432\u0435 \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u043E\u0431\u0437\u043E\u0440\u0430","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u043E\u0431\u0437\u043E\u0440\u0430","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u043E \u0432 \u0432\u0438\u0434\u0436\u0435\u0442\u0435 \u043E\u0431\u0437\u043E\u0440\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u0441\u0435\u0433\u0434\u0430 \u043B\u0438 \u0436\u0435\u0441\u0442 \u043C\u044B\u0448\u044C\u044E \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\u044E \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0438 (\u0432 \u043C\u0441) \u043F\u0435\u0440\u0435\u0434 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u043A\u0440\u0430\u0442\u043A\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u0442\u0438\u043F\u0443.",'\u041D\u0435 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F; \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 "editor.linkedEditing".',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u043E\u043C\u0435\u0440\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438, \u043A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439.","\u0412\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u043B\u0435 \u0438 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u044B\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438, \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u0433\u0434\u0430 \u043E\u043D \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435.","\u041E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0430 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u043A\u0440\u043E\u043C\u0435 \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u044B\u0445 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432 \u043C\u0435\u0436\u0434\u0443 \u0441\u043B\u043E\u0432\u0430\u043C\u0438.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u043C \u0442\u0435\u043A\u0441\u0442\u0435.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u043E\u0431\u0435\u043B\u044B.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043B\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0441\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u043D\u044B\u0435 \u0443\u0433\u043B\u044B \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u043C \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u043E\u043A\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u0438.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u043E\u043A\u0443.","\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0434\u043E\u043B\u044C \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u043E\u0441\u0438 \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435 \u043F\u043E \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438 \u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u0438 \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E. \u041F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u043F\u043E \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u0438 \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435 \u043F\u043E \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438 \u043D\u0430 \u0442\u0440\u0435\u043A\u043F\u0430\u0434\u0435.","\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u0443\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u0438\u0447\u043D\u044B\u0439 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430 Linux.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u0435\u043D \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F, \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0447\u043D\u044B\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u043C\u0443 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0443.","\u0412\u0441\u0435\u0433\u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F.","\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435\u043C \u0438 \u0443\u043C\u0435\u043D\u044C\u0448\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u043F\u0435\u0440\u0435\u043F\u043B\u0435\u0442\u0430.","\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F, \u043A\u043E\u0433\u0434\u0430 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C \u043C\u044B\u0448\u0438 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043D\u0430\u0434 \u043F\u0435\u0440\u0435\u043F\u043B\u0435\u0442\u043E\u043C.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043D\u0430 \u043F\u0435\u0440\u0435\u043F\u043B\u0435\u0442\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u043A\u0440\u044B\u0442\u0438\u0435\u043C \u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u0434\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0435\u0440\u0435\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u0435\u043C \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u043E\u0432\u0435\u0440\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u043E\u0434 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432 \u0440\u044F\u0434\u043E\u043C \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438.","\u041D\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438 \u0438 \u0438\u0445 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u043E\u0439.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0435 \u043E \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044F\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F.","\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439. \u0415\u0441\u043B\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E {0}, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 {1}.","\u0412\u044B\u0441\u043E\u0442\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439. \u0415\u0441\u043B\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E {0}, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 {1}. \u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 8.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435.",'\u0412\u044B\u0431\u043E\u0440 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439, \u0435\u0441\u043B\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u0430\u043B\u044C\u043D\u0435\u0439\u0448\u0438\u0439 \u0432\u0432\u043E\u0434 \u043D\u0435 \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044E \u043E\u0434\u043D\u043E\u0433\u043E \u0438\u0437 \u043D\u0438\u0445, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "console.| -> console.log", \u0442\u0430\u043A \u043A\u0430\u043A "log" \u043D\u0435\u0434\u0430\u0432\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043B\u0441\u044F \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F.','\u0412\u044B\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441 \u0443\u0447\u0435\u0442\u043E\u043C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0445 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u043E\u0432, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u044D\u0442\u0438\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "co -> console" \u0438 "con -> const".',"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C \u0432\u044B\u0431\u043E\u0440\u043E\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u043E TAB \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043D\u0430\u0438\u043B\u0443\u0447\u0448\u0435\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB.","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u043E TAB.",'\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0439 \u043F\u043E TAB \u043F\u0440\u0438 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0438 \u0438\u0445 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u043E\u0432. \u0424\u0443\u043D\u043A\u0446\u0438\u044F \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043E\u043F\u0442\u0438\u043C\u0430\u043B\u044C\u043D\u043E, \u0435\u0441\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 "quickSuggestions" \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D.',"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u043E TAB.","\u041D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\u0441\u044F.","\u041D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u044E\u0442\u0441\u044F.","\u0414\u043B\u044F \u043D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435.","\u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u043D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0433\u0443\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B.","\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432 \u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u043E \u0440\u0430\u0437\u0440\u044B\u0432\u0430 \u0441\u0442\u0440\u043E\u043A \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.","\u041D\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u0440\u044B\u0432\u044B \u0441\u043B\u043E\u0432 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430 \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u043E\u043C, \u044F\u043F\u043E\u043D\u0441\u043A\u043E\u043C \u0438\u043B\u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u043E\u043C \u044F\u0437\u044B\u043A\u0435 (CJK). \u0414\u043B\u044F \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0435\u043A\u0441\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043E\u0431\u044B\u0447\u043D\u043E\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u043C\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043D\u0438\u044F \u043F\u043E \u0441\u043B\u043E\u0432\u0430\u043C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u043C\u0438 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430 \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u043E\u043C,\u044F\u043F\u043E\u043D\u0441\u043A\u043E\u043C \u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u043E\u043C \u044F\u0437\u044B\u043A\u0435 (CJK).","\u0421\u0438\u043C\u0432\u043E\u043B\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043A\u0430\u043A \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0438 \u0441\u043B\u043E\u0432 \u043F\u0440\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439, \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0445 \u0441\u043E \u0441\u043B\u043E\u0432\u0430\u043C\u0438.","\u0421\u0442\u0440\u043E\u043A\u0438 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u043D\u0438\u043A\u043E\u0433\u0434\u0430.","\u0421\u0442\u0440\u043E\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u043F\u043E \u0448\u0438\u0440\u0438\u043D\u0435 \u043E\u043A\u043D\u0430 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430.",'\u0421\u0442\u0440\u043E\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C\u0441\u044F \u043F\u043E "#editor.wordWrapColumn#".','\u0421\u0442\u0440\u043E\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u044B \u043F\u043E \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u043C\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E \u0438\u0437 \u0434\u0432\u0443\u0445: \u0448\u0438\u0440\u0438\u043D\u0430 \u043E\u043A\u043D\u0430 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0438 "#editor.wordWrapColumn#".',"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043A\u0430\u043A \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0438.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0441\u0442\u043E\u043B\u0431\u0435\u0446 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0435\u0441\u043B\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 "#editor.wordWrap#" \u2014 "wordWrapColumn" \u0438\u043B\u0438 "bounded".',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0434\u043E\u043B\u0436\u043D\u044B \u043B\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u043E\u0432\u044B\u0435 \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A\u0430 \u0446\u0432\u0435\u0442\u0430 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043F\u043E\u043B\u0443\u0447\u0430\u0435\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432\u043A\u043B\u0430\u0434\u043A\u0438 \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043B\u0438 \u0438\u0445 \u0432 \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0441\u0440\u0435\u0434\u0443 \u0434\u043B\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438."],"vs/editor/common/core/editorColorRegistry":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0433\u0440\u0430\u043D\u0438\u0446 \u0432\u043E\u043A\u0440\u0443\u0433 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0439 Quick Open \u0438\u043B\u0438 \u043F\u043E\u0438\u0441\u043A\u0430. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043E\u0431\u0432\u043E\u0434\u043A\u0438 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F.",'\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u0430, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0432 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u0445 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E" \u0438\u043B\u0438 "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443/\u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u0441\u0438\u043C\u0432\u043E\u043B\u0443". \u0426\u0432\u0435\u0442 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u043F\u043E\u0434 \u043D\u0438\u043C.',"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u043E\u043A\u0440\u0443\u0433 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.","\u0426\u0432\u0435\u0442 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430. \u041F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044C \u0446\u0432\u0435\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u0430, \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u043F\u0440\u044F\u043C\u043E\u0443\u0433\u043E\u043B\u044C\u043D\u044B\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C.","\u0426\u0432\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u043D\u043E\u043C\u0435\u0440\u043E\u0432 \u0441\u0442\u0440\u043E\u043A \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.",'\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E "editorIndentGuide.background" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0435\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C. \u0412\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 "editorIndentGuide.background1".',"\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.",'\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E "editorIndentGuide.activeBackground" \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0435\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C. \u0412\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 "editorIndentGuide.activeBackground1".',"\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (1).","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (2).","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (3).","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (4).","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (5).","\u0426\u0432\u0435\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (6).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (1).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (2).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (3).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (4).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (5).","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u0434\u043B\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (6).","\u0426\u0432\u0435\u0442 \u043D\u043E\u043C\u0435\u0440\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 'Id' \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043C. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u043D\u0435\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 'editorLineNumber.activeForeground'.","\u0426\u0432\u0435\u0442 \u043D\u043E\u043C\u0435\u0440\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0426\u0432\u0435\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u043A\u043E\u0433\u0434\u0430 editor.renderFinalNewline \u0438\u043C\u0435\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 dimmed.","\u0426\u0432\u0435\u0442 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 CodeLens \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A","\u0426\u0432\u0435\u0442 \u043F\u0440\u044F\u043C\u043E\u0443\u0433\u043E\u043B\u044C\u043D\u0438\u043A\u043E\u0432 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0412 \u043F\u043E\u043B\u0435 \u0440\u0430\u0437\u043C\u0435\u0449\u0430\u044E\u0442\u0441\u044F \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0433\u043B\u0438\u0444\u043E\u0432 \u0438 \u043D\u043E\u043C\u0435\u0440\u0430 \u0441\u0442\u0440\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u043D\u0435\u043D\u0443\u0436\u043D\u043E\u0433\u043E (\u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E) \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.",'\u041D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u043E\u0433\u043E (\u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E) \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "#000000c0" \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043A\u043E\u0434 \u0441 \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u044C\u044E 75 %. \u0412 \u0432\u044B\u0441\u043E\u043A\u043E\u043A\u043E\u043D\u0442\u0440\u0430\u0441\u0442\u043D\u044B\u0445 \u0442\u0435\u043C\u0430\u0445 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u043D\u0443\u0436\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u0442\u0435\u043D\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0446\u0432\u0435\u0442 \u0442\u0435\u043C\u044B "editorUnnecessaryCode.border".',"\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0435\u0434\u0432\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0435\u0434\u0432\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0435\u0434\u0432\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043C\u0435\u0442\u043A\u0438 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0434\u043B\u044F \u043E\u0448\u0438\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043C\u0435\u0442\u043A\u0438 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043C\u0435\u0442\u043A\u0438 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0434\u043B\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (1). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (2). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (3). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (4). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (5). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043A\u043E\u0431\u043E\u043A (6). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u0430\u0441\u043A\u0443 \u043F\u0430\u0440\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043D\u0435\u043F\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043D\u043D\u044B\u0445 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (1). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (2). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (3). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (4). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (5). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (6). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (1). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (2). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (3). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (4). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (5). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A (6). \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0430."],"vs/editor/common/editorContextKeys":["\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0444\u043E\u043A\u0443\u0441 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u0435 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 (\u043A\u0443\u0440\u0441\u043E\u0440 \u043C\u0438\u0433\u0430\u0435\u0442)","\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0444\u043E\u043A\u0443\u0441 \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0438\u043B\u0438 \u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0444\u043E\u043A\u0443\u0441 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430)","\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0444\u043E\u043A\u0443\u0441 \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0438\u043B\u0438 \u043D\u0430 \u043F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 (\u043A\u0443\u0440\u0441\u043E\u0440 \u043C\u0438\u0433\u0430\u0435\u0442)","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u043E\u043C \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u043D\u044B\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u043E\u043C \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u043C\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430\u043C\u0438 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044B \u043B\u0438 \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F","\u0412\u044B\u0431\u0440\u0430\u043D \u043B\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u043D\u044B\u0439 \u0431\u043B\u043E\u043A \u043A\u043E\u0434\u0430 \u0434\u043B\u044F \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0439","\u0414\u043E\u0441\u0442\u0438\u0433\u043D\u0443\u0442\u0430 \u043B\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430 \u043F\u0430\u0440\u0430\u043B\u043B\u0435\u043B\u044C\u043D\u043E\u0439 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439",'\u0412\u043A\u043B\u044E\u0447\u0435\u043D \u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 "editor.columnSelection"',"\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440","\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0444\u043E\u043A\u0443\u0441 \u0441 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0432\u0438\u0434\u0438\u043C\u044B\u043C","\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","\u0412\u0438\u0434\u043D\u0430 \u043B\u0438 \u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u0446\u0432\u0435\u0442\u043E\u0432","\u0421\u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u043B\u0438 \u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u0446\u0432\u0435\u0442\u043E\u0432","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0447\u0430\u0441\u0442\u044C\u044E \u0431\u043E\u043B\u044C\u0448\u0435\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0437\u0430\u043F\u0438\u0441\u043D\u044B\u0445 \u043A\u043D\u0438\u0436\u0435\u043A)","\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u044F\u0437\u044B\u043A\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441 \u043A\u043E\u0434\u043E\u043C","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A CodeLens","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0439","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0439","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u043E\u0432","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044F","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0441\u0441\u044B\u043B\u043E\u043A","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043F\u043E \u0441\u0438\u0433\u043D\u0430\u0442\u0443\u0440\u0430\u043C","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A\u043E\u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432","\u0415\u0441\u0442\u044C \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A\u043E\u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432"],"vs/editor/common/languages":["\u043C\u0430\u0441\u0441\u0438\u0432","\u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435","\u043A\u043B\u0430\u0441\u0441","\u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430","\u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440","\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435","\u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F","\u0441\u043E\u0431\u044B\u0442\u0438\u0435","\u043F\u043E\u043B\u0435","\u0444\u0430\u0439\u043B","\u0444\u0443\u043D\u043A\u0446\u0438\u044F","\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441","\u043A\u043B\u044E\u0447","\u043C\u0435\u0442\u043E\u0434","\u043C\u043E\u0434\u0443\u043B\u044C","\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0438\u043C\u0435\u043D","NULL","\u0447\u0438\u0441\u043B\u043E","\u043E\u0431\u044A\u0435\u043A\u0442","\u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440","\u043F\u0430\u043A\u0435\u0442","\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E","\u0441\u0442\u0440\u043E\u043A\u0430","\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430","\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0442\u0438\u043F\u0430","\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442"],"vs/editor/common/model/editStack":["\u0412\u0432\u043E\u0434"],"vs/editor/common/standaloneStrings":["\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A: \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0442\u043E\u043A\u0435\u043D\u044B","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0442\u0440\u043E\u043A\u0435/\u0441\u0442\u043E\u043B\u0431\u0446\u0443...","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435\u0445 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430","\u041F\u0430\u043B\u0438\u0442\u0440\u0430 \u043A\u043E\u043C\u0430\u043D\u0434","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u044B","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0443...","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0443 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043C...","\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u041D\u0430\u0436\u043C\u0438\u0442\u0435 ALT+F1 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439.","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0441\u043E\u043A\u043E\u043A\u043E\u043D\u0442\u0440\u0430\u0441\u0442\u043D\u0443\u044E \u0442\u0435\u043C\u0443","\u0412\u043D\u0435\u0441\u0435\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 ({1}): {0}."],"vs/editor/common/viewLayout/viewLineRenderer":["\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435 ({0})","\u0421\u0438\u043C\u0432\u043E\u043B\u044B: {0}"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F","\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u0432 {0}:{1}","\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u0443\u044E \u0442\u043E\u0447\u043A\u0443 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F","\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u043E\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0438 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0430","\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u0443\u044E \u0442\u043E\u0447\u043A\u0443 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\u0426\u0432\u0435\u0442 \u043C\u0435\u0442\u043A\u0438 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0434\u043B\u044F \u043F\u0430\u0440 \u0441\u043A\u043E\u0431\u043E\u043A.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043A\u043E\u0431\u043A\u0435","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u043A\u043E\u0431\u043A\u0443","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043A\u043E\u0431\u043A\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u0441\u043A\u043E\u0431\u043A\u0435","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442 \u0432\u043D\u0443\u0442\u0440\u0438, \u0432\u043A\u043B\u044E\u0447\u0430\u044F \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u0444\u0438\u0433\u0443\u0440\u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438."],"vs/editor/contrib/caretOperations/browser/caretOperations":["\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442 \u0432\u043B\u0435\u0432\u043E","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442 \u0432\u043F\u0440\u0430\u0432\u043E"],"vs/editor/contrib/caretOperations/browser/transpose":["\u0422\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0431\u0443\u043A\u0432\u044B"],"vs/editor/contrib/clipboard/browser/clipboard":["&&\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C","\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C","\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C","\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C","&&\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","&&\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043C \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0430","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F","\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F","\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F"],"vs/editor/contrib/codeAction/browser/codeAction":["\u041F\u0440\u0438 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["\u0422\u0438\u043F \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u043C\u043E\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u043E\u0433\u0434\u0430 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F.","\u0412\u0441\u0435\u0433\u0434\u0430 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043A\u043E\u0434\u0430.","\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430, \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C.","\u041D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430.","\u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435...","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442",'\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430 \u0434\u043B\u044F "{0}".','\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 \u0434\u043B\u044F "{0}" \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B',"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","\u0420\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433...",'\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0440\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433\u043E\u0432 \u0434\u043B\u044F "{0}"','\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0440\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433\u0430 \u0434\u043B\u044F "{0}"',"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0440\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433\u043E\u0432","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433\u0430 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u043C \u043A\u043E\u0434\u043E\u043C...","\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u0434\u043B\u044F '{0}'",'\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043B\u044F "{0}"',"\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B","\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F \u0438\u043C\u043F\u043E\u0440\u0442\u043E\u0432","\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0434\u043B\u044F \u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0435\u043D\u0438\u044F \u0438\u043C\u043F\u043E\u0440\u0442\u043E\u0432 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442","\u0418\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435","\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043F\u043E \u043E\u0431\u0449\u0435\u043C\u0443 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044E","\u0410\u0432\u0442\u043E\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435...","\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0430\u0432\u0442\u043E\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0439"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0433\u0440\u0443\u043F\u043F \u0432 \u043C\u0435\u043D\u044E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043A\u043E\u0434\u0430.","\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043E \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0435, \u0435\u0441\u043B\u0438 \u0432 \u044D\u0442\u043E\u0442 \u043C\u043E\u043C\u0435\u043D\u0442 \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430."],"vs/editor/contrib/codeAction/browser/codeActionController":["\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442: {0} \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 {1} \u0438 \u0441\u0442\u043E\u043B\u0431\u0446\u0435 {2}.","\u0421\u043A\u0440\u044B\u0442\u044C \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F...","\u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435","\u0418\u0437\u0432\u043B\u0435\u0447\u044C","\u0412\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439","\u041F\u0435\u0440\u0435\u043F\u0438\u0441\u0430\u0442\u044C","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C","\u0420\u0430\u0437\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0435","\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u043C \u043A\u043E\u0434\u043E\u043C"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C: {0}","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 ({0})","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430 ({0})","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u043E\u0434\u0430"],"vs/editor/contrib/codelens/browser/codelensController":["\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u044B CodeLens \u0434\u043B\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0446\u0432\u0435\u0442\u0430 (RGB/HSL/HEX)","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u044B"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440 \u0446\u0432\u0435\u0442\u0430","\u0421\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u0446\u0432\u0435\u0442\u043E\u0432","\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u0446\u0432\u0435\u0442\u0430 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u043E\u0439 \u043F\u0430\u043B\u0438\u0442\u0440\u044B \u0446\u0432\u0435\u0442\u043E\u0432","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0432\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440 \u0446\u0432\u0435\u0442\u0430"],"vs/editor/contrib/comment/browser/comment":["\u0417\u0430\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u0440\u0430\u0441\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 &&\u0441\u0442\u0440\u043E\u043A\u0438","\u0417\u0430\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443","\u0420\u0430\u0441\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443","\u0417\u0430\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u0440\u0430\u0441\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0431\u043B\u043E\u043A","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 &&\u0431\u043B\u043E\u043A\u0430"],"vs/editor/contrib/contextmenu/browser/contextmenu":["\u041C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0430","\u041E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0430 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432","\u0420\u0430\u0437\u043C\u0435\u0440 \u043F\u043E \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438","\u041F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E","\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C","\u041F\u043E\u0434\u043E\u0433\u043D\u0430\u0442\u044C","\u041F\u043E\u043B\u0437\u0443\u043D\u043E\u043A","\u041D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438","\u0412\u0441\u0435\u0433\u0434\u0430","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043D\u043E\u0435 \u043C\u0435\u043D\u044E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["\u041E\u0442\u043C\u0435\u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430","\u041F\u043E\u0432\u0442\u043E\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\u0443\u0440\u0441\u043E\u0440\u0430"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A...","\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0434\u043B\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F. \u0415\u0441\u043B\u0438 \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D, \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E \u0432\u044B\u0431\u043E\u0440\u0430.","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A \u0442\u0435\u043A\u0441\u0442"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u0441\u0442\u0430\u0432\u043A\u0438","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0432\u0441\u0442\u0430\u0432\u043A\u0438...",'\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0434\u043B\u044F "{0}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B',"\u0417\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0438. \u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0442\u0430\u0432\u043A\u0438","\u0417\u0430\u043F\u0443\u0441\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0432 \u0432\u0441\u0442\u0430\u0432\u043A\u0438"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["\u0412\u0441\u0442\u0440\u043E\u0435\u043D\u043E","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C URI","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C URI","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043F\u0443\u0442\u0438","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043F\u0443\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0443\u0442\u0438","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0443\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["\u041D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043F\u043E\u0441\u0442\u0430\u0432\u0449\u0438\u043A \u0441\u0431\u0440\u043E\u0441\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430 MIME."],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u0431\u0440\u043E\u0441\u0430","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0441\u0431\u0440\u043E\u0441\u0430...","\u0417\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438 \u0441\u0431\u0440\u043E\u0441\u0430. \u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B"],"vs/editor/contrib/editorState/browser/keybindingCancellation":['\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438, \u0434\u043E\u043F\u0443\u0441\u043A\u0430\u044E\u0449\u0438\u0435 \u043E\u0442\u043C\u0435\u043D\u0443, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0438"'],"vs/editor/contrib/find/browser/findController":["\u0424\u0430\u0439\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u0435\u043B\u0438\u043A \u0434\u043B\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043C\u0435\u043D\u044B \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432.","\u041D\u0430\u0439\u0442\u0438","&&\u041D\u0430\u0439\u0442\u0438","\u041D\u0430\u0439\u0442\u0438 \u0441 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438","\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u043C","\u041D\u0430\u0439\u0442\u0438 \u0434\u0430\u043B\u0435\u0435","\u041D\u0430\u0439\u0442\u0438 \u0440\u0430\u043D\u0435\u0435","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044E...","\u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u0447\u0442\u043E-\u043D\u0438\u0431\u0443\u0434\u044C \u0434\u0440\u0443\u0433\u043E\u0435.","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u043C\u0443 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044E (\u043E\u0442 1 \u0434\u043E {0})","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E \u043E\u0442 1 \u0434\u043E {0}","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E \u043E\u0442 1 \u0434\u043E {0}","\u041D\u0430\u0439\u0442\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u041D\u0430\u0439\u0442\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","&&\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C"],"vs/editor/contrib/find/browser/findWidget":['\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043A\u043D\u043E\u043F\u043A\u0438 "\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u043C" \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.',"\u0417\u043D\u0430\u0447\u043E\u043A, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439, \u0447\u0442\u043E \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u043E.","\u0417\u043D\u0430\u0447\u043E\u043A, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439, \u0447\u0442\u043E \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u043E.",'\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043A\u043D\u043E\u043F\u043A\u0438 "\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C" \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.','\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043A\u043D\u043E\u043F\u043A\u0438 "\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435" \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.','\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043A\u043D\u043E\u043F\u043A\u0438 "\u041D\u0430\u0439\u0442\u0438 \u0440\u0430\u043D\u0435\u0435" \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.','\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043A\u043D\u043E\u043F\u043A\u0438 "\u041D\u0430\u0439\u0442\u0438 \u0434\u0430\u043B\u0435\u0435" \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.',"\u041F\u043E\u0438\u0441\u043A \u0438 \u0437\u0430\u043C\u0435\u043D\u0430","\u041D\u0430\u0439\u0442\u0438","\u041D\u0430\u0439\u0442\u0438","\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u041D\u0430\u0439\u0442\u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438","\u0417\u0430\u043A\u0440\u044B\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0437\u0430\u043C\u0435\u043D\u044B","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0432\u044B\u0435 {0} \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432, \u043D\u043E \u0432\u0441\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u0441\u043E \u0432\u0441\u0435\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u043C.","{0} \u0438\u0437 {1}","\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","{0} \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E",'{0} \u043D\u0430\u0439\u0434\u0435\u043D \u0434\u043B\u044F "{1}"','{0} \u043D\u0430\u0439\u0434\u0435\u043D \u0434\u043B\u044F "{1}", \u0432 {2}','{0} \u043D\u0430\u0439\u0434\u0435\u043D \u0434\u043B\u044F "{1}"',"\u0422\u0435\u043F\u0435\u0440\u044C \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448 CTRL+\u0412\u0412\u041E\u0414 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0441\u0438\u043C\u0432\u043E\u043B \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u043D\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044B \u0432\u0441\u0435\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 editor.action.replaceAll, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u044D\u0442\u043E \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435."],"vs/editor/contrib/folding/browser/folding":["\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C","\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0431\u043B\u043E\u043A\u0438 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0440\u0435\u0433\u0438\u043E\u043D\u044B","\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0440\u0435\u0433\u0438\u043E\u043D\u044B","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u043A\u0440\u043E\u043C\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445","\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u043A\u0440\u043E\u043C\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435","\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C\u0443 \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044E","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0443 \u0441\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0443 \u0441\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445","\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u044B \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0443\u0447\u043D\u0443\u044E","\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u043F\u0430\u043F\u043A\u0438 {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0437\u0430 \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u043C\u0438 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430\u043C\u0438. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u0434\u0435\u043A\u043E\u0440\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B.","\u0426\u0432\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435\u043C \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0435\u043C \u043F\u043E\u043B\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u0445 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432 \u043D\u0430 \u043F\u043E\u043B\u0435 \u0433\u043B\u0438\u0444\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u0445 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432 \u043D\u0430 \u043F\u043E\u043B\u0435 \u0433\u043B\u0438\u0444\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u0445 \u0432\u0440\u0443\u0447\u043D\u0443\u044E \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432 \u043D\u0430 \u043F\u043E\u043B\u044F\u0445 \u0433\u043B\u0438\u0444\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u0445 \u0432\u0440\u0443\u0447\u043D\u0443\u044E \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432 \u043D\u0430 \u043F\u043E\u043B\u044F\u0445 \u0433\u043B\u0438\u0444\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D.","\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D."],"vs/editor/contrib/fontZoom/browser/fontZoom":["\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430"],"vs/editor/contrib/format/browser/formatActions":["\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442","\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442"],"vs/editor/contrib/gotoError/browser/gotoError":["\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0435 (\u041E\u0448\u0438\u0431\u043A\u0435, \u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044E, \u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438)","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u043C\u0430\u0440\u043A\u0435\u0440\u0443.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0439 \u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0435 (\u041E\u0448\u0438\u0431\u043A\u0435, \u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044E, \u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438)","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u043C\u0430\u0440\u043A\u0435\u0440\u0443.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0435 \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 (\u043E\u0448\u0438\u0431\u043A\u0438, \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F, \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F)","\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F &&\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0439 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0435 \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 (\u043E\u0448\u0438\u0431\u043A\u0438, \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F, \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F)","\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F &&\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["\u041E\u0448\u0438\u0431\u043A\u0430","\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435","\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F","\u0423\u043A\u0430\u0437\u0430\u043D\u0438\u0435","{0} \u0432 {1}. ","\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B: {0} \u0438\u0437 {1}","\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B: {0} \u0438\u0437 {1}","\u0426\u0432\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0424\u043E\u043D \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0424\u043E\u043D \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0424\u043E\u043D \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0424\u043E\u043D \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0442\u043A\u0430\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430."],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["\u041E\u0431\u0437\u043E\u0440","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0434\u043B\u044F "{0}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E.',"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E","\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044F",'\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043B\u044F "{0}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E.',"\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044E",'\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043B\u044F "{0}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E.',"\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0432",'\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0430 \u0434\u043B\u044F "{0}".',"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0430.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0442\u0438\u043F\u0430","\u0420\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438",'\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0434\u043B\u044F "{0}".',"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u043C",'\u0421\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F "{0}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B',"\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A &&\u0441\u0441\u044B\u043B\u043A\u0430\u043C","\u0421\u0441\u044B\u043B\u043A\u0438","\u0421\u0441\u044B\u043B\u043A\u0438","\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F",'\u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0434\u043B\u044F "{0}"',"\u0421\u0441\u044B\u043B\u043A\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E","\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0431\u043E\u043A\u0443","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044E","\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0442\u0438\u043F\u0430","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0430","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u043C","\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0441\u044B\u043B\u043A\u0430\u043C","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043B\u044E\u0431\u043E\u043C\u0443 \u0441\u0438\u043C\u0432\u043E\u043B\u0443"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F ({0})."],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":['\u041E\u0442\u043A\u0440\u044B\u0442\u043E \u043B\u0438 \u043E\u043A\u043D\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441\u0441\u044B\u043B\u043E\u043A, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u0421\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430" \u0438\u043B\u0438 "\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430"',"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["\u0421\u0441\u044B\u043B\u043E\u043A: {0}","{0} \u0441\u0441\u044B\u043B\u043A\u0430","\u0421\u0441\u044B\u043B\u043A\u0438"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["\u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D","\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","\u0421\u0441\u044B\u043B\u043A\u0438"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["\u0432 {0} \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 {1} \u0432 \u0441\u0442\u043E\u043B\u0431\u0446\u0435 {2}","{0} \u0432 {1} \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 {2} \u0432 \u0441\u0442\u043E\u043B\u0431\u0446\u0435 {3}","1 \u0441\u0438\u043C\u0432\u043E\u043B \u0432 {0}, \u043F\u043E\u043B\u043D\u044B\u0439 \u043F\u0443\u0442\u044C: {1}","{0} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 {1}, \u043F\u043E\u043B\u043D\u044B\u0439 \u043F\u0443\u0442\u044C: {2} ","\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B","\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D 1 \u0441\u0438\u043C\u0432\u043E\u043B \u0432 {0}","\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E {0} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 {1}","\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E {0} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 {1} \u0444\u0430\u0439\u043B\u0430\u0445"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0442 \u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043A \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043C\u043E\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u0438\u0437 {1}, {2} \u0434\u043B\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u0438\u0437 {1}"],"vs/editor/contrib/hover/browser/hover":["\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043D\u0430 \u043D\u0435\u0433\u043E \u0444\u043E\u043A\u0443\u0441","\u041F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C \u043C\u044B\u0448\u0438 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F.","\u041F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u0431\u0443\u0434\u0435\u0442 \u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0439\u0434\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043E\u043D \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043D.","\u041A\u043E\u0433\u0434\u0430 \u043E\u043D \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F, \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u043F\u0440\u043E\u0438\u0437\u043E\u0439\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438","\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0440\u0445","\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432\u043D\u0438\u0437","\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432\u043B\u0435\u0432\u043E","\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0432\u043F\u0440\u0430\u0432\u043E","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0432\u0432\u0435\u0440\u0445 \u0432 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0432\u043D\u0438\u0437 \u0432 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044E","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044E"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...","\u041E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0430 \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u0434\u043B\u044F \u0434\u043B\u0438\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438\u0437 \u0441\u043E\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438. \u042D\u0442\u043E \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 editor.stopRenderingLineAfter.",'\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u0438\u0437 \u0441\u043E\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438. \u042D\u0442\u043E \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E "editor.maxTokenizationLineLength".'],"vs/editor/contrib/hover/browser/markerHoverParticipant":["\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0443","\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B","\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430\u043B\u0438\u0447\u0438\u044F \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0439...","\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B","\u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C"],"vs/editor/contrib/indentation/browser/indentation":["\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0432 \u043F\u0440\u043E\u0431\u0435\u043B\u044B","\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0432 \u0448\u0430\u0433\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u041D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0430\u0433\u0430 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u0420\u0430\u0437\u043C\u0435\u0440 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E","\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0448\u0430\u0433\u0430 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0434\u043B\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430","\u041E\u0442\u0441\u0442\u0443\u043F \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u041E\u0442\u0441\u0442\u0443\u043F \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432","\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u0441\u0442\u0443\u043F\u0430 \u043E\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E","\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0441\u0442\u0440\u043E\u043A","\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F\u044B \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["\u0414\u0432\u0430\u0436\u0434\u044B \u0449\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C","CMD + \u0449\u0435\u043B\u0447\u043E\u043A","CTRL + \u0449\u0435\u043B\u0447\u043E\u043A","OPTION + \u0449\u0435\u043B\u0447\u043E\u043A","ALT + \u0449\u0435\u043B\u0447\u043E\u043A","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E ({0}), \u0449\u0435\u043B\u043A\u043D\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044E ({0})","\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443"],"vs/editor/contrib/inlineCompletions/browser/commands":["\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0441\u043B\u043E\u0432\u043E \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F","\u041F\u0440\u0438\u043D\u044F\u0442\u044C Word","\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F","\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443","\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u041F\u0440\u0438\u043D\u044F\u0442\u044C","\u0421\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u0412\u0441\u0435\u0433\u0434\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u041D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441 \u043F\u0440\u043E\u0431\u0435\u043B\u0430","\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442, \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u043E\u0431\u0435\u043B \u043F\u0435\u0440\u0435\u0434 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0439 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u0435\u0439 \u043A\u043E\u0440\u043E\u0447\u0435, \u0447\u0435\u043C \u0442\u0435\u043A\u0441\u0442, \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0439 \u043A\u043B\u0430\u0432\u0438\u0448\u0435\u0439 TAB","\u0421\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u043F\u043E\u0434\u0430\u0432\u043B\u044F\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0430\u0441\u043F\u0435\u043A\u0442 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0435\u0439 ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430.","{0} ({1})","\u041D\u0430\u0437\u0430\u0434","\u0414\u0430\u043B\u0435\u0435"],"vs/editor/contrib/lineSelection/browser/lineSelection":["\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438"],"vs/editor/contrib/linesOperations/browser/linesOperations":["\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0441\u0432\u0435\u0440\u0445\u0443","&&\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u044B\u0448\u0435","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0441\u043D\u0438\u0437\u0443","\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443 &&\u043D\u0438\u0436\u0435","\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435","&&\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0440\u0445","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0441&&\u0442\u0440\u043E\u043A\u0443 \u0432\u044B\u0448\u0435","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u043D\u0438\u0437","&&\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443 \u043D\u0438\u0436\u0435","\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u0441\u0442\u0440\u043E\u043A \u043F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E","\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u0441\u0442\u0440\u043E\u043A \u043F\u043E \u0443\u0431\u044B\u0432\u0430\u043D\u0438\u044E","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u0440\u0443\u044E\u0449\u0438\u0435\u0441\u044F \u0441\u0442\u0440\u043E\u043A\u0438","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B-\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0438","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443","\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F","\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u044B\u0448\u0435","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043D\u0438\u0436\u0435","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043B\u0435\u0432\u0430","\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043F\u0440\u0430\u0432\u0430","_\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0438","\u0422\u0440\u0430\u043D\u0441\u043F\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432\u043E\u043A\u0440\u0443\u0433 \u043A\u0443\u0440\u0441\u043E\u0440\u0430","\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440","\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u043D\u0438\u0436\u043D\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440","\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0435 \u0431\u0443\u043A\u0432\u044B","\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0441 \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u044F\u043C\u0438",'\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 "\u0432\u0435\u0440\u0431\u043B\u044E\u0436\u0438\u0439" \u0441\u0442\u0438\u043B\u044C',"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u043A\u0435\u0431\u0430\u0431-\u043A\u0435\u0439\u0441"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u0440\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u043C \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0438 \u0442\u0438\u043F\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u043E\u043C."],"vs/editor/contrib/links/browser/links":["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443, \u0442\u0430\u043A \u043A\u0430\u043A \u043E\u043D\u0430 \u0438\u043C\u0435\u0435\u0442 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442: {0}","\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443, \u0443 \u043D\u0435\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442.","\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443","\u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u043E \u0441\u0441\u044B\u043B\u043A\u0435","\u041A\u043D\u043E\u043F\u043A\u0430 CMD \u0438 \u0449\u0435\u043B\u0447\u043E\u043A \u043B\u0435\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438","\u041A\u043D\u043E\u043F\u043A\u0430 CTRL \u0438 \u0449\u0435\u043B\u0447\u043E\u043A \u043B\u0435\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438","\u041A\u043D\u043E\u043F\u043A\u0430 OPTION \u0438 \u0449\u0435\u043B\u0447\u043E\u043A \u043B\u0435\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438","\u041A\u043D\u043E\u043F\u043A\u0430 ALT \u0438 \u0449\u0435\u043B\u0447\u043E\u043A \u043B\u0435\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438","\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B {0}","\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443"],"vs/editor/contrib/message/browser/messageController":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435"],"vs/editor/contrib/multicursor/browser/multicursor":["\u041A\u0443\u0440\u0441\u043E\u0440 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D: {0}","\u041A\u0443\u0440\u0441\u043E\u0440\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B: {0}","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 \u0432\u044B\u0448\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 &&\u0432\u044B\u0448\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0438\u0436\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 &&\u043D\u0438\u0436\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440\u044B \u043A \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F\u043C \u0441\u0442\u0440\u043E\u043A","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440\u044B \u0432 &&\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440\u044B \u043D\u0438\u0436\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440\u044B \u0432\u044B\u0448\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u043E\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C &&\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0432 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u043E\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C &&\u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u043E\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0432 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u043E\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u044B\u0445 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 &&\u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F","\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0435","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0435","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0435","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u043D\u0430 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C \u043A\u0443\u0440\u0441\u043E\u0440\u0435"],"vs/editor/contrib/parameterHints/browser/parameterHints":["\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043A \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430.","{0}, \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0435","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0432 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430."],"vs/editor/contrib/peekView/browser/peekView":["\u0412\u0441\u0442\u0440\u043E\u0435\u043D \u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043A\u043E\u0434\u0430 \u0432 \u043E\u043A\u043D\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430","\u0417\u0430\u043A\u0440\u044B\u0442\u044C","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u0438 \u043C\u0430\u0441\u0441\u0438\u0432\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0443\u0437\u043B\u043E\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0443\u0437\u043B\u043E\u0432 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u044F \u0432 \u043E\u043A\u043D\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u043E\u043A\u043D\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0432 \u0431\u044B\u0441\u0442\u0440\u043E\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435."],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\u0427\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0442\u0440\u043E\u043A\u0435, \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u041F\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043A \u0441\u0442\u0440\u043E\u043A\u0435 {0} \u0438 \u0441\u0442\u043E\u043B\u0431\u0446\u0443 {1}.","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0442\u0440\u043E\u043A\u0435 {0}.","\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: {0}, \u0441\u0438\u043C\u0432\u043E\u043B: {1}. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u043E\u043A\u0438 \u043C\u0435\u0436\u0434\u0443 1 \u0438 {2} \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430.","\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: {0}, \u0441\u0438\u043C\u0432\u043E\u043B: {1}. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430."],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\u0427\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0443, \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u044C\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439.","\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0435 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u044C\u043D\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E.","\u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0449\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u041D\u0435\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0431\u043E\u043A\u0443","\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432\u043D\u0438\u0437\u0443","\u0441\u0438\u043C\u0432\u043E\u043B\u044B ({0})","\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 ({0})","\u043C\u0435\u0442\u043E\u0434\u044B ({0})","\u0444\u0443\u043D\u043A\u0446\u0438\u0438 ({0})","\u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u044B ({0})","\u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 ({0})","\u043A\u043B\u0430\u0441\u0441\u044B ({0})","\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u044B ({0})","\u0441\u043E\u0431\u044B\u0442\u0438\u044F ({0})","\u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B ({0})","\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044B ({0})","\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 \u0438\u043C\u0435\u043D ({0})","\u043F\u0430\u043A\u0435\u0442\u044B ({0})","\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0442\u0438\u043F\u0430 ({0})","\u043C\u043E\u0434\u0443\u043B\u0438 ({0})","\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 ({0})","\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F ({0})","\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F ({0})","\u0441\u0442\u0440\u043E\u043A\u0438 ({0})","\u0444\u0430\u0439\u043B\u044B ({0})","\u043C\u0430\u0441\u0441\u0438\u0432\u044B ({0})","\u0447\u0438\u0441\u043B\u0430 ({0})","\u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F ({0})","\u043E\u0431\u044A\u0435\u043A\u0442\u044B ({0})","\u043A\u043B\u044E\u0447\u0438 ({0})","\u043F\u043E\u043B\u044F ({0})","\u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u044B ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["\u041D\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044F \u0432\u043D\u0435\u0441\u0442\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u043E \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F","\u041D\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F"],"vs/editor/contrib/rename/browser/rename":["\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442.","\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F",'\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 "{0}" \u0432 "{1}"',"\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 {0} \u0432 {1}","\xAB{0}\xBB \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D \u0432 \xAB{1}\xBB. \u0421\u0432\u043E\u0434\u043A\u0430: {2}","\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u0430\u0432\u043A\u0438","\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u043F\u0440\u0430\u0432\u043A\u0438","\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B","\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C/\u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0434 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435\u043C","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u043E \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044E","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F"],"vs/editor/contrib/rename/browser/renameInputField":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0445\u043E\u0434\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445","\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0445\u043E\u0434\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u0412\u0412\u041E\u0414 \u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.","\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {0} \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044F, {1} \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430.","\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043E \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E ({0}) \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u043E \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u044E"],"vs/editor/contrib/smartSelect/browser/smartSelect":["\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442","&&\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442","&&\u0421\u0436\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],"vs/editor/contrib/snippet/browser/snippetController2":["\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432","\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043B\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432","\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043B\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u0432","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044E..."],"vs/editor/contrib/snippet/browser/snippetVariables":["\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435","\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A","\u0432\u0442\u043E\u0440\u043D\u0438\u043A","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043F\u044F\u0442\u043D\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043E\u0442\u0430","\u0412\u0441","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431","\u042F\u043D\u0432\u0430\u0440\u044C","\u0424\u0435\u0432\u0440\u0430\u043B\u044C","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B\u044C","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C","\u041E\u043A\u0442\u044F\u0431\u0440\u044C","\u041D\u043E\u044F\u0431\u0440\u044C","\u0414\u0435\u043A\u0430\u0431\u0440\u044C","\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["&&\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043B\u0438\u043F\u043A\u0443\u044E \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0417\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","&&\u0417\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","&&\u0424\u043E\u043A\u0443\u0441 \u043D\u0430 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043B\u0438\u043F\u043A\u0443\u044E \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","\u0424\u043E\u043A\u0443\u0441 \u043D\u0430 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0442\u0440\u043E\u043A\u0435 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440"],"vs/editor/contrib/suggest/browser/suggest":["\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u043A\u0430\u043A\u043E\u0435-\u043B\u0438\u0431\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043B\u0438 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445","\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043B\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430","\u041F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043A \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044E \u0438\u043B\u0438 \u0432\u0441\u0435 \u0443\u0436\u0435 \u0431\u044B\u043B\u043E \u0432\u0432\u0435\u0434\u0435\u043D\u043E","\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0412\u0412\u041E\u0414",'\u0415\u0441\u0442\u044C \u043B\u0438 \u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F "\u0432\u0441\u0442\u0430\u0432\u043A\u0430" \u0438 "\u0437\u0430\u043C\u0435\u043D\u0430"','\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C "\u0432\u0441\u0442\u0430\u0432\u043A\u0430" \u0438\u043B\u0438 "\u0437\u0430\u043C\u0435\u043D\u0430"',"\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439"],"vs/editor/contrib/suggest/browser/suggestController":['\u041F\u0440\u0438\u043D\u044F\u0442\u0438\u0435 "{0}" \u043F\u0440\u0438\u0432\u0435\u043B\u043E \u043A \u0432\u043D\u0435\u0441\u0435\u043D\u0438\u044E \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u043E\u043A ({1})',"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C","\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u043D\u044C\u0448\u0435","\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435","\u0421\u0431\u0440\u043E\u0441 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F"],"vs/editor/contrib/suggest/browser/suggestWidget":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0437\u043D\u0430\u0447\u043A\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F \u0432\u044B\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F.","\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...","\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442.","\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\u0442\u044C","{0} {1}, {2}","{0} {1}","{0}, {1}","{0}, \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["\u0417\u0430\u043A\u0440\u044B\u0442\u044C","\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043C\u0430\u0441\u0441\u0438\u0432\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043A\u043B\u0430\u0441\u0441\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0446\u0432\u0435\u0442\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u044B. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0438\u0442\u0435\u043B\u044F. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0447\u043B\u0435\u043D\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0438\u0442\u0435\u043B\u044F. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0441\u043E\u0431\u044B\u0442\u0438\u044F. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u043E\u043B\u044F. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0444\u0430\u0439\u043B\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u0430\u043F\u043A\u0438. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0444\u0443\u043D\u043A\u0446\u0438\u0438. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043A\u043B\u044E\u0447\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043A\u043B\u044E\u0447\u0435\u0432\u043E\u0433\u043E \u0441\u043B\u043E\u0432\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043C\u0435\u0442\u043E\u0434\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043C\u043E\u0434\u0443\u043B\u044F. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 \u0438\u043C\u0435\u043D. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 NULL. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0447\u0438\u0441\u043B\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u0430\u043A\u0435\u0442\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0441\u0441\u044B\u043B\u043A\u0438. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u043A\u043E\u0434\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0441\u0442\u0440\u043E\u043A\u0438. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u044B. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0442\u0435\u043A\u0441\u0442\u0430. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0442\u0438\u043F\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0435\u0434\u0438\u043D\u0438\u0446. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439. \u042D\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435, \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439."],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["\u041F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB \u0444\u043E\u043A\u0443\u0441 \u043F\u0435\u0440\u0435\u0439\u0434\u0435\u0442 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u043E\u0436\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0444\u043E\u043A\u0443\u0441","\u0422\u0435\u043F\u0435\u0440\u044C \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D \u0441\u0438\u043C\u0432\u043E\u043B \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438","\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 TAB \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442 \u0444\u043E\u043A\u0443\u0441."],"vs/editor/contrib/tokenization/browser/tokenization":["\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A: \u043F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u0430\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u0442\u043E\u043A\u0435\u043D\u043E\u0432"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["\u0417\u043D\u0430\u0447\u043E\u043A, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0439 \u0441 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435\u043C \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439.","\u042D\u0442\u043E\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043C\u043D\u043E\u0433\u043E \u043D\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0430 ASCII","\u042D\u0442\u043E\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043C\u043D\u043E\u0433\u043E \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0430","\u042D\u0442\u043E\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043C\u043D\u043E\u0433\u043E \u043D\u0435\u0432\u0438\u0434\u0438\u043C\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u042E\u043D\u0438\u043A\u043E\u0434\u0430","\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u042E\u043D\u0438\u043A\u043E\u0434\u0430","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u043C\u043E\u0436\u043D\u043E \u0441\u043F\u0443\u0442\u0430\u0442\u044C \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C ASCII {1}, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u043C \u043A\u043E\u0434\u0435.","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u043C\u043E\u0436\u043D\u043E \u0441\u043F\u0443\u0442\u0430\u0442\u044C \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C {1}, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u043C \u043A\u043E\u0434\u0435.","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u043D\u0435\u0432\u0438\u0434\u0438\u043C.","\u0421\u0438\u043C\u0432\u043E\u043B {0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0431\u0430\u0437\u043E\u0432\u044B\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C ASCII.","\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F\u0445","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F\u0445","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 \u0441\u0442\u0440\u043E\u043A\u0430\u0445","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u043E\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0435\u0432\u0438\u0434\u0438\u043C\u043E\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0435\u0432\u0438\u0434\u0438\u043C\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435, \u043E\u0442\u043B\u0438\u0447\u043D\u043E\u0435 \u043E\u0442 ASCII","\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 ASCII","\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C {0} (\u043D\u0435\u0432\u0438\u0434\u0438\u043C\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B) \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F","\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C {0} \u0438\u0437 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F",'\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u042E\u043D\u0438\u043A\u043E\u0434\u0430, \u0431\u043E\u043B\u0435\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u0432 \u044F\u0437\u044B\u043A\u0435 "{0}".'],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["\u041D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438","\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B \u043D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438",`\u0424\u0430\u0439\u043B "{0}" \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043E\u0434\u0438\u043D \u0438\u043B\u0438 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u0441\u0442\u0440\u043E\u043A (LS) \u0438\u043B\u0438 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u0430\u0431\u0437\u0430\u0446\u0435\u0432 (PS).\r +\r +\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0438\u0445 \u0438\u0437 \u0444\u0430\u0439\u043B\u0430. \u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u044D\u0442\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 "editor.unusualLineTerminators".`,"&&\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438","\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435 \u043D\u0430 \u0447\u0442\u0435\u043D\u0438\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043F\u0440\u0438 \u0447\u0442\u0435\u043D\u0438\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u043F\u0440\u0438 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435 \u043D\u0430 \u0447\u0442\u0435\u043D\u0438\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043F\u0440\u0438 \u0441\u0447\u0438\u0442\u044B\u0432\u0430\u043D\u0438\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043F\u0440\u0438 \u0437\u0430\u043F\u0438\u0441\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439. ","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F."],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432","\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044E \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432","\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"],"vs/editor/contrib/wordOperations/browser/wordOperations":["\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043B\u043E\u0432\u043E"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["\u041E\u0448\u0438\u0431\u043A\u0430 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u041E\u0448\u0438\u0431\u043A\u0430","\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435","\u0421\u043B\u043E\u0436\u0435\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u043E","\u0422\u043E\u0447\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u0422\u043E\u0447\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430","\u0412\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","\u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435","\u041E\u0442\u043B\u0430\u0434\u0447\u0438\u043A \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u0432 \u0442\u043E\u0447\u043A\u0435 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430","\u0422\u043E\u0447\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430","\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0432 \u0441\u0442\u0440\u043E\u043A\u0435","\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u044F \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430","\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430","\u0421\u0431\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438","\u0421\u0431\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438","\u0421\u0431\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","\u0421\u0431\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","\u041A\u043E\u043B\u043E\u043A\u043E\u043B\u044C\u0447\u0438\u043A \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","\u0417\u0432\u043E\u043D\u043E\u043A \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","\u042F\u0447\u0435\u0439\u043A\u0430 \u0437\u0430\u043F\u0438\u0441\u043D\u043E\u0439 \u043A\u043D\u0438\u0436\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430","\u042F\u0447\u0435\u0439\u043A\u0430 \u0437\u0430\u043F\u0438\u0441\u043D\u043E\u0439 \u043A\u043D\u0438\u0436\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430","\u0421\u0431\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0438 \u0437\u0430\u043F\u0438\u0441\u043D\u043E\u0439 \u043A\u043D\u0438\u0436\u043A\u0438","\u0421\u0431\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0438 \u0437\u0430\u043F\u0438\u0441\u043D\u043E\u0439 \u043A\u043D\u0438\u0436\u043A\u0438","\u0412\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0430 \u0440\u0430\u0437\u043D\u043E\u0441\u0442\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430","\u0423\u0434\u0430\u043B\u0435\u043D\u0430 \u0440\u0430\u0437\u043D\u043E\u0441\u0442\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430","\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439","\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u0447\u0430\u0442","\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u0447\u0430\u0442","\u041F\u043E\u043B\u0443\u0447\u0435\u043D \u043E\u0442\u0432\u0435\u0442 \u0447\u0430\u0442\u0430","\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 \u0447\u0430\u0442\u0430","\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 \u0447\u0430\u0442\u0430","\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C","\u041E\u0447\u0438\u0441\u0442\u043A\u0430","\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C","\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C","\u0424\u043E\u0440\u043C\u0430\u0442","\u0424\u043E\u0440\u043C\u0430\u0442"],"vs/platform/action/common/actionCommonCategories":["\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435","\u0421\u043F\u0440\u0430\u0432\u043A\u0430","\u0422\u0435\u0441\u0442","\u0424\u0430\u0439\u043B","\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B","\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A"],"vs/platform/actionWidget/browser/actionList":["{0}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C, {1} \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430","{0}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C","{0}, \u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F: {1}","\u041C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439"],"vs/platform/actionWidget/browser/actionWidget":["\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0435\u043C\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.","\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0441\u043F\u0438\u0441\u043E\u043A \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439","\u0421\u043A\u0440\u044B\u0442\u044C \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435","\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435","\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435","\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["\u0421\u043A\u0440\u044B\u0442\u044C","\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043C\u0435\u043D\u044E"],"vs/platform/actions/common/menuService":['\u0421\u043A\u0440\u044B\u0442\u044C "{0}"'],"vs/platform/configuration/common/configurationRegistry":["\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044F\u0437\u044B\u043A\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E","\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0434\u043B\u044F \u044F\u0437\u044B\u043A\u0430 {0}.","\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445 \u0434\u043B\u044F \u044F\u0437\u044B\u043A\u0430.","\u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 \u0434\u043B\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0445 \u044F\u0437\u044B\u043A\u043E\u0432.","\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445 \u0434\u043B\u044F \u044F\u0437\u044B\u043A\u0430.","\u042D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 \u0434\u043B\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0445 \u044F\u0437\u044B\u043A\u043E\u0432.","\u041D\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044F \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0443\u0441\u0442\u043E\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E",`\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C "{0}". \u041E\u043D\u043E \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 '\\\\[.*\\\\]$' \u0434\u043B\u044F \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445 \u044F\u0437\u044B\u043A\u043E\u043C. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 configurationDefaults.`,'\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C "{0}". \u042D\u0442\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E.','\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C "{0}". \u0423\u0436\u0435 \u0438\u043C\u0435\u0435\u0442\u0441\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F {2} \u0434\u043B\u044F \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0439 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0438 {1}.'],"vs/platform/contextkey/browser/contextKeyService":["\u041A\u043E\u043C\u0430\u043D\u0434\u0430, \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u044E\u0449\u0430\u044F \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u043A\u043B\u044E\u0447\u0430\u0445 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430"],"vs/platform/contextkey/common/contextkey":["\u041F\u0443\u0441\u0442\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043A\u043B\u044E\u0447\u0430 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430",'\u0412\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435? \u0412\u044B \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C "false" \u0438\u043B\u0438 "true", \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0435\u0433\u0434\u0430 \u043E\u0446\u0435\u043D\u0438\u0432\u0430\u0442\u044C \u043F\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E false \u0438\u043B\u0438 true \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E.','"in" \u043F\u043E\u0441\u043B\u0435 "not".','\u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u043A\u0440\u0443\u0433\u043B\u0430\u044F \u0441\u043A\u043E\u0431\u043A\u0430 ")"',"\u041D\u0435\u043F\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043D\u043D\u044B\u0439 \u043C\u0430\u0440\u043A\u0435\u0440","\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C && \u0438\u043B\u0438 || \u043F\u0435\u0440\u0435\u0434 \u043C\u0430\u0440\u043A\u0435\u0440\u043E\u043C?","\u041D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043A\u043E\u043D\u0435\u0446 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F","\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043A\u043B\u044E\u0447 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430?",`\u041E\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044F: {0}\r +\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043E: "{1}".`],"vs/platform/contextkey/common/contextkeys":["\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 macOS","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 Linux","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 Windows","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043D\u043E\u0439","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 macOS \u043D\u0430 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435, \u043E\u0442\u043B\u0438\u0447\u043D\u043E\u0439 \u043E\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043D\u043E\u0439","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 IOS","\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043E\u043C","\u0422\u0438\u043F \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 VS Code","\u041D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043B\u0438 \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0432 \u043F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430"],"vs/platform/contextkey/common/scanner":["\u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 {0}?","\u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 {0} \u0438\u043B\u0438 {1}?","\u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 {0}, {1} \u0438\u043B\u0438 {2}?","\u0412\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0438\u043B\u0438 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0446\u0438\u0442\u0430\u0442\u0443?",'\u0412\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B "/" (\u043A\u043E\u0441\u0430\u044F \u0447\u0435\u0440\u0442\u0430)? \u0427\u0442\u043E\u0431\u044B \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C, \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u043F\u0435\u0440\u0435\u0434 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C \u0434\u0432\u0435 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0435 \u043A\u043E\u0441\u044B\u0435 \u0447\u0435\u0440\u0442\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "\\\\/".'],"vs/platform/history/browser/contextScopedHistoryWidget":["\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F"],"vs/platform/keybinding/common/abstractKeybindingService":["\u0411\u044B\u043B\u0430 \u043D\u0430\u0436\u0430\u0442\u0430 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 {0}. \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u044F \u0432\u0442\u043E\u0440\u043E\u0439 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F...","\u0411\u044B\u043B\u0430 \u043D\u0430\u0436\u0430\u0442\u0430 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 ({0}). \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F...","\u0421\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 ({0} \u0438 {1}) \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u043E\u0439.","\u0421\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 ({0} \u0438 {1}) \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u043E\u0439."],"vs/platform/list/browser/listService":["\u0420\u0430\u0431\u043E\u0447\u0435\u0435 \u043C\u0435\u0441\u0442\u043E","\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 CTRL \u0432 Windows \u0438 Linux \u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 COMMAND \u0432 macOS.","\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 ALT \u0432 Windows \u0438 Linux \u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0435 OPTION \u0432 macOS.",'\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0432 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u0438 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0432 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0432 \u043F\u0440\u043E\u0432\u043E\u0434\u043D\u0438\u043A\u0435, \u0432 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0445 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430\u0445 \u0438 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 scm). \u0416\u0435\u0441\u0442\u044B \u043C\u044B\u0448\u0438 "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0431\u043E\u043A\u0443" (\u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F) \u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u0442\u0430\u043A\u0438\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C, \u0447\u0442\u043E\u0431\u044B \u043E\u043D\u0438 \u043D\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u043E\u0432\u0430\u043B\u0438 \u0441 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430.',"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043A\u0430\u043A \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0432 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u0438 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438 (\u0435\u0441\u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F). \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043C\u043E\u0436\u0435\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u0438 \u0441\u043F\u0438\u0441\u043A\u0430\u0445, \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043A \u043D\u0438\u043C.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442 \u043B\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0443\u044E \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443 \u0441\u043F\u0438\u0441\u043A\u0438 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435. \u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435! \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u043C\u043E\u0436\u0435\u0442 \u043F\u043E\u0432\u043B\u0438\u044F\u0442\u044C \u043D\u0430 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0449\u0435\u043B\u043A\u0430\u0442\u044C \u043F\u043E\u043B\u043E\u0441\u0443 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u043E\u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u043E.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043E\u0442\u0441\u0442\u0443\u043F \u0434\u043B\u044F \u0434\u0435\u0440\u0435\u0432\u0430 \u0432 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u0445.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043D\u0443\u0436\u043D\u043E \u043B\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043B\u0438 \u043F\u043B\u0430\u0432\u043D\u0430\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u0434\u043B\u044F \u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u0435\u0432.","\u041C\u043D\u043E\u0436\u0438\u0442\u0435\u043B\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 deltaX \u0438 deltaY \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043A\u043E\u043B\u0435\u0441\u0438\u043A\u0430 \u043C\u044B\u0448\u0438.","\u041A\u043E\u044D\u0444\u0444\u0438\u0446\u0438\u0435\u043D\u0442 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 ALT.","\u041F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0432\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B. \u041F\u0440\u0438 \u0434\u0430\u043B\u044C\u043D\u0435\u0439\u0448\u0435\u0439 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u0431\u0445\u043E\u0434 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432.","\u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0439\u0442\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0440\u0435\u0436\u0438\u043C\u043E\u043C \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u0435\u0432 \u0432 Workbench.","\u041F\u0440\u043E \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0432\u044B\u0431\u0438\u0440\u0430\u044E\u0442\u0441\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0432\u0432\u043E\u0434\u0438\u043C\u044B\u043C \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0434\u0430\u043D\u043D\u044B\u043C. \u0421\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u043C.","\u0424\u0443\u043D\u043A\u0446\u0438\u044F \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0438 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0432\u044B\u0434\u0435\u043B\u044F\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0432\u0432\u043E\u0434\u0438\u043C\u044B\u043C \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0434\u0430\u043D\u043D\u044B\u043C. \u041F\u0440\u0438 \u0434\u0430\u043B\u044C\u043D\u0435\u0439\u0448\u0435\u0439 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u0431\u0445\u043E\u0434 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432.","\u0424\u0438\u043B\u044C\u0442\u0440 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0441\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u043D\u0435 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0432\u0432\u043E\u0434\u0438\u043C\u044B\u043C \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0434\u0430\u043D\u043D\u044B\u043C.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0442\u0438\u043B\u0435\u043C \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0434\u043B\u044F \u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u0435\u0432 \u0432 Workbench. \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0440\u0435\u0436\u0438\u043C, \u0440\u0435\u0436\u0438\u043C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0438 \u0440\u0435\u0436\u0438\u043C \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438.",'\u0412\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 "workbench.list.defaultFindMode" \u0438 "workbench.list.typeNavigationMode".',"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0442\u043A\u043E\u0435 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435.","\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u0435\u043F\u0440\u0435\u0440\u044B\u0432\u043D\u043E\u0435 \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0438\u043F\u043E\u043C \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u043C \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u0435\u0432 \u0432 Workbench.","\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0435\u043C, \u043A\u0430\u043A \u043F\u0430\u043F\u043A\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0440\u0430\u0437\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043D\u0430 \u0438\u043C\u0435\u043D\u0430 \u043F\u0430\u043F\u043E\u043A. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u044D\u0442\u043E\u0442 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043C\u043E\u0436\u0435\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u0438 \u0441\u043F\u0438\u0441\u043A\u0430\u0445, \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043A \u043D\u0438\u043C.","\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043B\u0438 \u0437\u0430\u043B\u0438\u043F\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445.",'\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u0430\u043B\u0438\u043F\u0430\u044E\u0449\u0438\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 "#workbench.tree.enableStickyScroll#".','\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u043E\u0439 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u0442\u0438\u043F\u0430\u043C \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u0432 \u0440\u0430\u0431\u043E\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u0435. \u0415\u0441\u043B\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 "trigger", \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \u043F\u043E \u0442\u0438\u043F\u0443 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u044B "list.triggerTypeNavigation".'],"vs/platform/markers/common/markers":["\u041E\u0448\u0438\u0431\u043A\u0430","\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435","\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F"],"vs/platform/quickinput/browser/commandsQuickAccess":["\u043D\u0435\u0434\u0430\u0432\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0435","\u043F\u043E\u0445\u043E\u0436\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","\u0447\u0430\u0441\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435","\u0434\u0440\u0443\u0433\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","\u043F\u043E\u0445\u043E\u0436\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","{0}, {1}",'\u041A\u043E\u043C\u0430\u043D\u0434\u0430 "{0}" \u043F\u0440\u0438\u0432\u0435\u043B\u0430 \u043A \u043E\u0448\u0438\u0431\u043A\u0435'],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["\u041D\u0430\u0437\u0430\u0434","\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u0412\u0412\u041E\u0414, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435, \u0438\u043B\u0438 ESCAPE \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B","{0} / {1}","\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442, \u0447\u0442\u043E\u0431\u044B \u0443\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u0447\u0438\u0441\u043B\u043E \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432."],"vs/platform/quickinput/browser/quickInputController":["\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u043B\u0430\u0436\u043A\u0438","\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B: {0}","{0} \u0432\u044B\u0431\u0440\u0430\u043D\u043E","\u041E\u041A","\u0414\u0440\u0443\u0433\u043E\u0439","\u041D\u0430\u0437\u0430\u0434 ({0})","\u041D\u0430\u0437\u0430\u0434"],"vs/platform/quickinput/browser/quickInputList":["\u0411\u044B\u0441\u0442\u0440\u044B\u0439 \u0432\u0432\u043E\u0434"],"vs/platform/quickinput/browser/quickInputUtils":['\u0429\u0435\u043B\u043A\u043D\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 "{0}"'],"vs/platform/theme/common/colorRegistry":["\u041E\u0431\u0449\u0438\u0439 \u0446\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F, \u0442\u043E\u043B\u044C\u043A\u043E \u0435\u0441\u043B\u0438 \u0435\u0433\u043E \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442.","\u041E\u0431\u0449\u0438\u0439 \u0446\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u043C.","\u041E\u0431\u0449\u0438\u0439 \u0446\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0435\u0441\u043B\u0438 \u0435\u0433\u043E \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043E \u043F\u043E\u044F\u0441\u043D\u0435\u043D\u0438\u044F, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0434\u043B\u044F \u043C\u0435\u0442\u043A\u0438.","\u0426\u0432\u0435\u0442 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u043A\u043E\u0432 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435.","\u041E\u0431\u0449\u0438\u0439 \u0446\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u0434\u043B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441 \u0444\u043E\u043A\u0443\u0441\u043E\u043C. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0432 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0435.","\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043E\u0442\u0434\u0435\u043B\u044F\u0435\u0442 \u0438\u0445 \u043E\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0434\u043B\u044F \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0440\u0430\u0441\u0442\u0430.","\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043E\u0442\u0434\u0435\u043B\u044F\u0435\u0442 \u0438\u0445 \u043E\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0434\u043B\u044F \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0440\u0430\u0441\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0440\u0430\u0431\u043E\u0447\u0435\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0432 \u043F\u043E\u043B\u044F\u0445 \u0432\u0432\u043E\u0434\u0430 \u0438\u043B\u0438 \u0432 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u043F\u043E\u043B\u044F\u0445). \u041D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043A \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u043C\u0443 \u0442\u0435\u043A\u0441\u0442\u0443 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0434\u043B\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u0442\u0435\u043A\u0441\u0442\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0441\u044B\u043B\u043E\u043A \u0432 \u0442\u0435\u043A\u0441\u0442\u0435.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0441\u044B\u043B\u043E\u043A \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u0440\u0438 \u0449\u0435\u043B\u0447\u043A\u0435 \u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0441\u0435\u0433\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043E\u0442\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0431\u043B\u043E\u043A\u043E\u0432 \u0441 \u0446\u0438\u0442\u0430\u0442\u0430\u043C\u0438 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u0434\u043B\u044F \u0431\u043B\u043E\u043A\u043E\u0432 \u0441 \u0446\u0438\u0442\u0430\u0442\u0430\u043C\u0438 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435.",'\u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A "\u041D\u0430\u0439\u0442\u0438/\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C".','\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A "\u041D\u0430\u0439\u0442\u0438/\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C".',"\u0424\u043E\u043D \u043F\u043E\u043B\u044F \u0432\u0432\u043E\u0434\u0430.","\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D \u043F\u043E\u043B\u044F \u0432\u0432\u043E\u0434\u0430.","\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u043F\u043E\u043B\u044F \u0432\u0432\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0432 \u043F\u043E\u043B\u044F\u0445 \u0432\u0432\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0432 \u043F\u043E\u043B\u044F\u0445 \u0432\u0432\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u043E\u0432\u043E\u0433\u043E \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0432 \u043F\u043E\u043B\u044F\u0445 \u0432\u0432\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0432 \u043F\u043E\u043B\u044F\u0445 \u0432\u0432\u043E\u0434\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u044F\u0441\u043D\u044F\u044E\u0449\u0435\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 \u0432\u0432\u043E\u0434\u0430.",'\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F".','\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F".','\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F".','\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435".','\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435".','\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435".','\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041E\u0448\u0438\u0431\u043A\u0430".','\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041E\u0448\u0438\u0431\u043A\u0430".','\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0432\u0432\u043E\u0434\u0430 \u0434\u043B\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u043E\u0441\u0442\u0438 "\u041E\u0448\u0438\u0431\u043A\u0430".',"\u0424\u043E\u043D \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0441\u044F \u0441\u043F\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0441\u044F \u0441\u043F\u0438\u0441\u043A\u0430.","\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0441\u044F \u0441\u043F\u0438\u0441\u043A\u0430.","\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0441\u044F \u0441\u043F\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044F \u043A\u043D\u043E\u043F\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043A\u043D\u043E\u043F\u043A\u0438.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u0442\u043E\u0440\u0438\u0447\u043D\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0442\u043E\u0440\u0438\u0447\u043D\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0442\u043E\u0440\u0438\u0447\u043D\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0431\u044D\u0434\u0436\u0430. \u0411\u044D\u0434\u0436\u0438 - \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0449\u0438\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430 \u0431\u044D\u0434\u0436\u0430. \u0411\u044D\u0434\u0436\u0438 - \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0449\u0438\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0443\u0435\u0442 \u043E \u0442\u043E\u043C, \u0447\u0442\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u043F\u0440\u043E\u043A\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043F\u043E\u043B\u043E\u0441\u044B \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u0449\u0435\u043B\u0447\u043A\u0435 \u043F\u043E \u043D\u0435\u043C\u0443.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0432\u043E\u043B\u043D\u0438\u0441\u0442\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043E\u0448\u0438\u0431\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E, \u0446\u0432\u0435\u0442 \u0434\u0432\u043E\u0439\u043D\u043E\u0433\u043E \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u043E\u0448\u0438\u0431\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0432\u043E\u043B\u043D\u0438\u0441\u0442\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E, \u0446\u0432\u0435\u0442 \u0434\u0432\u043E\u0439\u043D\u043E\u0433\u043E \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0432\u043E\u043B\u043D\u0438\u0441\u0442\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E, \u0446\u0432\u0435\u0442 \u0434\u0432\u043E\u0439\u043D\u043E\u0433\u043E \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0432\u043E\u043B\u043D\u0438\u0441\u0442\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0415\u0441\u043B\u0438 \u0437\u0430\u0434\u0430\u043D\u043E, \u0446\u0432\u0435\u0442 \u0434\u0432\u043E\u0439\u043D\u043E\u0433\u043E \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043B\u0435\u043D\u0442.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043B\u0438\u043F\u043A\u043E\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043B\u0438\u043F\u043A\u043E\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","\u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u043B\u0438\u043F\u043A\u043E\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435"," \u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u043B\u0438\u043F\u043A\u043E\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0438\u0434\u0436\u0435\u0442\u043E\u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A \u043D\u0430\u0439\u0442\u0438/\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C.",'\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A "\u041F\u043E\u0438\u0441\u043A/\u0437\u0430\u043C\u0435\u043D\u0430".',"\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0443 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0435\u0441\u0442\u044C \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0438 \u0435\u0441\u043B\u0438 \u044D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043C.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430. \u042D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0443 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0435\u0441\u0442\u044C \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0434\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0438 \u0435\u0441\u043B\u0438 \u044D\u0442\u043E\u0442 \u0446\u0432\u0435\u0442 \u043D\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043C.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430. \u041C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u043C \u0434\u043B\u044F \u0442\u0430\u043A\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0432\u044B\u0431\u043E\u0440\u0430, \u043A\u0430\u043A \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043A\u043E\u043C\u0430\u043D\u0434.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430. \u041C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u043C \u0434\u043B\u044F \u0442\u0430\u043A\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0432\u044B\u0431\u043E\u0440\u0430, \u043A\u0430\u043A \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043A\u043E\u043C\u0430\u043D\u0434.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430. \u041C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u043C \u0434\u043B\u044F \u0442\u0430\u043A\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0432\u044B\u0431\u043E\u0440\u0430, \u043A\u0430\u043A \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043A\u043E\u043C\u0430\u043D\u0434.","\u0426\u0432\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0434\u043B\u044F \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438 \u043C\u0435\u0442\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0434\u043B\u044F \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438 \u0433\u0440\u0430\u043D\u0438\u0446.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043C\u0435\u0442\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448. \u041C\u0435\u0442\u043A\u0430 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043C\u0435\u0442\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448. \u041C\u0435\u0442\u043A\u0430 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0435\u0442\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448. \u041C\u0435\u0442\u043A\u0430 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448.","\u0426\u0432\u0435\u0442 \u043D\u0438\u0436\u043D\u0435\u0439 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0435\u0442\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448. \u041C\u0435\u0442\u043A\u0430 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u043E\u0433\u043E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0432\u044B\u0441\u043E\u043A\u043E\u0433\u043E \u043A\u043E\u043D\u0442\u0440\u0430\u0441\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0432 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439, \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u043E\u043C. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0440\u0435\u0433\u0438\u043E\u043D\u043E\u0432 \u0441 \u0442\u0435\u043C \u0436\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C, \u0447\u0442\u043E \u0438 \u0432 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430, \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043F\u043E\u0438\u0441\u043A. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430, \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043F\u043E\u0438\u0441\u043A. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043F\u043E\u0438\u0441\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043F\u043E\u0438\u0441\u043A\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0432\u044C\u044E\u043B\u0435\u0442\u0430.","\u0412\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0434 \u0441\u043B\u043E\u0432\u043E\u043C, \u0434\u043B\u044F \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043C\u0435\u043D\u044E \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u0441\u0441\u044B\u043B\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0434\u043B\u044F \u0448\u0440\u0438\u0444\u0442\u043E\u0432","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0434\u043B\u044F \u0448\u0440\u0438\u0444\u0442\u043E\u0432","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u043A\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u043C\u0435\u043D\u044E \u043B\u0430\u043C\u043F\u043E\u0447\u043A\u0438.","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u043A\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0432 \u043C\u0435\u043D\u044E \u043B\u0430\u043C\u043F\u043E\u0447\u043A\u0438.","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u043A\u0430 \u0418\u0418 \u0441 \u043B\u0430\u043C\u043F\u043E\u0447\u043A\u043E\u0439.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u044F, \u0433\u0434\u0435 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u044B \u0441\u0442\u0440\u043E\u043A\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u044F, \u0433\u0434\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0441\u0442\u0440\u043E\u043A\u0438.","\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E.","\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u0439 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u043C\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430\u043C\u0438.","\u0426\u0432\u0435\u0442 \u0434\u0438\u0430\u0433\u043E\u043D\u0430\u043B\u044C\u043D\u043E\u0439 \u0437\u0430\u043B\u0438\u0432\u043A\u0438 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439. \u0414\u0438\u0430\u0433\u043E\u043D\u0430\u043B\u044C\u043D\u0430\u044F \u0437\u0430\u043B\u0438\u0432\u043A\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432 \u0440\u0430\u0437\u043C\u0435\u0449\u0430\u0435\u043C\u044B\u0445 \u0440\u044F\u0434\u043E\u043C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u043D\u0435\u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C\xA0\u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D \u0438 \u0432\u044B\u0431\u0440\u0430\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0437\u043D\u0430\u0447\u043A\u0430 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043A\u043E\u0433\u0434\u0430 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u044B. \u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u043E \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u2014 \u043D\u0435\u0442.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0437\u043D\u0430\u0447\u043A\u0430 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043A\u043E\u0433\u0434\u0430 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u043E \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B. \u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u043E \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u2014 \u043D\u0435\u0442.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u043D\u0435 \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u2014 \u043D\u0435\u0442.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 List/Tree, \u043A\u043E\u0433\u0434\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 List/Tree \u043D\u0435 \u0430\u043A\u0442\u0438\u0432\u0435\u043D. \u041D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435 List/Tree \u0435\u0441\u0442\u044C \u0444\u043E\u043A\u0443\u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B, \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C\xA0\u2014 \u043D\u0435\u0442.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 List/Tree \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 List/Tree \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u043C\u044B\u0448\u0438.","\u041F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 \u0444\u043E\u043D\u0430 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438\u043B\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0434 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0441\u043F\u0438\u0441\u043A\u0430/\u0434\u0435\u0440\u0435\u0432\u0430 \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043C\u0435\u0436\u0434\u0443 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044F \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u043F\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0443 List/Tree.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u043F\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0443 List/Tree.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0441\u043F\u0438\u0441\u043A\u0430/\u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043B\u044F \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0434\u043B\u044F \u043D\u0435\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0440\u043D\u0435\u0432\u043E\u0433\u043E \u0443\u0437\u043B\u0430 \u0432 \u043F\u0440\u043E\u0432\u043E\u0434\u043D\u0438\u043A\u0435.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043E\u0448\u0438\u0431\u043A\u0438.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430 \u0442\u0438\u043F\u043E\u0432 \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430 \u0442\u0438\u043F\u043E\u0432 \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445.","\u0426\u0432\u0435\u0442 \u043A\u043E\u043D\u0442\u0443\u0440\u0430 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430 \u0442\u0438\u043F\u043E\u0432 \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445 \u043F\u0440\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u0442\u0435\u043D\u0438 \u0434\u043B\u044F \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430 \u0442\u0438\u043F\u043E\u0432 \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445 \u0438 \u0434\u0435\u0440\u0435\u0432\u044C\u044F\u0445.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0448\u0442\u0440\u0438\u0445\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043B\u044F \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0426\u0432\u0435\u0442 \u0448\u0442\u0440\u0438\u0445\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043B\u044F \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0445 \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043C\u0435\u0436\u0434\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0430\u043C\u0438.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u043D\u0435\u0447\u0435\u0442\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u044B.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435/\u0434\u0435\u0440\u0435\u0432\u0435 \u0434\u043B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432, \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u043B\u0430\u0436\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u0444\u043B\u0430\u0436\u043A\u0430 \u043F\u0440\u0438 \u0432\u044B\u0431\u043E\u0440\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043E\u043D \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u043B\u0430\u0436\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0444\u043B\u0430\u0436\u043A\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u0444\u043B\u0430\u0436\u043A\u0430, \u043A\u043E\u0433\u0434\u0430 \u0432\u044B\u0431\u0440\u0430\u043D \u044D\u043B\u0435\u043C\u0435\u043D\u0442, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043E\u043D \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F.","\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C quickInputList.focusBackground.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0434\u043B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0444\u043E\u043A\u0443\u0441.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0437\u043D\u0430\u0447\u043A\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0434\u043B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0444\u043E\u043A\u0443\u0441.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0434\u043B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0444\u043E\u043A\u0443\u0441.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u0443\u043D\u043A\u0442\u0430 \u043C\u0435\u043D\u044E \u0432 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u0443\u043D\u043A\u0442\u0430 \u0432 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u0443\u043D\u043A\u0442\u0430 \u0432 \u043C\u0435\u043D\u044E.","\u0426\u0432\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044F \u043C\u0435\u043D\u044E \u0432 \u043C\u0435\u043D\u044E.","\u0424\u043E\u043D \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F","\u041A\u043E\u043D\u0442\u0443\u0440 \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F","\u0424\u043E\u043D \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u0438 \u0443\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F \u043C\u044B\u0448\u0438 \u043D\u0430\u0434 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u043C\u0438","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430.","\u0412\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0446\u0432\u0435\u0442\u043E\u043C \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430.","\u0426\u0432\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0438\u0445\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438.","\u0426\u0432\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0438\u0445\u0441\u044F \u0432 \u0444\u043E\u043A\u0443\u0441\u0435.","\u0426\u0432\u0435\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438.","\u0424\u043E\u043D\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0432\u044B\u0431\u043E\u0440\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438.","\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0446\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u043F\u0440\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0424\u043E\u043D \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u043F\u0440\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0424\u043E\u043D \u0432\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u043F\u0440\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0424\u043E\u043D \u0432\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u043F\u0440\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0424\u043E\u043D \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u043E\u0431\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043A\u0430 \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0424\u043E\u043D \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u043E\u0431\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043A\u0430 \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0438 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044F \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043E\u043A\u043D\u0430 \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0432\u0445\u043E\u0434\u044F\u0449\u0435\u0433\u043E \u043E\u043A\u043D\u0430 \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0434\u043B\u044F \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u043E\u0431\u0449\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u043A\u0430 \u0432\u043E \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0430\u0445 \u0441\u043B\u0438\u044F\u043D\u0438\u044F. ","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u041C\u0430\u0440\u043A\u0435\u0440 \u043E\u0431\u0437\u043E\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0435\u0439\u043A\u0438 \u0434\u043B\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430. \u0426\u0432\u0435\u0442 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0435 \u0441\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0438\u0436\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B \u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043D\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0435 \u0434\u043B\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043C\u0438\u043D\u0438\u043A\u0430\u0440\u0442\u044B \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0439.","\u0426\u0432\u0435\u0442 \u043C\u0430\u0440\u043A\u0435\u0440\u0430 \u043C\u0438\u043D\u0438\u043A\u0430\u0440\u0442\u044B \u0434\u043B\u044F \u043E\u0448\u0438\u0431\u043E\u043A.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B.",'\u041F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u0430\u044F \u0433\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u0435. \u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "#000000c0" \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441 \u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u044C\u044E 75%.',"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043D\u0430 \u043D\u0435\u0433\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044F.","\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430 \u043F\u043E\u043B\u0437\u0443\u043D\u043A\u0430 \u043C\u0438\u043D\u0438-\u043A\u0430\u0440\u0442\u044B \u043F\u0440\u0438 \u0435\u0433\u043E \u0449\u0435\u043B\u0447\u043A\u0435.","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0437\u043D\u0430\u0447\u043A\u0430 \u043E\u0448\u0438\u0431\u043A\u0438, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043D\u0430 \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C.","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0430\u044E\u0449\u0435\u0433\u043E \u0437\u043D\u0430\u0447\u043A\u0430, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043D\u0430 \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C.","\u0426\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u043A\u0430, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u043D\u0430 \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C.","\u0426\u0432\u0435\u0442 \u043F\u0435\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430\u0445.","\u0426\u0432\u0435\u0442 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043B\u0438\u043D\u0438\u0439 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430\u0445.","\u041A\u0440\u0430\u0441\u043D\u044B\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C.","\u0421\u0438\u043D\u0438\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C.","\u0416\u0435\u043B\u0442\u044B\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C.","\u041E\u0440\u0430\u043D\u0436\u0435\u0432\u044B\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C.","\u0417\u0435\u043B\u0435\u043D\u044B\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C.","\u041B\u0438\u043B\u043E\u0432\u044B\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C."],"vs/platform/theme/common/iconRegistry":["\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u0448\u0440\u0438\u0444\u0442\u0430. \u0415\u0441\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0448\u0440\u0438\u0444\u0442, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0432\u044B\u043C.","\u0421\u0438\u043C\u0432\u043E\u043B \u0448\u0440\u0438\u0444\u0442\u0430, \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0439 \u0441 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043C \u0437\u043D\u0430\u0447\u043A\u0430.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F \u0432 \u043C\u0438\u043D\u0438-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043A \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u043C\u0443 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435.","\u0417\u043D\u0430\u0447\u043E\u043A \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044E \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435."],"vs/platform/undoRedo/common/undoRedoService":["\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0444\u0430\u0439\u043B\u044B \u0431\u044B\u043B\u0438 \u0437\u0430\u043A\u0440\u044B\u0442\u044B \u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u043D\u0430 \u0434\u0438\u0441\u043A\u0435: {0}.","\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0444\u0430\u0439\u043B\u044B \u0431\u044B\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u043D\u0435\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u044B\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C: {0}.",'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432. {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432. {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044E "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0431\u044B\u043B\u0438 \u0432\u043D\u0435\u0441\u0435\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0432 {1} \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u043B\u0430\u0441\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F','\u0412\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432?',"&&\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 {0}","\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u044D\u0442\u043E\u0442 &&\u0444\u0430\u0439\u043B",'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}", \u0442\u0430\u043A \u043A\u0430\u043A \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F','\u0412\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "{0}"?',"&&\u0414\u0430","\u041D\u0435\u0442",'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044E "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432. {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044E "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432. {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044E "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0431\u044B\u043B\u0438 \u0432\u043D\u0435\u0441\u0435\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 {1}','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0434\u043B\u044F {1} \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F.','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}" \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432, \u0442\u0430\u043A \u043A\u0430\u043A \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u043B\u0430\u0441\u044C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F','\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 "{0}", \u0442\u0430\u043A \u043A\u0430\u043A \u0443\u0436\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0438\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F'],"vs/platform/workspace/common/workspace":["\u0420\u0430\u0431\u043E\u0447\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043A\u043E\u0434\u0430"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ru.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js new file mode 100644 index 0000000..21c02a8 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js @@ -0,0 +1,15 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.zh-cn",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["\u8F93\u5165"],"vs/base/browser/ui/findinput/findInputToggles":["\u533A\u5206\u5927\u5C0F\u5199","\u5168\u5B57\u5339\u914D","\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F"],"vs/base/browser/ui/findinput/replaceInput":["\u8F93\u5165","\u4FDD\u7559\u5927\u5C0F\u5199"],"vs/base/browser/ui/hover/hoverWidget":["\u5728\u8F85\u52A9\u89C6\u56FE\u4E2D\u7528 {0} \u68C0\u67E5\u6B64\u9879\u3002","\u901A\u8FC7\u547D\u4EE4\u201C\u6253\u5F00\u8F85\u52A9\u89C6\u56FE\u201D\u5728\u8F85\u52A9\u89C6\u56FE\u4E2D\u68C0\u67E5\u6B64\u9879\uFF0C\u8BE5\u547D\u4EE4\u5F53\u524D\u65E0\u6CD5\u901A\u8FC7\u952E\u7ED1\u5B9A\u89E6\u53D1\u3002"],"vs/base/browser/ui/iconLabel/iconLabelHover":["\u6B63\u5728\u52A0\u8F7D\u2026"],"vs/base/browser/ui/inputbox/inputBox":["\u9519\u8BEF: {0}","\u8B66\u544A: {0}","\u4FE1\u606F: {0}"," \u6216\u4F7F\u7528 {0} \u4EE5\u67E5\u770B\u5386\u53F2\u8BB0\u5F55"," (\u4F7F\u7528 {0} \u67E5\u770B\u5386\u53F2\u8BB0\u5F55)","\u6E05\u9664\u7684\u8F93\u5165"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["\u672A\u7ED1\u5B9A"],"vs/base/browser/ui/selectBox/selectBoxCustom":["\u9009\u62E9\u6846"],"vs/base/browser/ui/toolbar/toolbar":["\u66F4\u591A\u64CD\u4F5C..."],"vs/base/browser/ui/tree/abstractTree":["\u7B5B\u9009\u5668","\u6A21\u7CCA\u5339\u914D","\u8981\u7B5B\u9009\u7684\u7C7B\u578B","\u8981\u641C\u7D22\u7684\u7C7B\u578B","\u8981\u641C\u7D22\u7684\u7C7B\u578B","\u5173\u95ED","\u672A\u627E\u5230\u5143\u7D20\u3002"],"vs/base/common/actions":["(\u7A7A)"],"vs/base/common/errorMessage":["{0}: {1}","\u53D1\u751F\u4E86\u7CFB\u7EDF\u9519\u8BEF ({0})","\u51FA\u73B0\u672A\u77E5\u9519\u8BEF\u3002\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\u65E5\u5FD7\u3002","\u51FA\u73B0\u672A\u77E5\u9519\u8BEF\u3002\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\u65E5\u5FD7\u3002","{0} \u4E2A(\u5171 {1} \u4E2A\u9519\u8BEF)","\u51FA\u73B0\u672A\u77E5\u9519\u8BEF\u3002\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\u65E5\u5FD7\u3002"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","\u8D85\u952E","Control","Shift","\u9009\u9879","Command","Control","Shift","Alt","Windows","Control","Shift","Alt","\u8D85\u952E"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\u7F16\u8F91\u5668","\u73B0\u5728\u65E0\u6CD5\u8BBF\u95EE\u7F16\u8F91\u5668\u3002","{0} \u82E5\u8981\u542F\u7528\u5C4F\u5E55\u9605\u8BFB\u5668\u4F18\u5316\u6A21\u5F0F\uFF0C\u8BF7\u4F7F\u7528 {1}","{0} \u82E5\u8981\u542F\u7528\u5C4F\u5E55\u9605\u8BFB\u5668\u4F18\u5316\u6A21\u5F0F\uFF0C\u8BF7\u4F7F\u7528 {1} \u6253\u5F00\u5FEB\u901F\u9009\u53D6\uFF0C\u7136\u540E\u8FD0\u884C\u201C\u5207\u6362\u5C4F\u5E55\u9605\u8BFB\u5668\u8F85\u52A9\u529F\u80FD\u6A21\u5F0F\u201D\u547D\u4EE4\uFF1B\u5F53\u524D\u65E0\u6CD5\u901A\u8FC7\u952E\u76D8\u89E6\u53D1\u6B64\u547D\u4EE4\u3002","{0} \u8BF7\u901A\u8FC7\u4F7F\u7528 {1} \u8BBF\u95EE\u952E\u7ED1\u5B9A\u7F16\u8F91\u5668\u5E76\u8FD0\u884C\u5B83\uFF0C\u4E3A\u201C\u5207\u6362\u5C4F\u5E55\u9605\u8BFB\u5668\u8F85\u52A9\u529F\u80FD\u6A21\u5F0F\u201D\u547D\u4EE4\u5206\u914D\u952E\u7ED1\u5B9A\u3002"],"vs/editor/browser/coreCommands":["\u5373\u4F7F\u8F6C\u5230\u8F83\u957F\u7684\u884C\uFF0C\u4E5F\u4E00\u76F4\u5230\u672B\u5C3E","\u5373\u4F7F\u8F6C\u5230\u8F83\u957F\u7684\u884C\uFF0C\u4E5F\u4E00\u76F4\u5230\u672B\u5C3E","\u5DF2\u5220\u9664\u8F85\u52A9\u6E38\u6807"],"vs/editor/browser/editorExtensions":["\u64A4\u6D88(&&U)","\u64A4\u6D88","\u6062\u590D(&&R)","\u6062\u590D","\u5168\u9009(&&S)","\u9009\u62E9\u5168\u90E8"],"vs/editor/browser/widget/codeEditorWidget":["\u5DF2\u5C06\u5149\u6807\u6570\u9650\u5236\u4E3A {0}\u3002\u8BF7\u8003\u8651\u4F7F\u7528 [\u67E5\u627E\u548C\u66FF\u6362](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace)\u8FDB\u884C\u8F83\u5927\u7684\u66F4\u6539\u6216\u589E\u52A0\u7F16\u8F91\u5668\u591A\u5149\u6807\u9650\u5236\u8BBE\u7F6E\u3002","\u589E\u52A0\u591A\u5149\u6807\u9650\u5236"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["\u53EF\u8BBF\u95EE\u5DEE\u5F02\u67E5\u770B\u5668\u4E2D\u201C\u63D2\u5165\u201D\u7684\u56FE\u6807\u3002","\u53EF\u8BBF\u95EE\u5DEE\u5F02\u67E5\u770B\u5668\u4E2D\u201C\u5220\u9664\u201D\u7684\u56FE\u6807\u3002","\u53EF\u8BBF\u95EE\u5DEE\u5F02\u67E5\u770B\u5668\u4E2D\u201C\u5173\u95ED\u201D\u7684\u56FE\u6807\u3002","\u5173\u95ED","\u53EF\u8BBF\u95EE\u7684\u5DEE\u5F02\u67E5\u770B\u5668\u3002\u4F7F\u7528\u5411\u4E0A\u548C\u5411\u4E0B\u7BAD\u5934\u5BFC\u822A\u3002","\u672A\u66F4\u6539\u884C","\u66F4\u6539\u4E86 1 \u884C","\u66F4\u6539\u4E86 {0} \u884C","\u5DEE\u5F02 {0}/ {1}: \u539F\u59CB\u884C {2}\uFF0C{3}\uFF0C\u4FEE\u6539\u540E\u7684\u884C {4}\uFF0C{5}","\u7A7A\u767D","{0} \u672A\u66F4\u6539\u7684\u884C {1}","{0}\u539F\u59CB\u884C{1}\u4FEE\u6539\u7684\u884C{2}","+ {0}\u4FEE\u6539\u7684\u884C{1}","- {0}\u539F\u59CB\u884C{1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" \u4F7F\u7528 {0} \u6253\u5F00\u8F85\u52A9\u529F\u80FD\u5E2E\u52A9\u3002"],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["\u590D\u5236\u5DF2\u5220\u9664\u7684\u884C","\u590D\u5236\u5DF2\u5220\u9664\u7684\u884C","\u590D\u5236\u66F4\u6539\u7684\u884C","\u590D\u5236\u66F4\u6539\u7684\u884C","\u590D\u5236\u5DF2\u5220\u9664\u7684\u884C({0})","\u590D\u5236\u66F4\u6539\u7684\u884C({0})","\u8FD8\u539F\u6B64\u66F4\u6539"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["\u7A7A\u95F4\u53D7\u9650\u65F6\u4F7F\u7528\u5185\u8054\u89C6\u56FE","\u663E\u793A\u79FB\u52A8\u7684\u4EE3\u7801\u5757","\u6253\u5F00\u53EF\u8BBF\u95EE\u5DEE\u5F02\u67E5\u770B\u5668","\u5207\u6362\u6298\u53E0\u672A\u66F4\u6539\u7684\u533A\u57DF","\u5207\u6362\u663E\u793A\u79FB\u52A8\u7684\u4EE3\u7801\u5757","\u5728\u7A7A\u95F4\u53D7\u9650\u65F6\u5207\u6362\u4F7F\u7528\u5185\u8054\u89C6\u56FE","\u5DEE\u5F02\u7F16\u8F91\u5668","\u5207\u6362\u4FA7\u9762","\u9000\u51FA\u6BD4\u8F83\u79FB\u52A8","\u6298\u53E0\u6240\u6709\u672A\u66F4\u6539\u7684\u533A\u57DF","\u663E\u793A\u6240\u6709\u672A\u66F4\u6539\u7684\u533A\u57DF","\u53EF\u8BBF\u95EE\u7684\u5DEE\u5F02\u67E5\u770B\u5668","\u8F6C\u81F3\u4E0B\u4E00\u4E2A\u5DEE\u5F02","\u8F6C\u81F3\u4E0A\u4E00\u4E2A\u5DEE\u5F02"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["\u6298\u53E0\u672A\u66F4\u6539\u7684\u533A\u57DF","\u5355\u51FB\u6216\u62D6\u52A8\u53EF\u5728\u4E0A\u9762\u663E\u793A\u66F4\u591A\u5185\u5BB9","\u663E\u793A\u672A\u66F4\u6539\u7684\u533A\u57DF","\u5355\u51FB\u6216\u62D6\u52A8\u53EF\u5728\u4E0B\u65B9\u663E\u793A\u66F4\u591A\u5185\u5BB9","{0} \u4E2A\u9690\u85CF\u7684\u884C","\u53CC\u51FB\u5C55\u5F00"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["\u4EE3\u7801\u5DF2\u79FB\u52A8\u81F3\u884C {0}-{1}\uFF0C\u6709\u66F4\u6539","\u4EE3\u7801\u5DF2\u4ECE\u884C {0}-{1} \u79FB\u52A8\uFF0C\u6709\u66F4\u6539","\u4EE3\u7801\u5DF2\u79FB\u52A8\u5230\u884C {0} {1}","\u4EE3\u7801\u5DF2\u4ECE\u884C {0}-{1} \u79FB\u52A8"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["\u8FD8\u539F\u6240\u9009\u66F4\u6539","\u8FD8\u539F\u66F4\u6539"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["\u5728\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u79FB\u52A8\u7684\u6587\u672C\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5728\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u79FB\u52A8\u7684\u6587\u672C\u7684\u6D3B\u52A8\u8FB9\u6846\u989C\u8272\u3002","\u672A\u66F4\u6539\u533A\u57DF\u5C0F\u7EC4\u4EF6\u5468\u56F4\u7684\u9634\u5F71\u989C\u8272\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u63D2\u5165\u9879\u7684\u7EBF\u6761\u4FEE\u9970\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u5220\u9664\u9879\u7684\u7EBF\u6761\u4FEE\u9970\u3002"],"vs/editor/browser/widget/hoverWidget/hoverWidget":["\u6309\u4F4F {0} \u952E\u5C06\u9F20\u6807\u60AC\u505C"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["\u5DEE\u5F02\u7F16\u8F91\u5668\u6807\u9898\u7684\u80CC\u666F\u8272","\u591A\u6587\u4EF6\u5DEE\u5F02\u7F16\u8F91\u5668\u7684\u80CC\u666F\u8272","\u591A\u6587\u4EF6\u5DEE\u5F02\u7F16\u8F91\u5668\u7684\u8FB9\u6846\u989C\u8272"],"vs/editor/common/config/editorConfigurationSchema":["\u7F16\u8F91\u5668","\u4E00\u4E2A\u5236\u8868\u7B26\u7B49\u4E8E\u7684\u7A7A\u683C\u6570\u3002\u5F53 {0} \u6253\u5F00\u65F6\uFF0C\u5C06\u6839\u636E\u6587\u4EF6\u5185\u5BB9\u66FF\u4EE3\u6B64\u8BBE\u7F6E\u3002",'\u7528\u4E8E\u7F29\u8FDB\u6216 `"tabSize"` \u7684\u7A7A\u683C\u6570\uFF0C\u53EF\u4F7F\u7528 `#editor.tabSize#` \u4E2D\u7684\u503C\u3002\u5F53 `#editor.detectIndentation#` \u5904\u4E8E\u6253\u5F00\u72B6\u6001\u65F6\uFF0C\u5C06\u6839\u636E\u6587\u4EF6\u5185\u5BB9\u66FF\u4EE3\u6B64\u8BBE\u7F6E\u3002',"\u6309 `Tab` \u65F6\u63D2\u5165\u7A7A\u683C\u3002\u5F53 {0} \u6253\u5F00\u65F6\uFF0C\u5C06\u6839\u636E\u6587\u4EF6\u5185\u5BB9\u66FF\u4EE3\u6B64\u8BBE\u7F6E\u3002","\u63A7\u5236\u5728\u57FA\u4E8E\u6587\u4EF6\u5185\u5BB9\u6253\u5F00\u6587\u4EF6\u65F6\u662F\u5426\u81EA\u52A8\u68C0\u6D4B {0} \u548C {1}\u3002","\u5220\u9664\u81EA\u52A8\u63D2\u5165\u7684\u5C3E\u968F\u7A7A\u767D\u7B26\u53F7\u3002","\u5BF9\u5927\u578B\u6587\u4EF6\u8FDB\u884C\u7279\u6B8A\u5904\u7406\uFF0C\u7981\u7528\u67D0\u4E9B\u5185\u5B58\u5BC6\u96C6\u578B\u529F\u80FD\u3002","\u5173\u95ED\u57FA\u4E8E\u5B57\u8BCD\u7684\u5EFA\u8BAE\u3002","\u4EC5\u5EFA\u8BAE\u6D3B\u52A8\u6587\u6863\u4E2D\u7684\u5B57\u8BCD\u3002","\u5EFA\u8BAE\u4F7F\u7528\u540C\u4E00\u8BED\u8A00\u7684\u6240\u6709\u6253\u5F00\u7684\u6587\u6863\u4E2D\u7684\u5B57\u8BCD\u3002","\u5EFA\u8BAE\u6240\u6709\u6253\u5F00\u7684\u6587\u6863\u4E2D\u7684\u5B57\u8BCD\u3002","\u63A7\u5236\u662F\u5426\u5E94\u6839\u636E\u6587\u6863\u4E2D\u7684\u5B57\u8BCD\u8BA1\u7B97\u8865\u5168\uFF0C\u4EE5\u53CA\u4ECE\u54EA\u4E9B\u6587\u6863\u4E2D\u8BA1\u7B97\u8865\u5168\u3002","\u5BF9\u6240\u6709\u989C\u8272\u4E3B\u9898\u542F\u7528\u8BED\u4E49\u7A81\u51FA\u663E\u793A\u3002","\u5BF9\u6240\u6709\u989C\u8272\u4E3B\u9898\u7981\u7528\u8BED\u4E49\u7A81\u51FA\u663E\u793A\u3002",'\u8BED\u4E49\u7A81\u51FA\u663E\u793A\u662F\u7531\u5F53\u524D\u989C\u8272\u4E3B\u9898\u7684 "semanticHighlighting" \u8BBE\u7F6E\u914D\u7F6E\u7684\u3002',"\u63A7\u5236\u662F\u5426\u4E3A\u652F\u6301\u5B83\u7684\u8BED\u8A00\u663E\u793A\u8BED\u4E49\u7A81\u51FA\u663E\u793A\u3002","\u4FDD\u6301\u901F\u89C8\u7F16\u8F91\u5668\u5904\u4E8E\u6253\u5F00\u72B6\u6001\uFF0C\u5373\u4F7F\u53CC\u51FB\u5176\u4E2D\u7684\u5185\u5BB9\u6216\u8005\u70B9\u51FB `Escape` \u952E\u4E5F\u662F\u5982\u6B64\u3002","\u7531\u4E8E\u6027\u80FD\u539F\u56E0\uFF0C\u8D85\u8FC7\u8FD9\u4E2A\u957F\u5EA6\u7684\u884C\u5C06\u4E0D\u4F1A\u88AB\u6807\u8BB0","\u63A7\u5236\u662F\u5426\u5E94\u5728 Web \u8F85\u52A9\u8FDB\u7A0B\u4E0A\u5F02\u6B65\u8FDB\u884C\u6807\u8BB0\u5316\u3002","\u63A7\u5236\u662F\u5426\u5E94\u8BB0\u5F55\u5F02\u6B65\u8BCD\u6C47\u5207\u5206\u3002\u4EC5\u7528\u4E8E\u8C03\u8BD5\u3002","\u63A7\u5236\u662F\u5426\u5E94\u5BF9\u65E7\u7248\u540E\u53F0\u4EE4\u724C\u5316\u9A8C\u8BC1\u5F02\u6B65\u4EE4\u724C\u5316\u3002\u53EF\u80FD\u4F1A\u51CF\u6162\u4EE4\u724C\u5316\u901F\u5EA6\u3002\u4EC5\u7528\u4E8E\u8C03\u8BD5\u3002","\u5B9A\u4E49\u589E\u52A0\u548C\u51CF\u5C11\u7F29\u8FDB\u7684\u62EC\u53F7\u3002","\u5DE6\u65B9\u62EC\u53F7\u5B57\u7B26\u6216\u5B57\u7B26\u4E32\u5E8F\u5217\u3002","\u53F3\u65B9\u62EC\u53F7\u5B57\u7B26\u6216\u5B57\u7B26\u4E32\u5E8F\u5217\u3002","\u5982\u679C\u542F\u7528\u65B9\u62EC\u53F7\u5BF9\u7740\u8272\uFF0C\u5219\u6309\u7167\u5176\u5D4C\u5957\u7EA7\u522B\u5B9A\u4E49\u5DF2\u7740\u8272\u7684\u65B9\u62EC\u53F7\u5BF9\u3002","\u5DE6\u65B9\u62EC\u53F7\u5B57\u7B26\u6216\u5B57\u7B26\u4E32\u5E8F\u5217\u3002","\u53F3\u65B9\u62EC\u53F7\u5B57\u7B26\u6216\u5B57\u7B26\u4E32\u5E8F\u5217\u3002","\u8D85\u65F6(\u4EE5\u6BEB\u79D2\u4E3A\u5355\u4F4D)\uFF0C\u4E4B\u540E\u5C06\u53D6\u6D88\u5DEE\u5F02\u8BA1\u7B97\u3002\u4F7F\u75280\u8868\u793A\u6CA1\u6709\u8D85\u65F6\u3002","\u8981\u4E3A\u5176\u8BA1\u7B97\u5DEE\u5F02\u7684\u6700\u5927\u6587\u4EF6\u5927\u5C0F(MB)\u3002\u4F7F\u7528 0 \u8868\u793A\u65E0\u9650\u5236\u3002","\u63A7\u5236\u5DEE\u5F02\u7F16\u8F91\u5668\u7684\u663E\u793A\u65B9\u5F0F\u662F\u5E76\u6392\u8FD8\u662F\u5185\u8054\u3002","\u5982\u679C\u5DEE\u5F02\u7F16\u8F91\u5668\u5BBD\u5EA6\u5C0F\u4E8E\u6B64\u503C\uFF0C\u5219\u4F7F\u7528\u5185\u8054\u89C6\u56FE\u3002","\u5982\u679C\u542F\u7528\u5E76\u4E14\u7F16\u8F91\u5668\u5BBD\u5EA6\u592A\u5C0F\uFF0C\u5219\u4F7F\u7528\u5185\u8054\u89C6\u56FE\u3002","\u542F\u7528\u540E\uFF0C\u5DEE\u5F02\u7F16\u8F91\u5668\u4F1A\u5728\u5176\u5B57\u5F62\u8FB9\u8DDD\u4E2D\u663E\u793A\u7BAD\u5934\u4EE5\u8FD8\u539F\u66F4\u6539\u3002","\u542F\u7528\u540E\uFF0C\u5DEE\u5F02\u7F16\u8F91\u5668\u5C06\u5FFD\u7565\u524D\u5BFC\u7A7A\u683C\u6216\u5C3E\u968F\u7A7A\u683C\u4E2D\u7684\u66F4\u6539\u3002","\u63A7\u5236\u5DEE\u5F02\u7F16\u8F91\u5668\u662F\u5426\u4E3A\u6DFB\u52A0/\u5220\u9664\u7684\u66F4\u6539\u663E\u793A +/- \u6307\u793A\u7B26\u53F7\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u663E\u793A CodeLens\u3002","\u6C38\u4E0D\u6362\u884C\u3002","\u5C06\u5728\u89C6\u533A\u5BBD\u5EA6\u5904\u6362\u884C\u3002","\u884C\u5C06\u6839\u636E {0} \u8BBE\u7F6E\u8FDB\u884C\u6362\u884C\u3002","\u4F7F\u7528\u65E7\u5DEE\u5F02\u7B97\u6CD5\u3002","\u4F7F\u7528\u9AD8\u7EA7\u5DEE\u5F02\u7B97\u6CD5\u3002","\u63A7\u5236\u5DEE\u5F02\u7F16\u8F91\u5668\u662F\u5426\u663E\u793A\u672A\u66F4\u6539\u7684\u533A\u57DF\u3002","\u63A7\u5236\u7528\u4E8E\u672A\u66F4\u6539\u533A\u57DF\u7684\u884C\u6570\u3002","\u63A7\u5236\u5C06\u591A\u5C11\u884C\u7528\u4F5C\u672A\u66F4\u6539\u533A\u57DF\u7684\u6700\u5C0F\u503C\u3002","\u63A7\u5236\u5728\u6BD4\u8F83\u672A\u6539\u53D8\u7684\u533A\u57DF\u65F6\u4F7F\u7528\u591A\u5C11\u884C\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u3002","\u63A7\u5236\u5DEE\u5F02\u7F16\u8F91\u5668\u662F\u5426\u5E94\u663E\u793A\u68C0\u6D4B\u5230\u7684\u4EE3\u7801\u79FB\u52A8\u3002","\u63A7\u5236\u5DEE\u5F02\u7F16\u8F91\u5668\u662F\u5426\u663E\u793A\u7A7A\u4FEE\u9970\uFF0C\u4EE5\u67E5\u770B\u63D2\u5165\u6216\u5220\u9664\u5B57\u7B26\u7684\u4F4D\u7F6E\u3002"],"vs/editor/common/config/editorOptions":["\u8FDE\u63A5\u5C4F\u5E55\u9605\u8BFB\u5668\u540E\u4F7F\u7528\u5E73\u53F0 API \u8FDB\u884C\u68C0\u6D4B\u3002","\u9488\u5BF9\u5C4F\u5E55\u9605\u8BFB\u5668\u7684\u4F7F\u7528\u8FDB\u884C\u4F18\u5316\u3002","\u5047\u5B9A\u672A\u8FDE\u63A5\u5C4F\u5E55\u9605\u8BFB\u5668\u3002","\u63A7\u5236 UI \u662F\u5426\u5E94\u5728\u5DF2\u9488\u5BF9\u5C4F\u5E55\u9605\u8BFB\u5668\u8FDB\u884C\u4F18\u5316\u7684\u6A21\u5F0F\u4E0B\u8FD0\u884C\u3002","\u63A7\u5236\u5728\u6CE8\u91CA\u65F6\u662F\u5426\u63D2\u5165\u7A7A\u683C\u5B57\u7B26\u3002","\u63A7\u5236\u5728\u5BF9\u884C\u6CE8\u91CA\u6267\u884C\u5207\u6362\u3001\u6DFB\u52A0\u6216\u5220\u9664\u64CD\u4F5C\u65F6\uFF0C\u662F\u5426\u5E94\u5FFD\u7565\u7A7A\u884C\u3002","\u63A7\u5236\u5728\u6CA1\u6709\u9009\u62E9\u5185\u5BB9\u65F6\u8FDB\u884C\u590D\u5236\u662F\u5426\u590D\u5236\u5F53\u524D\u884C\u3002","\u63A7\u5236\u5728\u952E\u5165\u65F6\u5149\u6807\u662F\u5426\u5E94\u8DF3\u8F6C\u4EE5\u67E5\u627E\u5339\u914D\u9879\u3002","\u5207\u52FF\u4E3A\u7F16\u8F91\u5668\u9009\u62E9\u4E2D\u7684\u641C\u7D22\u5B57\u7B26\u4E32\u8BBE\u5B9A\u79CD\u5B50\u3002","\u59CB\u7EC8\u4E3A\u7F16\u8F91\u5668\u9009\u62E9\u4E2D\u7684\u641C\u7D22\u5B57\u7B26\u4E32\u8BBE\u5B9A\u79CD\u5B50\uFF0C\u5305\u62EC\u5149\u6807\u4F4D\u7F6E\u7684\u5B57\u8BCD\u3002","\u4EC5\u4E3A\u7F16\u8F91\u5668\u9009\u62E9\u4E2D\u7684\u641C\u7D22\u5B57\u7B26\u4E32\u8BBE\u5B9A\u79CD\u5B50\u3002","\u63A7\u5236\u662F\u5426\u5C06\u7F16\u8F91\u5668\u9009\u4E2D\u5185\u5BB9\u4F5C\u4E3A\u641C\u7D22\u8BCD\u586B\u5165\u5230\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u3002","\u4ECE\u4E0D\u81EA\u52A8\u6253\u5F00\u201C\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E\u201D(\u9ED8\u8BA4)\u3002","\u59CB\u7EC8\u81EA\u52A8\u6253\u5F00\u201C\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E\u201D\u3002","\u9009\u62E9\u591A\u884C\u5185\u5BB9\u65F6\uFF0C\u81EA\u52A8\u6253\u5F00\u201C\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E\u201D\u3002","\u63A7\u5236\u81EA\u52A8\u6253\u5F00\u201C\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E\u201D\u7684\u6761\u4EF6\u3002","\u63A7\u5236\u201C\u67E5\u627E\u201D\u5C0F\u7EC4\u4EF6\u662F\u5426\u8BFB\u53D6\u6216\u4FEE\u6539 macOS \u7684\u5171\u4EAB\u67E5\u627E\u526A\u8D34\u677F\u3002",'\u63A7\u5236 "\u67E5\u627E\u5C0F\u90E8\u4EF6" \u662F\u5426\u5E94\u5728\u7F16\u8F91\u5668\u9876\u90E8\u6DFB\u52A0\u989D\u5916\u7684\u884C\u3002\u5982\u679C\u4E3A true, \u5219\u53EF\u4EE5\u5728 "\u67E5\u627E\u5C0F\u5DE5\u5177" \u53EF\u89C1\u65F6\u6EDA\u52A8\u5230\u7B2C\u4E00\u884C\u4E4B\u5916\u3002',"\u63A7\u5236\u5728\u627E\u4E0D\u5230\u5176\u4ED6\u5339\u914D\u9879\u65F6\uFF0C\u662F\u5426\u81EA\u52A8\u4ECE\u5F00\u5934(\u6216\u7ED3\u5C3E)\u91CD\u65B0\u5F00\u59CB\u641C\u7D22\u3002",'\u542F\u7528/\u7981\u7528\u5B57\u4F53\u8FDE\u5B57("calt" \u548C "liga" \u5B57\u4F53\u7279\u6027)\u3002\u5C06\u6B64\u66F4\u6539\u4E3A\u5B57\u7B26\u4E32\uFF0C\u53EF\u5BF9 "font-feature-settings" CSS \u5C5E\u6027\u8FDB\u884C\u7CBE\u7EC6\u63A7\u5236\u3002','\u663E\u5F0F "font-feature-settings" CSS \u5C5E\u6027\u3002\u5982\u679C\u53EA\u9700\u6253\u5F00/\u5173\u95ED\u8FDE\u5B57\uFF0C\u53EF\u4EE5\u6539\u4E3A\u4F20\u9012\u5E03\u5C14\u503C\u3002','\u914D\u7F6E\u5B57\u4F53\u8FDE\u5B57\u6216\u5B57\u4F53\u7279\u6027\u3002\u53EF\u4EE5\u662F\u7528\u4E8E\u542F\u7528/\u7981\u7528\u8FDE\u5B57\u7684\u5E03\u5C14\u503C\uFF0C\u6216\u7528\u4E8E\u8BBE\u7F6E CSS "font-feature-settings" \u5C5E\u6027\u503C\u7684\u5B57\u7B26\u4E32\u3002',"\u542F\u7528/\u7981\u7528\u4ECE font-weight \u5230 font-variation-settings \u7684\u8F6C\u6362\u3002\u5C06\u6B64\u9879\u66F4\u6539\u4E3A\u5B57\u7B26\u4E32\uFF0C\u4EE5\u4FBF\u5BF9\u201Cfont-variation-settings\u201DCSS \u5C5E\u6027\u8FDB\u884C\u7EC6\u5316\u63A7\u5236\u3002","\u663E\u5F0F\u201Cfont-variation-settings\u201DCSS \u5C5E\u6027\u3002\u5982\u679C\u53EA\u9700\u5C06 font-weight \u8F6C\u6362\u4E3A font-variation-settings\uFF0C\u5219\u53EF\u4EE5\u6539\u4E3A\u4F20\u9012\u5E03\u5C14\u503C\u3002","\u914D\u7F6E\u5B57\u4F53\u53D8\u4F53\u3002\u53EF\u4EE5\u662F\u7528\u4E8E\u542F\u7528/\u7981\u7528\u4ECE font-weight \u5230 font-variation-settings \u7684\u8F6C\u6362\u7684\u5E03\u5C14\u503C\uFF0C\u4E5F\u53EF\u4EE5\u662F CSS\u201Cfont-variation-settings\u201D\u5C5E\u6027\u503C\u7684\u5B57\u7B26\u4E32\u3002","\u63A7\u5236\u5B57\u4F53\u5927\u5C0F(\u50CF\u7D20)\u3002","\u4EC5\u5141\u8BB8\u4F7F\u7528\u5173\u952E\u5B57\u201C\u6B63\u5E38\u201D\u548C\u201C\u52A0\u7C97\u201D\uFF0C\u6216\u4F7F\u7528\u4ECB\u4E8E 1 \u81F3 1000 \u4E4B\u95F4\u7684\u6570\u5B57\u3002","\u63A7\u5236\u5B57\u4F53\u7C97\u7EC6\u3002\u63A5\u53D7\u5173\u952E\u5B57\u201C\u6B63\u5E38\u201D\u548C\u201C\u52A0\u7C97\u201D\uFF0C\u6216\u8005\u63A5\u53D7\u4ECB\u4E8E 1 \u81F3 1000 \u4E4B\u95F4\u7684\u6570\u5B57\u3002","\u663E\u793A\u7ED3\u679C\u7684\u901F\u89C8\u89C6\u56FE(\u9ED8\u8BA4)","\u8F6C\u5230\u4E3B\u7ED3\u679C\u5E76\u663E\u793A\u901F\u89C8\u89C6\u56FE","\u8F6C\u5230\u4E3B\u7ED3\u679C\uFF0C\u5E76\u5BF9\u5176\u4ED6\u7ED3\u679C\u542F\u7528\u65E0\u901F\u89C8\u5BFC\u822A",'\u6B64\u8BBE\u7F6E\u5DF2\u5F03\u7528\uFF0C\u8BF7\u6539\u7528\u5355\u72EC\u7684\u8BBE\u7F6E\uFF0C\u5982"editor.editor.gotoLocation.multipleDefinitions"\u6216"editor.editor.gotoLocation.multipleImplementations"\u3002','\u63A7\u5236\u5B58\u5728\u591A\u4E2A\u76EE\u6807\u4F4D\u7F6E\u65F6"\u8F6C\u5230\u5B9A\u4E49"\u547D\u4EE4\u7684\u884C\u4E3A\u3002','\u63A7\u5236\u5B58\u5728\u591A\u4E2A\u76EE\u6807\u4F4D\u7F6E\u65F6"\u8F6C\u5230\u7C7B\u578B\u5B9A\u4E49"\u547D\u4EE4\u7684\u884C\u4E3A\u3002','\u63A7\u5236\u5B58\u5728\u591A\u4E2A\u76EE\u6807\u4F4D\u7F6E\u65F6"\u8F6C\u5230\u58F0\u660E"\u547D\u4EE4\u7684\u884C\u4E3A\u3002','\u63A7\u5236\u5B58\u5728\u591A\u4E2A\u76EE\u6807\u4F4D\u7F6E\u65F6"\u8F6C\u5230\u5B9E\u73B0"\u547D\u4EE4\u7684\u884C\u4E3A\u3002','\u63A7\u5236\u5B58\u5728\u591A\u4E2A\u76EE\u6807\u4F4D\u7F6E\u65F6"\u8F6C\u5230\u5F15\u7528"\u547D\u4EE4\u7684\u884C\u4E3A\u3002','\u5F53"\u8F6C\u5230\u5B9A\u4E49"\u7684\u7ED3\u679C\u4E3A\u5F53\u524D\u4F4D\u7F6E\u65F6\u5C06\u8981\u6267\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u7684 ID\u3002','\u5F53"\u8F6C\u5230\u7C7B\u578B\u5B9A\u4E49"\u7684\u7ED3\u679C\u662F\u5F53\u524D\u4F4D\u7F6E\u65F6\u6B63\u5728\u6267\u884C\u7684\u5907\u7528\u547D\u4EE4 ID\u3002','\u5F53"\u8F6C\u5230\u58F0\u660E"\u7684\u7ED3\u679C\u4E3A\u5F53\u524D\u4F4D\u7F6E\u65F6\u5C06\u8981\u6267\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u7684 ID\u3002','\u5F53"\u8F6C\u5230\u5B9E\u73B0"\u7684\u7ED3\u679C\u4E3A\u5F53\u524D\u4F4D\u7F6E\u65F6\u5C06\u8981\u6267\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u7684 ID\u3002','\u5F53"\u8F6C\u5230\u5F15\u7528"\u7684\u7ED3\u679C\u662F\u5F53\u524D\u4F4D\u7F6E\u65F6\u6B63\u5728\u6267\u884C\u7684\u66FF\u4EE3\u547D\u4EE4 ID\u3002',"\u63A7\u5236\u662F\u5426\u663E\u793A\u60AC\u505C\u63D0\u793A\u3002","\u63A7\u5236\u663E\u793A\u60AC\u505C\u63D0\u793A\u524D\u7684\u7B49\u5F85\u65F6\u95F4 (\u6BEB\u79D2)\u3002","\u63A7\u5236\u5F53\u9F20\u6807\u79FB\u52A8\u5230\u60AC\u505C\u63D0\u793A\u4E0A\u65F6\uFF0C\u5176\u662F\u5426\u4FDD\u6301\u53EF\u89C1\u3002","\u63A7\u5236\u9690\u85CF\u60AC\u505C\u63D0\u793A\u524D\u7684\u7B49\u5F85\u65F6\u95F4(\u6BEB\u79D2)\u3002\u9700\u8981\u542F\u7528\u201Ceditor.hover.sticky\u201D\u3002","\u5982\u679C\u6709\u7A7A\u95F4\uFF0C\u9996\u9009\u5728\u7EBF\u6761\u4E0A\u65B9\u663E\u793A\u60AC\u505C\u3002","\u5047\u5B9A\u6240\u6709\u5B57\u7B26\u7684\u5BBD\u5EA6\u76F8\u540C\u3002\u8FD9\u662F\u4E00\u79CD\u5FEB\u901F\u7B97\u6CD5\uFF0C\u9002\u7528\u4E8E\u7B49\u5BBD\u5B57\u4F53\u548C\u67D0\u4E9B\u5B57\u5F62\u5BBD\u5EA6\u76F8\u7B49\u7684\u6587\u5B57(\u5982\u62C9\u4E01\u5B57\u7B26)\u3002","\u5C06\u5305\u88C5\u70B9\u8BA1\u7B97\u59D4\u6258\u7ED9\u6D4F\u89C8\u5668\u3002\u8FD9\u662F\u4E00\u4E2A\u7F13\u6162\u7B97\u6CD5\uFF0C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u5927\u578B\u6587\u4EF6\u88AB\u51BB\u7ED3\uFF0C\u4F46\u5B83\u5728\u6240\u6709\u60C5\u51B5\u4E0B\u90FD\u6B63\u5E38\u5DE5\u4F5C\u3002","\u63A7\u5236\u8BA1\u7B97\u5305\u88C5\u70B9\u7684\u7B97\u6CD5\u3002\u8BF7\u6CE8\u610F\uFF0C\u5728\u8F85\u52A9\u529F\u80FD\u6A21\u5F0F\u4E0B\uFF0C\u9AD8\u7EA7\u7248\u5C06\u7528\u4E8E\u63D0\u4F9B\u6700\u4F73\u4F53\u9A8C\u3002","\u7981\u7528\u4EE3\u7801\u64CD\u4F5C\u83DC\u5355\u3002","\u5F53\u5149\u6807\u4E0E\u4EE3\u7801\u4E00\u8D77\u6392\u5217\u65F6\uFF0C\u663E\u793A\u4EE3\u7801\u64CD\u4F5C\u83DC\u5355\u3002","\u5F53\u5149\u6807\u4E0E\u4EE3\u7801\u4E00\u8D77\u6392\u5217\u6216\u5728\u7A7A\u7684\u884C\u65F6\uFF0C\u663E\u793A\u4EE3\u7801\u64CD\u4F5C\u83DC\u5355\u3002","\u5728\u7F16\u8F91\u5668\u4E2D\u542F\u7528\u4EE3\u7801\u64CD\u4F5C\u5C0F\u706F\u6CE1\u63D0\u793A\u3002","\u5728\u7F16\u8F91\u5668\u9876\u90E8\u7684\u6EDA\u52A8\u8FC7\u7A0B\u4E2D\u663E\u793A\u5D4C\u5957\u7684\u5F53\u524D\u4F5C\u7528\u57DF\u3002","\u5B9A\u4E49\u8981\u663E\u793A\u7684\u6700\u5927\u7C98\u6EDE\u884C\u6570\u3002","\u5B9A\u4E49\u7528\u4E8E\u786E\u5B9A\u8981\u7C98\u8D34\u7684\u884C\u7684\u6A21\u578B\u3002\u5982\u679C\u5927\u7EB2\u6A21\u578B\u4E0D\u5B58\u5728\uFF0C\u5B83\u5C06\u56DE\u9000\u5230\u56DE\u9000\u5230\u7F29\u8FDB\u6A21\u578B\u7684\u6298\u53E0\u63D0\u4F9B\u7A0B\u5E8F\u6A21\u578B\u4E0A\u3002\u5728\u6240\u6709\u4E09\u79CD\u60C5\u51B5\u4E0B\u90FD\u9075\u5FAA\u6B64\u987A\u5E8F\u3002","\u4F7F\u7528\u7F16\u8F91\u5668\u7684\u6C34\u5E73\u6EDA\u52A8\u6761\u542F\u7528\u7C98\u6EDE\u6EDA\u52A8\u3002","\u5728\u7F16\u8F91\u5668\u4E2D\u542F\u7528\u5185\u8054\u63D0\u793A\u3002","\u5DF2\u542F\u7528\u5185\u5D4C\u63D0\u793A","\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u663E\u793A\u5185\u5D4C\u63D0\u793A\uFF0C\u5E76\u5728\u6309\u4F4F {0} \u65F6\u9690\u85CF","\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u9690\u85CF\u5185\u5D4C\u63D0\u793A\uFF0C\u5E76\u5728\u6309\u4F4F {0} \u65F6\u663E\u793A","\u5DF2\u7981\u7528\u5185\u5D4C\u63D0\u793A","\u63A7\u5236\u7F16\u8F91\u5668\u4E2D\u5D4C\u5165\u63D0\u793A\u7684\u5B57\u53F7\u3002\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u5F53\u914D\u7F6E\u7684\u503C\u5C0F\u4E8E {1} \u6216\u5927\u4E8E\u7F16\u8F91\u5668\u5B57\u53F7\u65F6\uFF0C\u5C06\u4F7F\u7528 {0}\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u4E2D\u5D4C\u5165\u63D0\u793A\u7684\u5B57\u4F53\u7CFB\u5217\u3002\u8BBE\u7F6E\u4E3A\u7A7A\u65F6\uFF0C\u5C06\u4F7F\u7528 {0}\u3002","\u5728\u7F16\u8F91\u5668\u4E2D\u542F\u7528\u53E0\u52A0\u63D0\u793A\u5468\u56F4\u7684\u586B\u5145\u3002",`\u63A7\u5236\u884C\u9AD8\u3002\r + - \u4F7F\u7528 0 \u6839\u636E\u5B57\u53F7\u81EA\u52A8\u8BA1\u7B97\u884C\u9AD8\u3002\r + - \u4ECB\u4E8E 0 \u548C 8 \u4E4B\u95F4\u7684\u503C\u5C06\u7528\u4F5C\u5B57\u53F7\u7684\u4E58\u6570\u3002\r + - \u5927\u4E8E\u6216\u7B49\u4E8E 8 \u7684\u503C\u5C06\u7528\u4F5C\u6709\u6548\u503C\u3002`,"\u63A7\u5236\u662F\u5426\u663E\u793A\u7F29\u7565\u56FE\u3002","\u63A7\u5236\u662F\u5426\u81EA\u52A8\u9690\u85CF\u7F29\u7565\u56FE\u3002","\u8FF7\u4F60\u5730\u56FE\u7684\u5927\u5C0F\u4E0E\u7F16\u8F91\u5668\u5185\u5BB9\u76F8\u540C(\u5E76\u4E14\u53EF\u80FD\u6EDA\u52A8)\u3002","\u8FF7\u4F60\u5730\u56FE\u5C06\u6839\u636E\u9700\u8981\u62C9\u4F38\u6216\u7F29\u5C0F\u4EE5\u586B\u5145\u7F16\u8F91\u5668\u7684\u9AD8\u5EA6(\u4E0D\u6EDA\u52A8)\u3002","\u8FF7\u4F60\u5730\u56FE\u5C06\u6839\u636E\u9700\u8981\u7F29\u5C0F\uFF0C\u6C38\u8FDC\u4E0D\u4F1A\u5927\u4E8E\u7F16\u8F91\u5668(\u4E0D\u6EDA\u52A8)\u3002","\u63A7\u5236\u8FF7\u4F60\u5730\u56FE\u7684\u5927\u5C0F\u3002","\u63A7\u5236\u5728\u54EA\u4E00\u4FA7\u663E\u793A\u7F29\u7565\u56FE\u3002","\u63A7\u5236\u4F55\u65F6\u663E\u793A\u8FF7\u4F60\u5730\u56FE\u6ED1\u5757\u3002","\u5728\u8FF7\u4F60\u5730\u56FE\u4E2D\u7ED8\u5236\u7684\u5185\u5BB9\u6BD4\u4F8B: 1\u30012 \u6216 3\u3002","\u6E32\u67D3\u6BCF\u884C\u7684\u5B9E\u9645\u5B57\u7B26\uFF0C\u800C\u4E0D\u662F\u8272\u5757\u3002","\u9650\u5236\u7F29\u7565\u56FE\u7684\u5BBD\u5EA6\uFF0C\u63A7\u5236\u5176\u6700\u591A\u663E\u793A\u7684\u5217\u6570\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u7684\u9876\u8FB9\u548C\u7B2C\u4E00\u884C\u4E4B\u95F4\u7684\u95F4\u8DDD\u91CF\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u7684\u5E95\u8FB9\u548C\u6700\u540E\u4E00\u884C\u4E4B\u95F4\u7684\u95F4\u8DDD\u91CF\u3002","\u5728\u8F93\u5165\u65F6\u663E\u793A\u542B\u6709\u53C2\u6570\u6587\u6863\u548C\u7C7B\u578B\u4FE1\u606F\u7684\u5C0F\u9762\u677F\u3002","\u63A7\u5236\u53C2\u6570\u63D0\u793A\u83DC\u5355\u5728\u5230\u8FBE\u5217\u8868\u672B\u5C3E\u65F6\u8FDB\u884C\u5FAA\u73AF\u8FD8\u662F\u5173\u95ED\u3002","\u5FEB\u901F\u5EFA\u8BAE\u663E\u793A\u5728\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u5185","\u5FEB\u901F\u5EFA\u8BAE\u663E\u793A\u4E3A\u865A\u5F71\u6587\u672C","\u5DF2\u7981\u7528\u5FEB\u901F\u5EFA\u8BAE","\u5728\u5B57\u7B26\u4E32\u5185\u542F\u7528\u5FEB\u901F\u5EFA\u8BAE\u3002","\u5728\u6CE8\u91CA\u5185\u542F\u7528\u5FEB\u901F\u5EFA\u8BAE\u3002","\u5728\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\u5916\u542F\u7528\u5FEB\u901F\u5EFA\u8BAE\u3002","\u63A7\u5236\u952E\u5165\u65F6\u662F\u5426\u5E94\u81EA\u52A8\u663E\u793A\u5EFA\u8BAE\u3002\u8FD9\u53EF\u4EE5\u7528\u4E8E\u5728\u6CE8\u91CA\u3001\u5B57\u7B26\u4E32\u548C\u5176\u4ED6\u4EE3\u7801\u4E2D\u952E\u5165\u65F6\u8FDB\u884C\u63A7\u5236\u3002\u53EF\u914D\u7F6E\u5FEB\u901F\u5EFA\u8BAE\u4EE5\u663E\u793A\u4E3A\u865A\u5F71\u6587\u672C\u6216\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u3002\u53E6\u8BF7\u6CE8\u610F\u63A7\u5236\u5EFA\u8BAE\u662F\u5426\u7531\u7279\u6B8A\u5B57\u7B26\u89E6\u53D1\u7684\u201C{0}\u201D\u8BBE\u7F6E\u3002","\u4E0D\u663E\u793A\u884C\u53F7\u3002","\u5C06\u884C\u53F7\u663E\u793A\u4E3A\u7EDD\u5BF9\u884C\u6570\u3002","\u5C06\u884C\u53F7\u663E\u793A\u4E3A\u4E0E\u5149\u6807\u76F8\u9694\u7684\u884C\u6570\u3002","\u6BCF 10 \u884C\u663E\u793A\u4E00\u6B21\u884C\u53F7\u3002","\u63A7\u5236\u884C\u53F7\u7684\u663E\u793A\u3002","\u6B64\u7F16\u8F91\u5668\u6807\u5C3A\u5C06\u6E32\u67D3\u7684\u7B49\u5BBD\u5B57\u7B26\u6570\u3002","\u6B64\u7F16\u8F91\u5668\u6807\u5C3A\u7684\u989C\u8272\u3002","\u5728\u4E00\u5B9A\u6570\u91CF\u7684\u7B49\u5BBD\u5B57\u7B26\u540E\u663E\u793A\u5782\u76F4\u6807\u5C3A\u3002\u8F93\u5165\u591A\u4E2A\u503C\uFF0C\u663E\u793A\u591A\u4E2A\u6807\u5C3A\u3002\u82E5\u6570\u7EC4\u4E3A\u7A7A\uFF0C\u5219\u4E0D\u7ED8\u5236\u6807\u5C3A\u3002","\u5782\u76F4\u6EDA\u52A8\u6761\u4EC5\u5728\u5FC5\u8981\u65F6\u53EF\u89C1\u3002","\u5782\u76F4\u6EDA\u52A8\u6761\u5C06\u59CB\u7EC8\u53EF\u89C1\u3002","\u5782\u76F4\u6EDA\u52A8\u6761\u5C06\u59CB\u7EC8\u9690\u85CF\u3002","\u63A7\u5236\u5782\u76F4\u6EDA\u52A8\u6761\u7684\u53EF\u89C1\u6027\u3002","\u6C34\u5E73\u6EDA\u52A8\u6761\u4EC5\u5728\u5FC5\u8981\u65F6\u53EF\u89C1\u3002","\u6C34\u5E73\u6EDA\u52A8\u6761\u5C06\u59CB\u7EC8\u53EF\u89C1\u3002","\u6C34\u5E73\u6EDA\u52A8\u6761\u5C06\u59CB\u7EC8\u9690\u85CF\u3002","\u63A7\u5236\u6C34\u5E73\u6EDA\u52A8\u6761\u7684\u53EF\u89C1\u6027\u3002","\u5782\u76F4\u6EDA\u52A8\u6761\u7684\u5BBD\u5EA6\u3002","\u6C34\u5E73\u6EDA\u52A8\u6761\u7684\u9AD8\u5EA6\u3002","\u63A7\u5236\u5355\u51FB\u6309\u9875\u6EDA\u52A8\u8FD8\u662F\u8DF3\u8F6C\u5230\u5355\u51FB\u4F4D\u7F6E\u3002","\u8BBE\u7F6E\u540E\uFF0C\u6C34\u5E73\u6EDA\u52A8\u6761\u5C06\u4E0D\u4F1A\u589E\u52A0\u7F16\u8F91\u5668\u5185\u5BB9\u7684\u5927\u5C0F\u3002","\u63A7\u5236\u662F\u5426\u7A81\u51FA\u663E\u793A\u6240\u6709\u975E\u57FA\u672C ASCII \u5B57\u7B26\u3002\u53EA\u6709\u4ECB\u4E8E U+0020 \u5230 U+007E \u4E4B\u95F4\u7684\u5B57\u7B26\u3001\u5236\u8868\u7B26\u3001\u6362\u884C\u7B26\u548C\u56DE\u8F66\u7B26\u624D\u88AB\u89C6\u4E3A\u57FA\u672C ASCII\u3002","\u63A7\u5236\u662F\u5426\u7A81\u51FA\u663E\u793A\u4EC5\u4FDD\u7559\u7A7A\u683C\u6216\u5B8C\u5168\u6CA1\u6709\u5BBD\u5EA6\u7684\u5B57\u7B26\u3002","\u63A7\u5236\u662F\u5426\u7A81\u51FA\u663E\u793A\u53EF\u80FD\u4E0E\u57FA\u672C ASCII \u5B57\u7B26\u6DF7\u6DC6\u7684\u5B57\u7B26\uFF0C\u4F46\u5F53\u524D\u7528\u6237\u533A\u57DF\u8BBE\u7F6E\u4E2D\u5E38\u89C1\u7684\u5B57\u7B26\u9664\u5916\u3002","\u63A7\u5236\u6CE8\u91CA\u4E2D\u7684\u5B57\u7B26\u662F\u5426\u4E5F\u5E94\u8FDB\u884C Unicode \u7A81\u51FA\u663E\u793A\u3002","\u63A7\u5236\u5B57\u7B26\u4E32\u4E2D\u7684\u5B57\u7B26\u662F\u5426\u4E5F\u5E94\u8FDB\u884C Unicode \u7A81\u51FA\u663E\u793A\u3002","\u5B9A\u4E49\u672A\u7A81\u51FA\u663E\u793A\u7684\u5141\u8BB8\u5B57\u7B26\u3002","\u672A\u7A81\u51FA\u663E\u793A\u5728\u5141\u8BB8\u533A\u57DF\u8BBE\u7F6E\u4E2D\u5E38\u89C1\u7684 Unicode \u5B57\u7B26\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u81EA\u52A8\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u3002","\u6BCF\u5F53\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u65F6\uFF0C\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u5DE5\u5177\u680F\u3002","\u5C06\u9F20\u6807\u60AC\u505C\u5728\u5185\u8054\u5EFA\u8BAE\u4E0A\u65F6\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u5DE5\u5177\u680F\u3002","\u4ECE\u4E0D\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u5DE5\u5177\u680F\u3002","\u63A7\u5236\u4F55\u65F6\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u5DE5\u5177\u680F\u3002","\u63A7\u5236\u5185\u8054\u5EFA\u8BAE\u5982\u4F55\u4E0E\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4EA4\u4E92\u3002\u5982\u679C\u542F\u7528\uFF0C\u5F53\u5185\u8054\u5EFA\u8BAE\u53EF\u7528\u65F6\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u663E\u793A\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u3002","\u63A7\u5236\u5185\u8054\u5EFA\u8BAE\u7684\u5B57\u4F53\u7CFB\u5217\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u663E\u793A\u5185\u8054\u7F16\u8F91\u3002","\u6BCF\u5F53\u663E\u793A\u5185\u8054\u5EFA\u8BAE\u65F6\uFF0C\u663E\u793A\u5185\u8054\u7F16\u8F91\u5DE5\u5177\u680F\u3002","\u5C06\u9F20\u6807\u60AC\u505C\u5728\u5185\u8054\u5EFA\u8BAE\u4E0A\u65F6\u663E\u793A\u5185\u8054\u7F16\u8F91\u5DE5\u5177\u680F\u3002","\u5207\u52FF\u663E\u793A\u5185\u8054\u7F16\u8F91\u5DE5\u5177\u680F\u3002","\u63A7\u5236\u4F55\u65F6\u663E\u793A\u5185\u8054\u7F16\u8F91\u5DE5\u5177\u680F\u3002","\u63A7\u5236\u5185\u8054\u7F16\u8F91\u7684\u5B57\u4F53\u7CFB\u5217\u3002","\u63A7\u5236\u662F\u5426\u4E3A\u5185\u8054\u7F16\u8F91\u7684\u80CC\u666F\u7740\u8272\u3002","\u63A7\u5236\u662F\u5426\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002\u8BF7\u4F7F\u7528 {0} \u91CD\u5199\u62EC\u53F7\u7A81\u51FA\u663E\u793A\u989C\u8272\u3002","\u63A7\u5236\u6BCF\u4E2A\u65B9\u62EC\u53F7\u7C7B\u578B\u662F\u5426\u5177\u6709\u81EA\u5DF1\u7684\u72EC\u7ACB\u989C\u8272\u6C60\u3002","\u542F\u7528\u62EC\u53F7\u5BF9\u53C2\u8003\u7EBF\u3002","\u4EC5\u4E3A\u6D3B\u52A8\u62EC\u53F7\u5BF9\u542F\u7528\u62EC\u53F7\u5BF9\u53C2\u8003\u7EBF\u3002","\u7981\u7528\u62EC\u53F7\u5BF9\u53C2\u8003\u7EBF\u3002","\u63A7\u5236\u662F\u5426\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u542F\u7528\u6C34\u5E73\u53C2\u8003\u7EBF\u4F5C\u4E3A\u5782\u76F4\u62EC\u53F7\u5BF9\u53C2\u8003\u7EBF\u7684\u6DFB\u52A0\u9879\u3002","\u4EC5\u4E3A\u6D3B\u52A8\u62EC\u53F7\u5BF9\u542F\u7528\u6C34\u5E73\u53C2\u8003\u7EBF\u3002","\u7981\u7528\u6C34\u5E73\u62EC\u53F7\u5BF9\u53C2\u8003\u7EBF\u3002","\u63A7\u5236\u662F\u5426\u542F\u7528\u6C34\u5E73\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u7A81\u51FA\u663E\u793A\u6D3B\u52A8\u7684\u62EC\u53F7\u5BF9\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u663E\u793A\u7F29\u8FDB\u53C2\u8003\u7EBF\u3002","\u7A81\u51FA\u663E\u793A\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF\u3002","\u7A81\u51FA\u663E\u793A\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF\uFF0C\u5373\u4F7F\u7A81\u51FA\u663E\u793A\u4E86\u62EC\u53F7\u53C2\u8003\u7EBF\u3002","\u4E0D\u8981\u7A81\u51FA\u663E\u793A\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF\u3002","\u63A7\u5236\u662F\u5426\u7A81\u51FA\u663E\u793A\u7F16\u8F91\u5668\u4E2D\u6D3B\u52A8\u7684\u7F29\u8FDB\u53C2\u8003\u7EBF\u3002","\u63D2\u5165\u5EFA\u8BAE\u800C\u4E0D\u8986\u76D6\u5149\u6807\u53F3\u4FA7\u7684\u6587\u672C\u3002","\u63D2\u5165\u5EFA\u8BAE\u5E76\u8986\u76D6\u5149\u6807\u53F3\u4FA7\u7684\u6587\u672C\u3002","\u63A7\u5236\u63A5\u53D7\u8865\u5168\u65F6\u662F\u5426\u8986\u76D6\u5355\u8BCD\u3002\u8BF7\u6CE8\u610F\uFF0C\u8FD9\u53D6\u51B3\u4E8E\u6269\u5C55\u9009\u62E9\u4F7F\u7528\u6B64\u529F\u80FD\u3002","\u63A7\u5236\u5BF9\u5EFA\u8BAE\u7684\u7B5B\u9009\u548C\u6392\u5E8F\u662F\u5426\u8003\u8651\u5C0F\u7684\u62FC\u5199\u9519\u8BEF\u3002","\u63A7\u5236\u6392\u5E8F\u65F6\u662F\u5426\u9996\u9009\u5149\u6807\u9644\u8FD1\u7684\u5B57\u8BCD\u3002","\u63A7\u5236\u662F\u5426\u5728\u591A\u4E2A\u5DE5\u4F5C\u533A\u548C\u7A97\u53E3\u95F4\u5171\u4EAB\u8BB0\u5FC6\u7684\u5EFA\u8BAE\u9009\u9879(\u9700\u8981 `#editor.suggestSelection#`)\u3002","\u81EA\u52A8\u89E6\u53D1 IntelliSense \u65F6\u59CB\u7EC8\u9009\u62E9\u5EFA\u8BAE\u3002","\u81EA\u52A8\u89E6\u53D1 IntelliSense \u65F6\uFF0C\u5207\u52FF\u9009\u62E9\u5EFA\u8BAE\u3002","\u4EC5\u5F53\u4ECE\u89E6\u53D1\u5668\u5B57\u7B26\u89E6\u53D1 IntelliSense \u65F6\uFF0C\u624D\u9009\u62E9\u5EFA\u8BAE\u3002","\u4EC5\u5728\u952E\u5165\u65F6\u89E6\u53D1 IntelliSense \u65F6\u624D\u9009\u62E9\u5EFA\u8BAE\u3002","\u63A7\u5236\u5728\u663E\u793A\u5C0F\u7EC4\u4EF6\u65F6\u662F\u5426\u9009\u62E9\u5EFA\u8BAE\u3002\u8BF7\u6CE8\u610F\uFF0C\u8FD9\u4EC5\u9002\u7528\u4E8E(\u201C#editor.quickSuggestions#\u201D\u548C\u201C#editor.suggestOnTriggerCharacters#\u201D)\u81EA\u52A8\u89E6\u53D1\u7684\u5EFA\u8BAE\uFF0C\u5E76\u4E14\u59CB\u7EC8\u5728\u663E\u5F0F\u8C03\u7528\u65F6\u9009\u62E9\u5EFA\u8BAE\uFF0C\u4F8B\u5982\u901A\u8FC7\u201CCtrl+Space\u201D\u3002","\u63A7\u5236\u6D3B\u52A8\u4EE3\u7801\u6BB5\u662F\u5426\u963B\u6B62\u5FEB\u901F\u5EFA\u8BAE\u3002","\u63A7\u5236\u662F\u5426\u5728\u5EFA\u8BAE\u4E2D\u663E\u793A\u6216\u9690\u85CF\u56FE\u6807\u3002","\u63A7\u5236\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u5E95\u90E8\u7684\u72B6\u6001\u680F\u7684\u53EF\u89C1\u6027\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u9884\u89C8\u5EFA\u8BAE\u7ED3\u679C\u3002","\u63A7\u5236\u5EFA\u8BAE\u8BE6\u7EC6\u4FE1\u606F\u662F\u968F\u6807\u7B7E\u5185\u8054\u663E\u793A\u8FD8\u662F\u4EC5\u663E\u793A\u5728\u8BE6\u7EC6\u4FE1\u606F\u5C0F\u7EC4\u4EF6\u4E2D\u3002","\u6B64\u8BBE\u7F6E\u5DF2\u5F03\u7528\u3002\u73B0\u5728\u53EF\u4EE5\u8C03\u6574\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u5927\u5C0F\u3002",'\u6B64\u8BBE\u7F6E\u5DF2\u5F03\u7528\uFF0C\u8BF7\u6539\u7528\u5355\u72EC\u7684\u8BBE\u7F6E\uFF0C\u5982"editor.suggest.showKeywords"\u6216"editor.suggest.showSnippets"\u3002',"\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u65B9\u6CD5\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u51FD\u6570\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u6784\u9020\u51FD\u6570\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A`\u5DF2\u5F03\u7528`\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u7B5B\u9009\u8981\u6C42\u7B2C\u4E00\u4E2A\u5B57\u7B26\u5728\u5355\u8BCD\u5F00\u5934\u5339\u914D\uFF0C\u4F8B\u5982 \u201CConsole\u201D \u6216 \u201CWebContext\u201D \u4E0A\u7684 \u201Cc\u201D\uFF0C\u4F46 \u201Cdescription\u201D \u4E0A\u7684 _not_\u3002\u7981\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u66F4\u591A\u7ED3\u679C\uFF0C\u4F46\u4ECD\u6309\u5339\u914D\u8D28\u91CF\u5BF9\u5176\u8FDB\u884C\u6392\u5E8F\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u5B57\u6BB5\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u53D8\u91CF\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u7C7B\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u7ED3\u6784\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u63A5\u53E3\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u6A21\u5757\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u5C5E\u6027\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u4E8B\u4EF6\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u64CD\u4F5C\u7B26\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u5355\u4F4D\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u503C\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u5E38\u91CF\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u679A\u4E3E\u201D\u5EFA\u8BAE\u3002",'\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A "enumMember" \u5EFA\u8BAE\u3002',"\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u5173\u952E\u5B57\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u6587\u672C\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u989C\u8272\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u6587\u4EF6\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u53C2\u8003\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u81EA\u5B9A\u4E49\u989C\u8272\u201D\u5EFA\u8BAE\u3002","\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u6587\u4EF6\u5939\u201D\u5EFA\u8BAE\u3002",'\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A "typeParameter" \u5EFA\u8BAE\u3002',"\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A\u201C\u7247\u6BB5\u201D\u5EFA\u8BAE\u3002",'\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A"\u7528\u6237"\u5EFA\u8BAE\u3002','\u542F\u7528\u540E\uFF0CIntelliSense \u5C06\u663E\u793A"\u95EE\u9898"\u5EFA\u8BAE\u3002',"\u662F\u5426\u5E94\u59CB\u7EC8\u9009\u62E9\u524D\u5BFC\u548C\u5C3E\u968F\u7A7A\u683C\u3002","\u662F\u5426\u5E94\u9009\u62E9\u5B50\u5B57(\u5982\u201CfooBar\u201D\u6216\u201Cfoo_bar\u201D\u4E2D\u7684\u201Cfoo\u201D)\u3002","\u6CA1\u6709\u7F29\u8FDB\u3002\u6298\u884C\u4ECE\u7B2C 1 \u5217\u5F00\u59CB\u3002","\u6298\u884C\u7684\u7F29\u8FDB\u91CF\u4E0E\u5176\u7236\u7EA7\u76F8\u540C\u3002","\u6298\u884C\u7684\u7F29\u8FDB\u91CF\u6BD4\u5176\u7236\u7EA7\u591A 1\u3002","\u6298\u884C\u7684\u7F29\u8FDB\u91CF\u6BD4\u5176\u7236\u7EA7\u591A 2\u3002","\u63A7\u5236\u6298\u884C\u7684\u7F29\u8FDB\u3002","\u63A7\u5236\u662F\u5426\u53EF\u4EE5\u901A\u8FC7\u6309\u4F4F Shift`\u952E\u5C06\u6587\u4EF6\u62D6\u653E\u5230\u7F16\u8F91\u5668\u4E2D\uFF08\u800C\u4E0D\u662F\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00\u8BE5\u6587\u4EF6\uFF09\u3002","\u63A7\u5236\u5C06\u6587\u4EF6\u653E\u5165\u7F16\u8F91\u5668\u65F6\u662F\u5426\u663E\u793A\u5C0F\u7EC4\u4EF6\u3002\u4F7F\u7528\u6B64\u5C0F\u7EC4\u4EF6\u53EF\u4EE5\u63A7\u5236\u6587\u4EF6\u7684\u5220\u9664\u65B9\u5F0F\u3002","\u5C06\u6587\u4EF6\u653E\u5165\u7F16\u8F91\u5668\u540E\u663E\u793A\u653E\u7F6E\u9009\u62E9\u5668\u5C0F\u7EC4\u4EF6\u3002","\u5207\u52FF\u663E\u793A\u653E\u7F6E\u9009\u62E9\u5668\u5C0F\u7EC4\u4EF6\u3002\u800C\u662F\u59CB\u7EC8\u4F7F\u7528\u9ED8\u8BA4\u5220\u9664\u63D0\u4F9B\u7A0B\u5E8F\u3002","\u63A7\u5236\u662F\u5426\u53EF\u4EE5\u4EE5\u4E0D\u540C\u7684\u65B9\u5F0F\u7C98\u8D34\u5185\u5BB9\u3002","\u63A7\u5236\u5C06\u5185\u5BB9\u7C98\u8D34\u5230\u7F16\u8F91\u5668\u65F6\u662F\u5426\u663E\u793A\u5C0F\u7EC4\u4EF6\u3002\u4F7F\u7528\u6B64\u5C0F\u7EC4\u4EF6\u53EF\u4EE5\u63A7\u5236\u6587\u4EF6\u7684\u7C98\u8D34\u65B9\u5F0F\u3002","\u5C06\u5185\u5BB9\u7C98\u8D34\u5230\u7F16\u8F91\u5668\u540E\u663E\u793A\u7C98\u8D34\u9009\u62E9\u5668\u5C0F\u7EC4\u4EF6\u3002","\u5207\u52FF\u663E\u793A\u7C98\u8D34\u9009\u62E9\u5668\u5C0F\u7EC4\u4EF6\u3002\u800C\u662F\u59CB\u7EC8\u4F7F\u7528\u9ED8\u8BA4\u7C98\u8D34\u884C\u4E3A\u3002","\u63A7\u5236\u662F\u5426\u5E94\u5728\u9047\u5230\u63D0\u4EA4\u5B57\u7B26\u65F6\u63A5\u53D7\u5EFA\u8BAE\u3002\u4F8B\u5982\uFF0C\u5728 JavaScript \u4E2D\uFF0C\u534A\u89D2\u5206\u53F7 (`;`) \u53EF\u4EE5\u4E3A\u63D0\u4EA4\u5B57\u7B26\uFF0C\u80FD\u591F\u5728\u63A5\u53D7\u5EFA\u8BAE\u7684\u540C\u65F6\u952E\u5165\u8BE5\u5B57\u7B26\u3002","\u4EC5\u5F53\u5EFA\u8BAE\u5305\u542B\u6587\u672C\u6539\u52A8\u65F6\u624D\u53EF\u4F7F\u7528 `Enter` \u952E\u8FDB\u884C\u63A5\u53D7\u3002","\u63A7\u5236\u9664\u4E86 `Tab` \u952E\u4EE5\u5916\uFF0C `Enter` \u952E\u662F\u5426\u540C\u6837\u53EF\u4EE5\u63A5\u53D7\u5EFA\u8BAE\u3002\u8FD9\u80FD\u51CF\u5C11\u201C\u63D2\u5165\u65B0\u884C\u201D\u548C\u201C\u63A5\u53D7\u5EFA\u8BAE\u201D\u547D\u4EE4\u4E4B\u95F4\u7684\u6B67\u4E49\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u4E2D\u53EF\u7531\u5C4F\u5E55\u9605\u8BFB\u5668\u4E00\u6B21\u8BFB\u51FA\u7684\u884C\u6570\u3002\u6211\u4EEC\u68C0\u6D4B\u5230\u5C4F\u5E55\u9605\u8BFB\u5668\u65F6\uFF0C\u4F1A\u81EA\u52A8\u5C06\u9ED8\u8BA4\u503C\u8BBE\u7F6E\u4E3A 500\u3002\u8B66\u544A: \u5982\u679C\u884C\u6570\u5927\u4E8E\u9ED8\u8BA4\u503C\uFF0C\u53EF\u80FD\u4F1A\u5F71\u54CD\u6027\u80FD\u3002","\u7F16\u8F91\u5668\u5185\u5BB9","\u63A7\u5236\u5185\u8054\u5EFA\u8BAE\u662F\u5426\u7531\u5C4F\u5E55\u9605\u8BFB\u5668\u516C\u5E03\u3002","\u4F7F\u7528\u8BED\u8A00\u914D\u7F6E\u786E\u5B9A\u4F55\u65F6\u81EA\u52A8\u95ED\u5408\u62EC\u53F7\u3002","\u4EC5\u5F53\u5149\u6807\u4F4D\u4E8E\u7A7A\u767D\u5B57\u7B26\u5DE6\u4FA7\u65F6\uFF0C\u624D\u81EA\u52A8\u95ED\u5408\u62EC\u53F7\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5728\u5DE6\u62EC\u53F7\u540E\u81EA\u52A8\u63D2\u5165\u53F3\u62EC\u53F7\u3002","\u4F7F\u7528\u8BED\u8A00\u914D\u7F6E\u786E\u5B9A\u4F55\u65F6\u81EA\u52A8\u5173\u95ED\u6CE8\u91CA\u3002","\u4EC5\u5F53\u5149\u6807\u4F4D\u4E8E\u7A7A\u683C\u5DE6\u4FA7\u65F6\u81EA\u52A8\u5173\u95ED\u6CE8\u91CA\u3002","\u63A7\u5236\u5728\u7528\u6237\u6DFB\u52A0\u6253\u5F00\u6CE8\u91CA\u540E\u7F16\u8F91\u5668\u662F\u5426\u5E94\u81EA\u52A8\u5173\u95ED\u6CE8\u91CA\u3002","\u4EC5\u5728\u81EA\u52A8\u63D2\u5165\u65F6\u624D\u5220\u9664\u76F8\u90BB\u7684\u53F3\u5F15\u53F7\u6216\u53F3\u62EC\u53F7\u3002","\u63A7\u5236\u5728\u5220\u9664\u65F6\u7F16\u8F91\u5668\u662F\u5426\u5E94\u5220\u9664\u76F8\u90BB\u7684\u53F3\u5F15\u53F7\u6216\u53F3\u65B9\u62EC\u53F7\u3002","\u4EC5\u5728\u81EA\u52A8\u63D2\u5165\u65F6\u624D\u6539\u5199\u53F3\u5F15\u53F7\u6216\u53F3\u62EC\u53F7\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u6539\u5199\u53F3\u5F15\u53F7\u6216\u53F3\u62EC\u53F7\u3002","\u4F7F\u7528\u8BED\u8A00\u914D\u7F6E\u786E\u5B9A\u4F55\u65F6\u81EA\u52A8\u95ED\u5408\u5F15\u53F7\u3002","\u4EC5\u5F53\u5149\u6807\u4F4D\u4E8E\u7A7A\u767D\u5B57\u7B26\u5DE6\u4FA7\u65F6\uFF0C\u624D\u81EA\u52A8\u95ED\u5408\u5F15\u53F7\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5728\u5DE6\u5F15\u53F7\u540E\u81EA\u52A8\u63D2\u5165\u53F3\u5F15\u53F7\u3002","\u7F16\u8F91\u5668\u4E0D\u4F1A\u81EA\u52A8\u63D2\u5165\u7F29\u8FDB\u3002","\u7F16\u8F91\u5668\u5C06\u4FDD\u7559\u5F53\u524D\u884C\u7684\u7F29\u8FDB\u3002","\u7F16\u8F91\u5668\u5C06\u4FDD\u7559\u5F53\u524D\u884C\u7684\u7F29\u8FDB\u5E76\u9075\u5FAA\u8BED\u8A00\u5B9A\u4E49\u7684\u62EC\u53F7\u3002","\u7F16\u8F91\u5668\u5C06\u4FDD\u7559\u5F53\u524D\u884C\u7684\u7F29\u8FDB\u3001\u4F7F\u7528\u8BED\u8A00\u5B9A\u4E49\u7684\u62EC\u53F7\u5E76\u8C03\u7528\u8BED\u8A00\u5B9A\u4E49\u7684\u7279\u5B9A onEnterRules\u3002","\u7F16\u8F91\u5668\u5C06\u4FDD\u7559\u5F53\u524D\u884C\u7684\u7F29\u8FDB\uFF0C\u4F7F\u7528\u8BED\u8A00\u5B9A\u4E49\u7684\u62EC\u53F7\uFF0C\u8C03\u7528\u7531\u8BED\u8A00\u5B9A\u4E49\u7684\u7279\u6B8A\u8F93\u5165\u89C4\u5219\uFF0C\u5E76\u9075\u5FAA\u7531\u8BED\u8A00\u5B9A\u4E49\u7684\u7F29\u8FDB\u89C4\u5219\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u5728\u7528\u6237\u952E\u5165\u3001\u7C98\u8D34\u3001\u79FB\u52A8\u6216\u7F29\u8FDB\u884C\u65F6\u81EA\u52A8\u8C03\u6574\u7F29\u8FDB\u3002","\u4F7F\u7528\u8BED\u8A00\u914D\u7F6E\u786E\u5B9A\u4F55\u65F6\u81EA\u52A8\u5305\u4F4F\u6240\u9009\u5185\u5BB9\u3002","\u4F7F\u7528\u5F15\u53F7\u800C\u975E\u62EC\u53F7\u6765\u5305\u4F4F\u6240\u9009\u5185\u5BB9\u3002","\u4F7F\u7528\u62EC\u53F7\u800C\u975E\u5F15\u53F7\u6765\u5305\u4F4F\u6240\u9009\u5185\u5BB9\u3002","\u63A7\u5236\u5728\u952E\u5165\u5F15\u53F7\u6216\u65B9\u62EC\u53F7\u65F6\uFF0C\u7F16\u8F91\u5668\u662F\u5426\u5E94\u81EA\u52A8\u5C06\u6240\u9009\u5185\u5BB9\u62EC\u8D77\u6765\u3002","\u5728\u4F7F\u7528\u7A7A\u683C\u8FDB\u884C\u7F29\u8FDB\u65F6\u6A21\u62DF\u5236\u8868\u7B26\u7684\u9009\u62E9\u884C\u4E3A\u3002\u6240\u9009\u5185\u5BB9\u5C06\u59CB\u7EC8\u4F7F\u7528\u5236\u8868\u7B26\u505C\u6B62\u4F4D\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u663E\u793A CodeLens\u3002","\u63A7\u5236 CodeLens \u7684\u5B57\u4F53\u7CFB\u5217\u3002","\u63A7\u5236 CodeLens \u7684\u5B57\u53F7(\u4EE5\u50CF\u7D20\u4E3A\u5355\u4F4D)\u3002\u8BBE\u7F6E\u4E3A 0 \u65F6\uFF0C\u5C06\u4F7F\u7528 90% \u7684 `#editor.fontSize#`\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u663E\u793A\u5185\u8054\u989C\u8272\u4FEE\u9970\u5668\u548C\u989C\u8272\u9009\u53D6\u5668\u3002","\u5728\u989C\u8272\u4FEE\u9970\u5668\u5355\u51FB\u548C\u60AC\u505C\u65F6\u4F7F\u989C\u8272\u9009\u53D6\u5668\u540C\u65F6\u663E\u793A","\u4F7F\u989C\u8272\u9009\u53D6\u5668\u5728\u989C\u8272\u4FEE\u9970\u5668\u60AC\u505C\u65F6\u663E\u793A","\u5355\u51FB\u989C\u8272\u4FEE\u9970\u5668\u65F6\u663E\u793A\u989C\u8272\u9009\u53D6\u5668","\u63A7\u5236\u4ECE\u989C\u8272\u4FEE\u9970\u5668\u663E\u793A\u989C\u8272\u9009\u53D6\u5668\u7684\u6761\u4EF6","\u63A7\u5236\u53EF\u4E00\u6B21\u6027\u5728\u7F16\u8F91\u5668\u4E2D\u5448\u73B0\u7684\u6700\u5927\u989C\u8272\u4FEE\u9970\u5668\u6570\u3002","\u542F\u7528\u4F7F\u7528\u9F20\u6807\u548C\u952E\u8FDB\u884C\u5217\u9009\u62E9\u3002","\u63A7\u5236\u5728\u590D\u5236\u65F6\u662F\u5426\u540C\u65F6\u590D\u5236\u8BED\u6CD5\u9AD8\u4EAE\u3002","\u63A7\u5236\u5149\u6807\u7684\u52A8\u753B\u6837\u5F0F\u3002","\u5DF2\u7981\u7528\u5E73\u6ED1\u8131\u5B57\u53F7\u52A8\u753B\u3002","\u4EC5\u5F53\u7528\u6237\u4F7F\u7528\u663E\u5F0F\u624B\u52BF\u79FB\u52A8\u5149\u6807\u65F6\uFF0C\u624D\u542F\u7528\u5E73\u6ED1\u8131\u5B57\u53F7\u52A8\u753B\u3002","\u59CB\u7EC8\u542F\u7528\u5E73\u6ED1\u8131\u5B57\u53F7\u52A8\u753B\u3002","\u63A7\u5236\u662F\u5426\u542F\u7528\u5E73\u6ED1\u63D2\u5165\u52A8\u753B\u3002","\u63A7\u5236\u5149\u6807\u6837\u5F0F\u3002","\u63A7\u5236\u5149\u6807\u5468\u56F4\u53EF\u89C1\u7684\u524D\u7F6E\u884C(\u6700\u5C0F\u503C\u4E3A 0)\u548C\u5C3E\u968F\u884C(\u6700\u5C0F\u503C\u4E3A 1)\u7684\u6700\u5C0F\u6570\u76EE\u3002\u5728\u5176\u4ED6\u4E00\u4E9B\u7F16\u8F91\u5668\u4E2D\u79F0\u4E3A \u201CscrollOff\u201D \u6216 \u201CscrollOffset\u201D\u3002",'\u4EC5\u5F53\u901A\u8FC7\u952E\u76D8\u6216 API \u89E6\u53D1\u65F6\uFF0C\u624D\u4F1A\u5F3A\u5236\u6267\u884C"\u5149\u6807\u73AF\u7ED5\u884C"\u3002','\u59CB\u7EC8\u5F3A\u5236\u6267\u884C "cursorSurroundingLines"','\u63A7\u5236\u4F55\u65F6\u5E94\u5F3A\u5236\u6267\u884C"#\u5149\u6807\u73AF\u7ED5\u884C#"\u3002',"\u5F53 `#editor.cursorStyle#` \u8BBE\u7F6E\u4E3A `line` \u65F6\uFF0C\u63A7\u5236\u5149\u6807\u7684\u5BBD\u5EA6\u3002","\u63A7\u5236\u5728\u7F16\u8F91\u5668\u4E2D\u662F\u5426\u5141\u8BB8\u901A\u8FC7\u62D6\u653E\u6765\u79FB\u52A8\u9009\u4E2D\u5185\u5BB9\u3002","\u5C06\u65B0\u7684\u5448\u73B0\u65B9\u6CD5\u4E0E svg \u914D\u5408\u4F7F\u7528\u3002","\u4F7F\u7528\u5305\u542B\u5B57\u4F53\u5B57\u7B26\u7684\u65B0\u5448\u73B0\u65B9\u6CD5\u3002","\u4F7F\u7528\u7A33\u5B9A\u5448\u73B0\u65B9\u6CD5\u3002","\u63A7\u5236\u662F\u5426\u4F7F\u7528\u65B0\u7684\u5B9E\u9A8C\u6027\u65B9\u6CD5\u5448\u73B0\u7A7A\u683C\u3002",'\u6309\u4E0B"Alt"\u65F6\u6EDA\u52A8\u901F\u5EA6\u500D\u589E\u3002',"\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u542F\u7528\u4E86\u4EE3\u7801\u6298\u53E0\u3002","\u4F7F\u7528\u7279\u5B9A\u4E8E\u8BED\u8A00\u7684\u6298\u53E0\u7B56\u7565(\u5982\u679C\u53EF\u7528)\uFF0C\u5426\u5219\u4F7F\u7528\u57FA\u4E8E\u7F29\u8FDB\u7684\u7B56\u7565\u3002","\u4F7F\u7528\u57FA\u4E8E\u7F29\u8FDB\u7684\u6298\u53E0\u7B56\u7565\u3002","\u63A7\u5236\u8BA1\u7B97\u6298\u53E0\u8303\u56F4\u7684\u7B56\u7565\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u7A81\u51FA\u663E\u793A\u6298\u53E0\u8303\u56F4\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u81EA\u52A8\u6298\u53E0\u5BFC\u5165\u8303\u56F4\u3002","\u53EF\u6298\u53E0\u533A\u57DF\u7684\u6700\u5927\u6570\u91CF\u3002\u5982\u679C\u5F53\u524D\u6E90\u5177\u6709\u5927\u91CF\u53EF\u6298\u53E0\u533A\u57DF\uFF0C\u90A3\u4E48\u589E\u52A0\u6B64\u503C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u7F16\u8F91\u5668\u7684\u54CD\u5E94\u901F\u5EA6\u53D8\u6162\u3002","\u63A7\u5236\u5355\u51FB\u5DF2\u6298\u53E0\u7684\u884C\u540E\u9762\u7684\u7A7A\u5185\u5BB9\u662F\u5426\u4F1A\u5C55\u5F00\u8BE5\u884C\u3002","\u63A7\u5236\u5B57\u4F53\u7CFB\u5217\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u81EA\u52A8\u683C\u5F0F\u5316\u7C98\u8D34\u7684\u5185\u5BB9\u3002\u683C\u5F0F\u5316\u7A0B\u5E8F\u5FC5\u987B\u53EF\u7528\uFF0C\u5E76\u4E14\u80FD\u9488\u5BF9\u6587\u6863\u4E2D\u7684\u67D0\u4E00\u8303\u56F4\u8FDB\u884C\u683C\u5F0F\u5316\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u5728\u952E\u5165\u4E00\u884C\u540E\u662F\u5426\u81EA\u52A8\u683C\u5F0F\u5316\u8BE5\u884C\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u5448\u73B0\u5782\u76F4\u5B57\u5F62\u8FB9\u8DDD\u3002\u5B57\u5F62\u8FB9\u8DDD\u6700\u5E38\u7528\u4E8E\u8C03\u8BD5\u3002","\u63A7\u5236\u662F\u5426\u5728\u6982\u89C8\u6807\u5C3A\u4E2D\u9690\u85CF\u5149\u6807\u3002","\u63A7\u5236\u5B57\u6BCD\u95F4\u8DDD(\u50CF\u7D20)\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5DF2\u542F\u7528\u94FE\u63A5\u7F16\u8F91\u3002\u76F8\u5173\u7B26\u53F7(\u5982 HTML \u6807\u8BB0)\u5C06\u5728\u7F16\u8F91\u65F6\u8FDB\u884C\u66F4\u65B0\uFF0C\u5177\u4F53\u53D6\u51B3\u4E8E\u8BED\u8A00\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u68C0\u6D4B\u94FE\u63A5\u5E76\u4F7F\u5176\u53EF\u88AB\u70B9\u51FB\u3002","\u7A81\u51FA\u663E\u793A\u5339\u914D\u7684\u62EC\u53F7\u3002","\u5BF9\u9F20\u6807\u6EDA\u8F6E\u6EDA\u52A8\u4E8B\u4EF6\u7684 `deltaX` \u548C `deltaY` \u4E58\u4E0A\u7684\u7CFB\u6570\u3002","\u6309\u4F4F Cmd \u952E\u5E76\u6EDA\u52A8\u9F20\u6807\u6EDA\u8F6E\u65F6\u5BF9\u7F16\u8F91\u5668\u5B57\u4F53\u5927\u5C0F\u8FDB\u884C\u7F29\u653E\u3002","\u6309\u4F4F `Ctrl` \u952E\u5E76\u6EDA\u52A8\u9F20\u6807\u6EDA\u8F6E\u65F6\u5BF9\u7F16\u8F91\u5668\u5B57\u4F53\u5927\u5C0F\u8FDB\u884C\u7F29\u653E\u3002","\u5F53\u591A\u4E2A\u5149\u6807\u91CD\u53E0\u65F6\u8FDB\u884C\u5408\u5E76\u3002","\u6620\u5C04\u4E3A `Ctrl` (Windows \u548C Linux) \u6216 `Command` (macOS)\u3002","\u6620\u5C04\u4E3A `Alt` (Windows \u548C Linux) \u6216 `Option` (macOS)\u3002","\u7528\u4E8E\u4F7F\u7528\u9F20\u6807\u6DFB\u52A0\u591A\u4E2A\u6E38\u6807\u7684\u4FEE\u9970\u7B26\u3002\u201C\u8F6C\u5230\u5B9A\u4E49\u201D\u548C\u201C\u6253\u5F00\u94FE\u63A5\u201D\u9F20\u6807\u624B\u52BF\u5C06\u8FDB\u884C\u8C03\u6574\uFF0C\u4F7F\u5176\u4E0D\u4E0E [\u591A\u5149\u6807\u4FEE\u9970\u7B26](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)\u51B2\u7A81\u3002","\u6BCF\u4E2A\u5149\u6807\u7C98\u8D34\u4E00\u884C\u6587\u672C\u3002","\u6BCF\u4E2A\u5149\u6807\u7C98\u8D34\u5168\u6587\u3002","\u63A7\u5236\u7C98\u8D34\u65F6\u7C98\u8D34\u6587\u672C\u7684\u884C\u8BA1\u6570\u4E0E\u5149\u6807\u8BA1\u6570\u76F8\u5339\u914D\u3002","\u63A7\u5236\u4E00\u6B21\u53EF\u4EE5\u5728\u6D3B\u52A8\u7F16\u8F91\u5668\u4E2D\u663E\u793A\u7684\u6700\u5927\u6E38\u6807\u6570\u3002","\u4E0D\u7A81\u51FA\u663E\u793A\u51FA\u73B0\u6B21\u6570\u3002","\u4EC5\u7A81\u51FA\u663E\u793A\u5F53\u524D\u6587\u4EF6\u4E2D\u7684\u51FA\u73B0\u6B21\u6570\u3002","\u5B9E\u9A8C\u6027: \u7A81\u51FA\u663E\u793A\u6240\u6709\u6709\u6548\u6253\u5F00\u6587\u4EF6\u7684\u51FA\u73B0\u6B21\u6570\u3002","\u63A7\u5236\u662F\u5426\u5E94\u7A81\u51FA\u663E\u793A\u5728\u6253\u5F00\u7684\u6587\u4EF6\u4E2D\u7684\u51FA\u73B0\u6B21\u6570\u3002","\u63A7\u5236\u662F\u5426\u5728\u6982\u89C8\u6807\u5C3A\u5468\u56F4\u7ED8\u5236\u8FB9\u6846\u3002","\u6253\u5F00\u901F\u89C8\u65F6\u805A\u7126\u6811","\u6253\u5F00\u9884\u89C8\u65F6\u5C06\u7126\u70B9\u653E\u5728\u7F16\u8F91\u5668\u4E0A","\u63A7\u5236\u662F\u5C06\u7126\u70B9\u653E\u5728\u5185\u8054\u7F16\u8F91\u5668\u4E0A\u8FD8\u662F\u653E\u5728\u9884\u89C8\u5C0F\u90E8\u4EF6\u4E2D\u7684\u6811\u4E0A\u3002",'\u63A7\u5236"\u8F6C\u5230\u5B9A\u4E49"\u9F20\u6807\u624B\u52BF\u662F\u5426\u59CB\u7EC8\u6253\u5F00\u9884\u89C8\u5C0F\u90E8\u4EF6\u3002',"\u63A7\u5236\u663E\u793A\u5FEB\u901F\u5EFA\u8BAE\u524D\u7684\u7B49\u5F85\u65F6\u95F4 (\u6BEB\u79D2)\u3002","\u63A7\u5236\u662F\u5426\u5728\u7F16\u8F91\u5668\u4E2D\u8F93\u5165\u65F6\u81EA\u52A8\u91CD\u547D\u540D\u3002",'\u5DF2\u5F03\u7528\uFF0C\u8BF7\u6539\u7528 "editor.linkedEditing"\u3002',"\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u663E\u793A\u63A7\u5236\u5B57\u7B26\u3002","\u5F53\u6587\u4EF6\u4EE5\u6362\u884C\u7B26\u7ED3\u675F\u65F6, \u5448\u73B0\u6700\u540E\u4E00\u884C\u7684\u884C\u53F7\u3002","\u540C\u65F6\u7A81\u51FA\u663E\u793A\u5BFC\u822A\u7EBF\u548C\u5F53\u524D\u884C\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u7684\u5F53\u524D\u884C\u8FDB\u884C\u9AD8\u4EAE\u663E\u793A\u7684\u65B9\u5F0F\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u4EC5\u5728\u7126\u70B9\u5728\u7F16\u8F91\u5668\u65F6\u7A81\u51FA\u663E\u793A\u5F53\u524D\u884C\u3002","\u5448\u73B0\u7A7A\u683C\u5B57\u7B26(\u5B57\u8BCD\u4E4B\u95F4\u7684\u5355\u4E2A\u7A7A\u683C\u9664\u5916)\u3002","\u4EC5\u5728\u9009\u5B9A\u6587\u672C\u4E0A\u5448\u73B0\u7A7A\u767D\u5B57\u7B26\u3002","\u4EC5\u5448\u73B0\u5C3E\u968F\u7A7A\u683C\u5B57\u7B26\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u5728\u7A7A\u767D\u5B57\u7B26\u4E0A\u663E\u793A\u7B26\u53F7\u7684\u65B9\u5F0F\u3002","\u63A7\u5236\u9009\u533A\u662F\u5426\u6709\u5706\u89D2\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u6C34\u5E73\u6EDA\u52A8\u65F6\u53EF\u4EE5\u8D85\u8FC7\u8303\u56F4\u7684\u5B57\u7B26\u6570\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u53EF\u4EE5\u6EDA\u52A8\u5230\u6700\u540E\u4E00\u884C\u4E4B\u540E\u3002","\u540C\u65F6\u5782\u76F4\u548C\u6C34\u5E73\u6EDA\u52A8\u65F6\uFF0C\u4EC5\u6CBF\u4E3B\u8F74\u6EDA\u52A8\u3002\u5728\u89E6\u63A7\u677F\u4E0A\u5782\u76F4\u6EDA\u52A8\u65F6\uFF0C\u53EF\u9632\u6B62\u6C34\u5E73\u6F02\u79FB\u3002","\u63A7\u5236\u662F\u5426\u652F\u6301 Linux \u4E3B\u526A\u8D34\u677F\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u5E94\u7A81\u51FA\u663E\u793A\u4E0E\u6240\u9009\u5185\u5BB9\u7C7B\u4F3C\u7684\u5339\u914D\u9879\u3002","\u59CB\u7EC8\u663E\u793A\u6298\u53E0\u63A7\u4EF6\u3002","\u5207\u52FF\u663E\u793A\u6298\u53E0\u63A7\u4EF6\u5E76\u51CF\u5C0F\u88C5\u8BA2\u7EBF\u5927\u5C0F\u3002","\u4EC5\u5728\u9F20\u6807\u4F4D\u4E8E\u88C5\u8BA2\u7EBF\u4E0A\u65B9\u65F6\u663E\u793A\u6298\u53E0\u63A7\u4EF6\u3002","\u63A7\u5236\u4F55\u65F6\u663E\u793A\u884C\u53F7\u69FD\u4E0A\u7684\u6298\u53E0\u63A7\u4EF6\u3002","\u63A7\u5236\u662F\u5426\u6DE1\u5316\u672A\u4F7F\u7528\u7684\u4EE3\u7801\u3002","\u63A7\u5236\u52A0\u5220\u9664\u7EBF\u88AB\u5F03\u7528\u7684\u53D8\u91CF\u3002","\u5728\u5176\u4ED6\u5EFA\u8BAE\u4E0A\u65B9\u663E\u793A\u4EE3\u7801\u7247\u6BB5\u5EFA\u8BAE\u3002","\u5728\u5176\u4ED6\u5EFA\u8BAE\u4E0B\u65B9\u663E\u793A\u4EE3\u7801\u7247\u6BB5\u5EFA\u8BAE\u3002","\u5728\u5176\u4ED6\u5EFA\u8BAE\u4E2D\u7A7F\u63D2\u663E\u793A\u4EE3\u7801\u7247\u6BB5\u5EFA\u8BAE\u3002","\u4E0D\u663E\u793A\u4EE3\u7801\u7247\u6BB5\u5EFA\u8BAE\u3002","\u63A7\u5236\u4EE3\u7801\u7247\u6BB5\u662F\u5426\u4E0E\u5176\u4ED6\u5EFA\u8BAE\u4E00\u8D77\u663E\u793A\u53CA\u5176\u6392\u5217\u7684\u4F4D\u7F6E\u3002","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u5426\u4F7F\u7528\u52A8\u753B\u6EDA\u52A8\u3002","\u63A7\u5236\u5728\u663E\u793A\u5185\u8054\u5B8C\u6210\u65F6\u662F\u5426\u5E94\u5411\u5C4F\u5E55\u9605\u8BFB\u5668\u7528\u6237\u63D0\u4F9B\u8F85\u52A9\u529F\u80FD\u63D0\u793A\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u5B57\u53F7\u3002\u8BBE\u7F6E\u4E3A {0} \u65F6\uFF0C\u5C06\u4F7F\u7528 {1} \u7684\u503C\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u884C\u9AD8\u3002\u8BBE\u7F6E\u4E3A {0} \u65F6\uFF0C\u5C06\u4F7F\u7528 {1} \u7684\u503C\u3002\u6700\u5C0F\u503C\u4E3A 8\u3002","\u63A7\u5236\u5728\u952E\u5165\u89E6\u53D1\u5B57\u7B26\u540E\u662F\u5426\u81EA\u52A8\u663E\u793A\u5EFA\u8BAE\u3002","\u59CB\u7EC8\u9009\u62E9\u7B2C\u4E00\u4E2A\u5EFA\u8BAE\u3002","\u9009\u62E9\u6700\u8FD1\u7684\u5EFA\u8BAE\uFF0C\u9664\u975E\u8FDB\u4E00\u6B65\u952E\u5165\u9009\u62E9\u5176\u4ED6\u9879\u3002\u4F8B\u5982 `console. -> console.log`\uFF0C\u56E0\u4E3A\u6700\u8FD1\u8865\u5168\u8FC7 `log`\u3002","\u6839\u636E\u4E4B\u524D\u8865\u5168\u8FC7\u7684\u5EFA\u8BAE\u7684\u524D\u7F00\u6765\u8FDB\u884C\u9009\u62E9\u3002\u4F8B\u5982\uFF0C`co -> console`\u3001`con -> const`\u3002","\u63A7\u5236\u5728\u5EFA\u8BAE\u5217\u8868\u4E2D\u5982\u4F55\u9884\u5148\u9009\u62E9\u5EFA\u8BAE\u3002","\u5728\u6309\u4E0B Tab \u952E\u65F6\u8FDB\u884C Tab \u8865\u5168\uFF0C\u5C06\u63D2\u5165\u6700\u4F73\u5339\u914D\u5EFA\u8BAE\u3002","\u7981\u7528 Tab \u8865\u5168\u3002",'\u5728\u524D\u7F00\u5339\u914D\u65F6\u8FDB\u884C Tab \u8865\u5168\u3002\u5728 "quickSuggestions" \u672A\u542F\u7528\u65F6\u4F53\u9A8C\u6700\u597D\u3002',"\u542F\u7528 Tab \u8865\u5168\u3002","\u81EA\u52A8\u5220\u9664\u5F02\u5E38\u7684\u884C\u7EC8\u6B62\u7B26\u3002","\u5FFD\u7565\u5F02\u5E38\u7684\u884C\u7EC8\u6B62\u7B26\u3002","\u63D0\u793A\u5220\u9664\u5F02\u5E38\u7684\u884C\u7EC8\u6B62\u7B26\u3002","\u5220\u9664\u53EF\u80FD\u5BFC\u81F4\u95EE\u9898\u7684\u5F02\u5E38\u884C\u7EC8\u6B62\u7B26\u3002","\u6839\u636E\u5236\u8868\u4F4D\u63D2\u5165\u548C\u5220\u9664\u7A7A\u683C\u3002","\u4F7F\u7528\u9ED8\u8BA4\u6362\u884C\u89C4\u5219\u3002","\u4E2D\u6587/\u65E5\u8BED/\u97E9\u8BED(CJK)\u6587\u672C\u4E0D\u5E94\u4F7F\u7528\u65AD\u5B57\u529F\u80FD\u3002\u975E CJK \u6587\u672C\u884C\u4E3A\u4E0E\u666E\u901A\u6587\u672C\u884C\u4E3A\u76F8\u540C\u3002","\u63A7\u5236\u4E2D\u6587/\u65E5\u8BED/\u97E9\u8BED(CJK)\u6587\u672C\u4F7F\u7528\u7684\u65AD\u5B57\u89C4\u5219\u3002","\u6267\u884C\u5355\u8BCD\u76F8\u5173\u7684\u5BFC\u822A\u6216\u64CD\u4F5C\u65F6\u4F5C\u4E3A\u5355\u8BCD\u5206\u9694\u7B26\u7684\u5B57\u7B26\u3002","\u6C38\u4E0D\u6362\u884C\u3002","\u5C06\u5728\u89C6\u533A\u5BBD\u5EA6\u5904\u6362\u884C\u3002","\u5728 `#editor.wordWrapColumn#` \u5904\u6298\u884C\u3002","\u5728\u89C6\u533A\u5BBD\u5EA6\u548C `#editor.wordWrapColumn#` \u4E2D\u7684\u8F83\u5C0F\u503C\u5904\u6298\u884C\u3002","\u63A7\u5236\u6298\u884C\u7684\u65B9\u5F0F\u3002","\u5728 `#editor.wordWrap#` \u4E3A `wordWrapColumn` \u6216 `bounded` \u65F6\uFF0C\u63A7\u5236\u7F16\u8F91\u5668\u7684\u6298\u884C\u5217\u3002","\u63A7\u5236\u662F\u5426\u5E94\u4F7F\u7528\u9ED8\u8BA4\u6587\u6863\u989C\u8272\u63D0\u4F9B\u7A0B\u5E8F\u663E\u793A\u5185\u8054\u989C\u8272\u4FEE\u9970","\u63A7\u5236\u7F16\u8F91\u5668\u662F\u63A5\u6536\u9009\u9879\u5361\u8FD8\u662F\u5C06\u5176\u5EF6\u8FDF\u5230\u5DE5\u4F5C\u53F0\u8FDB\u884C\u5BFC\u822A\u3002"],"vs/editor/common/core/editorColorRegistry":["\u5149\u6807\u6240\u5728\u884C\u9AD8\u4EAE\u5185\u5BB9\u7684\u80CC\u666F\u989C\u8272\u3002","\u5149\u6807\u6240\u5728\u884C\u56DB\u5468\u8FB9\u6846\u7684\u80CC\u666F\u989C\u8272\u3002","\u80CC\u666F\u989C\u8272\u7684\u9AD8\u4EAE\u8303\u56F4\uFF0C\u559C\u6B22\u901A\u8FC7\u5FEB\u901F\u6253\u5F00\u548C\u67E5\u627E\u529F\u80FD\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u9AD8\u4EAE\u533A\u57DF\u8FB9\u6846\u7684\u80CC\u666F\u989C\u8272\u3002","\u9AD8\u4EAE\u663E\u793A\u7B26\u53F7\u7684\u80CC\u666F\u989C\u8272\uFF0C\u4F8B\u5982\u8F6C\u5230\u5B9A\u4E49\u6216\u8F6C\u5230\u4E0B\u4E00\u4E2A/\u4E0A\u4E00\u4E2A\u7B26\u53F7\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u9AD8\u4EAE\u663E\u793A\u7B26\u53F7\u5468\u56F4\u7684\u8FB9\u6846\u7684\u80CC\u666F\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5149\u6807\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5149\u6807\u7684\u80CC\u666F\u8272\u3002\u53EF\u4EE5\u81EA\u5B9A\u4E49\u5757\u578B\u5149\u6807\u8986\u76D6\u5B57\u7B26\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u7A7A\u767D\u5B57\u7B26\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u884C\u53F7\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF\u7684\u989C\u8272\u3002","\u201CeditorIndentGuide.background\u201D \u5DF2\u5F03\u7528\u3002\u8BF7\u6539\u7528 \u201CeditorIndentGuide.background1\u201D\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF\u7684\u989C\u8272\u3002","\u201CeditorIndentGuide.activeBackground\u201D \u5DF2\u5F03\u7528\u3002\u8BF7\u6539\u7528 \u201CeditorIndentGuide.activeBackground1\u201D\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (1) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (2) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (3) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (4) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (5) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u7F29\u8FDB\u53C2\u8003\u7EBF (6) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (1) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (2) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (3) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (4) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (5) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF (6) \u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6D3B\u52A8\u884C\u53F7\u7684\u989C\u8272",'"Id" \u5DF2\u88AB\u5F03\u7528\uFF0C\u8BF7\u6539\u7528 "editorLineNumber.activeForeground"\u3002',"\u7F16\u8F91\u5668\u6D3B\u52A8\u884C\u53F7\u7684\u989C\u8272","\u5C06 editor.renderFinalNewline \u8BBE\u7F6E\u4E3A\u7070\u8272\u65F6\u6700\u7EC8\u7F16\u8F91\u5668\u884C\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6807\u5C3A\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668 CodeLens \u7684\u524D\u666F\u8272","\u5339\u914D\u62EC\u53F7\u7684\u80CC\u666F\u8272","\u5339\u914D\u62EC\u53F7\u5916\u6846\u7684\u989C\u8272","\u6982\u89C8\u6807\u5C3A\u8FB9\u6846\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6982\u8FF0\u6807\u5C3A\u7684\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u5BFC\u822A\u7EBF\u7684\u80CC\u666F\u8272\u3002\u5BFC\u822A\u7EBF\u5305\u62EC\u8FB9\u7F18\u7B26\u53F7\u548C\u884C\u53F7\u3002","\u7F16\u8F91\u5668\u4E2D\u4E0D\u5FC5\u8981(\u672A\u4F7F\u7528)\u7684\u6E90\u4EE3\u7801\u7684\u8FB9\u6846\u989C\u8272\u3002",'\u975E\u5FC5\u987B(\u672A\u4F7F\u7528)\u4EE3\u7801\u7684\u5728\u7F16\u8F91\u5668\u4E2D\u663E\u793A\u7684\u4E0D\u900F\u660E\u5EA6\u3002\u4F8B\u5982\uFF0C"#000000c0" \u5C06\u4EE5 75% \u7684\u4E0D\u900F\u660E\u5EA6\u663E\u793A\u4EE3\u7801\u3002\u5BF9\u4E8E\u9AD8\u5BF9\u6BD4\u5EA6\u4E3B\u9898\uFF0C\u8BF7\u4F7F\u7528 \u201DeditorUnnecessaryCode.border\u201C \u4E3B\u9898\u6765\u4E3A\u975E\u5FC5\u987B\u4EE3\u7801\u6DFB\u52A0\u4E0B\u5212\u7EBF\uFF0C\u4EE5\u907F\u514D\u989C\u8272\u6DE1\u5316\u3002',"\u7F16\u8F91\u5668\u4E2D\u865A\u5F71\u6587\u672C\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u865A\u5F71\u6587\u672C\u7684\u524D\u666F\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u865A\u5F71\u6587\u672C\u7684\u80CC\u666F\u8272\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A\u8303\u56F4\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u6982\u89C8\u6807\u5C3A\u4E2D\u9519\u8BEF\u6807\u8BB0\u7684\u989C\u8272\u3002","\u6982\u89C8\u6807\u5C3A\u4E2D\u8B66\u544A\u6807\u8BB0\u7684\u989C\u8272\u3002","\u6982\u89C8\u6807\u5C3A\u4E2D\u4FE1\u606F\u6807\u8BB0\u7684\u989C\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(1)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(2)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(3)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(4)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(5)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u62EC\u53F7\u7684\u524D\u666F\u8272(6)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u7740\u8272\u3002","\u65B9\u62EC\u53F7\u51FA\u73B0\u610F\u5916\u7684\u524D\u666F\u8272\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(1)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(2)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(3)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(4)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(5)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u975E\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(6)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(1)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(2)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(3)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(4)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(5)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u6D3B\u52A8\u62EC\u53F7\u5BF9\u6307\u5357\u7684\u80CC\u666F\u8272(6)\u3002\u9700\u8981\u542F\u7528\u62EC\u53F7\u5BF9\u6307\u5357\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A Unicode \u5B57\u7B26\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A Unicode \u5B57\u7B26\u7684\u80CC\u666F\u989C\u8272\u3002"],"vs/editor/common/editorContextKeys":["\u7F16\u8F91\u5668\u6587\u672C\u662F\u5426\u5177\u6709\u7126\u70B9(\u5149\u6807\u662F\u5426\u95EA\u70C1)","\u7F16\u8F91\u5668\u6216\u7F16\u8F91\u5668\u5C0F\u7EC4\u4EF6\u662F\u5426\u5177\u6709\u7126\u70B9(\u4F8B\u5982\u7126\u70B9\u5728\u201C\u67E5\u627E\u201D\u5C0F\u7EC4\u4EF6\u4E2D)","\u7F16\u8F91\u5668\u6216 RTF \u8F93\u5165\u662F\u5426\u6709\u7126\u70B9(\u5149\u6807\u662F\u5426\u95EA\u70C1)","\u7F16\u8F91\u5668\u662F\u5426\u4E3A\u53EA\u8BFB","\u4E0A\u4E0B\u6587\u662F\u5426\u4E3A\u5DEE\u5F02\u7F16\u8F91\u5668","\u4E0A\u4E0B\u6587\u662F\u5426\u4E3A\u5D4C\u5165\u5F0F\u5DEE\u5F02\u7F16\u8F91\u5668","\u4E0A\u4E0B\u6587\u662F\u5426\u4E3A\u591A\u4E2A\u5DEE\u5F02\u7F16\u8F91\u5668","\u662F\u5426\u6298\u53E0\u591A\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u7684\u6240\u6709\u6587\u4EF6","\u5DEE\u5F02\u7F16\u8F91\u5668\u662F\u5426\u6709\u66F4\u6539","\u662F\u5426\u9009\u62E9\u79FB\u52A8\u7684\u4EE3\u7801\u5757\u8FDB\u884C\u6BD4\u8F83","\u53EF\u8BBF\u95EE\u5DEE\u5F02\u67E5\u770B\u5668\u662F\u5426\u53EF\u89C1","\u662F\u5426\u5DF2\u5230\u8FBE\u5DEE\u5F02\u7F16\u8F91\u5668\u5E76\u6392\u5448\u73B0\u5185\u8054\u65AD\u70B9",'\u662F\u5426\u5DF2\u542F\u7528 "editor.columnSelection"',"\u7F16\u8F91\u5668\u662F\u5426\u5DF2\u9009\u5B9A\u6587\u672C","\u7F16\u8F91\u5668\u662F\u5426\u6709\u591A\u4E2A\u9009\u62E9",'"Tab" \u662F\u5426\u5C06\u7126\u70B9\u79FB\u51FA\u7F16\u8F91\u5668',"\u7F16\u8F91\u5668\u8F6F\u952E\u76D8\u662F\u5426\u53EF\u89C1","\u662F\u5426\u805A\u7126\u7F16\u8F91\u5668\u60AC\u505C","\u662F\u5426\u805A\u7126\u7C98\u6027\u6EDA\u52A8","\u7C98\u6027\u6EDA\u52A8\u662F\u5426\u53EF\u89C1","\u72EC\u7ACB\u989C\u8272\u9009\u53D6\u5668\u662F\u5426\u53EF\u89C1","\u72EC\u7ACB\u989C\u8272\u9009\u53D6\u5668\u662F\u5426\u805A\u7126","\u8BE5\u7F16\u8F91\u5668\u662F\u5426\u662F\u66F4\u5927\u7684\u7F16\u8F91\u5668(\u4F8B\u5982\u7B14\u8BB0\u672C)\u7684\u4E00\u90E8\u5206","\u7F16\u8F91\u5668\u7684\u8BED\u8A00\u6807\u8BC6\u7B26","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u8865\u5168\u9879\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u4EE3\u7801\u64CD\u4F5C\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709 CodeLens \u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u5B9A\u4E49\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u58F0\u660E\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u5B9E\u73B0\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u7C7B\u578B\u5B9A\u4E49\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u60AC\u505C\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u6587\u6863\u7A81\u51FA\u663E\u793A\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u6587\u6863\u7B26\u53F7\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u5F15\u7528\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u91CD\u547D\u540D\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u7B7E\u540D\u5E2E\u52A9\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u5185\u8054\u63D0\u793A\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u6587\u6863\u683C\u5F0F\u8BBE\u7F6E\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u6587\u6863\u9009\u62E9\u683C\u5F0F\u8BBE\u7F6E\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u5177\u6709\u591A\u4E2A\u6587\u6863\u683C\u5F0F\u8BBE\u7F6E\u63D0\u4F9B\u7A0B\u5E8F","\u7F16\u8F91\u5668\u662F\u5426\u6709\u591A\u4E2A\u6587\u6863\u9009\u62E9\u683C\u5F0F\u8BBE\u7F6E\u63D0\u4F9B\u7A0B\u5E8F"],"vs/editor/common/languages":["\u6570\u7EC4","\u5E03\u5C14\u503C","\u7C7B","\u5E38\u6570","\u6784\u9020\u51FD\u6570","\u679A\u4E3E","\u679A\u4E3E\u6210\u5458","\u4E8B\u4EF6","\u5B57\u6BB5","\u6587\u4EF6","\u51FD\u6570","\u63A5\u53E3","\u952E","\u65B9\u6CD5","\u6A21\u5757","\u547D\u540D\u7A7A\u95F4","Null","\u6570\u5B57","\u5BF9\u8C61","\u8FD0\u7B97\u7B26","\u5305","\u5C5E\u6027","\u5B57\u7B26\u4E32","\u7ED3\u6784","\u7C7B\u578B\u53C2\u6570","\u53D8\u91CF","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["\u7EAF\u6587\u672C"],"vs/editor/common/model/editStack":["\u8F93\u5165"],"vs/editor/common/standaloneStrings":["\u5F00\u53D1\u4EBA\u5458: \u68C0\u67E5\u4EE4\u724C","\u8F6C\u5230\u884C/\u5217...","\u663E\u793A\u6240\u6709\u5FEB\u901F\u8BBF\u95EE\u63D0\u4F9B\u7A0B\u5E8F","\u547D\u4EE4\u9762\u677F","\u663E\u793A\u5E76\u8FD0\u884C\u547D\u4EE4","\u8F6C\u5230\u7B26\u53F7...","\u6309\u7C7B\u522B\u8F6C\u5230\u7B26\u53F7...","\u7F16\u8F91\u5668\u5185\u5BB9","\u6309 Alt+F1 \u53EF\u6253\u5F00\u8F85\u52A9\u529F\u80FD\u9009\u9879\u3002","\u5207\u6362\u9AD8\u5BF9\u6BD4\u5EA6\u4E3B\u9898","\u5728 {1} \u4E2A\u6587\u4EF6\u4E2D\u8FDB\u884C\u4E86 {0} \u6B21\u7F16\u8F91"],"vs/editor/common/viewLayout/viewLineRenderer":["\u663E\u793A\u66F4\u591A({0})","{0} \u5B57\u7B26"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["\u9009\u62E9\u5B9A\u4F4D\u70B9","\u5B9A\u4F4D\u70B9\u8BBE\u7F6E\u4E3A {0}:{1}","\u8BBE\u7F6E\u9009\u62E9\u5B9A\u4F4D\u70B9","\u8F6C\u5230\u9009\u62E9\u5B9A\u4F4D\u70B9","\u9009\u62E9\u4ECE\u5B9A\u4F4D\u70B9\u5230\u5149\u6807","\u53D6\u6D88\u9009\u62E9\u5B9A\u4F4D\u70B9"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\u6982\u89C8\u6807\u5C3A\u4E0A\u8868\u793A\u5339\u914D\u62EC\u53F7\u7684\u6807\u8BB0\u989C\u8272\u3002","\u8F6C\u5230\u62EC\u53F7","\u9009\u62E9\u62EC\u53F7\u6240\u6709\u5185\u5BB9","\u5220\u9664\u62EC\u53F7","\u8F6C\u5230\u62EC\u53F7(&&B)","\u9009\u62E9\u5176\u4E2D\u7684\u6587\u672C\uFF0C\u5305\u62EC\u62EC\u53F7\u6216\u5927\u62EC\u53F7"],"vs/editor/contrib/caretOperations/browser/caretOperations":["\u5411\u5DE6\u79FB\u52A8\u6240\u9009\u6587\u672C","\u5411\u53F3\u79FB\u52A8\u6240\u9009\u6587\u672C"],"vs/editor/contrib/caretOperations/browser/transpose":["\u8F6C\u7F6E\u5B57\u6BCD"],"vs/editor/contrib/clipboard/browser/clipboard":["\u526A\u5207(&&T)","\u526A\u5207","\u526A\u5207","\u526A\u5207","\u590D\u5236(&&C)","\u590D\u5236","\u590D\u5236","\u590D\u5236","\u7C98\u8D34(&&P)","\u7C98\u8D34","\u7C98\u8D34","\u7C98\u8D34","\u590D\u5236\u5E76\u7A81\u51FA\u663E\u793A\u8BED\u6CD5","\u590D\u5236\u4E3A","\u590D\u5236\u4E3A","\u5171\u4EAB","\u5171\u4EAB","\u5171\u4EAB"],"vs/editor/contrib/codeAction/browser/codeAction":["\u5E94\u7528\u4EE3\u7801\u64CD\u4F5C\u65F6\u53D1\u751F\u672A\u77E5\u9519\u8BEF"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["\u8981\u8FD0\u884C\u7684\u4EE3\u7801\u64CD\u4F5C\u7684\u79CD\u7C7B\u3002","\u63A7\u5236\u4F55\u65F6\u5E94\u7528\u8FD4\u56DE\u7684\u64CD\u4F5C\u3002","\u59CB\u7EC8\u5E94\u7528\u7B2C\u4E00\u4E2A\u8FD4\u56DE\u7684\u4EE3\u7801\u64CD\u4F5C\u3002","\u5982\u679C\u4EC5\u8FD4\u56DE\u7684\u7B2C\u4E00\u4E2A\u4EE3\u7801\u64CD\u4F5C\uFF0C\u5219\u5E94\u7528\u8BE5\u64CD\u4F5C\u3002","\u4E0D\u8981\u5E94\u7528\u8FD4\u56DE\u7684\u4EE3\u7801\u64CD\u4F5C\u3002","\u5982\u679C\u53EA\u5E94\u8FD4\u56DE\u9996\u9009\u4EE3\u7801\u64CD\u4F5C\uFF0C\u5219\u5E94\u8FD4\u56DE\u63A7\u4EF6\u3002","\u5FEB\u901F\u4FEE\u590D...","\u6CA1\u6709\u53EF\u7528\u7684\u4EE3\u7801\u64CD\u4F5C",'\u6CA1\u6709\u9002\u7528\u4E8E"{0}"\u7684\u9996\u9009\u4EE3\u7801\u64CD\u4F5C','\u6CA1\u6709\u9002\u7528\u4E8E"{0}"\u7684\u4EE3\u7801\u64CD\u4F5C',"\u6CA1\u6709\u53EF\u7528\u7684\u9996\u9009\u4EE3\u7801\u64CD\u4F5C","\u6CA1\u6709\u53EF\u7528\u7684\u4EE3\u7801\u64CD\u4F5C","\u91CD\u6784...",'\u6CA1\u6709\u9002\u7528\u4E8E"{0}"\u7684\u9996\u9009\u91CD\u6784','\u6CA1\u6709\u53EF\u7528\u7684"{0}"\u91CD\u6784',"\u6CA1\u6709\u53EF\u7528\u7684\u9996\u9009\u91CD\u6784","\u6CA1\u6709\u53EF\u7528\u7684\u91CD\u6784\u64CD\u4F5C","\u6E90\u4EE3\u7801\u64CD\u4F5C...",'\u6CA1\u6709\u9002\u7528\u4E8E"{0}"\u7684\u9996\u9009\u6E90\u64CD\u4F5C',"\u6CA1\u6709\u9002\u7528\u4E8E\u201C {0}\u201D\u7684\u6E90\u64CD\u4F5C","\u6CA1\u6709\u53EF\u7528\u7684\u9996\u9009\u6E90\u64CD\u4F5C","\u6CA1\u6709\u53EF\u7528\u7684\u6E90\u4EE3\u7801\u64CD\u4F5C","\u6574\u7406 import \u8BED\u53E5","\u6CA1\u6709\u53EF\u7528\u7684\u6574\u7406 import \u8BED\u53E5\u64CD\u4F5C","\u5168\u90E8\u4FEE\u590D","\u6CA1\u6709\u53EF\u7528\u7684\u201C\u5168\u90E8\u4FEE\u590D\u201D\u64CD\u4F5C","\u81EA\u52A8\u4FEE\u590D...","\u6CA1\u6709\u53EF\u7528\u7684\u81EA\u52A8\u4FEE\u590D\u7A0B\u5E8F"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["\u542F\u7528/\u7981\u7528\u5728\u4EE3\u7801\u64CD\u4F5C\u83DC\u5355\u4E2D\u663E\u793A\u7EC4\u6807\u5934\u3002","\u542F\u7528/\u7981\u7528\u5728\u5F53\u524D\u672A\u8FDB\u884C\u8BCA\u65AD\u65F6\u663E\u793A\u884C\u5185\u6700\u8FD1\u7684\u5FEB\u901F\u4FEE\u590D\u3002"],"vs/editor/contrib/codeAction/browser/codeActionController":["\u4E0A\u4E0B\u6587: {0} \u4F4D\u4E8E\u884C {1} \u548C\u5217 {2}\u3002","\u9690\u85CF\u5DF2\u7981\u7528\u9879","\u663E\u793A\u5DF2\u7981\u7528\u9879"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["\u66F4\u591A\u64CD\u4F5C...","\u5FEB\u901F\u4FEE\u590D","\u63D0\u53D6","\u5185\u8054","\u91CD\u5199","\u79FB\u52A8","\u5916\u4FA7\u4EE3\u7801","\u6E90\u4EE3\u7801\u64CD\u4F5C"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["\u8FD0\u884C\uFF1A{0}","\u663E\u793A\u4EE3\u7801\u64CD\u4F5C\u3002\u9996\u9009\u53EF\u7528\u7684\u5FEB\u901F\u4FEE\u590D({0})","\u663E\u793A\u4EE3\u7801\u64CD\u4F5C({0})","\u663E\u793A\u4EE3\u7801\u64CD\u4F5C"],"vs/editor/contrib/codelens/browser/codelensController":["\u663E\u793A\u5F53\u524D\u884C\u7684 Code Lens \u547D\u4EE4","\u9009\u62E9\u547D\u4EE4"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["\u5355\u51FB\u4EE5\u5207\u6362\u989C\u8272\u9009\u9879 (rgb/hsl/hex)","\u7528\u4E8E\u5173\u95ED\u989C\u8272\u9009\u53D6\u5668\u7684\u56FE\u6807"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&\u663E\u793A\u6216\u805A\u7126\u72EC\u7ACB\u989C\u8272\u9009\u53D6\u5668","\u9690\u85CF\u989C\u8272\u9009\u53D6\u5668","\u4F7F\u7528\u72EC\u7ACB\u989C\u8272\u9009\u53D6\u5668\u63D2\u5165\u989C\u8272","\u663E\u793A\u6216\u805A\u7126\u72EC\u7ACB\u989C\u8272\u9009\u53D6\u5668"],"vs/editor/contrib/comment/browser/comment":["\u5207\u6362\u884C\u6CE8\u91CA","\u5207\u6362\u884C\u6CE8\u91CA(&&T)","\u6DFB\u52A0\u884C\u6CE8\u91CA","\u5220\u9664\u884C\u6CE8\u91CA","\u5207\u6362\u5757\u6CE8\u91CA","\u5207\u6362\u5757\u6CE8\u91CA(&&B)"],"vs/editor/contrib/contextmenu/browser/contextmenu":["\u7F29\u7565\u56FE","\u5448\u73B0\u5B57\u7B26","\u5782\u76F4\u5927\u5C0F","\u6210\u6BD4\u4F8B","\u586B\u5145","\u9002\u5E94","\u6ED1\u5757","\u9F20\u6807\u60AC\u505C","\u59CB\u7EC8","\u663E\u793A\u7F16\u8F91\u5668\u4E0A\u4E0B\u6587\u83DC\u5355"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["\u5149\u6807\u64A4\u6D88","\u5149\u6807\u91CD\u505A"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["\u7C98\u8D34\u4E3A...","\u8981\u5C1D\u8BD5\u5E94\u7528\u7684\u7C98\u8D34\u7F16\u8F91\u7684 ID\u3002\u5982\u679C\u672A\u63D0\u4F9B\uFF0C\u7F16\u8F91\u5668\u5C06\u663E\u793A\u9009\u53D6\u5668\u3002","\u7C98\u8D34\u4E3A\u6587\u672C"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["\u662F\u5426\u663E\u793A\u7C98\u8D34\u5C0F\u7EC4\u4EF6","\u663E\u793A\u7C98\u8D34\u9009\u9879...","\u627E\u4E0D\u5230\u201C{0}\u201D\u7684\u7C98\u8D34\u7F16\u8F91","\u6B63\u5728\u8FD0\u884C\u7C98\u8D34\u5904\u7406\u7A0B\u5E8F\u3002\u5355\u51FB\u4EE5\u53D6\u6D88","\u9009\u62E9\u7C98\u8D34\u64CD\u4F5C","\u6B63\u5728\u8FD0\u884C\u7C98\u8D34\u5904\u7406\u7A0B\u5E8F"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["\u5185\u7F6E","\u63D2\u5165\u7EAF\u6587\u672C","\u63D2\u5165 URI","\u63D2\u5165 URI","\u63D2\u5165\u8DEF\u5F84","\u63D2\u5165\u8DEF\u5F84","\u63D2\u5165\u76F8\u5BF9\u8DEF\u5F84","\u63D2\u5165\u76F8\u5BF9\u8DEF\u5F84","\u63D2\u5165 HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["\u5C06\u9ED8\u8BA4\u653E\u7F6E\u63D0\u4F9B\u7A0B\u5E8F\u914D\u7F6E\u4E3A\u7528\u4E8E\u7ED9\u5B9A MIME \u7C7B\u578B\u7684\u5185\u5BB9\u3002"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["\u662F\u5426\u663E\u793A\u653E\u7F6E\u5C0F\u7EC4\u4EF6","\u663E\u793A\u653E\u7F6E\u9009\u9879...","\u6B63\u5728\u8FD0\u884C\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u3002\u5355\u51FB\u4EE5\u53D6\u6D88"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["\u7F16\u8F91\u5668\u662F\u5426\u8FD0\u884C\u53EF\u53D6\u6D88\u7684\u64CD\u4F5C\uFF0C\u4F8B\u5982\u201C\u9884\u89C8\u5F15\u7528\u201D"],"vs/editor/contrib/find/browser/findController":["\u6587\u4EF6\u592A\u5927\uFF0C\u65E0\u6CD5\u6267\u884C\u5168\u90E8\u66FF\u6362\u64CD\u4F5C\u3002","\u67E5\u627E","\u67E5\u627E(&&F)","\u4F7F\u7528\u53C2\u6570\u67E5\u627E","\u67E5\u627E\u9009\u5B9A\u5185\u5BB9","\u67E5\u627E\u4E0B\u4E00\u4E2A","\u67E5\u627E\u4E0A\u4E00\u4E2A","\u8F6C\u5230\u201C\u5339\u914D\u201D...","\u65E0\u5339\u914D\u9879\u3002\u8BF7\u5C1D\u8BD5\u641C\u7D22\u5176\u4ED6\u5185\u5BB9\u3002","\u952E\u5165\u6570\u5B57\u4EE5\u8F6C\u5230\u7279\u5B9A\u5339\u914D\u9879(\u4ECB\u4E8E 1 \u548C {0} \u4E4B\u95F4)","\u8BF7\u952E\u5165\u4ECB\u4E8E 1 \u548C {0} \u4E4B\u95F4\u7684\u6570\u5B57","\u8BF7\u952E\u5165\u4ECB\u4E8E 1 \u548C {0} \u4E4B\u95F4\u7684\u6570\u5B57","\u67E5\u627E\u4E0B\u4E00\u4E2A\u9009\u62E9","\u67E5\u627E\u4E0A\u4E00\u4E2A\u9009\u62E9","\u66FF\u6362","\u66FF\u6362(&&R)"],"vs/editor/contrib/find/browser/findWidget":["\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u201C\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E\u201D\u56FE\u6807\u3002","\u7528\u4E8E\u6307\u793A\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u5DF2\u6298\u53E0\u7684\u56FE\u6807\u3002","\u7528\u4E8E\u6307\u793A\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u5DF2\u5C55\u5F00\u7684\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u201C\u66FF\u6362\u201D\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u201C\u5168\u90E8\u66FF\u6362\u201D\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u201C\u67E5\u627E\u4E0A\u4E00\u4E2A\u201D\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u67E5\u627E\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u201C\u67E5\u627E\u4E0B\u4E00\u4E2A\u201D\u56FE\u6807\u3002","\u67E5\u627E/\u66FF\u6362","\u67E5\u627E","\u67E5\u627E","\u4E0A\u4E00\u4E2A\u5339\u914D\u9879","\u4E0B\u4E00\u4E2A\u5339\u914D\u9879","\u5728\u9009\u5B9A\u5185\u5BB9\u4E2D\u67E5\u627E","\u5173\u95ED","\u66FF\u6362","\u66FF\u6362","\u66FF\u6362","\u5168\u90E8\u66FF\u6362","\u5207\u6362\u66FF\u6362","\u4EC5\u9AD8\u4EAE\u4E86\u524D {0} \u4E2A\u7ED3\u679C\uFF0C\u4F46\u6240\u6709\u67E5\u627E\u64CD\u4F5C\u5747\u9488\u5BF9\u5168\u6587\u3002","\u7B2C {0} \u9879\uFF0C\u5171 {1} \u9879","\u65E0\u7ED3\u679C","\u627E\u5230 {0}","\u4E3A\u201C{1}\u201D\u627E\u5230 {0}","\u5728 {2} \u5904\u627E\u5230\u201C{1}\u201D\u7684 {0}","\u4E3A\u201C{1}\u201D\u627E\u5230 {0}","Ctrl+Enter \u73B0\u5728\u7531\u5168\u90E8\u66FF\u6362\u6539\u4E3A\u63D2\u5165\u6362\u884C\u3002\u4F60\u53EF\u4EE5\u4FEE\u6539editor.action.replaceAll \u7684\u6309\u952E\u7ED1\u5B9A\u4EE5\u8986\u76D6\u6B64\u884C\u4E3A\u3002"],"vs/editor/contrib/folding/browser/folding":["\u5C55\u5F00","\u4EE5\u9012\u5F52\u65B9\u5F0F\u5C55\u5F00","\u6298\u53E0","\u5207\u6362\u6298\u53E0","\u4EE5\u9012\u5F52\u65B9\u5F0F\u6298\u53E0","\u6298\u53E0\u6240\u6709\u5757\u6CE8\u91CA","\u6298\u53E0\u6240\u6709\u533A\u57DF","\u5C55\u5F00\u6240\u6709\u533A\u57DF","\u6298\u53E0\u9664\u9009\u5B9A\u9879\u4EE5\u5916\u7684\u6240\u6709\u9879","\u5C55\u5F00\u9664\u6240\u9009\u533A\u57DF\u4E4B\u5916\u7684\u6240\u6709\u533A\u57DF","\u5168\u90E8\u6298\u53E0","\u5168\u90E8\u5C55\u5F00","\u8DF3\u8F6C\u5230\u7236\u7EA7\u6298\u53E0","\u8F6C\u5230\u4E0A\u4E00\u4E2A\u6298\u53E0\u8303\u56F4","\u8F6C\u5230\u4E0B\u4E00\u4E2A\u6298\u53E0\u8303\u56F4","\u6839\u636E\u6240\u9009\u5185\u5BB9\u521B\u5EFA\u6298\u53E0\u8303\u56F4","\u5220\u9664\u624B\u52A8\u6298\u53E0\u8303\u56F4","\u6298\u53E0\u7EA7\u522B {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["\u6298\u53E0\u8303\u56F4\u540E\u9762\u7684\u80CC\u666F\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u8BBE\u4E3A\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u5E95\u5C42\u88C5\u9970\u3002","\u7F16\u8F91\u5668\u88C5\u8BA2\u7EBF\u4E2D\u6298\u53E0\u63A7\u4EF6\u7684\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5B57\u5F62\u8FB9\u8DDD\u4E2D\u5DF2\u5C55\u5F00\u7684\u8303\u56F4\u7684\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u5B57\u5F62\u8FB9\u8DDD\u4E2D\u5DF2\u6298\u53E0\u7684\u8303\u56F4\u7684\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u5B57\u5F62\u8FB9\u8DDD\u4E2D\u624B\u52A8\u6298\u53E0\u7684\u8303\u56F4\u7684\u56FE\u6807\u3002","\u7F16\u8F91\u5668\u5B57\u5F62\u8FB9\u8DDD\u4E2D\u624B\u52A8\u5C55\u5F00\u7684\u8303\u56F4\u7684\u56FE\u6807\u3002","\u5355\u51FB\u4EE5\u5C55\u5F00\u8303\u56F4\u3002","\u5355\u51FB\u4EE5\u6298\u53E0\u8303\u56F4\u3002"],"vs/editor/contrib/fontZoom/browser/fontZoom":["\u589E\u5927\u7F16\u8F91\u5668\u5B57\u53F7","\u51CF\u5C0F\u7F16\u8F91\u5668\u5B57\u53F7","\u91CD\u7F6E\u7F16\u8F91\u5668\u5B57\u53F7"],"vs/editor/contrib/format/browser/formatActions":["\u683C\u5F0F\u5316\u6587\u6863","\u683C\u5F0F\u5316\u9009\u5B9A\u5185\u5BB9"],"vs/editor/contrib/gotoError/browser/gotoError":["\u8F6C\u5230\u4E0B\u4E00\u4E2A\u95EE\u9898 (\u9519\u8BEF\u3001\u8B66\u544A\u3001\u4FE1\u606F)","\u201C\u8F6C\u5230\u4E0B\u4E00\u4E2A\u201D\u6807\u8BB0\u7684\u56FE\u6807\u3002","\u8F6C\u5230\u4E0A\u4E00\u4E2A\u95EE\u9898 (\u9519\u8BEF\u3001\u8B66\u544A\u3001\u4FE1\u606F)","\u201C\u8F6C\u5230\u4E0A\u4E00\u4E2A\u201D\u6807\u8BB0\u7684\u56FE\u6807\u3002","\u8F6C\u5230\u6587\u4EF6\u4E2D\u7684\u4E0B\u4E00\u4E2A\u95EE\u9898 (\u9519\u8BEF\u3001\u8B66\u544A\u3001\u4FE1\u606F)","\u4E0B\u4E00\u4E2A\u95EE\u9898(&&P)","\u8F6C\u5230\u6587\u4EF6\u4E2D\u7684\u4E0A\u4E00\u4E2A\u95EE\u9898 (\u9519\u8BEF\u3001\u8B66\u544A\u3001\u4FE1\u606F)","\u4E0A\u4E00\u4E2A\u95EE\u9898(&&P)"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["\u9519\u8BEF","\u8B66\u544A","\u4FE1\u606F","\u63D0\u793A","{1} \u4E2D\u7684 {0}","{0} \u4E2A\u95EE\u9898(\u5171 {1} \u4E2A)","{0} \u4E2A\u95EE\u9898(\u5171 {1} \u4E2A)","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u9519\u8BEF\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u9519\u8BEF\u6807\u9898\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u8B66\u544A\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u8B66\u544A\u6807\u9898\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u4FE1\u606F\u989C\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u4FE1\u606F\u6807\u9898\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u6807\u8BB0\u5BFC\u822A\u5C0F\u7EC4\u4EF6\u80CC\u666F\u8272\u3002"],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["\u5FEB\u901F\u67E5\u770B","\u5B9A\u4E49","\u672A\u627E\u5230\u201C{0}\u201D\u7684\u4EFB\u4F55\u5B9A\u4E49","\u627E\u4E0D\u5230\u5B9A\u4E49","\u8F6C\u5230\u5B9A\u4E49(&&D)","\u58F0\u660E","\u672A\u627E\u5230\u201C{0}\u201D\u7684\u58F0\u660E","\u672A\u627E\u5230\u58F0\u660E","\u8F6C\u5230\u58F0\u660E(&&D)","\u672A\u627E\u5230\u201C{0}\u201D\u7684\u58F0\u660E","\u672A\u627E\u5230\u58F0\u660E","\u7C7B\u578B\u5B9A\u4E49","\u672A\u627E\u5230\u201C{0}\u201D\u7684\u7C7B\u578B\u5B9A\u4E49","\u672A\u627E\u5230\u7C7B\u578B\u5B9A\u4E49","\u8F6C\u5230\u7C7B\u578B\u5B9A\u4E49(&&T)","\u5B9E\u73B0","\u672A\u627E\u5230\u201C{0}\u201D\u7684\u5B9E\u73B0","\u672A\u627E\u5230\u5B9E\u73B0","\u8F6C\u5230\u5B9E\u73B0(&&I)",'\u672A\u627E\u5230"{0}"\u7684\u5F15\u7528',"\u672A\u627E\u5230\u5F15\u7528","\u8F6C\u5230\u5F15\u7528(&&R)","\u5F15\u7528","\u5F15\u7528","\u4F4D\u7F6E","\u65E0\u201C{0}\u201D\u7684\u7ED3\u679C","\u5F15\u7528","\u8F6C\u5230\u5B9A\u4E49","\u6253\u5F00\u4FA7\u8FB9\u7684\u5B9A\u4E49","\u901F\u89C8\u5B9A\u4E49","\u8F6C\u5230\u58F0\u660E","\u67E5\u770B\u58F0\u660E","\u8F6C\u5230\u7C7B\u578B\u5B9A\u4E49","\u5FEB\u901F\u67E5\u770B\u7C7B\u578B\u5B9A\u4E49","\u8F6C\u5230\u5B9E\u73B0","\u67E5\u770B\u5B9E\u73B0","\u8F6C\u5230\u5F15\u7528","\u67E5\u770B\u5F15\u7528","\u8F6C\u5230\u4EFB\u4F55\u7B26\u53F7"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["\u5355\u51FB\u663E\u793A {0} \u4E2A\u5B9A\u4E49\u3002"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["\u5F15\u7528\u901F\u89C8\u662F\u5426\u53EF\u89C1\uFF0C\u4F8B\u5982\u201C\u901F\u89C8\u5F15\u7528\u201D\u6216\u201C\u901F\u89C8\u5B9A\u4E49\u201D","\u6B63\u5728\u52A0\u8F7D...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} \u4E2A\u5F15\u7528","{0} \u4E2A\u5F15\u7528","\u5F15\u7528"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["\u65E0\u53EF\u7528\u9884\u89C8","\u65E0\u7ED3\u679C","\u5F15\u7528"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["\u5728\u5217 {2} \u884C {1} \u7684 {0} \u4E2D","\u5728\u5217 {3} \u884C {2} \u7684 {1} \u4E2D\u7684 {0}","{0} \u4E2D\u6709 1 \u4E2A\u7B26\u53F7\uFF0C\u5B8C\u6574\u8DEF\u5F84: {1}","{1} \u4E2D\u6709 {0} \u4E2A\u7B26\u53F7\uFF0C\u5B8C\u6574\u8DEF\u5F84: {2}","\u672A\u627E\u5230\u7ED3\u679C","\u5728 {0} \u4E2D\u627E\u5230 1 \u4E2A\u7B26\u53F7","\u5728 {1} \u4E2D\u627E\u5230 {0} \u4E2A\u7B26\u53F7","\u5728 {1} \u4E2A\u6587\u4EF6\u4E2D\u627E\u5230 {0} \u4E2A\u7B26\u53F7"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["\u662F\u5426\u5B58\u5728\u53EA\u80FD\u901A\u8FC7\u952E\u76D8\u5BFC\u822A\u7684\u7B26\u53F7\u4F4D\u7F6E\u3002","{1} \u7684\u7B26\u53F7 {0}\uFF0C\u4E0B\u4E00\u4E2A\u4F7F\u7528 {2}","{1} \u7684\u7B26\u53F7 {0}"],"vs/editor/contrib/hover/browser/hover":["\u663E\u793A\u6216\u805A\u7126\u60AC\u505C","\u60AC\u505C\u4E0D\u4F1A\u81EA\u52A8\u83B7\u5F97\u7126\u70B9\u3002","\u4EC5\u5F53\u60AC\u505C\u5DF2\u53EF\u89C1\u65F6\uFF0C\u624D\u4F1A\u83B7\u5F97\u7126\u70B9\u3002","\u60AC\u505C\u5728\u51FA\u73B0\u65F6\u4F1A\u81EA\u52A8\u83B7\u5F97\u7126\u70B9\u3002","\u663E\u793A\u5B9A\u4E49\u9884\u89C8\u60AC\u505C","\u5411\u4E0A\u6EDA\u52A8\u60AC\u505C","\u5411\u4E0B\u6EDA\u52A8\u60AC\u505C","\u5411\u5DE6\u6EDA\u52A8\u60AC\u505C","\u5411\u53F3\u6EDA\u52A8\u60AC\u505C","\u5411\u4E0A\u7FFB\u9875\u60AC\u505C","\u5411\u4E0B\u7FFB\u9875\u60AC\u505C","\u8F6C\u5230\u9876\u90E8\u60AC\u505C","\u8F6C\u5230\u5E95\u90E8\u60AC\u505C"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["\u6B63\u5728\u52A0\u8F7D...","\u7531\u4E8E\u6027\u80FD\u539F\u56E0\uFF0C\u957F\u7EBF\u7684\u5448\u73B0\u5DF2\u6682\u505C\u3002\u53EF\u901A\u8FC7`editor.stopRenderingLineAfter`\u914D\u7F6E\u6B64\u8BBE\u7F6E\u3002","\u51FA\u4E8E\u6027\u80FD\u539F\u56E0\uFF0C\u672A\u5BF9\u957F\u884C\u8FDB\u884C\u89E3\u6790\u3002\u89E3\u6790\u957F\u5EA6\u9608\u503C\u53EF\u901A\u8FC7\u201Ceditor.maxTokenizationLineLength\u201D\u8FDB\u884C\u914D\u7F6E\u3002"],"vs/editor/contrib/hover/browser/markerHoverParticipant":["\u67E5\u770B\u95EE\u9898","\u6CA1\u6709\u53EF\u7528\u7684\u5FEB\u901F\u4FEE\u590D","\u6B63\u5728\u68C0\u67E5\u5FEB\u901F\u4FEE\u590D...","\u6CA1\u6709\u53EF\u7528\u7684\u5FEB\u901F\u4FEE\u590D","\u5FEB\u901F\u4FEE\u590D..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["\u66FF\u6362\u4E3A\u4E0A\u4E00\u4E2A\u503C","\u66FF\u6362\u4E3A\u4E0B\u4E00\u4E2A\u503C"],"vs/editor/contrib/indentation/browser/indentation":["\u5C06\u7F29\u8FDB\u8F6C\u6362\u4E3A\u7A7A\u683C","\u5C06\u7F29\u8FDB\u8F6C\u6362\u4E3A\u5236\u8868\u7B26","\u5DF2\u914D\u7F6E\u5236\u8868\u7B26\u5927\u5C0F","\u9ED8\u8BA4\u9009\u9879\u5361\u5927\u5C0F","\u5F53\u524D\u9009\u9879\u5361\u5927\u5C0F","\u9009\u62E9\u5F53\u524D\u6587\u4EF6\u7684\u5236\u8868\u7B26\u5927\u5C0F","\u4F7F\u7528\u5236\u8868\u7B26\u7F29\u8FDB","\u4F7F\u7528\u7A7A\u683C\u7F29\u8FDB","\u66F4\u6539\u5236\u8868\u7B26\u663E\u793A\u5927\u5C0F","\u4ECE\u5185\u5BB9\u4E2D\u68C0\u6D4B\u7F29\u8FDB\u65B9\u5F0F","\u91CD\u65B0\u7F29\u8FDB\u884C","\u91CD\u65B0\u7F29\u8FDB\u6240\u9009\u884C"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["\u53CC\u51FB\u4EE5\u63D2\u5165","cmd + \u70B9\u51FB","ctrl + \u70B9\u51FB","option + \u70B9\u51FB","alt + \u70B9\u51FB","\u8F6C\u5230\u5B9A\u4E49 ({0})\uFF0C\u70B9\u51FB\u53F3\u952E\u4EE5\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F","\u8F6C\u5230\u5B9A\u4E49\uFF08{0}\uFF09","\u6267\u884C\u547D\u4EE4"],"vs/editor/contrib/inlineCompletions/browser/commands":["\u663E\u793A\u4E0B\u4E00\u4E2A\u5185\u8054\u5EFA\u8BAE","\u663E\u793A\u4E0A\u4E00\u4E2A\u5185\u8054\u5EFA\u8BAE","\u89E6\u53D1\u5185\u8054\u5EFA\u8BAE","\u63A5\u53D7\u5185\u8054\u5EFA\u8BAE\u7684\u4E0B\u4E00\u4E2A\u5B57","\u63A5\u53D7 Word","\u63A5\u53D7\u5185\u8054\u5EFA\u8BAE\u7684\u4E0B\u4E00\u884C","\u63A5\u53D7\u884C","\u63A5\u53D7\u5185\u8054\u5EFA\u8BAE","\u63A5\u53D7","\u9690\u85CF\u5185\u8054\u5EFA\u8BAE","\u59CB\u7EC8\u663E\u793A\u5DE5\u5177\u680F"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["\u5EFA\u8BAE:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["\u5185\u8054\u5EFA\u8BAE\u662F\u5426\u53EF\u89C1","\u5185\u8054\u5EFA\u8BAE\u662F\u5426\u4EE5\u7A7A\u767D\u5F00\u5934","\u5185\u8054\u5EFA\u8BAE\u662F\u5426\u4EE5\u5C0F\u4E8E\u9009\u9879\u5361\u63D2\u5165\u5185\u5BB9\u7684\u7A7A\u683C\u5F00\u5934","\u662F\u5426\u5E94\u6291\u5236\u5F53\u524D\u5EFA\u8BAE"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\u5728\u8F85\u52A9\u89C6\u56FE\u4E2D\u68C0\u67E5\u6B64\u9879 ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["\u201C\u663E\u793A\u4E0B\u4E00\u4E2A\u53C2\u6570\u201D\u63D0\u793A\u7684\u56FE\u6807\u3002","\u201C\u663E\u793A\u4E0A\u4E00\u4E2A\u53C2\u6570\u201D\u63D0\u793A\u7684\u56FE\u6807\u3002","{0} ({1})","\u4E0A\u4E00\u4E2A","\u4E0B\u4E00\u4E2A"],"vs/editor/contrib/lineSelection/browser/lineSelection":["\u5C55\u5F00\u884C\u9009\u62E9"],"vs/editor/contrib/linesOperations/browser/linesOperations":["\u5411\u4E0A\u590D\u5236\u884C","\u5411\u4E0A\u590D\u5236\u4E00\u884C(&&C)","\u5411\u4E0B\u590D\u5236\u884C","\u5411\u4E0B\u590D\u5236\u4E00\u884C(&&P)","\u91CD\u590D\u9009\u62E9","\u91CD\u590D\u9009\u62E9(&&D)","\u5411\u4E0A\u79FB\u52A8\u884C","\u5411\u4E0A\u79FB\u52A8\u4E00\u884C(&&V)","\u5411\u4E0B\u79FB\u52A8\u884C","\u5411\u4E0B\u79FB\u52A8\u4E00\u884C(&&L)","\u6309\u5347\u5E8F\u6392\u5217\u884C","\u6309\u964D\u5E8F\u6392\u5217\u884C","\u5220\u9664\u91CD\u590D\u884C","\u88C1\u526A\u5C3E\u968F\u7A7A\u683C","\u5220\u9664\u884C","\u884C\u7F29\u8FDB","\u884C\u51CF\u5C11\u7F29\u8FDB","\u5728\u4E0A\u9762\u63D2\u5165\u884C","\u5728\u4E0B\u9762\u63D2\u5165\u884C","\u5220\u9664\u5DE6\u4FA7\u6240\u6709\u5185\u5BB9","\u5220\u9664\u53F3\u4FA7\u6240\u6709\u5185\u5BB9","\u5408\u5E76\u884C","\u8F6C\u7F6E\u5149\u6807\u5904\u7684\u5B57\u7B26","\u8F6C\u6362\u4E3A\u5927\u5199","\u8F6C\u6362\u4E3A\u5C0F\u5199","\u8F6C\u6362\u4E3A\u8BCD\u9996\u5B57\u6BCD\u5927\u5199","\u8F6C\u6362\u4E3A\u86C7\u5F62\u547D\u540D\u6CD5","\u8F6C\u6362\u4E3A\u9A7C\u5CF0\u5F0F\u5927\u5C0F\u5199","\u8F6C\u6362\u4E3A Kebab \u6848\u4F8B"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["\u542F\u52A8\u94FE\u63A5\u7F16\u8F91","\u7F16\u8F91\u5668\u6839\u636E\u7C7B\u578B\u81EA\u52A8\u91CD\u547D\u540D\u65F6\u7684\u80CC\u666F\u8272\u3002"],"vs/editor/contrib/links/browser/links":["\u6B64\u94FE\u63A5\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u65E0\u6CD5\u6253\u5F00: {0}","\u6B64\u94FE\u63A5\u76EE\u6807\u5DF2\u4E22\u5931\uFF0C\u65E0\u6CD5\u6253\u5F00\u3002","\u6267\u884C\u547D\u4EE4","\u6253\u5F00\u94FE\u63A5","cmd + \u5355\u51FB","ctrl + \u5355\u51FB","option + \u5355\u51FB","alt + \u5355\u51FB","\u6267\u884C\u547D\u4EE4 {0}","\u6253\u5F00\u94FE\u63A5"],"vs/editor/contrib/message/browser/messageController":["\u7F16\u8F91\u5668\u5F53\u524D\u662F\u5426\u6B63\u5728\u663E\u793A\u5185\u8054\u6D88\u606F"],"vs/editor/contrib/multicursor/browser/multicursor":["\u6DFB\u52A0\u7684\u5149\u6807: {0}","\u6DFB\u52A0\u7684\u6E38\u6807: {0}","\u5728\u4E0A\u9762\u6DFB\u52A0\u5149\u6807","\u5728\u4E0A\u9762\u6DFB\u52A0\u5149\u6807(&&A)","\u5728\u4E0B\u9762\u6DFB\u52A0\u5149\u6807","\u5728\u4E0B\u9762\u6DFB\u52A0\u5149\u6807(&&D)","\u5728\u884C\u5C3E\u6DFB\u52A0\u5149\u6807","\u5728\u884C\u5C3E\u6DFB\u52A0\u5149\u6807(&&U)","\u5728\u5E95\u90E8\u6DFB\u52A0\u5149\u6807","\u5728\u9876\u90E8\u6DFB\u52A0\u5149\u6807","\u5C06\u4E0B\u4E00\u4E2A\u67E5\u627E\u5339\u914D\u9879\u6DFB\u52A0\u5230\u9009\u62E9","\u6DFB\u52A0\u4E0B\u4E00\u4E2A\u5339\u914D\u9879(&&N)","\u5C06\u9009\u62E9\u5185\u5BB9\u6DFB\u52A0\u5230\u4E0A\u4E00\u67E5\u627E\u5339\u914D\u9879","\u6DFB\u52A0\u4E0A\u4E00\u4E2A\u5339\u914D\u9879(&&R)","\u5C06\u4E0A\u6B21\u9009\u62E9\u79FB\u52A8\u5230\u4E0B\u4E00\u4E2A\u67E5\u627E\u5339\u914D\u9879","\u5C06\u4E0A\u4E2A\u9009\u62E9\u5185\u5BB9\u79FB\u52A8\u5230\u4E0A\u4E00\u67E5\u627E\u5339\u914D\u9879","\u9009\u62E9\u6240\u6709\u627E\u5230\u7684\u67E5\u627E\u5339\u914D\u9879","\u9009\u62E9\u6240\u6709\u5339\u914D\u9879(&&O)","\u66F4\u6539\u6240\u6709\u5339\u914D\u9879","\u805A\u7126\u4E0B\u4E00\u4E2A\u5149\u6807","\u805A\u7126\u4E0B\u4E00\u4E2A\u5149\u6807","\u805A\u7126\u4E0A\u4E00\u4E2A\u5149\u6807","\u805A\u7126\u4E0A\u4E00\u4E2A\u5149\u6807"],"vs/editor/contrib/parameterHints/browser/parameterHints":["\u89E6\u53D1\u53C2\u6570\u63D0\u793A"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["\u201C\u663E\u793A\u4E0B\u4E00\u4E2A\u53C2\u6570\u201D\u63D0\u793A\u7684\u56FE\u6807\u3002","\u201C\u663E\u793A\u4E0A\u4E00\u4E2A\u53C2\u6570\u201D\u63D0\u793A\u7684\u56FE\u6807\u3002","{0}\uFF0C\u63D0\u793A","\u53C2\u6570\u63D0\u793A\u4E2D\u6D3B\u52A8\u9879\u7684\u524D\u666F\u8272\u3002"],"vs/editor/contrib/peekView/browser/peekView":["\u901F\u89C8\u4E2D\u662F\u5426\u5D4C\u5165\u4E86\u5F53\u524D\u4EE3\u7801\u7F16\u8F91\u5668","\u5173\u95ED","\u901F\u89C8\u89C6\u56FE\u6807\u9898\u533A\u57DF\u80CC\u666F\u989C\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u6807\u9898\u989C\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u6807\u9898\u4FE1\u606F\u989C\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u8FB9\u6846\u548C\u7BAD\u5934\u989C\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u80CC\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u4E2D\u884C\u8282\u70B9\u7684\u524D\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u4E2D\u6587\u4EF6\u8282\u70B9\u7684\u524D\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u4E2D\u6240\u9009\u6761\u76EE\u7684\u80CC\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u4E2D\u6240\u9009\u6761\u76EE\u7684\u524D\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7F16\u8F91\u5668\u80CC\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7F16\u8F91\u5668\u4E2D\u88C5\u8BA2\u7EBF\u7684\u80CC\u666F\u8272\u3002","\u901F\u89C8\u89C6\u56FE\u7F16\u8F91\u5668\u4E2D\u7C98\u6EDE\u6EDA\u52A8\u7684\u80CC\u666F\u8272\u3002","\u5728\u901F\u89C8\u89C6\u56FE\u7ED3\u679C\u5217\u8868\u4E2D\u5339\u914D\u7A81\u51FA\u663E\u793A\u989C\u8272\u3002","\u5728\u901F\u89C8\u89C6\u56FE\u7F16\u8F91\u5668\u4E2D\u5339\u914D\u7A81\u51FA\u663E\u793A\u989C\u8272\u3002","\u5728\u901F\u89C8\u89C6\u56FE\u7F16\u8F91\u5668\u4E2D\u5339\u914D\u9879\u7684\u7A81\u51FA\u663E\u793A\u8FB9\u6846\u3002"],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\u5148\u6253\u5F00\u6587\u672C\u7F16\u8F91\u5668\u7136\u540E\u8DF3\u8F6C\u5230\u884C\u3002","\u8F6C\u5230\u7B2C {0} \u884C\u7B2C {1} \u4E2A\u5B57\u7B26\u3002","\u8F6C\u5230\u884C {0}\u3002","\u5F53\u524D\u884C: {0}\uFF0C\u5B57\u7B26: {1}\u3002\u952E\u5165\u8981\u5BFC\u822A\u5230\u7684\u884C\u53F7(\u4ECB\u4E8E 1 \u81F3 {2} \u4E4B\u95F4)\u3002","\u5F53\u524D\u884C: {0}\uFF0C\u5B57\u7B26: {1}\u3002 \u952E\u5165\u8981\u5BFC\u822A\u5230\u7684\u884C\u53F7\u3002"],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\u8981\u8F6C\u5230\u7B26\u53F7\uFF0C\u9996\u5148\u6253\u5F00\u5177\u6709\u7B26\u53F7\u4FE1\u606F\u7684\u6587\u672C\u7F16\u8F91\u5668\u3002","\u6D3B\u52A8\u6587\u672C\u7F16\u8F91\u5668\u4E0D\u63D0\u4F9B\u7B26\u53F7\u4FE1\u606F\u3002","\u6CA1\u6709\u5339\u914D\u7684\u7F16\u8F91\u5668\u7B26\u53F7","\u6CA1\u6709\u7F16\u8F91\u5668\u7B26\u53F7","\u5728\u4FA7\u8FB9\u6253\u5F00","\u5728\u5E95\u90E8\u6253\u5F00","\u7B26\u53F7({0})","\u5C5E\u6027({0})","\u65B9\u6CD5({0})","\u51FD\u6570({0})","\u6784\u9020\u51FD\u6570 ({0})","\u53D8\u91CF({0})","\u7C7B({0})","\u7ED3\u6784({0})","\u4E8B\u4EF6({0})","\u8FD0\u7B97\u7B26({0})","\u63A5\u53E3({0})","\u547D\u540D\u7A7A\u95F4({0})","\u5305({0})","\u7C7B\u578B\u53C2\u6570({0})","\u6A21\u5757({0})","\u5C5E\u6027({0})","\u679A\u4E3E({0})","\u679A\u4E3E\u6210\u5458({0})","\u5B57\u7B26\u4E32({0})","\u6587\u4EF6({0})","\u6570\u7EC4({0})","\u6570\u5B57({0})","\u5E03\u5C14\u503C({0})","\u5BF9\u8C61({0})","\u952E({0})","\u5B57\u6BB5({0})","\u5E38\u91CF({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["\u65E0\u6CD5\u5728\u53EA\u8BFB\u8F93\u5165\u4E2D\u7F16\u8F91","\u65E0\u6CD5\u5728\u53EA\u8BFB\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91"],"vs/editor/contrib/rename/browser/rename":["\u65E0\u7ED3\u679C\u3002","\u89E3\u6790\u91CD\u547D\u540D\u4F4D\u7F6E\u65F6\u53D1\u751F\u672A\u77E5\u9519\u8BEF","\u6B63\u5728\u5C06\u201C{0}\u201D\u91CD\u547D\u540D\u4E3A\u201C{1}\u201D","\u5C06 {0} \u91CD\u547D\u540D\u4E3A {1}","\u6210\u529F\u5C06\u201C{0}\u201D\u91CD\u547D\u540D\u4E3A\u201C{1}\u201D\u3002\u6458\u8981: {2}","\u91CD\u547D\u540D\u65E0\u6CD5\u5E94\u7528\u4FEE\u6539","\u91CD\u547D\u540D\u65E0\u6CD5\u8BA1\u7B97\u4FEE\u6539","\u91CD\u547D\u540D\u7B26\u53F7","\u542F\u7528/\u7981\u7528\u91CD\u547D\u540D\u4E4B\u524D\u9884\u89C8\u66F4\u6539\u7684\u529F\u80FD","\u805A\u7126\u4E0B\u4E00\u4E2A\u91CD\u547D\u540D\u5EFA\u8BAE","\u805A\u7126\u4E0A\u4E00\u4E2A\u91CD\u547D\u540D\u5EFA\u8BAE"],"vs/editor/contrib/rename/browser/renameInputField":["\u91CD\u547D\u540D\u8F93\u5165\u5C0F\u7EC4\u4EF6\u662F\u5426\u53EF\u89C1","\u662F\u5426\u805A\u7126\u91CD\u547D\u540D\u8F93\u5165\u5C0F\u7EC4\u4EF6",'\u91CD\u547D\u540D\u8F93\u5165\u3002\u952E\u5165\u65B0\u540D\u79F0\u5E76\u6309 "Enter" \u63D0\u4EA4\u3002',"\u6309 {0} \u8FDB\u884C\u91CD\u547D\u540D\uFF0C\u6309 {1} \u8FDB\u884C\u9884\u89C8","\u5DF2\u6536\u5230 {0} \u91CD\u547D\u540D\u5EFA\u8BAE"],"vs/editor/contrib/smartSelect/browser/smartSelect":["\u5C55\u5F00\u9009\u62E9","\u6269\u5927\u9009\u533A(&&E)","\u6536\u8D77\u9009\u62E9","\u7F29\u5C0F\u9009\u533A(&&S)"],"vs/editor/contrib/snippet/browser/snippetController2":["\u7F16\u8F91\u5668\u76EE\u524D\u662F\u5426\u5728\u4EE3\u7801\u7247\u6BB5\u6A21\u5F0F\u4E0B","\u5728\u4EE3\u7801\u7247\u6BB5\u6A21\u5F0F\u4E0B\u65F6\u662F\u5426\u5B58\u5728\u4E0B\u4E00\u5236\u8868\u4F4D","\u5728\u4EE3\u7801\u7247\u6BB5\u6A21\u5F0F\u4E0B\u65F6\u662F\u5426\u5B58\u5728\u4E0A\u4E00\u5236\u8868\u4F4D","\u8F6C\u5230\u4E0B\u4E00\u4E2A\u5360\u4F4D\u7B26..."],"vs/editor/contrib/snippet/browser/snippetVariables":["\u661F\u671F\u5929","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D","\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D","\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","5\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708","1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11 \u6708","12\u6708"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["\u5207\u6362\u7F16\u8F91\u5668\u7C98\u6EDE\u6EDA\u52A8","\u7C98\u6EDE\u6EDA\u52A8","\u7C98\u6EDE\u6EDA\u52A8(&&S)","\u805A\u7126\u7C98\u6027\u6EDA\u52A8(&&F)","\u5207\u6362\u7F16\u8F91\u5668\u7C98\u6EDE\u6EDA\u52A8","\u805A\u7126\u7C98\u6027\u6EDA\u52A8","\u9009\u62E9\u4E0B\u4E00\u4E2A\u7C98\u6027\u6EDA\u52A8\u884C","\u9009\u62E9\u4E0A\u4E00\u4E2A\u7C98\u6027\u6EDA\u52A8\u884C","\u8F6C\u5230\u805A\u7126\u7684\u7C98\u6027\u6EDA\u52A8\u884C","\u9009\u62E9\u7F16\u8F91\u5668"],"vs/editor/contrib/suggest/browser/suggest":["\u662F\u5426\u4EE5\u4EFB\u4F55\u5EFA\u8BAE\u4E3A\u4E2D\u5FC3","\u5EFA\u8BAE\u8BE6\u7EC6\u4FE1\u606F\u662F\u5426\u53EF\u89C1","\u662F\u5426\u5B58\u5728\u591A\u6761\u5EFA\u8BAE\u53EF\u4F9B\u9009\u62E9","\u63D2\u5165\u5F53\u524D\u5EFA\u8BAE\u662F\u5426\u4F1A\u5BFC\u81F4\u66F4\u6539\u6216\u5BFC\u81F4\u5DF2\u952E\u5165\u6240\u6709\u5185\u5BB9","\u6309 Enter \u65F6\u662F\u5426\u4F1A\u63D2\u5165\u5EFA\u8BAE","\u5F53\u524D\u5EFA\u8BAE\u662F\u5426\u5177\u6709\u63D2\u5165\u548C\u66FF\u6362\u884C\u4E3A","\u9ED8\u8BA4\u884C\u4E3A\u662F\u5426\u662F\u63D2\u5165\u6216\u66FF\u6362","\u5F53\u524D\u5EFA\u8BAE\u662F\u5426\u652F\u6301\u89E3\u6790\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F"],"vs/editor/contrib/suggest/browser/suggestController":["\u9009\u62E9\u201C{0}\u201D\u540E\u8FDB\u884C\u4E86\u5176\u4ED6 {1} \u6B21\u7F16\u8F91","\u89E6\u53D1\u5EFA\u8BAE","\u63D2\u5165","\u63D2\u5165","\u66FF\u6362","\u66FF\u6362","\u63D2\u5165","\u663E\u793A\u66F4\u5C11","\u663E\u793A\u66F4\u591A","\u91CD\u7F6E\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u5927\u5C0F"],"vs/editor/contrib/suggest/browser/suggestWidget":["\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u80CC\u666F\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u524D\u666F\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u6240\u9009\u6761\u76EE\u7684\u524D\u666F\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u6240\u9009\u6761\u76EE\u7684\u56FE\u6807\u524D\u666F\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u6240\u9009\u6761\u76EE\u7684\u80CC\u666F\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u5339\u914D\u5185\u5BB9\u7684\u9AD8\u4EAE\u989C\u8272\u3002","\u5F53\u67D0\u9879\u83B7\u5F97\u7126\u70B9\u65F6\uFF0C\u5728\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u7A81\u51FA\u663E\u793A\u7684\u5339\u914D\u9879\u7684\u989C\u8272\u3002","\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u72B6\u6001\u7684\u524D\u666F\u8272\u3002","\u6B63\u5728\u52A0\u8F7D...","\u65E0\u5EFA\u8BAE\u3002","\u5EFA\u8BAE","{0} {1}\uFF0C{2}","{0} {1}","{0}\uFF0C{1}","{0}\uFF0C\u6587\u6863: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["\u5173\u95ED","\u6B63\u5728\u52A0\u8F7D\u2026"],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u7684\u8BE6\u7EC6\u4FE1\u606F\u7684\u56FE\u6807\u3002","\u4E86\u89E3\u8BE6\u7EC6\u4FE1\u606F"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["\u6570\u7EC4\u7B26\u53F7\u7684\u524D\u666F\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u5C06\u663E\u793A\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u3002","\u5E03\u5C14\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u7C7B\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u989C\u8272\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5E38\u91CF\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6784\u9020\u51FD\u6570\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u679A\u4E3E\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u679A\u4E3E\u5668\u6210\u5458\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u4E8B\u4EF6\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5B57\u6BB5\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6587\u4EF6\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6587\u4EF6\u5939\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u51FD\u6570\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u63A5\u53E3\u7B26\u53F7\u7684\u524D\u666F\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u5C06\u663E\u793A\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u3002","\u952E\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5173\u952E\u5B57\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u65B9\u6CD5\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6A21\u5757\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u547D\u540D\u7A7A\u95F4\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u8F6E\u5ED3\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u7A7A\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6570\u5B57\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5BF9\u8C61\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u8FD0\u7B97\u7B26\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5305\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5C5E\u6027\u7B26\u53F7\u7684\u524D\u666F\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u4E2D\u3002","\u53C2\u8003\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u7247\u6BB5\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5B57\u7B26\u4E32\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u8F6E\u5ED3\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u7ED3\u6784\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u6587\u672C\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u7C7B\u578B\u53C2\u6570\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u5355\u4F4D\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002","\u53D8\u91CF\u7B26\u53F7\u7684\u524D\u666F\u989C\u8272\u3002\u8FD9\u4E9B\u7B26\u53F7\u51FA\u73B0\u5728\u5927\u7EB2\u3001\u75D5\u8FF9\u5BFC\u822A\u680F\u548C\u5EFA\u8BAE\u5C0F\u90E8\u4EF6\u4E2D\u3002"],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["Tab \u952E\u5C06\u79FB\u52A8\u5230\u4E0B\u4E00\u53EF\u805A\u7126\u7684\u5143\u7D20","Tab \u952E\u5C06\u63D2\u5165\u5236\u8868\u7B26","\u5207\u6362 Tab \u952E\u79FB\u52A8\u7126\u70B9"],"vs/editor/contrib/tokenization/browser/tokenization":["\u5F00\u53D1\u4EBA\u5458: \u5F3A\u5236\u91CD\u65B0\u8FDB\u884C\u6807\u8BB0"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["\u6269\u5C55\u7F16\u8F91\u5668\u4E2D\u968F\u8B66\u544A\u6D88\u606F\u4E00\u540C\u663E\u793A\u7684\u56FE\u6807\u3002","\u672C\u6587\u6863\u5305\u542B\u8BB8\u591A\u975E\u57FA\u672C ASCII unicode \u5B57\u7B26","\u672C\u6587\u6863\u5305\u542B\u8BB8\u591A\u4E0D\u660E\u786E\u7684 unicode \u5B57\u7B26","\u672C\u6587\u6863\u5305\u542B\u8BB8\u591A\u4E0D\u53EF\u89C1\u7684 unicode \u5B57\u7B26","\u914D\u7F6E Unicode \u7A81\u51FA\u663E\u793A\u9009\u9879","\u5B57\u7B26 {0} \u53EF\u80FD\u4F1A\u4E0E ASCII \u5B57\u7B26 {1} \u6DF7\u6DC6\uFF0C\u540E\u8005\u5728\u6E90\u4EE3\u7801\u4E2D\u66F4\u4E3A\u5E38\u89C1\u3002","\u5B57\u7B26 {0} \u53EF\u80FD\u4F1A\u4E0E\u5B57\u7B26 {1} \u6DF7\u6DC6\uFF0C\u540E\u8005\u5728\u6E90\u4EE3\u7801\u4E2D\u66F4\u4E3A\u5E38\u89C1\u3002","\u5B57\u7B26 {0} \u4E0D\u53EF\u89C1\u3002","\u5B57\u7B26 {0} \u4E0D\u662F\u57FA\u672C ASCII \u5B57\u7B26\u3002","\u8C03\u6574\u8BBE\u7F6E","\u7981\u7528\u6279\u6CE8\u4E2D\u7684\u7A81\u51FA\u663E\u793A","\u7981\u7528\u6279\u6CE8\u4E2D\u5B57\u7B26\u7684\u7A81\u51FA\u663E\u793A","\u7981\u7528\u5B57\u7B26\u4E32\u4E2D\u7684\u7A81\u51FA\u663E\u793A","\u7981\u7528\u5B57\u7B26\u4E32\u4E2D\u5B57\u7B26\u7684\u7A81\u51FA\u663E\u793A","\u7981\u7528\u4E0D\u660E\u786E\u7684\u7A81\u51FA\u663E\u793A","\u7981\u6B62\u7A81\u51FA\u663E\u793A\u6B67\u4E49\u5B57\u7B26","\u7981\u7528\u4E0D\u53EF\u89C1\u7A81\u51FA\u663E\u793A","\u7981\u6B62\u7A81\u51FA\u663E\u793A\u4E0D\u53EF\u89C1\u5B57\u7B26","\u7981\u7528\u975E ASCII \u7A81\u51FA\u663E\u793A","\u7981\u6B62\u7A81\u51FA\u663E\u793A\u975E\u57FA\u672C ASCII \u5B57\u7B26","\u663E\u793A\u6392\u9664\u9009\u9879","\u4E0D\u7A81\u51FA\u663E\u793A {0} (\u4E0D\u53EF\u89C1\u5B57\u7B26)","\u5728\u7A81\u51FA\u663E\u793A\u5185\u5BB9\u4E2D\u6392\u9664{0}","\u5141\u8BB8\u8BED\u8A00\u201C{0}\u201D\u4E2D\u66F4\u5E38\u89C1\u7684 unicode \u5B57\u7B26\u3002"],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["\u5F02\u5E38\u884C\u7EC8\u6B62\u7B26","\u68C0\u6D4B\u5230\u5F02\u5E38\u884C\u7EC8\u6B62\u7B26",`\u6587\u4EF6\u201C{0}\u201D\u5305\u542B\u4E00\u4E2A\u6216\u591A\u4E2A\u5F02\u5E38\u7684\u884C\u7EC8\u6B62\u7B26\uFF0C\u4F8B\u5982\u884C\u5206\u9694\u7B26(LS)\u6216\u6BB5\u843D\u5206\u9694\u7B26(PS)\u3002\r +\r +\u5EFA\u8BAE\u4ECE\u6587\u4EF6\u4E2D\u5220\u9664\u5B83\u4EEC\u3002\u53EF\u901A\u8FC7\u201Ceditor.unusualLineTerminators\u201D\u8FDB\u884C\u914D\u7F6E\u3002`,"\u5220\u9664\u5F02\u5E38\u884C\u7EC8\u6B62\u7B26(&&R)","\u5FFD\u7565"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["\u8BFB\u53D6\u8BBF\u95EE\u671F\u95F4\u7B26\u53F7\u7684\u80CC\u666F\u8272\uFF0C\u4F8B\u5982\u8BFB\u53D6\u53D8\u91CF\u65F6\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5199\u5165\u8BBF\u95EE\u8FC7\u7A0B\u4E2D\u7B26\u53F7\u7684\u80CC\u666F\u8272\uFF0C\u4F8B\u5982\u5199\u5165\u53D8\u91CF\u65F6\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7B26\u53F7\u5728\u6587\u672C\u4E2D\u51FA\u73B0\u65F6\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u5C42\u7684\u4FEE\u9970\u3002","\u7B26\u53F7\u5728\u8FDB\u884C\u8BFB\u53D6\u8BBF\u95EE\u64CD\u4F5C\u65F6\u7684\u8FB9\u6846\u989C\u8272\uFF0C\u4F8B\u5982\u8BFB\u53D6\u53D8\u91CF\u3002","\u7B26\u53F7\u5728\u8FDB\u884C\u5199\u5165\u8BBF\u95EE\u64CD\u4F5C\u65F6\u7684\u8FB9\u6846\u989C\u8272\uFF0C\u4F8B\u5982\u5199\u5165\u53D8\u91CF\u3002","\u7B26\u53F7\u5728\u6587\u672C\u4E2D\u51FA\u73B0\u65F6\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A\u7B26\u53F7\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A\u5199\u6743\u9650\u7B26\u53F7\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7B26\u53F7\u5728\u6587\u672C\u4E2D\u51FA\u73B0\u65F6\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u5C42\u7684\u4FEE\u9970\u3002"],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["\u8F6C\u5230\u4E0B\u4E00\u4E2A\u7A81\u51FA\u663E\u793A\u7684\u7B26\u53F7","\u8F6C\u5230\u4E0A\u4E00\u4E2A\u7A81\u51FA\u663E\u793A\u7684\u7B26\u53F7","\u89E6\u53D1\u7B26\u53F7\u9AD8\u4EAE"],"vs/editor/contrib/wordOperations/browser/wordOperations":["\u5220\u9664 Word"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["\u884C\u4E0A\u7684\u9519\u8BEF","\u9519\u8BEF","\u884C\u4E0A\u7684\u8B66\u544A","\u8B66\u544A","\u884C\u4E0A\u7684\u6298\u53E0\u533A\u57DF","\u5DF2\u6298\u53E0","\u884C\u4E0A\u7684\u65AD\u70B9","\u65AD\u70B9","\u884C\u4E0A\u7684\u5185\u8054\u5EFA\u8BAE","\u7EC8\u7AEF\u5FEB\u901F\u4FEE\u590D","\u5FEB\u901F\u4FEE\u590D","\u8C03\u8BD5\u7A0B\u5E8F\u5DF2\u5728\u65AD\u70B9\u5904\u505C\u6B62","\u65AD\u70B9","\u884C\u4E0A\u65E0\u5D4C\u5165\u63D0\u793A","\u65E0\u5185\u5D4C\u63D0\u793A","\u4EFB\u52A1\u5DF2\u5B8C\u6210","\u4EFB\u52A1\u5DF2\u5B8C\u6210","\u4EFB\u52A1\u5931\u8D25","\u4EFB\u52A1\u5931\u8D25","\u7EC8\u7AEF\u547D\u4EE4\u5931\u8D25","\u547D\u4EE4\u5931\u8D25","\u7EC8\u7AEF\u949F","\u7EC8\u7AEF\u949F","\u7B14\u8BB0\u672C\u5355\u5143\u683C\u5DF2\u5B8C\u6210","\u7B14\u8BB0\u672C\u5355\u5143\u683C\u5DF2\u5B8C\u6210","\u7B14\u8BB0\u672C\u5355\u5143\u683C\u5931\u8D25","\u7B14\u8BB0\u672C\u5355\u5143\u683C\u5931\u8D25","\u5DF2\u63D2\u5165\u5DEE\u5F02\u7EBF","\u5DF2\u5220\u9664\u5DEE\u5F02\u884C","\u5DEE\u5F02\u884C\u5DF2\u4FEE\u6539","\u5DF2\u53D1\u9001\u804A\u5929\u8BF7\u6C42","\u5DF2\u53D1\u9001\u804A\u5929\u8BF7\u6C42","\u5DF2\u6536\u5230\u804A\u5929\u54CD\u5E94","\u804A\u5929\u54CD\u5E94\u6302\u8D77","\u804A\u5929\u54CD\u5E94\u6302\u8D77","\u6E05\u9664","\u6E05\u9664","\u4FDD\u5B58","\u4FDD\u5B58","\u683C\u5F0F","\u683C\u5F0F"],"vs/platform/action/common/actionCommonCategories":["\u67E5\u770B","\u5E2E\u52A9","\u6D4B\u8BD5","\u6587\u4EF6","\u9996\u9009\u9879","\u5F00\u53D1\u4EBA\u5458"],"vs/platform/actionWidget/browser/actionList":["\u6309 {0} \u4EE5\u5E94\u7528\uFF0C\u6309 {1} \u4EE5\u9884\u89C8","\u6309 {0} \u4EE5\u5E94\u7528","{0}\uFF0C\u7981\u7528\u539F\u56E0: {1}","\u64CD\u4F5C\u5C0F\u7EC4\u4EF6"],"vs/platform/actionWidget/browser/actionWidget":["\u64CD\u4F5C\u680F\u4E2D\u5207\u6362\u7684\u64CD\u4F5C\u9879\u7684\u80CC\u666F\u8272\u3002","\u64CD\u4F5C\u5C0F\u7EC4\u4EF6\u5217\u8868\u662F\u5426\u53EF\u89C1","\u9690\u85CF\u64CD\u4F5C\u5C0F\u7EC4\u4EF6","\u9009\u62E9\u4E0A\u4E00\u4E2A\u64CD\u4F5C","\u9009\u62E9\u4E0B\u4E00\u4E2A\u64CD\u4F5C","\u63A5\u53D7\u6240\u9009\u64CD\u4F5C","\u9884\u89C8\u6240\u9009\u64CD\u4F5C"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["\u9690\u85CF","\u91CD\u7F6E\u83DC\u5355"],"vs/platform/actions/common/menuService":["\u9690\u85CF\u201C{0}\u201D"],"vs/platform/configuration/common/configurationRegistry":["\u9ED8\u8BA4\u8BED\u8A00\u914D\u7F6E\u66FF\u4EE3","\u914D\u7F6E\u8981\u4E3A {0} \u8BED\u8A00\u66FF\u4EE3\u7684\u8BBE\u7F6E\u3002","\u9488\u5BF9\u67D0\u79CD\u8BED\u8A00\uFF0C\u914D\u7F6E\u66FF\u4EE3\u7F16\u8F91\u5668\u8BBE\u7F6E\u3002","\u6B64\u8BBE\u7F6E\u4E0D\u652F\u6301\u6309\u8BED\u8A00\u914D\u7F6E\u3002","\u9488\u5BF9\u67D0\u79CD\u8BED\u8A00\uFF0C\u914D\u7F6E\u66FF\u4EE3\u7F16\u8F91\u5668\u8BBE\u7F6E\u3002","\u6B64\u8BBE\u7F6E\u4E0D\u652F\u6301\u6309\u8BED\u8A00\u914D\u7F6E\u3002","\u65E0\u6CD5\u6CE8\u518C\u7A7A\u5C5E\u6027",'\u65E0\u6CD5\u6CE8\u518C\u201C{0}\u201D\u3002\u5176\u7B26\u5408\u63CF\u8FF0\u7279\u5B9A\u8BED\u8A00\u7F16\u8F91\u5668\u8BBE\u7F6E\u7684\u8868\u8FBE\u5F0F "\\\\[.*\\\\]$"\u3002\u8BF7\u4F7F\u7528 "configurationDefaults"\u3002',"\u65E0\u6CD5\u6CE8\u518C\u201C{0}\u201D\u3002\u6B64\u5C5E\u6027\u5DF2\u6CE8\u518C\u3002",'\u65E0\u6CD5\u6CE8\u518C "{0}"\u3002\u5173\u8054\u7684\u7B56\u7565 {1} \u5DF2\u5411 {2} \u6CE8\u518C\u3002'],"vs/platform/contextkey/browser/contextKeyService":["\u7528\u4E8E\u8FD4\u56DE\u4E0A\u4E0B\u6587\u952E\u7684\u76F8\u5173\u4FE1\u606F\u7684\u547D\u4EE4"],"vs/platform/contextkey/common/contextkey":["\u4E0A\u4E0B\u6587\u952E\u8868\u8FBE\u5F0F\u4E3A\u7A7A",'\u5FD8\u8BB0\u5199\u5165\u8868\u8FBE\u5F0F\u4E86\u5417? \u8FD8\u53EF\u4EE5\u653E\u7F6E "false" \u6216 "true" \u4EE5\u59CB\u7EC8\u5206\u522B\u8BC4\u4F30\u4E3A false \u6216 true\u3002','"not" \u540E\u9762\u7684 "in"\u3002','\u53F3\u62EC\u53F7 ")"',"\u610F\u5916\u7684\u4EE4\u724C","\u5FD8\u8BB0\u5728\u4EE4\u724C\u4E4B\u524D\u653E\u7F6E && \u6216 || \u4E86\u5417?","\u610F\u5916\u7684\u8868\u8FBE\u5F0F\u7ED3\u5C3E","\u5FD8\u8BB0\u653E\u7F6E\u4E0A\u4E0B\u6587\u952E\u4E86\u5417?",`\u5E94\u4E3A: {0}\r +\u6536\u5230\u7684: "{1}"\u3002`],"vs/platform/contextkey/common/contextkeys":["\u64CD\u4F5C\u7CFB\u7EDF\u662F\u5426 macOS","\u64CD\u4F5C\u7CFB\u7EDF\u662F\u5426\u4E3A Linux","\u64CD\u4F5C\u7CFB\u7EDF\u662F\u5426\u4E3A Windows","\u5E73\u53F0\u662F\u5426\u4E3A Web \u6D4F\u89C8\u5668","\u64CD\u4F5C\u7CFB\u7EDF\u662F\u5426\u662F\u975E\u6D4F\u89C8\u5668\u5E73\u53F0\u4E0A\u7684 macOS","\u64CD\u4F5C\u7CFB\u7EDF\u662F\u5426\u4E3A iOS","\u5E73\u53F0\u662F\u5426\u4E3A Web \u6D4F\u89C8\u5668","VS Code \u7684\u8D28\u91CF\u7C7B\u578B","\u952E\u76D8\u7126\u70B9\u662F\u5426\u5728\u8F93\u5165\u6846\u4E2D"],"vs/platform/contextkey/common/scanner":["\u4F60\u6307\u7684\u662F {0} \u5417?","\u4F60\u6307\u7684\u662F {0} \u8FD8\u662F {1}?","\u4F60\u6307\u7684\u662F {0}\u3001{1} \u8FD8\u662F {2}?","\u5FD8\u8BB0\u5DE6\u5F15\u53F7\u6216\u53F3\u5F15\u53F7\u4E86\u5417?",'\u5FD8\u8BB0\u8F6C\u4E49 "/"(\u659C\u6760)\u5B57\u7B26\u4E86\u5417? \u5728\u8BE5\u5B57\u7B26\u524D\u653E\u7F6E\u4E24\u4E2A\u53CD\u659C\u6760\u4EE5\u8FDB\u884C\u8F6C\u4E49\uFF0C\u4F8B\u5982 "\\\\/"\u3002'],"vs/platform/history/browser/contextScopedHistoryWidget":["\u5EFA\u8BAE\u662F\u5426\u53EF\u89C1"],"vs/platform/keybinding/common/abstractKeybindingService":["({0})\u5DF2\u6309\u4E0B\u3002\u6B63\u5728\u7B49\u5F85\u6309\u4E0B\u7B2C\u4E8C\u4E2A\u952E...","\u5DF2\u6309\u4E0B({0})\u3002\u6B63\u5728\u7B49\u5F85\u7B2C\u4E8C\u4E2A\u952E...","\u7EC4\u5408\u952E({0}\uFF0C{1})\u4E0D\u662F\u547D\u4EE4\u3002","\u7EC4\u5408\u952E({0}\uFF0C{1})\u4E0D\u662F\u547D\u4EE4\u3002"],"vs/platform/list/browser/listService":["\u5DE5\u4F5C\u53F0","\u6620\u5C04\u4E3A `Ctrl` (Windows \u548C Linux) \u6216 `Command` (macOS)\u3002","\u6620\u5C04\u4E3A `Alt` (Windows \u548C Linux) \u6216 `Option` (macOS)\u3002","\u5728\u901A\u8FC7\u9F20\u6807\u591A\u9009\u6811\u548C\u5217\u8868\u6761\u76EE\u65F6\u4F7F\u7528\u7684\u4FEE\u6539\u952E (\u4F8B\u5982\u201C\u8D44\u6E90\u7BA1\u7406\u5668\u201D\u3001\u201C\u6253\u5F00\u7684\u7F16\u8F91\u5668\u201D\u548C\u201C\u6E90\u4EE3\u7801\u7BA1\u7406\u201D\u89C6\u56FE)\u3002\u201C\u5728\u4FA7\u8FB9\u6253\u5F00\u201D\u529F\u80FD\u6240\u9700\u7684\u9F20\u6807\u52A8\u4F5C (\u82E5\u53EF\u7528) \u5C06\u4F1A\u76F8\u5E94\u8C03\u6574\uFF0C\u4E0D\u4E0E\u591A\u9009\u4FEE\u6539\u952E\u51B2\u7A81\u3002","\u63A7\u5236\u5982\u4F55\u4F7F\u7528\u9F20\u6807\u6253\u5F00\u6811\u548C\u5217\u8868\u4E2D\u7684\u9879(\u82E5\u652F\u6301)\u3002\u8BF7\u6CE8\u610F\uFF0C\u5982\u679C\u6B64\u8BBE\u7F6E\u4E0D\u9002\u7528\uFF0C\u67D0\u4E9B\u6811\u548C\u5217\u8868\u53EF\u80FD\u4F1A\u9009\u62E9\u5FFD\u7565\u5B83\u3002","\u63A7\u5236\u5DE5\u4F5C\u53F0\u4E0A\u7684\u5217\u8868\u548C\u6811\u662F\u5426\u652F\u6301\u6C34\u5E73\u6EDA\u52A8\u3002\u8B66\u544A: \u6253\u5F00\u6B64\u8BBE\u7F6E\u4F1A\u5F71\u54CD\u6027\u80FD\u3002","\u63A7\u5236\u5728\u6EDA\u52A8\u6761\u4E2D\u5355\u51FB\u65F6\u662F\u5426\u9010\u9875\u5355\u51FB\u3002","\u63A7\u5236\u6811\u7F29\u8FDB(\u4EE5\u50CF\u7D20\u4E3A\u5355\u4F4D)\u3002","\u63A7\u5236\u6811\u662F\u5426\u5E94\u5448\u73B0\u7F29\u8FDB\u53C2\u8003\u7EBF\u3002","\u63A7\u5236\u5217\u8868\u548C\u6811\u662F\u5426\u5177\u6709\u5E73\u6ED1\u6EDA\u52A8\u6548\u679C\u3002","\u5BF9\u9F20\u6807\u6EDA\u8F6E\u6EDA\u52A8\u4E8B\u4EF6\u7684 `deltaX` \u548C `deltaY` \u4E58\u4E0A\u7684\u7CFB\u6570\u3002",'\u6309\u4E0B"Alt"\u65F6\u6EDA\u52A8\u901F\u5EA6\u500D\u589E\u3002',"\u641C\u7D22\u65F6\u7A81\u51FA\u663E\u793A\u5143\u7D20\u3002\u8FDB\u4E00\u6B65\u5411\u4E0A\u548C\u5411\u4E0B\u5BFC\u822A\u5C06\u4EC5\u904D\u5386\u7A81\u51FA\u663E\u793A\u7684\u5143\u7D20\u3002","\u641C\u7D22\u65F6\u7B5B\u9009\u5143\u7D20\u3002","\u63A7\u5236\u5DE5\u4F5C\u53F0\u4E2D\u5217\u8868\u548C\u6811\u7684\u9ED8\u8BA4\u67E5\u627E\u6A21\u5F0F\u3002","\u7B80\u5355\u952E\u76D8\u5BFC\u822A\u805A\u7126\u4E0E\u952E\u76D8\u8F93\u5165\u76F8\u5339\u914D\u7684\u5143\u7D20\u3002\u4EC5\u5BF9\u524D\u7F00\u8FDB\u884C\u5339\u914D\u3002","\u9AD8\u4EAE\u952E\u76D8\u5BFC\u822A\u4F1A\u7A81\u51FA\u663E\u793A\u4E0E\u952E\u76D8\u8F93\u5165\u76F8\u5339\u914D\u7684\u5143\u7D20\u3002\u8FDB\u4E00\u6B65\u5411\u4E0A\u548C\u5411\u4E0B\u5BFC\u822A\u5C06\u4EC5\u904D\u5386\u7A81\u51FA\u663E\u793A\u7684\u5143\u7D20\u3002","\u7B5B\u9009\u5668\u952E\u76D8\u5BFC\u822A\u5C06\u7B5B\u9009\u51FA\u5E76\u9690\u85CF\u4E0E\u952E\u76D8\u8F93\u5165\u4E0D\u5339\u914D\u7684\u6240\u6709\u5143\u7D20\u3002","\u63A7\u5236\u5DE5\u4F5C\u53F0\u4E2D\u7684\u5217\u8868\u548C\u6811\u7684\u952E\u76D8\u5BFC\u822A\u6837\u5F0F\u3002\u5B83\u53EF\u4E3A\u201C\u7B80\u5355\u201D\u3001\u201C\u7A81\u51FA\u663E\u793A\u201D\u6216\u201C\u7B5B\u9009\u201D\u3002",'\u8BF7\u6539\u7528 "workbench.list.defaultFindMode" \u548C "workbench.list.typeNavigationMode"\u3002',"\u5728\u641C\u7D22\u65F6\u4F7F\u7528\u6A21\u7CCA\u5339\u914D\u3002","\u5728\u641C\u7D22\u65F6\u4F7F\u7528\u8FDE\u7EED\u5339\u914D\u3002","\u63A7\u5236\u5728\u5DE5\u4F5C\u53F0\u4E2D\u641C\u7D22\u5217\u8868\u548C\u6811\u65F6\u4F7F\u7528\u7684\u5339\u914D\u7C7B\u578B\u3002","\u63A7\u5236\u5728\u5355\u51FB\u6587\u4EF6\u5939\u540D\u79F0\u65F6\u5982\u4F55\u6269\u5C55\u6811\u6587\u4EF6\u5939\u3002\u8BF7\u6CE8\u610F\uFF0C\u5982\u679C\u4E0D\u9002\u7528\uFF0C\u67D0\u4E9B\u6811\u548C\u5217\u8868\u53EF\u80FD\u4F1A\u9009\u62E9\u5FFD\u7565\u6B64\u8BBE\u7F6E\u3002","\u63A7\u5236\u662F\u5426\u5728\u6811\u4E2D\u542F\u7528\u7C98\u6027\u6EDA\u52A8\u3002","\u63A7\u5236\u542F\u7528`#workbench.tree.enableStickyScroll#`\u65F6\u6811\u4E2D\u663E\u793A\u7684\u7C98\u6027\u5143\u7D20\u6570\u3002","\u63A7\u5236\u7C7B\u578B\u5BFC\u822A\u5728\u5DE5\u4F5C\u53F0\u7684\u5217\u8868\u548C\u6811\u4E2D\u7684\u5DE5\u4F5C\u65B9\u5F0F\u3002\u5982\u679C\u8BBE\u7F6E\u4E3A`trigger`\uFF0C\u5219\u5728\u8FD0\u884C `list.triggerTypeNavigation` \u547D\u4EE4\u540E\uFF0C\u7C7B\u578B\u5BFC\u822A\u5C06\u5F00\u59CB\u3002"],"vs/platform/markers/common/markers":["\u9519\u8BEF","\u8B66\u544A","\u4FE1\u606F"],"vs/platform/quickinput/browser/commandsQuickAccess":["\u6700\u8FD1\u4F7F\u7528","\u7C7B\u4F3C\u547D\u4EE4","\u5E38\u7528","\u5176\u4ED6\u547D\u4EE4","\u7C7B\u4F3C\u547D\u4EE4","{0}, {1}",'\u547D\u4EE4 "{0}" \u5BFC\u81F4\u9519\u8BEF'],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["\u4E0A\u4E00\u6B65",'\u6309 "Enter" \u4EE5\u786E\u8BA4\u6216\u6309 "Esc" \u4EE5\u53D6\u6D88',"{0}/{1}","\u5728\u6B64\u8F93\u5165\u53EF\u7F29\u5C0F\u7ED3\u679C\u8303\u56F4\u3002"],"vs/platform/quickinput/browser/quickInputController":["\u5207\u6362\u6240\u6709\u590D\u9009\u6846","{0} \u4E2A\u7ED3\u679C","\u5DF2\u9009 {0} \u9879","\u786E\u5B9A","\u81EA\u5B9A\u4E49","\u540E\u9000 ({0})","\u4E0A\u4E00\u6B65"],"vs/platform/quickinput/browser/quickInputList":["\u5FEB\u901F\u8F93\u5165"],"vs/platform/quickinput/browser/quickInputUtils":['\u5355\u51FB\u4EE5\u6267\u884C\u547D\u4EE4 "{0}"'],"vs/platform/theme/common/colorRegistry":["\u6574\u4F53\u524D\u666F\u8272\u3002\u6B64\u989C\u8272\u4EC5\u5728\u4E0D\u88AB\u7EC4\u4EF6\u8986\u76D6\u65F6\u9002\u7528\u3002","\u5DF2\u7981\u7528\u5143\u7D20\u7684\u6574\u4F53\u524D\u666F\u8272\u3002\u4EC5\u5728\u672A\u7531\u7EC4\u4EF6\u66FF\u4EE3\u65F6\u624D\u80FD\u4F7F\u7528\u6B64\u989C\u8272\u3002","\u9519\u8BEF\u4FE1\u606F\u7684\u6574\u4F53\u524D\u666F\u8272\u3002\u6B64\u989C\u8272\u4EC5\u5728\u4E0D\u88AB\u7EC4\u4EF6\u8986\u76D6\u65F6\u9002\u7528\u3002","\u63D0\u4F9B\u5176\u4ED6\u4FE1\u606F\u7684\u8BF4\u660E\u6587\u672C\u7684\u524D\u666F\u8272\uFF0C\u4F8B\u5982\u6807\u7B7E\u6587\u672C\u3002","\u5DE5\u4F5C\u53F0\u4E2D\u56FE\u6807\u7684\u9ED8\u8BA4\u989C\u8272\u3002","\u7126\u70B9\u5143\u7D20\u7684\u6574\u4F53\u8FB9\u6846\u989C\u8272\u3002\u6B64\u989C\u8272\u4EC5\u5728\u4E0D\u88AB\u5176\u4ED6\u7EC4\u4EF6\u8986\u76D6\u65F6\u9002\u7528\u3002","\u5728\u5143\u7D20\u5468\u56F4\u989D\u5916\u7684\u4E00\u5C42\u8FB9\u6846\uFF0C\u7528\u6765\u63D0\u9AD8\u5BF9\u6BD4\u5EA6\u4ECE\u800C\u533A\u522B\u5176\u4ED6\u5143\u7D20\u3002","\u5728\u6D3B\u52A8\u5143\u7D20\u5468\u56F4\u989D\u5916\u7684\u4E00\u5C42\u8FB9\u6846\uFF0C\u7528\u6765\u63D0\u9AD8\u5BF9\u6BD4\u5EA6\u4ECE\u800C\u533A\u522B\u5176\u4ED6\u5143\u7D20\u3002","\u5DE5\u4F5C\u53F0\u6240\u9009\u6587\u672C\u7684\u80CC\u666F\u989C\u8272(\u4F8B\u5982\u8F93\u5165\u5B57\u6BB5\u6216\u6587\u672C\u533A\u57DF)\u3002\u6CE8\u610F\uFF0C\u672C\u8BBE\u7F6E\u4E0D\u9002\u7528\u4E8E\u7F16\u8F91\u5668\u3002","\u6587\u5B57\u5206\u9694\u7B26\u7684\u989C\u8272\u3002","\u6587\u672C\u4E2D\u94FE\u63A5\u7684\u524D\u666F\u8272\u3002","\u6587\u672C\u4E2D\u94FE\u63A5\u5728\u70B9\u51FB\u6216\u9F20\u6807\u60AC\u505C\u65F6\u7684\u524D\u666F\u8272 \u3002","\u9884\u683C\u5F0F\u5316\u6587\u672C\u6BB5\u7684\u524D\u666F\u8272\u3002","\u9884\u683C\u5F0F\u5316\u6587\u672C\u6BB5\u7684\u80CC\u666F\u8272\u3002","\u6587\u672C\u4E2D\u5757\u5F15\u7528\u7684\u80CC\u666F\u989C\u8272\u3002","\u6587\u672C\u4E2D\u5757\u5F15\u7528\u7684\u8FB9\u6846\u989C\u8272\u3002","\u6587\u672C\u4E2D\u4EE3\u7801\u5757\u7684\u80CC\u666F\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5185\u5C0F\u7EC4\u4EF6(\u5982\u67E5\u627E/\u66FF\u6362)\u7684\u9634\u5F71\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5185\u5C0F\u7EC4\u4EF6(\u5982\u67E5\u627E/\u66FF\u6362)\u7684\u8FB9\u6846\u989C\u8272\u3002","\u8F93\u5165\u6846\u80CC\u666F\u8272\u3002","\u8F93\u5165\u6846\u524D\u666F\u8272\u3002","\u8F93\u5165\u6846\u8FB9\u6846\u3002","\u8F93\u5165\u5B57\u6BB5\u4E2D\u5DF2\u6FC0\u6D3B\u9009\u9879\u7684\u8FB9\u6846\u989C\u8272\u3002","\u8F93\u5165\u5B57\u6BB5\u4E2D\u6FC0\u6D3B\u9009\u9879\u7684\u80CC\u666F\u989C\u8272\u3002","\u8F93\u5165\u5B57\u6BB5\u4E2D\u9009\u9879\u7684\u80CC\u666F\u60AC\u505C\u989C\u8272\u3002","\u8F93\u5165\u5B57\u6BB5\u4E2D\u5DF2\u6FC0\u6D3B\u7684\u9009\u9879\u7684\u524D\u666F\u8272\u3002","\u8F93\u5165\u6846\u4E2D\u5360\u4F4D\u7B26\u7684\u524D\u666F\u8272\u3002","\u8F93\u5165\u9A8C\u8BC1\u7ED3\u679C\u4E3A\u4FE1\u606F\u7EA7\u522B\u65F6\u7684\u80CC\u666F\u8272\u3002","\u8F93\u5165\u9A8C\u8BC1\u7ED3\u679C\u4E3A\u4FE1\u606F\u7EA7\u522B\u65F6\u7684\u524D\u666F\u8272\u3002","\u4E25\u91CD\u6027\u4E3A\u4FE1\u606F\u65F6\u8F93\u5165\u9A8C\u8BC1\u7684\u8FB9\u6846\u989C\u8272\u3002","\u4E25\u91CD\u6027\u4E3A\u8B66\u544A\u65F6\u8F93\u5165\u9A8C\u8BC1\u7684\u80CC\u666F\u8272\u3002","\u8F93\u5165\u9A8C\u8BC1\u7ED3\u679C\u4E3A\u8B66\u544A\u7EA7\u522B\u65F6\u7684\u524D\u666F\u8272\u3002","\u4E25\u91CD\u6027\u4E3A\u8B66\u544A\u65F6\u8F93\u5165\u9A8C\u8BC1\u7684\u8FB9\u6846\u989C\u8272\u3002","\u8F93\u5165\u9A8C\u8BC1\u7ED3\u679C\u4E3A\u9519\u8BEF\u7EA7\u522B\u65F6\u7684\u80CC\u666F\u8272\u3002","\u8F93\u5165\u9A8C\u8BC1\u7ED3\u679C\u4E3A\u9519\u8BEF\u7EA7\u522B\u65F6\u7684\u524D\u666F\u8272\u3002","\u4E25\u91CD\u6027\u4E3A\u9519\u8BEF\u65F6\u8F93\u5165\u9A8C\u8BC1\u7684\u8FB9\u6846\u989C\u8272\u3002","\u4E0B\u62C9\u5217\u8868\u80CC\u666F\u8272\u3002","\u4E0B\u62C9\u5217\u8868\u80CC\u666F\u8272\u3002","\u4E0B\u62C9\u5217\u8868\u524D\u666F\u8272\u3002","\u4E0B\u62C9\u5217\u8868\u8FB9\u6846\u3002","\u6309\u94AE\u524D\u666F\u8272\u3002","\u6309\u94AE\u5206\u9694\u7B26\u989C\u8272\u3002","\u6309\u94AE\u80CC\u666F\u8272\u3002","\u6309\u94AE\u5728\u60AC\u505C\u65F6\u7684\u80CC\u666F\u989C\u8272\u3002","\u6309\u94AE\u8FB9\u6846\u989C\u8272\u3002","\u8F85\u52A9\u6309\u94AE\u524D\u666F\u8272\u3002","\u8F85\u52A9\u6309\u94AE\u80CC\u666F\u8272\u3002","\u60AC\u505C\u65F6\u7684\u8F85\u52A9\u6309\u94AE\u80CC\u666F\u8272\u3002","Badge \u80CC\u666F\u8272\u3002Badge \u662F\u5C0F\u578B\u7684\u4FE1\u606F\u6807\u7B7E\uFF0C\u5982\u8868\u793A\u641C\u7D22\u7ED3\u679C\u6570\u91CF\u7684\u6807\u7B7E\u3002","Badge \u524D\u666F\u8272\u3002Badge \u662F\u5C0F\u578B\u7684\u4FE1\u606F\u6807\u7B7E\uFF0C\u5982\u8868\u793A\u641C\u7D22\u7ED3\u679C\u6570\u91CF\u7684\u6807\u7B7E\u3002","\u8868\u793A\u89C6\u56FE\u88AB\u6EDA\u52A8\u7684\u6EDA\u52A8\u6761\u9634\u5F71\u3002","\u6EDA\u52A8\u6761\u6ED1\u5757\u80CC\u666F\u8272","\u6EDA\u52A8\u6761\u6ED1\u5757\u5728\u60AC\u505C\u65F6\u7684\u80CC\u666F\u8272","\u6EDA\u52A8\u6761\u6ED1\u5757\u5728\u88AB\u70B9\u51FB\u65F6\u7684\u80CC\u666F\u8272\u3002","\u8868\u793A\u957F\u65F6\u95F4\u64CD\u4F5C\u7684\u8FDB\u5EA6\u6761\u7684\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u9519\u8BEF\u6587\u672C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7F16\u8F91\u5668\u4E2D\u9519\u8BEF\u6CE2\u6D6A\u7EBF\u7684\u524D\u666F\u8272\u3002","\u5982\u679C\u8BBE\u7F6E\uFF0C\u7F16\u8F91\u5668\u4E2D\u9519\u8BEF\u7684\u53CC\u4E0B\u5212\u7EBF\u989C\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u8B66\u544A\u6587\u672C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7F16\u8F91\u5668\u4E2D\u8B66\u544A\u6CE2\u6D6A\u7EBF\u7684\u524D\u666F\u8272\u3002","\u5982\u679C\u8BBE\u7F6E\uFF0C\u7F16\u8F91\u5668\u4E2D\u8B66\u544A\u7684\u53CC\u4E0B\u5212\u7EBF\u989C\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u4FE1\u606F\u6587\u672C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7F16\u8F91\u5668\u4E2D\u4FE1\u606F\u6CE2\u6D6A\u7EBF\u7684\u524D\u666F\u8272\u3002","\u5982\u679C\u8BBE\u7F6E\uFF0C\u7F16\u8F91\u5668\u4E2D\u4FE1\u606F\u7684\u53CC\u4E0B\u5212\u7EBF\u989C\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u63D0\u793A\u6CE2\u6D6A\u7EBF\u7684\u524D\u666F\u8272\u3002","\u5982\u679C\u8BBE\u7F6E\uFF0C\u7F16\u8F91\u5668\u4E2D\u63D0\u793A\u7684\u53CC\u4E0B\u5212\u7EBF\u989C\u8272\u3002","\u6D3B\u52A8\u6846\u683C\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7F16\u8F91\u5668\u80CC\u666F\u8272\u3002","\u7F16\u8F91\u5668\u9ED8\u8BA4\u524D\u666F\u8272\u3002","\u7F16\u8F91\u5668\u4E2D\u7C98\u6EDE\u6EDA\u52A8\u7684\u80CC\u666F\u8272","\u5728\u7F16\u8F91\u5668\u4E2D\u60AC\u505C\u65F6\u7C98\u6EDE\u6EDA\u52A8\u7684\u80CC\u666F\u8272","\u7F16\u8F91\u5668\u4E2D\u7C98\u6EDE\u6EDA\u52A8\u7684\u8FB9\u6846\u989C\u8272"," \u7F16\u8F91\u5668\u4E2D\u7C98\u6EDE\u6EDA\u52A8\u7684\u9634\u5F71\u989C\u8272","\u7F16\u8F91\u5668\u7EC4\u4EF6(\u5982\u67E5\u627E/\u66FF\u6362)\u80CC\u666F\u989C\u8272\u3002","\u7F16\u8F91\u5668\u5C0F\u90E8\u4EF6\u7684\u524D\u666F\u8272\uFF0C\u5982\u67E5\u627E/\u66FF\u6362\u3002","\u7F16\u8F91\u5668\u5C0F\u90E8\u4EF6\u7684\u8FB9\u6846\u989C\u8272\u3002\u6B64\u989C\u8272\u4EC5\u5728\u5C0F\u90E8\u4EF6\u6709\u8FB9\u6846\u4E14\u4E0D\u88AB\u5C0F\u90E8\u4EF6\u91CD\u5199\u65F6\u9002\u7528\u3002","\u7F16\u8F91\u5668\u5C0F\u90E8\u4EF6\u5927\u5C0F\u8C03\u6574\u6761\u7684\u8FB9\u6846\u989C\u8272\u3002\u6B64\u989C\u8272\u4EC5\u5728\u5C0F\u90E8\u4EF6\u6709\u8C03\u6574\u8FB9\u6846\u4E14\u4E0D\u88AB\u5C0F\u90E8\u4EF6\u989C\u8272\u8986\u76D6\u65F6\u4F7F\u7528\u3002","\u80CC\u666F\u989C\u8272\u5FEB\u901F\u9009\u53D6\u5668\u3002\u5FEB\u901F\u9009\u53D6\u5668\u5C0F\u90E8\u4EF6\u662F\u9009\u53D6\u5668(\u5982\u547D\u4EE4\u8C03\u8272\u677F)\u7684\u5BB9\u5668\u3002","\u524D\u666F\u989C\u8272\u5FEB\u901F\u9009\u53D6\u5668\u3002\u5FEB\u901F\u9009\u53D6\u5668\u5C0F\u90E8\u4EF6\u662F\u547D\u4EE4\u8C03\u8272\u677F\u7B49\u9009\u53D6\u5668\u7684\u5BB9\u5668\u3002","\u6807\u9898\u80CC\u666F\u989C\u8272\u5FEB\u901F\u9009\u53D6\u5668\u3002\u5FEB\u901F\u9009\u53D6\u5668\u5C0F\u90E8\u4EF6\u662F\u547D\u4EE4\u8C03\u8272\u677F\u7B49\u9009\u53D6\u5668\u7684\u5BB9\u5668\u3002","\u5FEB\u901F\u9009\u53D6\u5668\u5206\u7EC4\u6807\u7B7E\u7684\u989C\u8272\u3002","\u5FEB\u901F\u9009\u53D6\u5668\u5206\u7EC4\u8FB9\u6846\u7684\u989C\u8272\u3002","\u952E\u7ED1\u5B9A\u6807\u7B7E\u80CC\u666F\u8272\u3002\u952E\u7ED1\u5B9A\u6807\u7B7E\u7528\u4E8E\u8868\u793A\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F\u3002","\u952E\u7ED1\u5B9A\u6807\u7B7E\u524D\u666F\u8272\u3002\u952E\u7ED1\u5B9A\u6807\u7B7E\u7528\u4E8E\u8868\u793A\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F\u3002","\u952E\u7ED1\u5B9A\u6807\u7B7E\u8FB9\u6846\u8272\u3002\u952E\u7ED1\u5B9A\u6807\u7B7E\u7528\u4E8E\u8868\u793A\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F\u3002","\u952E\u7ED1\u5B9A\u6807\u7B7E\u8FB9\u6846\u5E95\u90E8\u8272\u3002\u952E\u7ED1\u5B9A\u6807\u7B7E\u7528\u4E8E\u8868\u793A\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F\u3002","\u7F16\u8F91\u5668\u6240\u9009\u5185\u5BB9\u7684\u989C\u8272\u3002","\u7528\u4EE5\u5F70\u663E\u9AD8\u5BF9\u6BD4\u5EA6\u7684\u6240\u9009\u6587\u672C\u7684\u989C\u8272\u3002","\u975E\u6D3B\u52A8\u7F16\u8F91\u5668\u4E2D\u6240\u9009\u5185\u5BB9\u7684\u989C\u8272\uFF0C\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u88C5\u9970\u6548\u679C\u3002","\u5177\u6709\u4E0E\u6240\u9009\u9879\u76F8\u5173\u5185\u5BB9\u7684\u533A\u57DF\u7684\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u4E0E\u6240\u9009\u9879\u5185\u5BB9\u76F8\u540C\u7684\u533A\u57DF\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5F53\u524D\u641C\u7D22\u5339\u914D\u9879\u7684\u989C\u8272\u3002","\u5176\u4ED6\u641C\u7D22\u5339\u914D\u9879\u7684\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u9650\u5236\u641C\u7D22\u8303\u56F4\u7684\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5F53\u524D\u641C\u7D22\u5339\u914D\u9879\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5176\u4ED6\u641C\u7D22\u5339\u914D\u9879\u7684\u8FB9\u6846\u989C\u8272\u3002","\u9650\u5236\u641C\u7D22\u7684\u8303\u56F4\u7684\u8FB9\u6846\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u641C\u7D22\u7F16\u8F91\u5668\u67E5\u8BE2\u5339\u914D\u7684\u989C\u8272\u3002","\u641C\u7D22\u7F16\u8F91\u5668\u67E5\u8BE2\u5339\u914D\u7684\u8FB9\u6846\u989C\u8272\u3002","\u641C\u7D22 Viewlet \u5B8C\u6210\u6D88\u606F\u4E2D\u6587\u672C\u7684\u989C\u8272\u3002","\u5728\u4E0B\u9762\u7A81\u51FA\u663E\u793A\u60AC\u505C\u7684\u5B57\u8BCD\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7F16\u8F91\u5668\u60AC\u505C\u63D0\u793A\u7684\u80CC\u666F\u989C\u8272\u3002","\u7F16\u8F91\u5668\u60AC\u505C\u7684\u524D\u666F\u989C\u8272\u3002","\u5149\u6807\u60AC\u505C\u65F6\u7F16\u8F91\u5668\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7F16\u8F91\u5668\u60AC\u505C\u72B6\u6001\u680F\u7684\u80CC\u666F\u8272\u3002","\u6D3B\u52A8\u94FE\u63A5\u989C\u8272\u3002","\u5185\u8054\u63D0\u793A\u7684\u524D\u666F\u8272","\u5185\u8054\u63D0\u793A\u7684\u80CC\u666F\u8272","\u7C7B\u578B\u5185\u8054\u63D0\u793A\u7684\u524D\u666F\u8272","\u7C7B\u578B\u5185\u8054\u63D0\u793A\u7684\u80CC\u666F\u8272","\u53C2\u6570\u5185\u8054\u63D0\u793A\u7684\u524D\u666F\u8272","\u53C2\u6570\u5185\u8054\u63D0\u793A\u7684\u80CC\u666F\u8272","\u7528\u4E8E\u706F\u6CE1\u64CD\u4F5C\u56FE\u6807\u7684\u989C\u8272\u3002","\u7528\u4E8E\u706F\u6CE1\u81EA\u52A8\u4FEE\u590D\u64CD\u4F5C\u56FE\u6807\u7684\u989C\u8272\u3002","\u7528\u4E8E\u706F\u6CE1 AI \u56FE\u6807\u7684\u989C\u8272\u3002","\u5DF2\u63D2\u5165\u7684\u6587\u672C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5DF2\u5220\u9664\u7684\u6587\u672C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5DF2\u63D2\u5165\u7684\u884C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5DF2\u5220\u9664\u7684\u884C\u7684\u80CC\u666F\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u63D2\u5165\u884C\u7684\u8FB9\u8DDD\u7684\u80CC\u666F\u8272\u3002","\u5220\u9664\u884C\u7684\u8FB9\u8DDD\u7684\u80CC\u666F\u8272\u3002","\u63D2\u5165\u5185\u5BB9\u7684\u5DEE\u5F02\u6982\u8FF0\u6807\u5C3A\u524D\u666F\u3002","\u5220\u9664\u5185\u5BB9\u7684\u5DEE\u5F02\u6982\u8FF0\u6807\u5C3A\u524D\u666F\u3002","\u63D2\u5165\u7684\u6587\u672C\u7684\u8F6E\u5ED3\u989C\u8272\u3002","\u88AB\u5220\u9664\u6587\u672C\u7684\u8F6E\u5ED3\u989C\u8272\u3002","\u4E24\u4E2A\u6587\u672C\u7F16\u8F91\u5668\u4E4B\u95F4\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u7684\u5BF9\u89D2\u7EBF\u586B\u5145\u989C\u8272\u3002\u5BF9\u89D2\u7EBF\u586B\u5145\u7528\u4E8E\u5E76\u6392\u5DEE\u5F02\u89C6\u56FE\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u672A\u66F4\u6539\u5757\u7684\u80CC\u666F\u8272\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u672A\u66F4\u6539\u5757\u7684\u524D\u666F\u8272\u3002","\u5DEE\u5F02\u7F16\u8F91\u5668\u4E2D\u672A\u66F4\u6539\u4EE3\u7801\u7684\u80CC\u666F\u8272\u3002","\u7126\u70B9\u9879\u5728\u5217\u8868\u6216\u6811\u6D3B\u52A8\u65F6\u7684\u80CC\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u7126\u70B9\u9879\u5728\u5217\u8868\u6216\u6811\u6D3B\u52A8\u65F6\u7684\u524D\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5217\u8868/\u6811\u6D3B\u52A8\u65F6\uFF0C\u7126\u70B9\u9879\u76EE\u7684\u5217\u8868/\u6811\u8FB9\u6846\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868/\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5F53\u5217\u8868/\u6811\u5904\u4E8E\u6D3B\u52A8\u72B6\u6001\u4E14\u5DF2\u9009\u62E9\u65F6\uFF0C\u91CD\u70B9\u9879\u7684\u5217\u8868/\u6811\u8FB9\u6846\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868/\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u4F46\u975E\u6D3B\u52A8\u7684\u5219\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868\u6216\u6811\u6D3B\u52A8\u65F6\u7684\u80CC\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868\u6216\u6811\u6D3B\u52A8\u65F6\u7684\u524D\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868/\u6811\u6D3B\u52A8\u65F6\u7684\u5217\u8868/\u6811\u56FE\u6807\u524D\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868/\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u5219\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868\u6216\u6811\u975E\u6D3B\u52A8\u65F6\u7684\u80CC\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868\u6216\u6811\u975E\u6D3B\u52A8\u65F6\u7684\u524D\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5DF2\u9009\u9879\u5728\u5217\u8868/\u6811\u975E\u6D3B\u52A8\u65F6\u7684\u56FE\u6807\u524D\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868/\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u5219\u6CA1\u6709\u3002","\u975E\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u63A7\u4EF6\u4E2D\u7126\u70B9\u9879\u7684\u80CC\u666F\u989C\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868\u6216\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u5217\u8868/\u6570\u975E\u6D3B\u52A8\u65F6\uFF0C\u7126\u70B9\u9879\u76EE\u7684\u5217\u8868/\u6811\u8FB9\u6846\u8272\u3002\u6D3B\u52A8\u7684\u5217\u8868/\u6811\u5177\u6709\u952E\u76D8\u7126\u70B9\uFF0C\u975E\u6D3B\u52A8\u7684\u6CA1\u6709\u3002","\u4F7F\u7528\u9F20\u6807\u79FB\u52A8\u9879\u76EE\u65F6\uFF0C\u5217\u8868\u6216\u6811\u7684\u80CC\u666F\u989C\u8272\u3002","\u9F20\u6807\u5728\u9879\u76EE\u4E0A\u60AC\u505C\u65F6\uFF0C\u5217\u8868\u6216\u6811\u7684\u524D\u666F\u989C\u8272\u3002","\u4F7F\u7528\u9F20\u6807\u79FB\u52A8\u9879\u76EE\u65F6\uFF0C\u5217\u8868\u6216\u6811\u8FDB\u884C\u62D6\u653E\u7684\u80CC\u666F\u989C\u8272\u3002","\u4F7F\u7528\u9F20\u6807\u5728\u9879\u76EE\u4E4B\u95F4\u79FB\u52A8\u9879\u65F6\uFF0C\u5217\u8868/\u6811\u62D6\u653E\u8FB9\u6846\u7684\u989C\u8272\u3002","\u5728\u5217\u8868\u6216\u6811\u4E2D\u641C\u7D22\u65F6\uFF0C\u5176\u4E2D\u5339\u914D\u5185\u5BB9\u7684\u9AD8\u4EAE\u989C\u8272\u3002","\u5728\u5217\u8868\u6216\u6811\u4E2D\u641C\u7D22\u65F6\uFF0C\u5339\u914D\u6D3B\u52A8\u805A\u7126\u9879\u7684\u7A81\u51FA\u663E\u793A\u5185\u5BB9\u7684\u5217\u8868/\u6811\u524D\u666F\u8272\u3002","\u5217\u8868\u6216\u6811\u4E2D\u65E0\u6548\u9879\u7684\u524D\u666F\u8272\uFF0C\u4F8B\u5982\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u6CA1\u6709\u89E3\u6790\u7684\u6839\u76EE\u5F55\u3002","\u5305\u542B\u9519\u8BEF\u7684\u5217\u8868\u9879\u7684\u524D\u666F\u989C\u8272\u3002","\u5305\u542B\u8B66\u544A\u7684\u5217\u8868\u9879\u7684\u524D\u666F\u989C\u8272\u3002","\u5217\u8868\u548C\u6811\u4E2D\u7C7B\u578B\u7B5B\u9009\u5668\u5C0F\u7EC4\u4EF6\u7684\u80CC\u666F\u8272\u3002","\u5217\u8868\u548C\u6811\u4E2D\u7C7B\u578B\u7B5B\u9009\u5668\u5C0F\u7EC4\u4EF6\u7684\u8F6E\u5ED3\u989C\u8272\u3002","\u5F53\u6CA1\u6709\u5339\u914D\u9879\u65F6\uFF0C\u5217\u8868\u548C\u6811\u4E2D\u7C7B\u578B\u7B5B\u9009\u5668\u5C0F\u7EC4\u4EF6\u7684\u8F6E\u5ED3\u989C\u8272\u3002","\u5217\u8868\u548C\u6811\u4E2D\u7C7B\u578B\u7B5B\u9009\u5668\u5C0F\u7EC4\u4EF6\u7684\u9634\u5F71\u989C\u8272\u3002","\u7B5B\u9009\u540E\u7684\u5339\u914D\u9879\u7684\u80CC\u666F\u989C\u8272\u3002","\u7B5B\u9009\u540E\u7684\u5339\u914D\u9879\u7684\u8FB9\u6846\u989C\u8272\u3002","\u7F29\u8FDB\u53C2\u8003\u7EBF\u7684\u6811\u63CF\u8FB9\u989C\u8272\u3002","\u975E\u6D3B\u52A8\u7F29\u8FDB\u53C2\u8003\u7EBF\u7684\u6811\u63CF\u8FB9\u989C\u8272\u3002","\u5217\u4E4B\u95F4\u7684\u8868\u8FB9\u6846\u989C\u8272\u3002","\u5947\u6570\u8868\u884C\u7684\u80CC\u666F\u8272\u3002","\u53D6\u6D88\u5F3A\u8C03\u7684\u9879\u76EE\u7684\u5217\u8868/\u6811\u524D\u666F\u989C\u8272\u3002","\u590D\u9009\u6846\u5C0F\u90E8\u4EF6\u7684\u80CC\u666F\u989C\u8272\u3002","\u9009\u62E9\u590D\u9009\u6846\u5C0F\u7EC4\u4EF6\u6240\u5728\u7684\u5143\u7D20\u65F6\u8BE5\u5C0F\u7EC4\u4EF6\u7684\u80CC\u666F\u8272\u3002","\u590D\u9009\u6846\u5C0F\u90E8\u4EF6\u7684\u524D\u666F\u8272\u3002","\u590D\u9009\u6846\u5C0F\u90E8\u4EF6\u7684\u8FB9\u6846\u989C\u8272\u3002","\u9009\u62E9\u590D\u9009\u6846\u5C0F\u7EC4\u4EF6\u6240\u5728\u7684\u5143\u7D20\u65F6\u8BE5\u5C0F\u7EC4\u4EF6\u7684\u8FB9\u6846\u989C\u8272\u3002","\u8BF7\u6539\u7528 quickInputList.focusBackground","\u7126\u70B9\u9879\u76EE\u7684\u5FEB\u901F\u9009\u62E9\u5668\u524D\u666F\u8272\u3002","\u7126\u70B9\u9879\u76EE\u7684\u5FEB\u901F\u9009\u53D6\u5668\u56FE\u6807\u524D\u666F\u8272\u3002","\u7126\u70B9\u9879\u76EE\u7684\u5FEB\u901F\u9009\u62E9\u5668\u80CC\u666F\u8272\u3002","\u83DC\u5355\u7684\u8FB9\u6846\u989C\u8272\u3002","\u83DC\u5355\u9879\u7684\u524D\u666F\u989C\u8272\u3002","\u83DC\u5355\u9879\u7684\u80CC\u666F\u989C\u8272\u3002","\u83DC\u5355\u4E2D\u9009\u5B9A\u83DC\u5355\u9879\u7684\u524D\u666F\u8272\u3002","\u83DC\u5355\u4E2D\u6240\u9009\u83DC\u5355\u9879\u7684\u80CC\u666F\u8272\u3002","\u83DC\u5355\u4E2D\u6240\u9009\u83DC\u5355\u9879\u7684\u8FB9\u6846\u989C\u8272\u3002","\u83DC\u5355\u4E2D\u5206\u9694\u7EBF\u7684\u989C\u8272\u3002","\u4F7F\u7528\u9F20\u6807\u60AC\u505C\u5728\u64CD\u4F5C\u4E0A\u65F6\u663E\u793A\u5DE5\u5177\u680F\u80CC\u666F","\u4F7F\u7528\u9F20\u6807\u60AC\u505C\u5728\u64CD\u4F5C\u4E0A\u65F6\u663E\u793A\u5DE5\u5177\u680F\u8F6E\u5ED3","\u5C06\u9F20\u6807\u60AC\u505C\u5728\u64CD\u4F5C\u4E0A\u65F6\u7684\u5DE5\u5177\u680F\u80CC\u666F","\u4EE3\u7801\u7247\u6BB5 Tab \u4F4D\u7684\u9AD8\u4EAE\u80CC\u666F\u8272\u3002","\u4EE3\u7801\u7247\u6BB5 Tab \u4F4D\u7684\u9AD8\u4EAE\u8FB9\u6846\u989C\u8272\u3002","\u4EE3\u7801\u7247\u6BB5\u4E2D\u6700\u540E\u7684 Tab \u4F4D\u7684\u9AD8\u4EAE\u80CC\u666F\u8272\u3002","\u4EE3\u7801\u7247\u6BB5\u4E2D\u6700\u540E\u7684\u5236\u8868\u4F4D\u7684\u9AD8\u4EAE\u8FB9\u6846\u989C\u8272\u3002","\u7126\u70B9\u5BFC\u822A\u8DEF\u5F84\u7684\u989C\u8272","\u5BFC\u822A\u8DEF\u5F84\u9879\u7684\u80CC\u666F\u8272\u3002","\u7126\u70B9\u5BFC\u822A\u8DEF\u5F84\u7684\u989C\u8272","\u5DF2\u9009\u5BFC\u822A\u8DEF\u5F84\u9879\u7684\u989C\u8272\u3002","\u5BFC\u822A\u8DEF\u5F84\u9879\u9009\u62E9\u5668\u7684\u80CC\u666F\u8272\u3002","\u5F53\u524D\u6807\u9898\u80CC\u666F\u7684\u5185\u8054\u5408\u5E76\u51B2\u7A81\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u7684\u5F53\u524D\u5185\u5BB9\u80CC\u666F\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u7684\u4F20\u5165\u6807\u9898\u80CC\u666F\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u7684\u4F20\u5165\u5185\u5BB9\u80CC\u666F\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u7684\u5E38\u89C1\u7956\u5148\u6807\u5934\u80CC\u666F\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u7684\u5E38\u89C1\u7956\u5148\u5185\u5BB9\u80CC\u666F\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u6807\u5934\u548C\u5206\u5272\u7EBF\u7684\u8FB9\u6846\u989C\u8272\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u5F53\u524D\u7248\u672C\u533A\u57DF\u7684\u6982\u89C8\u6807\u5C3A\u524D\u666F\u8272\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u4F20\u5165\u7684\u7248\u672C\u533A\u57DF\u7684\u6982\u89C8\u6807\u5C3A\u524D\u666F\u8272\u3002","\u5185\u8054\u5408\u5E76\u51B2\u7A81\u4E2D\u5171\u540C\u7956\u5148\u533A\u57DF\u7684\u6982\u89C8\u6807\u5C3A\u524D\u666F\u8272\u3002","\u7528\u4E8E\u67E5\u627E\u5339\u914D\u9879\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7528\u4E8E\u7A81\u51FA\u663E\u793A\u6240\u9009\u5185\u5BB9\u7684\u6982\u8FF0\u6807\u5C3A\u6807\u8BB0\u989C\u8272\u3002\u989C\u8272\u5FC5\u987B\u900F\u660E\uFF0C\u4EE5\u514D\u9690\u85CF\u4E0B\u9762\u7684\u4FEE\u9970\u6548\u679C\u3002","\u7528\u4E8E\u67E5\u627E\u5339\u914D\u9879\u7684\u8FF7\u4F60\u5730\u56FE\u6807\u8BB0\u989C\u8272\u3002","\u7528\u4E8E\u91CD\u590D\u7F16\u8F91\u5668\u9009\u62E9\u7684\u7F29\u7565\u56FE\u6807\u8BB0\u989C\u8272\u3002","\u7F16\u8F91\u5668\u9009\u533A\u5728\u8FF7\u4F60\u5730\u56FE\u4E2D\u5BF9\u5E94\u7684\u6807\u8BB0\u989C\u8272\u3002","\u4FE1\u606F\u7684\u8FF7\u4F60\u5730\u56FE\u6807\u8BB0\u989C\u8272\u3002","\u7528\u4E8E\u8B66\u544A\u7684\u8FF7\u4F60\u5730\u56FE\u6807\u8BB0\u989C\u8272\u3002","\u7528\u4E8E\u9519\u8BEF\u7684\u8FF7\u4F60\u5730\u56FE\u6807\u8BB0\u989C\u8272\u3002","\u8FF7\u4F60\u5730\u56FE\u80CC\u666F\u989C\u8272\u3002",'\u5728\u7F29\u7565\u56FE\u4E2D\u5448\u73B0\u7684\u524D\u666F\u5143\u7D20\u7684\u4E0D\u900F\u660E\u5EA6\u3002\u4F8B\u5982\uFF0C"#000000c0" \u5C06\u5448\u73B0\u4E0D\u900F\u660E\u5EA6\u4E3A 75% \u7684\u5143\u7D20\u3002',"\u8FF7\u4F60\u5730\u56FE\u6ED1\u5757\u80CC\u666F\u989C\u8272\u3002","\u60AC\u505C\u65F6\uFF0C\u8FF7\u4F60\u5730\u56FE\u6ED1\u5757\u7684\u80CC\u666F\u989C\u8272\u3002","\u5355\u51FB\u65F6\uFF0C\u8FF7\u4F60\u5730\u56FE\u6ED1\u5757\u7684\u80CC\u666F\u989C\u8272\u3002","\u7528\u4E8E\u95EE\u9898\u9519\u8BEF\u56FE\u6807\u7684\u989C\u8272\u3002","\u7528\u4E8E\u95EE\u9898\u8B66\u544A\u56FE\u6807\u7684\u989C\u8272\u3002","\u7528\u4E8E\u95EE\u9898\u4FE1\u606F\u56FE\u6807\u7684\u989C\u8272\u3002","\u56FE\u8868\u4E2D\u4F7F\u7528\u7684\u524D\u666F\u989C\u8272\u3002","\u7528\u4E8E\u56FE\u8868\u4E2D\u7684\u6C34\u5E73\u7EBF\u6761\u7684\u989C\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u7EA2\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u84DD\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u9EC4\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u6A59\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u7EFF\u8272\u3002","\u56FE\u8868\u53EF\u89C6\u5316\u6548\u679C\u4E2D\u4F7F\u7528\u7684\u7D2B\u8272\u3002"],"vs/platform/theme/common/iconRegistry":["\u8981\u4F7F\u7528\u7684\u5B57\u4F53\u7684 ID\u3002\u5982\u679C\u672A\u8BBE\u7F6E\uFF0C\u5219\u4F7F\u7528\u6700\u5148\u5B9A\u4E49\u7684\u5B57\u4F53\u3002","\u4E0E\u56FE\u6807\u5B9A\u4E49\u5173\u8054\u7684\u5B57\u4F53\u5B57\u7B26\u3002","\u5C0F\u7EC4\u4EF6\u4E2D\u201C\u5173\u95ED\u201D\u64CD\u4F5C\u7684\u56FE\u6807\u3002","\u201C\u8F6C\u5230\u4E0A\u4E00\u4E2A\u7F16\u8F91\u5668\u4F4D\u7F6E\u201D\u56FE\u6807\u3002","\u201C\u8F6C\u5230\u4E0B\u4E00\u4E2A\u7F16\u8F91\u5668\u4F4D\u7F6E\u201D\u56FE\u6807\u3002"],"vs/platform/undoRedo/common/undoRedoService":["\u4EE5\u4E0B\u6587\u4EF6\u5DF2\u5173\u95ED\u5E76\u4E14\u5DF2\u5728\u78C1\u76D8\u4E0A\u4FEE\u6539: {0}\u3002","\u4EE5\u4E0B\u6587\u4EF6\u5DF2\u4EE5\u4E0D\u517C\u5BB9\u7684\u65B9\u5F0F\u4FEE\u6539: {0}\u3002","\u65E0\u6CD5\u5728\u6240\u6709\u6587\u4EF6\u4E2D\u64A4\u6D88\u201C{0}\u201D\u3002{1}","\u65E0\u6CD5\u5728\u6240\u6709\u6587\u4EF6\u4E2D\u64A4\u6D88\u201C{0}\u201D\u3002{1}","\u65E0\u6CD5\u64A4\u6D88\u6240\u6709\u6587\u4EF6\u7684\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u5DF2\u66F4\u6539 {1}","\u65E0\u6CD5\u8DE8\u6240\u6709\u6587\u4EF6\u64A4\u9500\u201C{0}\u201D\uFF0C\u56E0\u4E3A {1} \u4E0A\u5DF2\u6709\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C","\u65E0\u6CD5\u8DE8\u6240\u6709\u6587\u4EF6\u64A4\u9500\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u540C\u65F6\u53D1\u751F\u4E86\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C","\u662F\u5426\u8981\u5728\u6240\u6709\u6587\u4EF6\u4E2D\u64A4\u6D88\u201C{0}\u201D?","\u5728 {0} \u4E2A\u6587\u4EF6\u4E2D\u64A4\u6D88(&&U)","\u64A4\u6D88\u6B64\u6587\u4EF6(&&F)","\u65E0\u6CD5\u64A4\u9500\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u5DF2\u6709\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C\u3002","\u662F\u5426\u8981\u64A4\u6D88\u201C{0}\u201D?","\u662F(&&Y)","\u5426","\u65E0\u6CD5\u5728\u6240\u6709\u6587\u4EF6\u4E2D\u91CD\u505A\u201C{0}\u201D\u3002{1}","\u65E0\u6CD5\u5728\u6240\u6709\u6587\u4EF6\u4E2D\u91CD\u505A\u201C{0}\u201D\u3002{1}","\u65E0\u6CD5\u5BF9\u6240\u6709\u6587\u4EF6\u91CD\u505A\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u5DF2\u66F4\u6539 {1}","\u65E0\u6CD5\u8DE8\u6240\u6709\u6587\u4EF6\u91CD\u505A\u201C{0}\u201D\uFF0C\u56E0\u4E3A {1} \u4E0A\u5DF2\u6709\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C","\u65E0\u6CD5\u8DE8\u6240\u6709\u6587\u4EF6\u91CD\u505A\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u540C\u65F6\u53D1\u751F\u4E86\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C","\u65E0\u6CD5\u91CD\u505A\u201C{0}\u201D\uFF0C\u56E0\u4E3A\u5DF2\u6709\u4E00\u9879\u64A4\u6D88\u6216\u91CD\u505A\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C\u3002"],"vs/platform/workspace/common/workspace":["Code \u5DE5\u4F5C\u533A"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-cn.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-tw.js b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-tw.js new file mode 100644 index 0000000..728c9e4 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/editor/editor.main.nls.zh-tw.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/define("vs/editor/editor.main.nls.zh-tw",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["\u8F38\u5165"],"vs/base/browser/ui/findinput/findInputToggles":["\u5927\u5C0F\u5BEB\u9808\u76F8\u7B26","\u5168\u5B57\u62FC\u5BEB\u9808\u76F8\u7B26","\u4F7F\u7528\u898F\u5247\u904B\u7B97\u5F0F"],"vs/base/browser/ui/findinput/replaceInput":["\u8F38\u5165","\u4FDD\u7559\u5927\u5C0F\u5BEB"],"vs/base/browser/ui/hover/hoverWidget":["\u4F7F\u7528 {0} \u5728\u53EF\u5B58\u53D6\u6AA2\u8996\u4E2D\u6AA2\u67E5\u6B64\u9805\u76EE\u3002","\u900F\u904E\u76EE\u524D\u7121\u6CD5\u900F\u904E\u6309\u9375\u7E6B\u7D50\u95DC\u4FC2\u89F8\u767C\u7684\u958B\u555F\u53EF\u5B58\u53D6\u6AA2\u8996\u547D\u4EE4\uFF0C\u5728\u53EF\u5B58\u53D6\u6AA2\u8996\u4E2D\u6AA2\u67E5\u6B64\u9805\u76EE\u3002"],"vs/base/browser/ui/iconLabel/iconLabelHover":["\u6B63\u5728\u8F09\u5165..."],"vs/base/browser/ui/inputbox/inputBox":["\u932F\u8AA4: {0}","\u8B66\u544A: {0}","\u8CC7\u8A0A: {0}"," \u6216 {0} \u4EE5\u53D6\u5F97\u6B77\u7A0B\u8A18\u9304"," ({0} \u4EE5\u53D6\u5F97\u6B77\u7A0B\u8A18\u9304)","\u5DF2\u6E05\u9664\u8F38\u5165"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["\u672A\u7E6B\u7D50"],"vs/base/browser/ui/selectBox/selectBoxCustom":["\u9078\u53D6\u65B9\u584A"],"vs/base/browser/ui/toolbar/toolbar":["\u66F4\u591A\u64CD\u4F5C"],"vs/base/browser/ui/tree/abstractTree":["\u7BE9\u9078","\u6A21\u7CCA\u6BD4\u5C0D","\u8981\u7BE9\u9078\u7684\u985E\u578B","\u8981\u641C\u5C0B\u7684\u985E\u578B","\u8981\u641C\u5C0B\u7684\u985E\u578B","\u95DC\u9589","\u627E\u4E0D\u5230\u4EFB\u4F55\u5143\u7D20\u3002"],"vs/base/common/actions":["(\u7A7A\u7684)"],"vs/base/common/errorMessage":["{0}: {1}","\u767C\u751F\u7CFB\u7D71\u932F\u8AA4 ({0})","\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4\u3002\u5982\u9700\u8A73\u7D30\u8CC7\u8A0A\uFF0C\u8ACB\u53C3\u95B1\u8A18\u9304\u6A94\u3002","\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4\u3002\u5982\u9700\u8A73\u7D30\u8CC7\u8A0A\uFF0C\u8ACB\u53C3\u95B1\u8A18\u9304\u6A94\u3002","{0} (\u7E3D\u8A08 {1} \u500B\u932F\u8AA4)","\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4\u3002\u5982\u9700\u8A73\u7D30\u8CC7\u8A0A\uFF0C\u8ACB\u53C3\u95B1\u8A18\u9304\u6A94\u3002"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","\u8D85\u7D1A\u9375","Control","Shift","\u9078\u9805","\u547D\u4EE4","Control","Shift","Alt","Windows","Control","Shift","Alt","\u8D85\u7D1A\u9375"],"vs/base/common/platform":["_"],"vs/editor/browser/controller/textAreaHandler":["\u7DE8\u8F2F\u5668","\u76EE\u524D\u7121\u6CD5\u5B58\u53D6\u6B64\u7DE8\u8F2F\u5668\u3002","{0} \u82E5\u8981\u555F\u7528\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u6700\u4F73\u5316\u6A21\u5F0F\uFF0C\u8ACB\u4F7F\u7528 {1}","{0} \u82E5\u8981\u555F\u7528\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u6700\u4F73\u5316\u6A21\u5F0F\uFF0C\uFF0C\u8ACB\u4F7F\u7528 {1} \u958B\u555F\u5FEB\u901F\u6311\u9078\uFF0C\u7136\u5F8C\u57F7\u884C [\u5207\u63DB\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u5354\u52A9\u5DE5\u5177\u6A21\u5F0F] \u547D\u4EE4\uFF0C\u8A72\u6A21\u5F0F\u76EE\u524D\u7121\u6CD5\u900F\u904E\u9375\u76E4\u89F8\u767C\u3002","{0} \u8ACB\u4F7F\u7528 {1} \u5B58\u53D6\u6309\u9375\u7E6B\u7D50\u95DC\u4FC2\u7DE8\u8F2F\u5668\u4E26\u52A0\u4EE5\u57F7\u884C\uFF0C\u4EE5\u70BA [\u5207\u63DB\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u5354\u52A9\u5DE5\u5177\u6A21\u5F0F] \u547D\u4EE4\u6307\u6D3E\u6309\u9375\u7E6B\u7D50\u95DC\u4FC2\u3002"],"vs/editor/browser/coreCommands":["\u5373\u4F7F\u884C\u7684\u9577\u5EA6\u904E\u9577\uFF0C\u4ECD\u8981\u5805\u6301\u81F3\u7D50\u5C3E","\u5373\u4F7F\u884C\u7684\u9577\u5EA6\u904E\u9577\uFF0C\u4ECD\u8981\u5805\u6301\u81F3\u7D50\u5C3E","\u5DF2\u79FB\u9664\u6B21\u8981\u8CC7\u6599\u6307\u6A19"],"vs/editor/browser/editorExtensions":["\u5FA9\u539F(&&U)","\u5FA9\u539F","\u53D6\u6D88\u5FA9\u539F(&&R)","\u91CD\u505A","\u5168\u9078(&&S)","\u5168\u9078"],"vs/editor/browser/widget/codeEditorWidget":["\u6E38\u6A19\u6578\u76EE\u5DF2\u9650\u5236\u70BA {0}\u3002\u8ACB\u8003\u616E\u4F7F\u7528 [\u5C0B\u627E\u548C\u53D6\u4EE3](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) \u9032\u884C\u8F03\u5927\u578B\u7684\u8B8A\u66F4\uFF0C\u6216\u589E\u52A0\u7DE8\u8F2F\u5668\u7684\u591A\u91CD\u6E38\u6A19\u9650\u5236\u8A2D\u5B9A\u3002","\u589E\u52A0\u591A\u91CD\u6E38\u6A19\u9650\u5236"],"vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer":["\u6613\u5B58\u53D6\u5DEE\u7570\u6AA2\u8996\u5668\u4E2D\u7684 [\u63D2\u5165] \u5716\u793A\u3002","\u6613\u5B58\u53D6\u5DEE\u7570\u6AA2\u8996\u5668\u4E2D\u7684 [\u79FB\u9664] \u5716\u793A\u3002","\u6613\u5B58\u53D6\u5DEE\u7570\u6AA2\u8996\u5668\u4E2D\u7684 [\u95DC\u9589] \u5716\u793A\u3002","\u95DC\u9589","\u53EF\u5B58\u53D6\u7684 Diff \u6AA2\u8996\u5668\u3002\u4F7F\u7528\u5411\u4E0A\u548C\u5411\u4E0B\u7BAD\u982D\u4F86\u700F\u89BD\u3002","\u672A\u8B8A\u66F4\u4EFB\u4E00\u884C","\u5DF2\u8B8A\u66F4 1 \u884C","\u5DF2\u8B8A\u66F4 {0} \u884C","{1} \u9805\u5DEE\u7570\u4E2D\u7684\u7B2C {0} \u9805: \u539F\u59CB\u884C {2}\u3001{3}\uFF0C\u4FEE\u6539\u884C {4}\u3001{5}","\u7A7A\u767D","{0} \u672A\u8B8A\u66F4\u884C {1}","{0} \u539F\u59CB\u884C {1} \u4FEE\u6539\u7684\u884C {2}","+ {0} \u4FEE\u6539\u884C {1}","- {0} \u539F\u59CB\u884C {1}"],"vs/editor/browser/widget/diffEditor/components/diffEditorEditors":[" \u4F7F\u7528 {0} \u4EE5\u958B\u555F\u5354\u52A9\u5DE5\u5177\u8AAA\u660E\u3002"],"vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin":["\u8907\u88FD\u5DF2\u522A\u9664\u7684\u884C","\u8907\u88FD\u5DF2\u522A\u9664\u7684\u884C","\u8907\u88FD\u8B8A\u66F4\u7684\u884C","\u8907\u88FD\u8B8A\u66F4\u7684\u884C","\u8907\u88FD\u5DF2\u522A\u9664\u7684\u884C \uFF08{0}\uFF09","\u8907\u88FD\u8B8A\u66F4\u7684\u884C ({0})","\u9084\u539F\u6B64\u8B8A\u66F4"],"vs/editor/browser/widget/diffEditor/diffEditor.contribution":["\u7A7A\u9593\u6709\u9650\u6642\u4F7F\u7528\u5167\u5D4C\u6AA2\u8996","\u986F\u793A\u79FB\u52D5\u7684\u7A0B\u5F0F\u78BC\u5340\u584A","\u958B\u555F\u6613\u5B58\u53D6\u5DEE\u7570\u6AA2\u8996\u5668","\u5207\u63DB\u647A\u758A\u672A\u8B8A\u66F4\u7684\u5340\u57DF","\u5207\u63DB\u986F\u793A\u79FB\u52D5\u7684\u7A0B\u5F0F\u78BC\u5340\u584A","\u7576\u7A7A\u9593\u6709\u9650\u6642\u5207\u63DB\u4F7F\u7528\u5167\u5D4C\u6AA2\u8996","Diff \u7DE8\u8F2F\u5668","\u5207\u63DB\u5074\u908A","\u7D50\u675F\u6BD4\u8F03\u79FB\u52D5","\u647A\u758A\u6240\u6709\u672A\u8B8A\u66F4\u7684\u5340\u57DF","\u986F\u793A\u6240\u6709\u672A\u8B8A\u66F4\u7684\u5340\u57DF","\u53EF\u5B58\u53D6\u7684 Diff \u6AA2\u8996\u5668","\u79FB\u81F3\u4E0B\u4E00\u500B\u5DEE\u7570","\u79FB\u81F3\u4E0A\u4E00\u500B\u5DEE\u7570"],"vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature":["\u647A\u758A\u672A\u8B8A\u66F4\u7684\u5340\u57DF","\u6309\u4E00\u4E0B\u6216\u62D6\u66F3\u4EE5\u5728\u4E0A\u65B9\u986F\u793A\u66F4\u591A\u5167\u5BB9","\u986F\u793A\u672A\u8B8A\u66F4\u7684\u5340\u57DF","\u6309\u4E00\u4E0B\u6216\u62D6\u66F3\u4EE5\u5728\u4E0B\u65B9\u986F\u793A\u66F4\u591A\u5167\u5BB9","{0} \u689D\u96B1\u85CF\u884C","\u6309\u5169\u4E0B\u4EE5\u5C55\u958B"],"vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature":["\u884C {0}-{1} \u7684\u7A0B\u5F0F\u78BC\u5DF2\u79FB\u52D5\uFF0C\u4E14\u6709\u6240\u8B8A\u66F4","\u884C {0}-{1} \u7684\u7A0B\u5F0F\u78BC\u5DF2\u79FB\u52D5\uFF0C\u4E14\u6709\u6240\u8B8A\u66F4","\u7A0B\u5F0F\u78BC\u5DF2\u79FB\u81F3\u884C {0}-{1}","\u884C {0}-{1} \u7684\u7A0B\u5F0F\u78BC\u5DF2\u79FB\u52D5"],"vs/editor/browser/widget/diffEditor/features/revertButtonsFeature":["\u9084\u539F\u9078\u53D6\u7684\u8B8A\u66F4","\u9084\u539F\u8B8A\u66F4"],"vs/editor/browser/widget/diffEditor/registrations.contribution":["\u5728 Diff \u7DE8\u8F2F\u5668\u4E2D\u79FB\u52D5\u7684\u6587\u5B57\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u5728 Diff \u7DE8\u8F2F\u5668\u4E2D\u79FB\u52D5\u7684\u6587\u5B57\u7684\u4F5C\u7528\u4E2D\u6846\u7DDA\u8272\u5F69\u3002","\u672A\u8B8A\u66F4\u7684\u5340\u57DF\u5C0F\u5DE5\u5177\u5468\u570D\u7684\u9670\u5F71\u8272\u5F69\u3002","Diff \u7DE8\u8F2F\u5668\u4E2D\u7528\u65BC\u63D2\u5165\u7684\u7DDA\u689D\u88DD\u98FE\u3002","Diff \u7DE8\u8F2F\u5668\u4E2D\u7528\u65BC\u79FB\u9664\u7684\u7DDA\u689D\u88DD\u98FE\u3002"],"vs/editor/browser/widget/hoverWidget/hoverWidget":["\u6309\u4F4F {0} \u9375\u5C07\u6ED1\u9F20\u61F8\u505C\u5728\u4E0A\u9762"],"vs/editor/browser/widget/multiDiffEditorWidget/colors":["Diff \u7DE8\u8F2F\u5668\u6A19\u982D\u7684\u80CC\u666F\u8272\u5F69","\u591A\u91CD\u6A94\u6848 Diff \u7DE8\u8F2F\u5668\u7684\u80CC\u666F\u8272\u5F69","\u591A\u91CD\u6A94\u6848 Diff \u7DE8\u8F2F\u5668\u7684\u6846\u7DDA\u8272\u5F69"],"vs/editor/common/config/editorConfigurationSchema":["\u7DE8\u8F2F\u5668","\u8207 Tab \u76F8\u7B49\u7684\u7A7A\u683C\u6578\u91CF\u3002\u7576 {0} \u5DF2\u958B\u555F\u6642\uFF0C\u6703\u6839\u64DA\u6A94\u6848\u5167\u5BB9\u8986\u5BEB\u6B64\u8A2D\u5B9A\u3002","\u7528\u65BC\u7E2E\u6392\u6216 'tabSize' \u4F7F\u7528 `\"editor.tabSize\"` \u503C\u7684\u7A7A\u683C\u6578\u76EE\u3002\u7576 '#editor.detectIndentation#' \u958B\u555F\u6642\uFF0C\u6703\u6839\u64DA\u6A94\u6848\u5167\u5BB9\u8986\u5BEB\u9019\u500B\u8A2D\u5B9A\u3002","\u5728\u6309 `Tab` \u6642\u63D2\u5165\u7A7A\u683C\u3002\u7576 {0} \u958B\u555F\u6642\uFF0C\u6703\u6839\u64DA\u6A94\u6848\u5167\u5BB9\u8986\u5BEB\u6B64\u8A2D\u5B9A\u3002","\u6839\u64DA\u6A94\u6848\u5167\u5BB9\uFF0C\u63A7\u5236\u7576\u6A94\u6848\u958B\u555F\u6642\uFF0C\u662F\u5426\u81EA\u52D5\u5075\u6E2C {0} \u548C {1}\u3002","\u79FB\u9664\u5C3E\u7AEF\u81EA\u52D5\u63D2\u5165\u7684\u7A7A\u767D\u5B57\u5143\u3002","\u91DD\u5C0D\u5927\u578B\u6A94\u6848\u505C\u7528\u90E8\u5206\u9AD8\u8A18\u61B6\u9AD4\u9700\u6C42\u529F\u80FD\u7684\u7279\u6B8A\u8655\u7406\u65B9\u5F0F\u3002","\u95DC\u9589 Word \u578B\u5EFA\u8B70\u3002","\u50C5\u5EFA\u8B70\u4F86\u81EA\u4F7F\u7528\u4E2D\u6587\u4EF6\u4E2D\u7684\u5B57\u7D44\u3002","\u5EFA\u8B70\u4F86\u81EA\u6240\u6709\u5DF2\u958B\u555F\u6587\u4EF6\u4E2D\uFF0C\u8A9E\u8A00\u76F8\u540C\u7684\u5B57\u7D44\u3002","\u5EFA\u8B70\u4F86\u81EA\u6240\u6709\u5DF2\u958B\u555F\u6587\u4EF6\u4E2D\u7684\u5B57\u7D44\u3002","\u63A7\u5236\u662F\u5426\u61C9\u8A72\u6839\u64DA\u6587\u4EF6\u4E2D\u7684\u6587\u5B57\u4F86\u8A08\u7B97\u5B8C\u6210\uFF0C\u4EE5\u53CA\u5F9E\u54EA\u4E9B\u6587\u4EF6\u8A08\u7B97\u3002","\u6240\u6709\u5F69\u8272\u4E3B\u984C\u7686\u5DF2\u555F\u7528\u8A9E\u610F\u9192\u76EE\u63D0\u793A\u3002","\u6240\u6709\u5F69\u8272\u4E3B\u984C\u7686\u5DF2\u505C\u7528\u8A9E\u610F\u9192\u76EE\u63D0\u793A\u3002","\u8A9E\u610F\u9192\u76EE\u63D0\u793A\u7531\u76EE\u524D\u4E4B\u5F69\u8272\u4F48\u666F\u4E3B\u984C\u7684 'semanticHighlighting' \u8A2D\u5B9A\u6240\u8A2D\u5B9A\u3002","\u63A7\u5236 semanticHighlighting \u662F\u5426\u6703\u70BA\u652F\u63F4\u7684\u8A9E\u8A00\u986F\u793A\u3002","\u5373\u4F7F\u6309\u5169\u4E0B\u5167\u5BB9\u6216\u6309 `Escape`\uFF0C\u4ECD\u4FDD\u6301\u7784\u5B54\u7DE8\u8F2F\u5668\u958B\u555F\u3002","\u56E0\u6548\u80FD\u7684\u7DE3\u6545\uFF0C\u4E0D\u6703\u5C07\u8D85\u904E\u6B64\u9AD8\u5EA6\u7684\u884C Token \u5316","\u63A7\u5236\u6B0A\u6756\u5316\u662F\u5426\u61C9\u8A72\u5728 Web \u5DE5\u4F5C\u8005\u4E0A\u975E\u540C\u6B65\u9032\u884C\u3002","\u63A7\u5236\u662F\u5426\u61C9\u8A72\u8A18\u9304\u975E\u540C\u6B65\u6B0A\u6756\u5316\u3002\u50C5\u9069\u7528\u5075\u932F\u3002","\u63A7\u5236\u662F\u5426\u61C9\u4F7F\u7528\u820A\u7248\u80CC\u666F Token \u5316\u4F86\u9A57\u8B49\u975E\u540C\u6B65 Token \u5316\u3002\u53EF\u80FD\u6703\u6E1B\u6162 Token \u5316\u7684\u901F\u5EA6\u3002\u50C5\u7528\u65BC\u5075\u932F\u3002","\u5B9A\u7FA9\u589E\u52A0\u6216\u6E1B\u5C11\u7E2E\u6392\u7684\u62EC\u5F27\u7B26\u865F\u3002","\u5DE6\u62EC\u5F27\u5B57\u5143\u6216\u5B57\u4E32\u9806\u5E8F\u3002","\u53F3\u62EC\u5F27\u5B57\u5143\u6216\u5B57\u4E32\u9806\u5E8F\u3002","\u5B9A\u7FA9\u7576\u62EC\u5F27\u914D\u5C0D\u8457\u8272\u5DF2\u555F\u7528\u6642\uFF0C\u7531\u5176\u5DE2\u72C0\u5C64\u7D1A\u8457\u8272\u7684\u62EC\u5F27\u914D\u5C0D\u3002","\u5DE6\u62EC\u5F27\u5B57\u5143\u6216\u5B57\u4E32\u9806\u5E8F\u3002","\u53F3\u62EC\u5F27\u5B57\u5143\u6216\u5B57\u4E32\u9806\u5E8F\u3002","\u53D6\u6D88 Diff \u8A08\u7B97\u524D\u7684\u903E\u6642\u9650\u5236 (\u6BEB\u79D2)\u3002\u82E5\u7121\u903E\u6642\uFF0C\u8ACB\u4F7F\u7528 0\u3002","\u8981\u8A08\u7B97\u5DEE\u7570\u7684\u6A94\u6848\u5927\u5C0F\u4E0A\u9650 (MB)\u3002\u4F7F\u7528 0 \u8868\u793A\u7121\u9650\u5236\u3002","\u63A7\u5236 Diff \u7DE8\u8F2F\u5668\u8981\u4E26\u6392\u6216\u5167\u5D4C\u986F\u793A Diff\u3002","\u5982\u679C\u5DEE\u7570\u7DE8\u8F2F\u5668\u5BEC\u5EA6\u5C0F\u65BC\u6B64\u503C\uFF0C\u5247\u4F7F\u7528\u5167\u5D4C\u6AA2\u8996\u3002","\u5982\u679C\u555F\u7528\u4E14\u7DE8\u8F2F\u5668\u5BEC\u5EA6\u592A\u5C0F\uFF0C\u5247\u6703\u4F7F\u7528\u5167\u5D4C\u6AA2\u8996\u3002","\u555F\u7528\u6642\uFF0CDiff \u7DE8\u8F2F\u5668\u6703\u5728\u5176\u5B57\u5143\u908A\u7DE3\u986F\u793A\u7BAD\u982D\uFF0C\u4EE5\u9084\u539F\u8B8A\u66F4\u3002","\u555F\u7528\u6642\uFF0CDiff \u7DE8\u8F2F\u5668\u6703\u5FFD\u7565\u524D\u7F6E\u6216\u5F8C\u7F6E\u7A7A\u683C\u7684\u8B8A\u66F4\u3002","\u63A7\u5236 Diff \u7DE8\u8F2F\u5668\u662F\u5426\u8981\u70BA\u65B0\u589E/\u79FB\u9664\u7684\u8B8A\u66F4\u986F\u793A +/- \u6A19\u8A18\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u986F\u793A codelens\u3002","\u4E00\u5F8B\u4E0D\u63DB\u884C\u3002","\u4F9D\u6AA2\u8996\u5340\u5BEC\u5EA6\u63DB\u884C\u3002","\u5C07\u4F9D\u64DA {0} \u8A2D\u5B9A\u81EA\u52D5\u63DB\u884C\u3002","\u4F7F\u7528\u820A\u7248\u5DEE\u7570\u6F14\u7B97\u6CD5\u3002","\u4F7F\u7528\u9032\u968E\u7248\u5DEE\u7570\u6F14\u7B97\u6CD5\u3002","\u63A7\u5236\u5DEE\u7570\u7DE8\u8F2F\u5668\u662F\u5426\u986F\u793A\u672A\u8B8A\u66F4\u7684\u5340\u57DF\u3002","\u63A7\u5236\u672A\u8B8A\u66F4\u5340\u57DF\u7684\u4F7F\u7528\u884C\u6578\u3002","\u63A7\u5236\u672A\u8B8A\u66F4\u5340\u57DF\u7684\u6700\u5C0F\u4F7F\u7528\u884C\u6578\u3002","\u63A7\u5236\u6BD4\u8F03\u672A\u8B8A\u66F4\u7684\u5340\u57DF\u6642\uFF0C\u8981\u4F7F\u7528\u591A\u5C11\u884C\u4F5C\u70BA\u5167\u5BB9\u3002","\u63A7\u5236 Diff \u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u8A72\u986F\u793A\u5075\u6E2C\u5230\u7684\u7A0B\u5F0F\u78BC\u79FB\u52D5\u3002","\u63A7\u5236\u5DEE\u7570\u7DE8\u8F2F\u5668\u662F\u5426\u986F\u793A\u7A7A\u767D\u88DD\u98FE\u9805\u76EE\uFF0C\u4EE5\u67E5\u770B\u63D2\u5165\u6216\u522A\u9664\u5B57\u5143\u7684\u4F4D\u7F6E\u3002"],"vs/editor/common/config/editorOptions":["\u4F7F\u7528\u5E73\u53F0 API \u4EE5\u5075\u6E2C\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u9644\u52A0\u3002","\u4F7F\u7528\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u5C07\u4F7F\u7528\u65B9\u5F0F\u6700\u4F73\u5316\u3002","\u5047\u8A2D\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u672A\u9023\u7D50\u3002","\u63A7\u5236 UI \u662F\u5426\u61C9\u65BC\u5DF2\u70BA\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u6700\u4F73\u5316\u7684\u6A21\u5F0F\u4E2D\u57F7\u884C\u3002","\u63A7\u5236\u662F\u5426\u8981\u5728\u8A3B\u89E3\u6642\u63D2\u5165\u7A7A\u767D\u5B57\u5143\u3002","\u63A7\u5236\u662F\u5426\u61C9\u4EE5\u884C\u8A3B\u89E3\u7684\u5207\u63DB\u3001\u65B0\u589E\u6216\u79FB\u9664\u52D5\u4F5C\uFF0C\u5FFD\u7565\u7A7A\u767D\u7684\u884C\u3002","\u63A7\u5236\u8907\u88FD\u6642\u4E0D\u9078\u53D6\u4EFB\u4F55\u9805\u76EE\u662F\u5426\u6703\u8907\u88FD\u76EE\u524D\u7A0B\u5F0F\u884C\u3002","\u63A7\u5236\u5728\u8F38\u5165\u671F\u9593\u662F\u5426\u8981\u8DF3\u904E\u6E38\u6A19\u4F86\u5C0B\u627E\u76F8\u7B26\u7684\u9805\u76EE\u3002","\u6C38\u4E0D\u5F9E\u7DE8\u8F2F\u5668\u9078\u53D6\u7BC4\u570D\u4E2D\u690D\u5165\u641C\u5C0B\u5B57\u4E32\u3002","\u4E00\u5F8B\u5F9E\u7DE8\u8F2F\u5668\u9078\u53D6\u7BC4\u570D\u4E2D\u690D\u5165\u641C\u5C0B\u5B57\u4E32\uFF0C\u5305\u62EC\u6E38\u6A19\u4F4D\u7F6E\u7684\u5B57\u3002","\u53EA\u6709\u4F86\u81EA\u7DE8\u8F2F\u5668\u9078\u53D6\u7BC4\u570D\u4E2D\u7684\u690D\u5165\u641C\u5C0B\u5B57\u4E32\u3002","\u63A7\u5236 [\u5C0B\u627E\u5C0F\u5DE5\u5177] \u4E2D\u7684\u641C\u5C0B\u5B57\u4E32\u662F\u5426\u4F86\u81EA\u7DE8\u8F2F\u5668\u9078\u53D6\u9805\u76EE\u3002","\u6C38\u4E0D\u81EA\u52D5\u958B\u555F [\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E] (\u9810\u8A2D)\u3002","\u4E00\u5F8B\u81EA\u52D5\u958B\u555F [\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E]\u3002","\u9078\u53D6\u591A\u884C\u5167\u5BB9\u6642\uFF0C\u81EA\u52D5\u958B\u555F [\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E]\u3002","\u63A7\u5236\u81EA\u52D5\u958B\u555F [\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E] \u7684\u689D\u4EF6\u3002","\u63A7\u5236\u5C0B\u627E\u5C0F\u5DE5\u5177\u662F\u5426\u5728 macOS \u4E0A\u8B80\u53D6\u6216\u4FEE\u6539\u5171\u7528\u5C0B\u627E\u526A\u8CBC\u7C3F\u3002","\u63A7\u5236\u5C0B\u627E\u5C0F\u5DE5\u5177\u662F\u5426\u61C9\u5728\u7DE8\u8F2F\u5668\u9802\u7AEF\u984D\u5916\u65B0\u589E\u884C\u3002\u82E5\u70BA true\uFF0C\u7576\u60A8\u53EF\u770B\u5230\u5C0B\u627E\u5C0F\u5DE5\u5177\u6642\uFF0C\u60A8\u7684\u6372\u52D5\u7BC4\u570D\u6703\u8D85\u904E\u7B2C\u4E00\u884C\u3002","\u7576\u518D\u4E5F\u627E\u4E0D\u5230\u5176\u4ED6\u76F8\u7B26\u9805\u76EE\u6642\uFF0C\u63A7\u5236\u662F\u5426\u81EA\u52D5\u5F9E\u958B\u982D (\u6216\u7D50\u5C3E) \u91CD\u65B0\u958B\u59CB\u641C\u5C0B\u3002","\u555F\u7528/\u505C\u7528\u9023\u5B57\u5B57\u578B ('calt' \u548C 'liga' \u5B57\u578B\u529F\u80FD)\u3002\u5C07\u6B64\u9805\u8B8A\u66F4\u70BA\u5B57\u4E32\uFF0C\u4EE5\u7CBE\u78BA\u63A7\u5236 'font-feature-settings' CSS \u5C6C\u6027\u3002","\u660E\u78BA\u7684 'font-feature-settings' CSS \u5C6C\u6027\u3002\u5982\u679C\u53EA\u9700\u8981\u958B\u555F/\u95DC\u9589\u9023\u5B57\uFF0C\u53EF\u4EE5\u6539\u70BA\u50B3\u905E\u5E03\u6797\u503C\u3002","\u8A2D\u5B9A\u9023\u5B57\u5B57\u578B\u6216\u5B57\u578B\u529F\u80FD\u3002\u53EF\u4EE5\u662F\u5E03\u6797\u503C\u4EE5\u555F\u7528/\u505C\u7528\u9023\u5B57\uFF0C\u6216\u4EE3\u8868 CSS 'font-feature-settings' \u5C6C\u6027\u7684\u5B57\u4E32\u3002","\u555F\u7528/\u505C\u7528\u5F9E font-weight \u5230 font-variation-settings \u7684\u8F49\u63DB\u3002\u5C07\u6B64\u8A2D\u5B9A\u8B8A\u66F4\u70BA\u5B57\u4E32\uFF0C\u4EE5\u66F4\u7CBE\u7D30\u5730\u63A7\u5236 'font-variation-settings' CSS \u5C6C\u6027\u3002","\u660E\u78BA\u7684 'font-variation-settings' CSS \u5C6C\u6027\u3002\u5982\u679C\u53EA\u9700\u8981\u5C07 font-weight \u8F49\u63DB\u70BA font-variation-settings\uFF0C\u53EF\u4EE5\u6539\u70BA\u50B3\u905E\u5E03\u6797\u503C\u3002","\u8A2D\u5B9A\u5B57\u578B\u8B8A\u5316\u3002\u53EF\u4EE5\u662F\u5E03\u6797\u503C\uFF0C\u4EE5\u555F\u7528/\u505C\u7528\u5F9E font-weight \u5230 font-variation-settings \u7684\u8F49\u63DB\uFF0C\u6216\u662F\u5B57\u4E32\uFF0C\u505A\u70BA CSS 'font-variation-settings' \u5C6C\u6027\u7684\u503C\u3002","\u63A7\u5236\u5B57\u578B\u5927\u5C0F (\u50CF\u7D20)\u3002","\u53EA\u5141\u8A31\u300C\u4E00\u822C\u300D\u53CA\u300C\u7C97\u9AD4\u300D\u95DC\u9375\u5B57\uFF0C\u6216\u4ECB\u65BC 1 \u5230 1000 \u4E4B\u9593\u7684\u6578\u503C\u3002","\u63A7\u5236\u5B57\u578B\u7C97\u7D30\u3002\u63A5\u53D7\u300C\u4E00\u822C\u300D\u53CA\u300C\u7C97\u9AD4\u300D\u95DC\u9375\u5B57\uFF0C\u6216\u4ECB\u65BC 1 \u5230 1000 \u4E4B\u9593\u7684\u6578\u503C\u3002","\u986F\u793A\u7D50\u679C\u7684\u9810\u89BD\u6AA2\u8996 (\u9810\u8A2D)","\u79FB\u81F3\u4E3B\u8981\u7D50\u679C\u4E26\u986F\u793A\u9810\u89BD\u6AA2\u8996","\u524D\u5F80\u4E3B\u8981\u7D50\u679C\uFF0C\u4E26\u5C0D\u5176\u4ED6\u4EBA\u555F\u7528\u7121\u9810\u89BD\u700F\u89BD","\u6B64\u8A2D\u5B9A\u5DF2\u6DD8\u6C70\uFF0C\u8ACB\u6539\u7528 'editor.editor.gotoLocation.multipleDefinitions' \u6216 'editor.editor.gotoLocation.multipleImplementations' \u7B49\u55AE\u7368\u8A2D\u5B9A\u3002","\u63A7\u5236 'Go to Definition' \u547D\u4EE4\u5728\u6709\u591A\u500B\u76EE\u6A19\u4F4D\u7F6E\u5B58\u5728\u6642\u7684\u884C\u70BA\u3002","\u63A7\u5236 'Go to Type Definition' \u547D\u4EE4\u5728\u6709\u591A\u500B\u76EE\u6A19\u4F4D\u7F6E\u5B58\u5728\u6642\u7684\u884C\u70BA\u3002","\u63A7\u5236 'Go to Declaration' \u547D\u4EE4\u5728\u6709\u591A\u500B\u76EE\u6A19\u4F4D\u7F6E\u5B58\u5728\u6642\u7684\u884C\u70BA\u3002","\u63A7\u5236 'Go to Implementations' \u547D\u4EE4\u5728\u6709\u591A\u500B\u76EE\u6A19\u4F4D\u7F6E\u5B58\u5728\u6642\u7684\u884C\u70BA\u3002","\u63A7\u5236 'Go to References' \u547D\u4EE4\u5728\u6709\u591A\u500B\u76EE\u6A19\u4F4D\u7F6E\u5B58\u5728\u6642\u7684\u884C\u70BA\u3002","\u7576 'Go to Definition' \u7684\u7D50\u679C\u70BA\u76EE\u524D\u4F4D\u7F6E\u6642\uFF0C\u6B63\u5728\u57F7\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u8B58\u5225\u78BC\u3002","\u7576 'Go to Type Definition' \u7684\u7D50\u679C\u70BA\u76EE\u524D\u4F4D\u7F6E\u6642\uFF0C\u6B63\u5728\u57F7\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u8B58\u5225\u78BC\u3002","\u7576 'Go to Declaration' \u7684\u7D50\u679C\u70BA\u76EE\u524D\u4F4D\u7F6E\u6642\uFF0C\u6B63\u5728\u57F7\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u8B58\u5225\u78BC\u3002","\u7576 'Go to Implementation' \u7684\u7D50\u679C\u70BA\u76EE\u524D\u4F4D\u7F6E\u6642\uFF0C\u6B63\u5728\u57F7\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u8B58\u5225\u78BC\u3002","\u7576 'Go to Reference' \u7684\u7D50\u679C\u70BA\u76EE\u524D\u4F4D\u7F6E\u6642\uFF0C\u6B63\u5728\u57F7\u884C\u7684\u66FF\u4EE3\u547D\u4EE4\u8B58\u5225\u78BC\u3002","\u63A7\u5236\u662F\u5426\u986F\u793A\u66AB\u7559\u3002","\u63A7\u5236\u66AB\u7559\u986F\u793A\u7684\u5EF6\u9072\u6642\u9593 (\u4EE5\u6BEB\u79D2\u70BA\u55AE\u4F4D)\u3002","\u63A7\u5236\u7576\u6ED1\u9F20\u79FB\u904E\u6642\uFF0C\u662F\u5426\u61C9\u4FDD\u6301\u986F\u793A\u66AB\u7559\u3002","\u63A7\u5236\u66AB\u7559\u96B1\u85CF\u7684\u5EF6\u9072\u6642\u9593 (\u4EE5\u6BEB\u79D2\u70BA\u55AE\u4F4D)\u3002\u9700\u8981\u555F\u7528 `editor.hover.sticky`\u3002","\u5982\u679C\u6709\u7A7A\u9593\uFF0C\u5247\u504F\u597D\u5728\u884C\u4E0A\u65B9\u986F\u793A\u6E38\u6A19\u3002","\u5047\u8A2D\u6240\u6709\u5B57\u5143\u7684\u5BEC\u5EA6\u5747\u76F8\u540C\u3002\u9019\u662F\u4E00\u7A2E\u5FEB\u901F\u7684\u6F14\u7B97\u6CD5\uFF0C\u9069\u7528\u65BC\u7B49\u5BEC\u5B57\u578B\uFF0C\u4EE5\u53CA\u5B57\u7B26\u5BEC\u5EA6\u76F8\u540C\u7684\u90E8\u5206\u6307\u4EE4\u78BC (\u4F8B\u5982\u62C9\u4E01\u6587\u5B57\u5143)\u3002","\u5C07\u5916\u570D\u9EDE\u8A08\u7B97\u59D4\u6D3E\u7D66\u700F\u89BD\u5668\u3002\u9019\u662F\u7DE9\u6162\u7684\u6F14\u7B97\u6CD5\uFF0C\u5982\u679C\u6A94\u6848\u8F03\u5927\u53EF\u80FD\u6703\u5C0E\u81F4\u51CD\u7D50\uFF0C\u4F46\u5728\u6240\u6709\u60C5\u6CC1\u4E0B\u90FD\u6B63\u5E38\u904B\u4F5C\u3002","\u63A7\u5236\u8A08\u7B97\u5916\u570D\u9EDE\u7684\u6F14\u7B97\u6CD5\u3002\u8ACB\u6CE8\u610F\uFF0C\u5728\u5354\u52A9\u5DE5\u5177\u6A21\u5F0F\u4E2D\uFF0C\u6703\u4F7F\u7528\u9032\u968E\u4F86\u7372\u5F97\u6700\u4F73\u9AD4\u9A57\u3002","\u505C\u7528\u7A0B\u5F0F\u4EE3\u78BC\u52D5\u4F5C\u529F\u80FD\u8868\u3002","\u7576\u6E38\u6A19\u4F4D\u65BC\u542B\u6709\u7A0B\u5F0F\u4EE3\u78BC\u7684\u884C\u6642\uFF0C\u986F\u793A\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u529F\u80FD\u8868\u3002","\u7576\u6E38\u6A19\u4F4D\u65BC\u542B\u6709\u7A0B\u5F0F\u4EE3\u78BC\u7684\u884C\u6216\u7A7A\u884C\u6642\uFF0C\u986F\u793A\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u529F\u80FD\u8868\u3002","\u5728\u7DE8\u8F2F\u5668\u4E2D\u555F\u7528\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u71C8\u6CE1\u3002","\u5728\u7DE8\u8F2F\u5668\u9802\u7AEF\u6372\u52D5\u671F\u9593\u986F\u793A\u5DE2\u72C0\u7684\u76EE\u524D\u7BC4\u570D\u3002","\u5B9A\u7FA9\u8981\u986F\u793A\u7684\u81EA\u9ECF\u7DDA\u6578\u76EE\u4E0A\u9650\u3002","\u5B9A\u7FA9\u8981\u7528\u65BC\u5224\u65B7\u8981\u9ECF\u4F4F\u7684\u7DDA\u689D\u7684\u6A21\u578B\u3002\u5982\u679C\u5927\u7DB1\u6A21\u578B\u4E0D\u5B58\u5728\uFF0C\u5247\u6703\u56DE\u5230\u647A\u758A\u63D0\u4F9B\u8005\u6A21\u578B\uFF0C\u5176\u6703\u56DE\u5230\u7E2E\u6392\u6A21\u578B\u3002\u9019\u4E09\u7A2E\u60C5\u6CC1\u4E2D\u6703\u9075\u5B88\u6B64\u9806\u5E8F\u3002","\u4F7F\u7528\u7DE8\u8F2F\u5668\u7684\u6C34\u5E73\u6372\u8EF8\uFF0C\u555F\u7528\u81EA\u9ECF\u6372\u52D5\u7684\u6372\u52D5\u3002","\u555F\u7528\u7DE8\u8F2F\u5668\u4E2D\u7684\u5167\u5D4C\u63D0\u793A\u3002","\u5DF2\u555F\u7528\u5167\u5D4C\u63D0\u793A","\u9810\u8A2D\u6703\u986F\u793A\u5167\u5D4C\u63D0\u793A\uFF0C\u4E26\u5728\u6309\u4F4F {0} \u6642\u96B1\u85CF","\u9810\u8A2D\u6703\u96B1\u85CF\u5167\u5D4C\u63D0\u793A\uFF0C\u4E26\u5728\u6309\u4F4F {0} \u6642\u986F\u793A","\u5DF2\u505C\u7528\u5167\u5D4C\u63D0\u793A","\u63A7\u5236\u7DE8\u8F2F\u5668\u4E2D\u5167\u5D4C\u63D0\u793A\u7684\u5B57\u578B\u5927\u5C0F\u3002\u7576\u8A2D\u5B9A\u7684\u503C\u5C0F\u65BC {1} \u6216\u5927\u65BC\u7DE8\u8F2F\u5668\u5B57\u578B\u5927\u5C0F\u6642\uFF0C\u5247\u6703\u4F7F\u7528{0} \u9810\u8A2D\u503C\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u4E2D\uFF0C\u5167\u5D4C\u63D0\u793A\u7684\u5B57\u578B\u5BB6\u65CF\u3002\u8A2D\u5B9A\u70BA\u7A7A\u767D\u6642\uFF0C\u5247\u6703\u4F7F\u7528 {0}\u3002","\u5728\u7DE8\u8F2F\u5668\u4E2D\u555F\u7528\u7684\u5167\u5D4C\u63D0\u793A\u5468\u570D\u7684\u586B\u88DC\u3002",`\u63A7\u5236\u884C\u9AD8\u3002\r + - \u4F7F\u7528 0 \u5F9E\u5B57\u578B\u5927\u5C0F\u81EA\u52D5\u8A08\u7B97\u884C\u9AD8\u3002\r + - \u4F7F\u7528\u4ECB\u65BC 0 \u548C 8 \u4E4B\u9593\u7684\u503C\u4F5C\u70BA\u5B57\u578B\u5927\u5C0F\u7684\u4E58\u6578\u3002\r + - \u5927\u65BC\u6216\u7B49\u65BC 8 \u7684\u503C\u5C07\u7528\u4F86\u4F5C\u70BA\u6709\u6548\u503C\u3002`,"\u63A7\u5236\u662F\u5426\u6703\u986F\u793A\u7E2E\u5716","\u63A7\u5236\u662F\u5426\u6703\u81EA\u52D5\u96B1\u85CF\u7E2E\u5716\u3002","\u7E2E\u5716\u5927\u5C0F\u8207\u7DE8\u8F2F\u5668\u5167\u5BB9\u76F8\u540C (\u4E14\u53EF\u80FD\u6703\u6372\u52D5)\u3002","\u7E2E\u5716\u6703\u8996\u9700\u8981\u4F38\u7E2E\uFF0C\u4EE5\u586B\u6EFF\u8A72\u7DE8\u8F2F\u5668\u7684\u9AD8\u5EA6 (\u7121\u6372\u52D5)\u3002","\u7E2E\u5716\u5C07\u8996\u9700\u8981\u7E2E\u5C0F\uFF0C\u4E00\u5F8B\u4E0D\u6703\u5927\u65BC\u8A72\u7DE8\u8F2F\u5668 (\u7121\u6372\u52D5)\u3002","\u63A7\u5236\u7E2E\u5716\u7684\u5927\u5C0F\u3002","\u63A7\u5236\u8981\u5728\u54EA\u7AEF\u5448\u73FE\u7E2E\u5716\u3002","\u63A7\u5236\u4F55\u6642\u986F\u793A\u8FF7\u4F60\u5730\u5716\u6ED1\u687F\u3002","\u7E2E\u5716\u5167\u6240\u7E6A\u88FD\u7684\u5167\u5BB9\u5927\u5C0F: 1\u30012 \u6216 3\u3002","\u986F\u793A\u884C\u4E2D\u7684\u5BE6\u969B\u5B57\u5143\uFF0C\u800C\u4E0D\u662F\u8272\u5F69\u5340\u584A\u3002","\u9650\u5236\u7E2E\u5716\u7684\u5BEC\u5EA6\uFF0C\u6700\u591A\u986F\u793A\u67D0\u500B\u6578\u76EE\u7684\u5217\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u4E0A\u908A\u7DE3\u8207\u7B2C\u4E00\u884C\u4E4B\u9593\u7684\u7A7A\u683C\u6578\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u4E0B\u908A\u7DE3\u8207\u6700\u5F8C\u4E00\u884C\u4E4B\u9593\u7684\u7A7A\u683C\u6578\u3002","\u555F\u7528\u5FEB\u986F\uFF0C\u5728\u60A8\u9375\u5165\u7684\u540C\u6642\u986F\u793A\u53C3\u6578\u6587\u4EF6\u548C\u985E\u578B\u8CC7\u8A0A\u3002","\u63A7\u5236\u63D0\u793A\u529F\u80FD\u8868\u662F\u5426\u5728\u6E05\u55AE\u7D50\u5C3E\u6642\u5FAA\u74B0\u6216\u95DC\u9589\u3002","\u5FEB\u901F\u5EFA\u8B70\u6703\u986F\u793A\u5728\u5EFA\u8B70\u5C0F\u5DE5\u5177\u5167","\u5FEB\u901F\u5EFA\u8B70\u6703\u986F\u793A\u70BA\u6D6E\u6C34\u5370\u6587\u5B57","\u5DF2\u505C\u7528\u5FEB\u901F\u5EFA\u8B70","\u5141\u8A31\u5728\u5B57\u4E32\u5167\u986F\u793A\u5373\u6642\u5EFA\u8B70\u3002","\u5141\u8A31\u5728\u8A3B\u89E3\u4E2D\u986F\u793A\u5373\u6642\u5EFA\u8B70\u3002","\u5141\u8A31\u5728\u5B57\u4E32\u8207\u8A3B\u89E3\u4EE5\u5916\u4E4B\u8655\u986F\u793A\u5373\u6642\u5EFA\u8B70\u3002","\u63A7\u5236\u8F38\u5165\u6642\u662F\u5426\u61C9\u81EA\u52D5\u986F\u793A\u5EFA\u8B70\u3002\u9019\u53EF\u63A7\u5236\u5728\u8A3B\u89E3\u3001\u5B57\u4E32\u53CA\u5176\u4ED6\u7A0B\u5F0F\u78BC\u4E2D\u7684\u8F38\u5165\u3002\u53EF\u8A2D\u5B9A\u5FEB\u901F\u5EFA\u8B70\u4EE5\u96B1\u5F62\u6D6E\u51FA\u6587\u5B57\u6216\u5EFA\u8B70\u5C0F\u5DE5\u5177\u986F\u793A\u3002\u53E6\u5916\u4E5F\u8ACB\u6CE8\u610F '{0}'-\u8A2D\u5B9A\uFF0C\u5176\u6703\u63A7\u5236\u5EFA\u8B70\u662F\u5426\u7531\u7279\u6B8A\u5B57\u5143\u6240\u89F8\u767C\u3002","\u4E0D\u986F\u793A\u884C\u865F\u3002","\u884C\u865F\u4EE5\u7D55\u5C0D\u503C\u986F\u793A\u3002","\u884C\u865F\u4EE5\u76EE\u524D\u6E38\u6A19\u7684\u76F8\u5C0D\u503C\u986F\u793A\u3002","\u6BCF 10 \u884C\u986F\u793A\u884C\u865F\u3002","\u63A7\u5236\u884C\u865F\u7684\u986F\u793A\u3002","\u9019\u500B\u7DE8\u8F2F\u5668\u5C3A\u898F\u6703\u8F49\u8B6F\u7684\u7B49\u5BEC\u5B57\u5143\u6578\u3002","\u6B64\u7DE8\u8F2F\u5668\u5C3A\u898F\u7684\u8272\u5F69\u3002","\u5728\u67D0\u500B\u6578\u76EE\u7684\u7B49\u5BEC\u5B57\u5143\u4E4B\u5F8C\u986F\u793A\u5782\u76F4\u5C3A\u898F\u3002\u5982\u6709\u591A\u500B\u5C3A\u898F\uFF0C\u5C31\u6703\u4F7F\u7528\u591A\u500B\u503C\u3002\u82E5\u9663\u5217\u7A7A\u767D\uFF0C\u5C31\u4E0D\u6703\u7E6A\u88FD\u4EFB\u4F55\u5C3A\u898F\u3002","\u5782\u76F4\u6372\u8EF8\u53EA\u6709\u5728\u5FC5\u8981\u6642\u624D\u53EF\u898B\u3002","\u5782\u76F4\u6372\u8EF8\u6C38\u9060\u53EF\u898B\u3002","\u5782\u76F4\u6372\u8EF8\u6C38\u9060\u96B1\u85CF\u3002","\u63A7\u5236\u9805\u5782\u76F4\u6372\u8EF8\u7684\u53EF\u898B\u5EA6\u3002","\u6C34\u5E73\u6372\u8EF8\u53EA\u6709\u5728\u5FC5\u8981\u6642\u624D\u53EF\u898B\u3002","\u6C34\u5E73\u6372\u8EF8\u6C38\u9060\u53EF\u898B\u3002","\u6C34\u5E73\u6372\u8EF8\u6C38\u9060\u96B1\u85CF\u3002","\u63A7\u5236\u9805\u6C34\u5E73\u6372\u8EF8\u7684\u53EF\u898B\u5EA6\u3002","\u5782\u76F4\u6372\u8EF8\u7684\u5BEC\u5EA6\u3002","\u6C34\u5E73\u6372\u8EF8\u7684\u9AD8\u5EA6\u3002","\u63A7\u5236\u9805\u6309\u4E00\u4E0B\u662F\u5426\u6309\u9801\u9762\u6EFE\u52D5\u6216\u8DF3\u5230\u6309\u4E00\u4E0B\u4F4D\u7F6E\u3002","\u8A2D\u5B9A\u6642\uFF0C\u6C34\u5E73\u6372\u8EF8\u4E0D\u6703\u589E\u52A0\u7DE8\u8F2F\u5668\u5167\u5BB9\u7684\u5927\u5C0F\u3002","\u63A7\u5236\u662F\u5426\u9192\u76EE\u63D0\u793A\u6240\u6709\u975E\u57FA\u672C\u7684 ASCII \u5B57\u5143\u3002\u53EA\u6709\u4ECB\u65BC U+0020\u548C U+007E\u3001tab\u3001\u63DB\u884C\u548C\u6B78\u4F4D\u5B57\u5143\u4E4B\u9593\u7684\u5B57\u5143\u6703\u8996\u70BA\u57FA\u672C ASCII\u3002","\u63A7\u5236\u662F\u5426\u53EA\u4FDD\u7559\u7A7A\u683C\u6216\u5B8C\u5168\u6C92\u6709\u5BEC\u5EA6\u4E4B\u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A\u3002","\u63A7\u5236\u662F\u5426\u9192\u76EE\u63D0\u793A\u8207\u57FA\u672C ASCII \u5B57\u5143\u6DF7\u6DC6\u7684\u5B57\u5143\uFF0C\u4F46\u76EE\u524D\u4F7F\u7528\u8005\u5730\u5340\u8A2D\u5B9A\u4E2D\u901A\u7528\u7684\u5B57\u5143\u9664\u5916\u3002","\u63A7\u5236\u8A3B\u89E3\u4E2D\u7684\u5B57\u5143\u662F\u5426\u4E5F\u61C9\u53D7\u5230 Unicode \u9192\u76EE\u63D0\u793A\u3002","\u63A7\u5236\u5B57\u4E32\u4E2D\u7684\u5B57\u5143\u662F\u5426\u4E5F\u61C9\u53D7\u5230 Unicode \u9192\u76EE\u63D0\u793A\u3002","\u5B9A\u7FA9\u672A\u9192\u76EE\u63D0\u793A\u7684\u5141\u8A31\u5B57\u5143\u3002","\u4E0D\u6703\u5C07\u5141\u8A31\u5730\u5340\u8A2D\u7F6E\u4E2D\u5E38\u898B\u7684 Unicode \u5B57\u5143\u5F37\u8ABF\u986F\u793A\u3002","\u63A7\u5236\u662F\u5426\u8981\u5728\u7DE8\u8F2F\u5668\u4E2D\u81EA\u52D5\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u3002","\u6BCF\u7576\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u6642\uFF0C\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u5DE5\u5177\u5217\u3002","\u6BCF\u7576\u6E38\u6A19\u505C\u7559\u5728\u5167\u5D4C\u5EFA\u8B70\u4E0A\u65B9\u6642\uFF0C\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u5DE5\u5177\u5217\u3002","\u6C38\u4E0D\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u5DE5\u5177\u5217\u3002","\u63A7\u5236\u4F55\u6642\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u5DE5\u5177\u5217\u3002","\u63A7\u5236\u5167\u5D4C\u5EFA\u8B70\u5982\u4F55\u8207\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E92\u52D5\u3002\u5982\u679C\u555F\u7528\uFF0C\u6709\u53EF\u7528\u7684\u5167\u5D4C\u5EFA\u8B70\u6642\uFF0C\u4E0D\u6703\u81EA\u52D5\u986F\u793A\u5EFA\u8B70\u5C0F\u5DE5\u5177\u3002","\u63A7\u5236\u5167\u5D4C\u5EFA\u8B70\u7684\u5B57\u9AD4\u7CFB\u5217\u3002","\u63A7\u5236\u662F\u5426\u5728\u7DE8\u8F2F\u5668\u4E2D\u986F\u793A\u5167\u5D4C\u7DE8\u8F2F\u3002","\u6BCF\u7576\u986F\u793A\u5167\u5D4C\u5EFA\u8B70\u6642\uFF0C\u986F\u793A\u5167\u5D4C\u7DE8\u8F2F\u5DE5\u5177\u5217\u3002","\u5C07\u6ED1\u9F20\u61F8\u505C\u5728\u5167\u5D4C\u5EFA\u8B70\u4E0A\u6642\u986F\u793A\u5167\u5D4C\u7DE8\u8F2F\u5DE5\u5177\u5217\u3002","\u6C38\u4E0D\u986F\u793A\u5167\u5D4C\u7DE8\u8F2F\u5DE5\u5177\u5217\u3002","\u63A7\u5236\u4F55\u6642\u986F\u793A\u5167\u5D4C\u7DE8\u8F2F\u5DE5\u5177\u5217\u3002","\u63A7\u5236\u5167\u5D4C\u7DE8\u8F2F\u7684\u5B57\u9AD4\u7CFB\u5217\u3002","\u63A7\u5236\u662F\u5426\u70BA\u5167\u5D4C\u7DE8\u8F2F\u7684\u80CC\u666F\u4E0A\u8272\u3002","\u63A7\u5236\u662F\u5426\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002\u4F7F\u7528 {0} \u8986\u5BEB\u62EC\u5F27\u4EAE\u986F\u984F\u8272\u3002","\u63A7\u5236\u6BCF\u500B\u62EC\u5F27\u985E\u578B\u662F\u5426\u6709\u81EA\u5DF1\u7684\u7368\u7ACB\u8272\u5F69\u96C6\u5340\u3002","\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u53EA\u555F\u7528\u4F7F\u7528\u4E2D\u62EC\u5F27\u7D44\u7684\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u505C\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u63A7\u5236\u662F\u5426\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u6307\u5357\u3002","\u555F\u7528\u6C34\u5E73\u8F14\u52A9\u7DDA\u4F5C\u70BA\u5782\u76F4\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u7684\u65B0\u589E\u529F\u80FD\u3002","\u53EA\u555F\u7528\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u7684\u6C34\u5E73\u8F14\u52A9\u7DDA\u3002","\u505C\u7528\u6C34\u5E73\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u63A7\u5236\u662F\u5426\u555F\u7528\u6C34\u5E73\u6210\u5C0D\u65B9\u62EC\u5F27\u8F14\u52A9\u7DDA\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u9192\u76EE\u63D0\u793A\u4F7F\u7528\u4E2D\u7684\u6210\u5C0D\u62EC\u5F27\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u986F\u793A\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u9192\u76EE\u63D0\u793A\u4F7F\u7528\u4E2D\u7684\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u5373\u4F7F\u9192\u76EE\u63D0\u793A\u62EC\u5F27\u8F14\u52A9\u7DDA\uFF0C\u4ECD\u9192\u76EE\u63D0\u793A\u4F7F\u7528\u4E2D\u7684\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u4E0D\u8981\u9192\u76EE\u63D0\u793A\u4F7F\u7528\u4E2D\u7684\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u9192\u76EE\u63D0\u793A\u4F7F\u7528\u4E2D\u7684\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u63D2\u5165\u5EFA\u8B70\u800C\u4E0D\u8986\u5BEB\u6E38\u6A19\u65C1\u7684\u6587\u5B57\u3002","\u63D2\u5165\u5EFA\u8B70\u4E26\u8986\u5BEB\u6E38\u6A19\u65C1\u7684\u6587\u5B57\u3002","\u63A7\u5236\u662F\u5426\u8981\u5728\u63A5\u53D7\u5B8C\u6210\u6642\u8986\u5BEB\u5B57\u7D44\u3002\u8ACB\u6CE8\u610F\uFF0C\u9019\u53D6\u6C7A\u65BC\u52A0\u5165\u6B64\u529F\u80FD\u7684\u5EF6\u4F38\u6A21\u7D44\u3002","\u63A7\u5236\u5C0D\u65BC\u62DA\u932F\u5B57\u662F\u5426\u9032\u884C\u7BE9\u9078\u548C\u6392\u5E8F\u5176\u5EFA\u8B70","\u63A7\u5236\u6392\u5E8F\u662F\u5426\u504F\u597D\u6E38\u6A19\u9644\u8FD1\u7684\u5B57\u7D44\u3002","\u63A7\u5236\u8A18\u9304\u7684\u5EFA\u8B70\u9078\u53D6\u9805\u76EE\u662F\u5426\u5728\u591A\u500B\u5DE5\u4F5C\u5340\u548C\u8996\u7A97\u9593\u5171\u7528 (\u9700\u8981 `#editor.suggestSelection#`)\u3002","\u81EA\u52D5\u89F8\u767C IntelliSense \u6642\u4E00\u5F8B\u9078\u53D6\u5EFA\u8B70\u3002","\u81EA\u52D5\u89F8\u767C IntelliSense \u6642\u6C38\u4E0D\u9078\u53D6\u5EFA\u8B70\u3002","\u53EA\u6709\u5728\u5F9E\u89F8\u767C\u5B57\u5143\u89F8\u767C IntelliSense \u6642\uFF0C\u624D\u9078\u53D6\u5EFA\u8B70\u3002","\u53EA\u6709\u5728\u60A8\u8F38\u5165\u6642\u89F8\u767C IntelliSense \u6642\uFF0C\u624D\u9078\u53D6\u5EFA\u8B70\u3002","\u63A7\u5236\u5C0F\u5DE5\u5177\u986F\u793A\u6642\u662F\u5426\u9078\u53D6\u5EFA\u8B70\u3002\u8ACB\u6CE8\u610F\uFF0C\u9019\u53EA\u9069\u7528\u65BC('#editor.quickSuggestions#' \u548C '#editor.suggestOnTriggerCharacters#') \u81EA\u52D5\u89F8\u767C\u7684\u5EFA\u8B70\uFF0C\u800C\u4E14\u4E00\u5F8B\u6703\u5728\u660E\u78BA\u53EB\u7528\u6642\u9078\u53D6\u5EFA\u8B70\uFF0C\u4F8B\u5982\u900F\u904E 'Ctrl+Space'\u3002","\u63A7\u5236\u6B63\u5728\u4F7F\u7528\u7684\u7A0B\u5F0F\u78BC\u7247\u6BB5\u662F\u5426\u6703\u907F\u514D\u5FEB\u901F\u5EFA\u8B70\u3002","\u63A7\u5236\u8981\u5728\u5EFA\u8B70\u4E2D\u986F\u793A\u6216\u96B1\u85CF\u5716\u793A\u3002","\u63A7\u5236\u5EFA\u8B70\u5C0F\u5DE5\u5177\u5E95\u4E0B\u7684\u72C0\u614B\u5217\u53EF\u898B\u5EA6\u3002","\u63A7\u5236\u662F\u5426\u8981\u5728\u7DE8\u8F2F\u5668\u4E2D\u9810\u89BD\u5EFA\u8B70\u7D50\u679C\u3002","\u63A7\u5236\u5EFA\u8B70\u8A73\u7D30\u8CC7\u6599\u662F\u4EE5\u5167\u5D4C\u65BC\u6A19\u7C64\u7684\u65B9\u5F0F\u986F\u793A\uFF0C\u9084\u662F\u53EA\u5728\u8A73\u7D30\u8CC7\u6599\u5C0F\u5DE5\u5177\u4E2D\u986F\u793A\u3002","\u6B64\u8A2D\u5B9A\u5DF2\u6DD8\u6C70\u3002\u5EFA\u8B70\u5C0F\u5DE5\u5177\u73FE\u53EF\u8ABF\u6574\u5927\u5C0F\u3002","\u6B64\u8A2D\u5B9A\u5DF2\u6DD8\u6C70\uFF0C\u8ACB\u6539\u7528 'editor.suggest.showKeywords' \u6216 'editor.suggest.showSnippets' \u7B49\u55AE\u7368\u8A2D\u5B9A\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u65B9\u6CD5\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u51FD\u5F0F\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u5EFA\u69CB\u51FD\u5F0F\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u5DF2\u53D6\u4EE3\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u7BE9\u9078\u6703\u8981\u6C42\u7B2C\u4E00\u500B\u5B57\u5143\u7B26\u5408\u6587\u5B57\u958B\u982D\uFF0C\u4F8B\u5982 `Console` \u6216 `WebCoNtext` \u4E0A\u7684 `c`\uFF0C\u4F46\u4E0D\u662F `description` \u4E0A\u7684 _not_\u3002\u505C\u7528\u6642\uFF0CIntelliSense \u6703\u986F\u793A\u66F4\u591A\u7D50\u679C\uFF0C\u4F46\u4ECD\u6703\u4F9D\u76F8\u7B26\u54C1\u8CEA\u6392\u5E8F\u7D50\u679C\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u6B04\u4F4D\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u8B8A\u6578\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u985E\u5225\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u7D50\u69CB\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u4ECB\u9762\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u6A21\u7D44\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u5C6C\u6027\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u4E8B\u4EF6\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u904B\u7B97\u5B50\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u55AE\u4F4D\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u503C\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u5E38\u6578\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u5217\u8209\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300CenumMember\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u95DC\u9375\u5B57\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u6587\u5B57\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u8272\u5F69\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u6A94\u6848\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u53C3\u8003\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300Ccustomcolor\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u8CC7\u6599\u593E\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300CtypeParameter\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u986F\u793A\u300C\u7A0B\u5F0F\u78BC\u7247\u6BB5\u300D\u5EFA\u8B70\u3002","\u555F\u7528\u4E4B\u5F8C\uFF0CIntelliSense \u6703\u986F\u793A `user`-suggestions\u3002","\u555F\u7528\u6642\uFF0CIntelliSense \u6703\u986F\u793A `issues`-suggestions\u3002","\u662F\u5426\u61C9\u4E00\u5F8B\u9078\u53D6\u524D\u7F6E\u548C\u5F8C\u7F6E\u7684\u7A7A\u767D\u5B57\u5143\u3002","\u662F\u5426\u61C9\u8A72\u9078\u53D6\u5B50\u8A5E (\u4F8B\u5982 'fooBar' \u6216 'foo_bar' \u4E2D\u7684 'foo')\u3002","\u7121\u7E2E\u6392\u3002\u63DB\u884C\u5F9E\u7B2C 1 \u5217\u958B\u59CB\u3002","\u63DB\u884C\u7684\u7E2E\u6392\u6703\u8207\u7236\u884C\u76F8\u540C\u3002","\u63DB\u884C\u7684\u7E2E\u6392\u70BA\u7236\u884C +1\u3002","\u63DB\u884C\u7E2E\u6392\u70BA\u7236\u884C +2\u3002","\u63A7\u5236\u63DB\u884C\u7684\u7E2E\u6392\u3002","\u63A7\u5236\u60A8\u662F\u5426\u53EF\u4EE5\u6309\u4F4F `Shift` \u9375\uFF0C\u5C07\u6A94\u6848\u62D6\u653E\u5230\u6587\u5B57\u7DE8\u8F2F\u5668\u4E2D (\u800C\u975E\u5728\u7DE8\u8F2F\u5668\u4E2D\u958B\u555F\u6A94\u6848)\u3002","\u63A7\u5236\u5C07\u6A94\u6848\u653E\u5165\u7DE8\u8F2F\u5668\u6642\u662F\u5426\u986F\u793A\u5C0F\u5DE5\u5177\u3002\u6B64\u5C0F\u5DE5\u5177\u53EF\u8B93\u60A8\u63A7\u5236\u6A94\u6848\u7684\u7F6E\u653E\u65B9\u5F0F\u3002","\u5C07\u6A94\u6848\u653E\u5165\u7DE8\u8F2F\u5668\u5F8C\u986F\u793A\u7F6E\u653E\u9078\u53D6\u5668\u5C0F\u5DE5\u5177\u3002","\u6C38\u4E0D\u986F\u793A\u7F6E\u653E\u9078\u53D6\u5668\u5C0F\u5DE5\u5177\u3002\u6539\u70BA\u4E00\u5F8B\u4F7F\u7528\u9810\u8A2D\u7F6E\u653E\u63D0\u4F9B\u8005\u3002","\u63A7\u5236\u662F\u5426\u53EF\u4EE5\u4EE5\u4E0D\u540C\u65B9\u5F0F\u8CBC\u4E0A\u5167\u5BB9\u3002","\u63A7\u5236\u5C07\u5167\u5BB9\u8CBC\u4E0A\u81F3\u7DE8\u8F2F\u5668\u6642\u662F\u5426\u986F\u793A\u5C0F\u5DE5\u5177\u3002\u6B64\u5C0F\u5DE5\u5177\u53EF\u8B93\u60A8\u63A7\u5236\u6A94\u6848\u7684\u8CBC\u4E0A\u65B9\u5F0F\u3002","\u5C07\u5167\u5BB9\u8CBC\u4E0A\u7DE8\u8F2F\u5668\u5F8C\u986F\u793A\u8CBC\u4E0A\u9078\u53D6\u5668\u5C0F\u5DE5\u5177\u3002","\u6C38\u4E0D\u986F\u793A\u8CBC\u4E0A\u9078\u53D6\u5668\u5C0F\u5DE5\u5177\u3002\u800C\u662F\u4E00\u5F8B\u4F7F\u7528\u9810\u8A2D\u7684\u8CBC\u4E0A\u884C\u70BA\u3002","\u63A7\u5236\u662F\u5426\u900F\u904E\u63D0\u4EA4\u5B57\u5143\u63A5\u53D7\u5EFA\u8B70\u3002\u4F8B\u5982\u5728 JavaScript \u4E2D\uFF0C\u5206\u865F (';') \u53EF\u4EE5\u662F\u63A5\u53D7\u5EFA\u8B70\u4E26\u9375\u5165\u8A72\u5B57\u5143\u7684\u63D0\u4EA4\u5B57\u5143\u3002","\u5728\u5EFA\u8B70\u9032\u884C\u6587\u5B57\u8B8A\u66F4\u6642\uFF0C\u50C5\u900F\u904E `Enter` \u63A5\u53D7\u5EFA\u8B70\u3002","\u63A7\u5236\u9664\u4E86 'Tab' \u5916\uFF0C\u662F\u5426\u4E5F\u900F\u904E 'Enter' \u63A5\u53D7\u5EFA\u8B70\u3002\u9019\u6709\u52A9\u65BC\u907F\u514D\u6DF7\u6DC6\u8981\u63D2\u5165\u65B0\u884C\u6216\u63A5\u53D7\u5EFA\u8B70\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u4E2D\u53EF\u4E00\u6B21\u7531\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u8B80\u51FA\u7684\u884C\u6578\u3002\u5075\u6E2C\u5230\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u6642\u6703\u81EA\u52D5\u9810\u8A2D\u70BA 500\u3002\u8B66\u544A: \u82E5\u6578\u5B57\u8D85\u904E\u9810\u8A2D\uFF0C\u53EF\u80FD\u6703\u5C0D\u6548\u80FD\u6709\u6240\u5F71\u97FF\u3002","\u7DE8\u8F2F\u5668\u5167\u5BB9","\u63A7\u5236\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u662F\u5426\u5BA3\u544A\u5167\u5D4C\u5EFA\u8B70\u3002","\u4F7F\u7528\u8A9E\u8A00\u914D\u7F6E\u78BA\u5B9A\u4F55\u6642\u81EA\u52D5\u95DC\u9589\u62EC\u865F\u3002","\u50C5\u7576\u6E38\u6A19\u4F4D\u65BC\u7A7A\u767D\u7684\u5DE6\u5074\u6642\u81EA\u52D5\u95DC\u9589\u62EC\u865F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u4F7F\u7528\u8005\u65B0\u589E\u5DE6\u62EC\u5F27\u5F8C\uFF0C\u81EA\u52D5\u52A0\u4E0A\u53F3\u62EC\u5F27\u3002","\u4F7F\u7528\u8A9E\u8A00\u914D\u7F6E\u78BA\u5B9A\u4F55\u6642\u81EA\u52D5\u95DC\u9589\u8A3B\u89E3\u3002","\u50C5\u7576\u6E38\u6A19\u4F4D\u65BC\u7A7A\u767D\u7684\u5DE6\u5074\u6642\u81EA\u52D5\u95DC\u9589\u8A3B\u89E3\u3002","\u63A7\u5236\u4F7F\u7528\u8005\u65B0\u589E\u958B\u555F\u7684\u8A3B\u89E3\u4E4B\u5F8C\uFF0C\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u8A72\u81EA\u52D5\u95DC\u9589\u8A3B\u89E3\u3002","\u50C5\u5728\u81EA\u52D5\u63D2\u5165\u76F8\u9130\u7684\u53F3\u5F15\u865F\u6216\u62EC\u5F27\u6642\uFF0C\u624D\u5C07\u5176\u79FB\u9664\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u522A\u9664\u6642\u79FB\u9664\u76F8\u9130\u7684\u53F3\u5F15\u865F\u6216\u62EC\u5F27\u3002","\u50C5\u5728\u81EA\u52D5\u63D2\u5165\u53F3\u5F15\u865F\u6216\u62EC\u865F\u6642\uFF0C\u624D\u5728\u5176\u4E0A\u65B9\u9375\u5165\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u53F3\u5F15\u865F\u6216\u62EC\u865F\u4E0A\u9375\u5165\u3002","\u4F7F\u7528\u8A9E\u8A00\u914D\u7F6E\u78BA\u5B9A\u4F55\u6642\u81EA\u52D5\u95DC\u9589\u5F15\u865F\u3002","\u50C5\u7576\u6E38\u6A19\u4F4D\u65BC\u7A7A\u767D\u7684\u5DE6\u5074\u6642\u81EA\u52D5\u95DC\u9589\u5F15\u865F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u4F7F\u7528\u8005\u65B0\u589E\u958B\u59CB\u5F15\u865F\u5F8C\uFF0C\u81EA\u52D5\u52A0\u4E0A\u95DC\u9589\u5F15\u865F\u3002","\u7DE8\u8F2F\u5668\u4E0D\u6703\u81EA\u52D5\u63D2\u5165\u7E2E\u6392\u3002","\u7DE8\u8F2F\u5668\u6703\u4FDD\u7559\u76EE\u524D\u884C\u7684\u7E2E\u6392\u3002","\u7DE8\u8F2F\u5668\u6703\u4FDD\u7559\u76EE\u524D\u884C\u7684\u7E2E\u6392\u4E26\u63A5\u53D7\u8A9E\u8A00\u5B9A\u7FA9\u7684\u62EC\u865F\u3002","\u7DE8\u8F2F\u5668\u6703\u76EE\u524D\u884C\u7684\u7E2E\u6392\u3001\u63A5\u53D7\u8A9E\u8A00\u5B9A\u7FA9\u7684\u62EC\u865F\u4E26\u53EB\u7528\u8A9E\u8A00\u5B9A\u7FA9\u7684\u7279\u6B8A onEnterRules\u3002","\u7DE8\u8F2F\u5668\u6703\u4FDD\u7559\u76EE\u524D\u884C\u7684\u7E2E\u6392\u3001\u63A5\u53D7\u8A9E\u8A00\u5B9A\u7FA9\u7684\u62EC\u865F\u4E26\u53EB\u7528\u8A9E\u8A00\u5B9A\u7FA9\u7684\u7279\u6B8A onEnterRules \u4E26\u63A5\u53D7\u8A9E\u8A00\u5B9A\u7FA9\u7684 indentationRules\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u4F7F\u7528\u8005\u9375\u5165\u3001\u8CBC\u4E0A\u3001\u79FB\u52D5\u6216\u7E2E\u6392\u884C\u6642\u81EA\u52D5\u8ABF\u6574\u7E2E\u6392\u3002","\u4F7F\u7528\u8A9E\u8A00\u7D44\u614B\u4F86\u6C7A\u5B9A\u4F55\u6642\u81EA\u52D5\u74B0\u7E5E\u9078\u53D6\u9805\u76EE\u3002","\u7528\u5F15\u865F\u62EC\u4F4F\uFF0C\u800C\u975E\u4F7F\u7528\u62EC\u5F27\u3002","\u7528\u62EC\u5F27\u62EC\u4F4F\uFF0C\u800C\u975E\u4F7F\u7528\u5F15\u865F\u3002 ","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5728\u9375\u5165\u5F15\u865F\u6216\u62EC\u5F27\u6642\u81EA\u52D5\u5305\u570D\u9078\u53D6\u7BC4\u570D\u3002","\u7576\u4F7F\u7528\u7A7A\u683C\u9032\u884C\u7E2E\u6392\u6642\uFF0C\u6703\u6A21\u64EC\u5B9A\u4F4D\u5B57\u5143\u7684\u9078\u53D6\u8868\u73FE\u65B9\u5F0F\u3002\u9078\u53D6\u7BC4\u570D\u6703\u4F9D\u5FAA\u5B9A\u4F4D\u505C\u99D0\u9EDE\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u986F\u793A codelens\u3002","\u63A7\u5236 CodeLens \u7684\u5B57\u578B\u5BB6\u65CF\u3002","\u63A7\u5236 CodeLens \u7684\u5B57\u578B\u5927\u5C0F (\u50CF\u7D20)\u3002\u8A2D\u5B9A\u70BA 0 \u6642\uFF0C\u6703\u4F7F\u7528 90% \u7684 `#editor.fontSize#`\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u8F49\u8B6F\u5167\u5D4C\u8272\u5F69\u88DD\u98FE\u9805\u76EE\u8207\u8272\u5F69\u9078\u64C7\u5668\u3002","\u8B93\u8272\u5F69\u9078\u64C7\u5668\u5728\u6309\u4E00\u4E0B\u548C\u505C\u99D0\u8272\u5F69\u5728\u88DD\u98FE\u9805\u76EE\u4E0A\u6642\u51FA\u73FE","\u8B93\u8272\u5F69\u9078\u64C7\u5668\u5728\u505C\u99D0\u8272\u5F69\u88DD\u98FE\u9805\u76EE\u6642\u51FA\u73FE","\u8B93\u8272\u5F69\u9078\u64C7\u5668\u5728\u6309\u4E00\u4E0B\u8272\u5F69\u88DD\u98FE\u9805\u76EE\u6642\u51FA\u73FE","\u63A7\u5236\u689D\u4EF6\uFF0C\u8B93\u8272\u5F69\u9078\u64C7\u5668\u5F9E\u8272\u5F69\u88DD\u98FE\u9805\u76EE\u51FA\u73FE","\u63A7\u5236\u4E00\u6B21\u53EF\u5728\u7DE8\u8F2F\u5668\u4E2D\u5448\u73FE\u7684\u8272\u5F69\u88DD\u98FE\u9805\u76EE\u6700\u5927\u6578\u76EE\u3002","\u555F\u7528\u5373\u53EF\u4EE5\u6ED1\u9F20\u8207\u6309\u9375\u9078\u53D6\u9032\u884C\u8CC7\u6599\u884C\u9078\u53D6\u3002","\u63A7\u5236\u8A9E\u6CD5\u9192\u76EE\u63D0\u793A\u662F\u5426\u61C9\u8907\u88FD\u5230\u526A\u8CBC\u7C3F\u3002","\u63A7\u5236\u8CC7\u6599\u6307\u6A19\u52D5\u756B\u6A23\u5F0F\u3002","\u5E73\u6ED1\u63D2\u5165\u865F\u52D5\u756B\u5DF2\u505C\u7528\u3002","\u53EA\u6709\u7576\u4F7F\u7528\u8005\u4F7F\u7528\u660E\u78BA\u624B\u52E2\u79FB\u52D5\u6E38\u6A19\u6642\uFF0C\u624D\u6703\u555F\u7528\u5E73\u6ED1\u63D2\u5165\u865F\u52D5\u756B\u3002","\u6C38\u9060\u555F\u7528\u5E73\u6ED1\u63D2\u5165\u865F\u52D5\u756B\u3002","\u63A7\u5236\u662F\u5426\u61C9\u555F\u7528\u5E73\u6ED1\u63D2\u5165\u9EDE\u52D5\u756B\u3002 ","\u63A7\u5236\u8CC7\u6599\u6307\u6A19\u6A23\u5F0F\u3002","\u63A7\u5236\u6E38\u6A19\u4E0A\u4E0B\u5468\u570D\u53EF\u986F\u793A\u7684\u524D\u7F6E\u7DDA (\u6700\u5C0F\u70BA 0) \u548C\u5F8C\u7F6E\u7DDA (\u6700\u5C0F\u70BA 1) \u7684\u6700\u5C0F\u6578\u76EE\u3002\u5728\u67D0\u4E9B\u7DE8\u8F2F\u5668\u4E2D\u7A31\u70BA 'scrollOff' \u6216 'scrollOffset'\u3002","\u53EA\u6709\u901A\u904E\u9375\u76E4\u6216 API \u89F8\u767C\u6642\uFF0C\u624D\u6703\u65BD\u884C `cursorSurroundingLines`\u3002","\u4E00\u5F8B\u5F37\u5236\u57F7\u884C `cursorSurroundingLines`","\u63A7\u5236\u61C9\u5F37\u5236\u57F7\u884C `#cursorSurroundingLines#` \u7684\u6642\u6A5F\u3002","\u63A7\u5236\u6E38\u6A19\u5BEC\u5EA6\uFF0C\u7576 `#editor.cursorStyle#` \u8A2D\u5B9A\u70BA `line` \u6642\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u5141\u8A31\u900F\u904E\u62D6\u653E\u4F86\u79FB\u52D5\u9078\u53D6\u9805\u76EE\u3002","\u4F7F\u7528\u65B0\u7684 svg \u8F49\u8B6F\u65B9\u6CD5\u3002","\u4F7F\u7528\u5177\u6709\u5B57\u578B\u5B57\u5143\u7684\u65B0\u8F49\u8B6F\u65B9\u6CD5\u3002","\u4F7F\u7528\u7A69\u5B9A\u8F49\u8B6F\u65B9\u6CD5\u3002","\u63A7\u5236\u662F\u5426\u4F7F\u7528\u65B0\u7684\u5BE6\u9A57\u6027\u65B9\u6CD5\u4F86\u5448\u73FE\u7A7A\u767D\u5B57\u5143\u3002","\u6309\u4E0B `Alt` \u6642\u7684\u6372\u52D5\u901F\u5EA6\u4E58\u6578\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u555F\u7528\u7A0B\u5F0F\u78BC\u647A\u758A\u529F\u80FD\u3002","\u4F7F\u7528\u8A9E\u8A00\u7279\u5B9A\u647A\u758A\u7B56\u7565 (\u5982\u679C\u53EF\u7528)\uFF0C\u5426\u5247\u4F7F\u7528\u7E2E\u6392\u5F0F\u7B56\u7565\u3002","\u4F7F\u7528\u7E2E\u6392\u5F0F\u647A\u758A\u7B56\u7565\u3002","\u63A7\u5236\u8A08\u7B97\u8CC7\u6599\u593E\u7BC4\u570D\u7684\u7B56\u7565\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5C07\u6298\u758A\u7684\u7BC4\u570D\u9192\u76EE\u63D0\u793A\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u6703\u81EA\u52D5\u647A\u758A\u532F\u5165\u7BC4\u570D\u3002","\u53EF\u647A\u758A\u5340\u57DF\u7684\u6578\u76EE\u4E0A\u9650\u3002\u589E\u52A0\u6B64\u503C\u53EF\u80FD\u6703\u9020\u6210\u7576\u76EE\u524D\u7684\u4F86\u6E90\u6709\u5927\u91CF\u53EF\u647A\u758A\u5340\u57DF\u6642\uFF0C\u7DE8\u8F2F\u5668\u7684\u56DE\u61C9\u901F\u5EA6\u8B8A\u6162\u3002","\u63A7\u5236\u6309\u4E00\u4E0B\u5DF2\u6298\u758A\u884C\u5F8C\u65B9\u7684\u7A7A\u767D\u5167\u5BB9\u662F\u5426\u6703\u5C55\u958B\u884C\u3002","\u63A7\u5236\u5B57\u578B\u5BB6\u65CF\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u81EA\u52D5\u70BA\u8CBC\u4E0A\u7684\u5167\u5BB9\u8A2D\u5B9A\u683C\u5F0F\u3002\u5FC5\u9808\u6709\u53EF\u7528\u7684\u683C\u5F0F\u5668\uFF0C\u800C\u4E14\u683C\u5F0F\u5668\u61C9\u80FD\u5920\u70BA\u6587\u4EF6\u4E2D\u7684\u4E00\u500B\u7BC4\u570D\u8A2D\u5B9A\u683C\u5F0F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u81EA\u52D5\u5728\u9375\u5165\u5F8C\u8A2D\u5B9A\u884C\u7684\u683C\u5F0F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u8F49\u8B6F\u5782\u76F4\u5B57\u7B26\u908A\u754C\u3002\u5B57\u7B26\u908A\u754C\u6700\u5E38\u7528\u4F86\u9032\u884C\u5075\u932F\u3002","\u63A7\u5236\u6E38\u6A19\u662F\u5426\u61C9\u96B1\u85CF\u5728\u6982\u89C0\u5C3A\u898F\u4E2D\u3002","\u63A7\u5236\u5B57\u6BCD\u9593\u8DDD (\u50CF\u7D20)\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u5DF2\u555F\u7528\u9023\u7D50\u7DE8\u8F2F\u3002\u76F8\u95DC\u7B26\u865F (\u4F8B\u5982 HTML \u6A19\u7C64) \u6703\u6839\u64DA\u8A9E\u8A00\u5728\u7DE8\u8F2F\u6642\u66F4\u65B0\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u5075\u6E2C\u9023\u7D50\u4E26\u4F7F\u5176\u53EF\u4F9B\u9EDE\u9078\u3002","\u5C07\u7B26\u5408\u7684\u62EC\u865F\u9192\u76EE\u63D0\u793A\u3002","\u8981\u7528\u65BC\u6ED1\u9F20\u6EFE\u8F2A\u6372\u52D5\u4E8B\u4EF6 `deltaX` \u548C `deltaY` \u7684\u4E58\u6578\u3002","\u4F7F\u7528\u6ED1\u9F20\u6EFE\u8F2A\u4E26\u6309\u4F4F `Cmd` \u6642\uFF0C\u7E2E\u653E\u7DE8\u8F2F\u5668\u7684\u5B57\u578B","\u4F7F\u7528\u6ED1\u9F20\u6EFE\u8F2A\u4E26\u6309\u4F4F `Ctrl` \u6642\uFF0C\u7E2E\u653E\u7DE8\u8F2F\u5668\u7684\u5B57\u578B","\u5728\u591A\u500B\u6E38\u6A19\u91CD\u758A\u6642\u5C07\u5176\u5408\u4F75\u3002","\u5C0D\u61C9Windows\u548CLinux\u7684'Control'\u8207\u5C0D\u61C9 macOS \u7684'Command'\u3002","\u5C0D\u61C9Windows\u548CLinux\u7684'Alt'\u8207\u5C0D\u61C9macOS\u7684'Option'\u3002","\u7528\u65BC\u5728\u6ED1\u9F20\u65B0\u589E\u591A\u500B\u6E38\u6A19\u7684\u4FEE\u98FE\u5143\u3002[\u79FB\u81F3\u5B9A\u7FA9] \u548C [\u958B\u555F\u9023\u7D50] \u6ED1\u9F20\u624B\u52E2\u6703\u52A0\u4EE5\u9069\u61C9\uFF0C\u4EE5\u907F\u514D\u8207 [\u591A\u500B\u6E38\u6A19\u7684\u4FEE\u98FE\u5143](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier) \u76F8\u885D\u7A81\u3002","\u6BCF\u500B\u6E38\u6A19\u90FD\u6703\u8CBC\u4E0A\u4E00\u884C\u6587\u5B57\u3002","\u6BCF\u500B\u6E38\u6A19\u90FD\u6703\u8CBC\u4E0A\u5168\u6587\u3002","\u7576\u5DF2\u8CBC\u4E0A\u6587\u5B57\u7684\u884C\u6578\u8207\u6E38\u6A19\u6578\u76F8\u7B26\u6642\u63A7\u5236\u8CBC\u4E0A\u529F\u80FD\u3002","\u63A7\u5236\u4E00\u6B21\u53EF\u5728\u4F5C\u7528\u4E2D\u7DE8\u8F2F\u5668\u4E2D\u7684\u6E38\u6A19\u6578\u76EE\u4E0A\u9650\u3002","\u4E0D\u5F37\u8ABF\u986F\u793A\u51FA\u73FE\u9805\u76EE\u3002","\u50C5\u5F37\u8ABF\u986F\u793A\u76EE\u524D\u6A94\u6848\u4E2D\u7684\u51FA\u73FE\u9805\u76EE\u3002","\u5BE6\u9A57: \u8DE8\u6240\u6709\u6709\u6548\u7684\u958B\u555F\u6A94\u6848\u5F37\u8ABF\u986F\u793A\u51FA\u73FE\u9805\u76EE\u3002","\u63A7\u5236\u662F\u5426\u61C9\u8DE8\u958B\u555F\u7684\u6A94\u6848\u5F37\u8ABF\u986F\u793A\u51FA\u73FE\u9805\u76EE\u3002","\u63A7\u5236\u662F\u5426\u61C9\u5728\u6982\u89C0\u5C3A\u898F\u5468\u570D\u7E6A\u88FD\u6846\u7DDA\u3002","\u958B\u555F\u9810\u89BD\u6642\u7126\u9EDE\u6A39\u72C0","\u958B\u555F\u6642\u805A\u7126\u7DE8\u8F2F\u5668","\u63A7\u5236\u8981\u805A\u7126\u5167\u5D4C\u7DE8\u8F2F\u5668\u6216\u9810\u89BD\u5C0F\u5DE5\u5177\u4E2D\u7684\u6A39\u7CFB\u3002","\u63A7\u5236\u300C\u524D\u5F80\u5B9A\u7FA9\u300D\u6ED1\u9F20\u624B\u52E2\uFF0C\u662F\u5426\u4E00\u5F8B\u958B\u555F\u7784\u6838\u5C0F\u5DE5\u5177\u3002","\u63A7\u5236\u5728\u5FEB\u901F\u5EFA\u8B70\u986F\u793A\u5F8C\u7684\u5EF6\u9072 (\u4EE5\u6BEB\u79D2\u70BA\u55AE\u4F4D)\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u6703\u81EA\u52D5\u4F9D\u985E\u578B\u91CD\u65B0\u547D\u540D\u3002","\u5DF2\u6DD8\u6C70\uFF0C\u8ACB\u6539\u7528 `editor.linkedEditing`\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u986F\u793A\u63A7\u5236\u5B57\u5143\u3002","\u5728\u6A94\u6848\u7D50\u5C3E\u70BA\u65B0\u884C\u6642\uFF0C\u5448\u73FE\u6700\u5F8C\u4E00\u884C\u7684\u865F\u78BC\u3002","\u9192\u76EE\u63D0\u793A\u88DD\u8A02\u908A\u548C\u76EE\u524D\u7684\u884C\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u5982\u4F55\u986F\u793A\u76EE\u524D\u884C\u7684\u9192\u76EE\u63D0\u793A\u3002","\u63A7\u5236\u7576\u805A\u7126\u65BC\u7DE8\u8F2F\u5668\u6642\uFF0C\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u50C5\u8F49\u8B6F\u76EE\u524D\u884C\u7684\u9192\u76EE\u63D0\u793A\u3002","\u8F49\u8B6F\u7A7A\u767D\u5B57\u5143\uFF0C\u4F46\u6587\u5B57\u4E4B\u9593\u7684\u55AE\u4E00\u7A7A\u683C\u9664\u5916\u3002","\u53EA\u8F49\u8B6F\u6240\u9078\u6587\u5B57\u7684\u7A7A\u767D\u5B57\u5143\u3002","\u53EA\u8F49\u8B6F\u7D50\u5C3E\u7A7A\u767D\u5B57\u5143\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u61C9\u5982\u4F55\u8F49\u8B6F\u7A7A\u767D\u5B57\u5143\u3002","\u63A7\u5236\u9078\u53D6\u7BC4\u570D\u662F\u5426\u6709\u5713\u89D2","\u63A7\u5236\u7DE8\u8F2F\u5668\u6C34\u5E73\u6372\u52D5\u7684\u984D\u5916\u5B57\u5143\u6578\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u6372\u52D5\u5230\u6700\u5F8C\u4E00\u884C\u4E4B\u5916\u3002","\u540C\u6642\u9032\u884C\u5782\u76F4\u8207\u6C34\u5E73\u6372\u52D5\u6642\uFF0C\u50C5\u6CBF\u4E3B\u8EF8\u6372\u52D5\u3002\u907F\u514D\u5728\u8ECC\u8DE1\u677F\u4E0A\u9032\u884C\u5782\u76F4\u6372\u52D5\u6642\u767C\u751F\u6C34\u5E73\u6F02\u79FB\u3002","\u63A7\u5236\u662F\u5426\u652F\u63F4 Linux \u4E3B\u8981\u526A\u8CBC\u7C3F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u61C9\u9192\u76EE\u63D0\u793A\u8207\u9078\u53D6\u9805\u76EE\u985E\u4F3C\u7684\u76F8\u7B26\u9805\u76EE\u3002","\u4E00\u5F8B\u986F\u793A\u647A\u758A\u63A7\u5236\u9805\u3002","\u6C38\u4E0D\u986F\u793A\u647A\u758A\u63A7\u5236\u9805\u8207\u6E1B\u5C11\u88DD\u8A02\u908A\u5927\u5C0F\u3002","\u50C5\u7576\u6ED1\u9F20\u61F8\u505C\u5728\u6D3B\u52D5\u5217\u4E0A\u6642\uFF0C\u624D\u986F\u793A\u6298\u758A\u529F\u80FD\u3002","\u63A7\u5236\u647A\u758A\u63A7\u5236\u9805\u5728\u88DD\u8A02\u908A\u4E0A\u7684\u986F\u793A\u6642\u6A5F\u3002","\u63A7\u5236\u672A\u4F7F\u7528\u7A0B\u5F0F\u78BC\u7684\u6DE1\u51FA\u3002","\u63A7\u5236\u5DF2\u522A\u9664\u7684\u6DD8\u6C70\u8B8A\u6578\u3002","\u5C07\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5EFA\u8B70\u986F\u793A\u65BC\u5176\u4ED6\u5EFA\u8B70\u7684\u9802\u7AEF\u3002","\u5C07\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5EFA\u8B70\u986F\u793A\u65BC\u5176\u4ED6\u5EFA\u8B70\u7684\u4E0B\u65B9\u3002","\u5C07\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5EFA\u8B70\u8207\u5176\u4ED6\u5EFA\u8B70\u4E00\u540C\u986F\u793A\u3002","\u4E0D\u986F\u793A\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5EFA\u8B70\u3002","\u63A7\u5236\u7A0B\u5F0F\u78BC\u7247\u6BB5\u662F\u5426\u96A8\u5176\u4ED6\u5EFA\u8B70\u986F\u793A\uFF0C\u4EE5\u53CA\u5176\u6392\u5E8F\u65B9\u5F0F\u3002","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u6703\u4F7F\u7528\u52D5\u756B\u6372\u52D5","\u63A7\u5236\u7576\u986F\u793A\u5167\u5D4C\u5B8C\u6210\u6642\uFF0C\u662F\u5426\u61C9\u63D0\u4F9B\u5354\u52A9\u5DE5\u5177\u63D0\u793A\u7D66\u87A2\u5E55\u52A9\u8B80\u7A0B\u5F0F\u4F7F\u7528\u8005\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u7684\u5B57\u578B\u5927\u5C0F\u3002\u7576\u8A2D\u5B9A\u70BA {0} \u6642\uFF0C\u5247\u6703\u4F7F\u7528 {1} \u7684\u503C\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u7684\u884C\u9AD8\u3002\u7576\u8A2D\u5B9A\u70BA {0} \u6642\uFF0C\u5247\u6703\u4F7F\u7528 {1} \u7684\u503C\u3002\u6700\u5C0F\u503C\u70BA 8\u3002","\u63A7\u5236\u5EFA\u8B70\u662F\u5426\u61C9\u5728\u9375\u5165\u89F8\u767C\u5B57\u5143\u6642\u81EA\u52D5\u986F\u793A\u3002","\u4E00\u5F8B\u9078\u53D6\u7B2C\u4E00\u500B\u5EFA\u8B70\u3002","\u9664\u975E\u9032\u4E00\u6B65\u9375\u5165\u9078\u53D6\u4E86\u5EFA\u8B70\uFF0C\u5426\u5247\u9078\u53D6\u6700\u8FD1\u7684\u5EFA\u8B70\uFF0C\u4F8B\u5982 `console.| -> console.log`\uFF0C\u539F\u56E0\u662F\u6700\u8FD1\u5B8C\u6210\u4E86 `log`\u3002","\u6839\u64DA\u5148\u524D\u5DF2\u5B8C\u6210\u8A72\u5EFA\u8B70\u7684\u524D\u7F6E\u8A5E\u9078\u53D6\u5EFA\u8B70\uFF0C\u4F8B\u5982 `co -> console` \u548C `con -> const`\u3002","\u63A7\u5236\u5728\u986F\u793A\u5EFA\u8B70\u6E05\u55AE\u6642\u5982\u4F55\u9810\u5148\u9078\u53D6\u5EFA\u8B70\u3002","\u6309 Tab \u6642\uFF0CTab \u5B8C\u6210\u6703\u63D2\u5165\u6700\u7B26\u5408\u7684\u5EFA\u8B70\u3002","\u505C\u7528 tab \u9375\u81EA\u52D5\u5B8C\u6210\u3002","\u5728\u7A0B\u5F0F\u78BC\u7247\u6BB5\u7684\u9996\u78BC\u76F8\u7B26\u6642\u4F7F\u7528 Tab \u5B8C\u6210\u3002\u672A\u555F\u7528 'quickSuggestions' \u6642\u6548\u679C\u6700\u4F73\u3002","\u555F\u7528 tab \u9375\u81EA\u52D5\u5B8C\u6210\u3002","\u81EA\u52D5\u79FB\u9664\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143\u3002","\u5FFD\u7565\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143\u3002","\u8981\u79FB\u9664\u4E4B\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143\u63D0\u793A\u3002","\u79FB\u9664\u53EF\u80FD\u5C0E\u81F4\u554F\u984C\u7684\u7570\u5E38\u884C\u7D50\u675F\u5B57\u5143\u3002","\u63D2\u5165\u548C\u522A\u9664\u63A5\u5728\u5B9A\u4F4D\u505C\u99D0\u9EDE\u5F8C\u7684\u7A7A\u767D\u5B57\u5143\u3002","\u4F7F\u7528\u9810\u8A2D\u7684\u5206\u884C\u7B26\u865F\u898F\u5247\u3002","\u4E2D\u6587/\u65E5\u6587/\u97D3\u6587 (CJK) \u6587\u5B57\u4E0D\u61C9\u8A72\u4F7F\u7528\u65B7\u5B57\u3002\u975E\u4E2D\u65E5\u97D3\u7684\u6587\u5B57\u884C\u70BA\u8207\u4E00\u822C\u6587\u5B57\u76F8\u540C\u3002","\u63A7\u5236\u7528\u65BC\u4E2D\u6587/\u65E5\u6587/\u97D3\u6587 (CJK) \u6587\u5B57\u7684\u65B7\u5B57\u898F\u5247\u3002","\u5728\u57F7\u884C\u6587\u5B57\u76F8\u95DC\u5C0E\u89BD\u6216\u4F5C\u696D\u6642\u8981\u7528\u4F5C\u6587\u5B57\u5206\u9694\u7B26\u865F\u7684\u5B57\u5143","\u4E00\u5F8B\u4E0D\u63DB\u884C\u3002","\u4F9D\u6AA2\u8996\u5340\u5BEC\u5EA6\u63DB\u884C\u3002","\u65BC '#editor.wordWrapColumn#' \u63DB\u884C\u3002","\u7576\u6AA2\u8996\u5340\u7E2E\u81F3\u6700\u5C0F\u4E26\u8A2D\u5B9A '#editor.wordWrapColumn#' \u6642\u63DB\u884C\u3002","\u63A7\u5236\u5982\u4F55\u63DB\u884C\u3002","\u7576 `#editor.wordWrap#` \u70BA `wordWrapColumn` \u6216 `bounded` \u6642\uFF0C\u63A7\u5236\u7DE8\u8F2F\u5668\u4E2D\u7684\u8CC7\u6599\u884C\u63DB\u884C\u3002","\u63A7\u5236\u662F\u5426\u61C9\u4F7F\u7528\u9810\u8A2D\u7684\u6587\u4EF6\u8272\u5F69\u63D0\u4F9B\u8005\u986F\u793A\u5167\u5D4C\u8272\u5F69\u88DD\u98FE","\u63A7\u5236\u7DE8\u8F2F\u5668\u662F\u5426\u63A5\u6536\u7D22\u5F15\u6A19\u7C64\uFF0C\u6216\u5C07\u5176\u5EF6\u9072\u81F3\u5DE5\u4F5C\u53F0\u9032\u884C\u6D41\u89BD\u3002"],"vs/editor/common/core/editorColorRegistry":["\u76EE\u524D\u6E38\u6A19\u4F4D\u7F6E\u884C\u7684\u53CD\u767D\u986F\u793A\u80CC\u666F\u8272\u5F69\u3002","\u76EE\u524D\u6E38\u6A19\u4F4D\u7F6E\u884C\u4E4B\u5468\u570D\u6846\u7DDA\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9192\u76EE\u63D0\u793A\u7BC4\u570D\u7684\u80CC\u666F\u8272\u5F69\uFF0C\u4F8B\u5982\u5FEB\u901F\u958B\u555F\u4E26\u5C0B\u627E\u529F\u80FD\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u53CD\u767D\u986F\u793A\u7BC4\u570D\u5468\u570D\u908A\u6846\u7684\u80CC\u666F\u984F\u8272\u3002","\u9192\u76EE\u63D0\u793A\u7B26\u865F\u7684\u80CC\u666F\u8272\u5F69\uFF0C\u76F8\u4F3C\u65BC\u524D\u5F80\u4E0B\u4E00\u500B\u5B9A\u7FA9\u6216\u524D\u5F80\u4E0B\u4E00\u500B/\u4E0A\u4E00\u500B\u7B26\u865F\u3002\u8272\u5F69\u5FC5\u9808\u900F\u660E\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u9192\u76EE\u63D0\u793A\u5468\u570D\u7684\u908A\u754C\u80CC\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u6E38\u6A19\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u6E38\u6A19\u7684\u80CC\u666F\u8272\u5F69\u3002\u5141\u8A31\u81EA\u8A02\u5340\u584A\u6E38\u6A19\u91CD\u758A\u7684\u5B57\u5143\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u7A7A\u767D\u5B57\u5143\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u884C\u865F\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69\u3002","'editorIndentGuide.background' \u5DF2\u88AB\u53D6\u4EE3\u3002\u8ACB\u6539\u7528 'editorIndentGuide.background1'\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69\u3002","'editorIndentGuide.activeBackground' \u5DF2\u88AB\u53D6\u4EE3\u3002\u8ACB\u6539\u7528 'editorIndentGuide.activeBackground1'\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (1)\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (2)\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (3)\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (4)\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (5)\u3002","\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (6)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (1)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (2)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (3)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (4)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (5)\u3002","\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u8272\u5F69 (6)\u3002","\u7DE8\u8F2F\u5668\u4F7F\u7528\u4E2D\u884C\u865F\u7684\u8272\u5F69","Id \u5DF2\u53D6\u4EE3\u3002\u8ACB\u6539\u7528 'editorLineNumber.activeForeground' \u3002","\u7DE8\u8F2F\u5668\u4F7F\u7528\u4E2D\u884C\u865F\u7684\u8272\u5F69","editor.renderFinalNewline \u8A2D\u5B9A\u70BA\u6697\u7070\u8272\u6642\uFF0C\u6700\u7D42\u7DE8\u8F2F\u5668\u7DDA\u689D\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u5C3A\u898F\u7684\u8272\u5F69","\u7DE8\u8F2F\u5668\u7A0B\u5F0F\u78BC\u6FFE\u93E1\u7684\u524D\u666F\u8272\u5F69","\u6210\u5C0D\u62EC\u865F\u80CC\u666F\u8272\u5F69","\u6210\u5C0D\u62EC\u865F\u908A\u6846\u8272\u5F69","\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u5C3A\u898F\u7684\u908A\u6846\u8272\u5F69.","\u7DE8\u8F2F\u5668\u6982\u89C0\u5C3A\u898F\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u908A\u6846\u7684\u80CC\u666F\u984F\u8272,\u5305\u542B\u884C\u865F\u8207\u5B57\u5F62\u5716\u793A\u7684\u908A\u6846.","\u7DE8\u8F2F\u5668\u4E2D\u4E0D\u5FC5\u8981 (\u672A\u4F7F\u7528) \u539F\u59CB\u7A0B\u5F0F\u78BC\u7684\u6846\u7DDA\u8272\u5F69\u3002",`\u7DE8\u8F2F\u5668\u4E2D\u4E0D\u5FC5\u8981 (\u672A\u4F7F\u7528) \u539F\u59CB\u7A0B\u5F0F\u78BC\u7684\u4E0D\u900F\u660E\u5EA6\u3002\u4F8B\u5982 "#000000c0\u201D \u6703\u4EE5 75% \u7684\u4E0D\u900F\u660E\u5EA6\u8F49\u8B6F\u7A0B\u5F0F\u78BC\u3002\u91DD\u5C0D\u9AD8\u5C0D\u6BD4\u4E3B\u984C\uFF0C\u4F7F\u7528 'editorUnnecessaryCode.border' \u4E3B\u984C\u8272\u5F69\u53EF\u70BA\u4E0D\u5FC5\u8981\u7684\u7A0B\u5F0F\u78BC\u52A0\u4E0A\u5E95\u7DDA\uFF0C\u800C\u4E0D\u662F\u5C07\u5176\u8B8A\u6DE1\u3002`,"\u7DE8\u8F2F\u5668\u4E2D\u6D6E\u6C34\u5370\u6587\u5B57\u7684\u908A\u6846\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u6D6E\u6C34\u5370\u6587\u5B57\u7684\u524D\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u6D6E\u6C34\u5370\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7BC4\u570D\u9192\u76EE\u63D0\u793A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u932F\u8AA4\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002","\u8B66\u793A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002","\u8CC7\u8A0A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002","\u62EC\u5F27 (1) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u62EC\u5F27 (2) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u62EC\u5F27 (3) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u62EC\u5F27 (4) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u62EC\u5F27 (5) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u62EC\u5F27 (6) \u7684\u524D\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u6210\u5C0D\u65B9\u62EC\u5F27\u8457\u8272\u3002","\u672A\u9810\u671F\u62EC\u5F27\u7684\u524D\u666F\u8272\u5F69\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (1) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (2) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (3) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (4) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (5) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u975E\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (6) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (1) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (2) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (3) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (4) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (5) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u4F7F\u7528\u4E2D\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA (6) \u7684\u80CC\u666F\u8272\u5F69\u3002\u9700\u8981\u555F\u7528\u62EC\u5F27\u914D\u5C0D\u8F14\u52A9\u7DDA\u3002","\u7528\u4F86\u9192\u76EE\u63D0\u793A Unicode \u5B57\u5143\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7528\u4F86\u9192\u76EE\u63D0\u793A Unicode \u5B57\u5143\u7684\u80CC\u666F\u8272\u5F69\u3002"],"vs/editor/common/editorContextKeys":["\u7DE8\u8F2F\u5668\u6587\u5B57\u662F\u5426\u6709\u7126\u9EDE (\u6E38\u6A19\u9583\u720D)","\u7DE8\u8F2F\u5668\u6216\u7DE8\u8F2F\u5668\u5C0F\u5DE5\u5177\u662F\u5426\u6709\u7126\u9EDE (\u4F8B\u5982\u7126\u9EDE\u4F4D\u65BC [\u5C0B\u627E] \u5C0F\u5DE5\u5177\u4E2D)","\u7DE8\u8F2F\u5668\u6216 RTF \u8F38\u5165\u662F\u5426\u6709\u7126\u9EDE (\u6E38\u6A19\u9583\u720D)","\u7DE8\u8F2F\u5668\u662F\u5426\u70BA\u552F\u8B80","\u5167\u5BB9\u662F\u5426\u70BA Diff \u7DE8\u8F2F\u5668","\u5167\u5BB9\u662F\u5426\u70BA\u5167\u5D4C Diff \u7DE8\u8F2F\u5668","\u5167\u5BB9\u662F\u5426\u70BA Diff \u7DE8\u8F2F\u5668","\u662F\u5426\u647A\u758A\u591A\u91CD Diff \u7DE8\u8F2F\u5668\u4E2D\u7684\u6240\u6709\u6A94\u6848","Diff \u7DE8\u8F2F\u5668\u662F\u5426\u6709\u8B8A\u66F4","\u662F\u5426\u9078\u53D6\u79FB\u52D5\u7684\u7A0B\u5F0F\u78BC\u5340\u584A\u9032\u884C\u6BD4\u8F03","\u662F\u5426\u986F\u793A\u6613\u5B58\u53D6\u5DEE\u7570\u6AA2\u8996\u5668","\u662F\u5426\u5DF2\u9054\u5230\u5DEE\u7570\u7DE8\u8F2F\u5668\u4E26\u6392\u5448\u73FE\u5167\u5D4C\u4E2D\u65B7\u9EDE","'editor.columnSelection' \u662F\u5426\u5DF2\u555F\u7528","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u9078\u53D6\u6587\u5B57","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u591A\u500B\u9078\u53D6\u9805\u76EE","'Tab' \u662F\u5426\u6703\u5C07\u7126\u9EDE\u79FB\u51FA\u7DE8\u8F2F\u5668","\u7DE8\u8F2F\u5668\u66AB\u7559\u662F\u5426\u986F\u793A","\u7DE8\u8F2F\u5668\u66AB\u7559\u662F\u5426\u805A\u7126","\u81EA\u9ECF\u6372\u52D5\u662F\u5426\u805A\u7126","\u81EA\u9ECF\u6372\u52D5\u662F\u5426\u986F\u793A","\u662F\u5426\u986F\u793A\u7368\u7ACB\u7684\u984F\u8272\u9078\u64C7\u5668","\u7368\u7ACB\u7684\u984F\u8272\u9078\u64C7\u5668\u662F\u5426\u805A\u7126","\u7DE8\u8F2F\u5668\u662F\u5426\u70BA\u8F03\u5927\u7DE8\u8F2F\u5668\u7684\u4E00\u90E8\u5206 (\u4F8B\u5982\u7B46\u8A18\u672C)","\u7DE8\u8F2F\u5668\u7684\u8A9E\u8A00\u8B58\u5225\u78BC","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u5B8C\u6210\u9805\u76EE\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709 CodeLens \u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u5B9A\u7FA9\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u5BA3\u544A\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u5BE6\u4F5C\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u578B\u5225\u5B9A\u7FA9\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u66AB\u7559\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u6587\u4EF6\u9192\u76EE\u63D0\u793A\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u6587\u4EF6\u7B26\u865F\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u53C3\u8003\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u91CD\u65B0\u547D\u540D\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u7C3D\u7AE0\u8AAA\u660E\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u5167\u5D4C\u63D0\u793A\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u6587\u4EF6\u683C\u5F0F\u5316\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u6587\u4EF6\u9078\u53D6\u9805\u76EE\u683C\u5F0F\u5316\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u591A\u500B\u6587\u4EF6\u683C\u5F0F\u5316\u63D0\u4F9B\u8005","\u7DE8\u8F2F\u5668\u662F\u5426\u6709\u591A\u500B\u6587\u4EF6\u9078\u53D6\u9805\u76EE\u683C\u5F0F\u5316\u63D0\u4F9B\u8005"],"vs/editor/common/languages":["\u9663\u5217","\u5E03\u6797\u503C","\u985E\u5225","\u5E38\u6578","\u5EFA\u69CB\u51FD\u5F0F","\u5217\u8209","\u5217\u8209\u6210\u54E1","\u4E8B\u4EF6","\u6B04\u4F4D","\u6A94\u6848","\u51FD\u5F0F","\u4ECB\u9762","\u7D22\u5F15\u9375","\u65B9\u6CD5","\u6A21\u7D44","\u547D\u540D\u7A7A\u9593","null","\u6578\u5B57","\u7269\u4EF6","\u904B\u7B97\u5B50","\u5957\u4EF6","\u5C6C\u6027","\u5B57\u4E32","\u7D50\u69CB","\u578B\u5225\u53C3\u6578","\u8B8A\u6578","{0} ({1})"],"vs/editor/common/languages/modesRegistry":["\u7D14\u6587\u5B57"],"vs/editor/common/model/editStack":["\u6B63\u5728\u9375\u5165"],"vs/editor/common/standaloneStrings":["\u958B\u767C\u4EBA\u54E1: \u6AA2\u67E5\u6B0A\u6756","\u524D\u5F80\u884C/\u6B04...","\u986F\u793A\u6240\u6709\u5FEB\u901F\u5B58\u53D6\u63D0\u4F9B\u8005","\u547D\u4EE4\u9078\u64C7\u5340","\u986F\u793A\u4E26\u57F7\u884C\u547D\u4EE4","\u79FB\u81F3\u7B26\u865F...","\u524D\u5F80\u7B26\u865F (\u4F9D\u985E\u5225)...","\u7DE8\u8F2F\u5668\u5167\u5BB9","\u6309 Alt+F1 \u53EF\u53D6\u5F97\u5354\u52A9\u5DE5\u5177\u9078\u9805\u3002","\u5207\u63DB\u9AD8\u5C0D\u6BD4\u4F48\u666F\u4E3B\u984C","\u5DF2\u5728 {1} \u6A94\u6848\u4E2D\u9032\u884C {0} \u9805\u7DE8\u8F2F"],"vs/editor/common/viewLayout/viewLineRenderer":["\u986F\u793A\u66F4\u591A ({0})","{0} chars"],"vs/editor/contrib/anchorSelect/browser/anchorSelect":["\u9078\u53D6\u7BC4\u570D\u9328\u9EDE","\u8A2D\u5B9A\u9328\u9EDE\u70BA {0}:{1}","\u8A2D\u5B9A\u9078\u53D6\u7BC4\u570D\u9328\u9EDE","\u524D\u5F80\u9078\u53D6\u7BC4\u570D\u9328\u9EDE","\u9078\u53D6\u5F9E\u9328\u9EDE\u5230\u6E38\u6A19\u4E4B\u9593\u7684\u7BC4\u570D","\u53D6\u6D88\u9078\u53D6\u7BC4\u570D\u9328\u9EDE"],"vs/editor/contrib/bracketMatching/browser/bracketMatching":["\u6210\u5C0D\u62EC\u5F27\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002","\u79FB\u81F3\u65B9\u62EC\u5F27","\u9078\u53D6\u81F3\u62EC\u5F27","\u79FB\u9664\u62EC\u5F27","\u524D\u5F80\u62EC\u5F27(&&B)","\u9078\u53D6\u5167\u90E8\u6587\u5B57\uFF0C\u4E26\u5305\u542B\u62EC\u5F27\u6216\u5927\u62EC\u5F27"],"vs/editor/contrib/caretOperations/browser/caretOperations":["\u5C07\u6240\u9078\u6587\u5B57\u5411\u5DE6\u79FB\u52D5","\u5C07\u6240\u9078\u6587\u5B57\u5411\u53F3\u79FB\u52D5"],"vs/editor/contrib/caretOperations/browser/transpose":["\u8ABF\u63DB\u5B57\u6BCD"],"vs/editor/contrib/clipboard/browser/clipboard":["\u526A\u4E0B(&&T)","\u526A\u4E0B","\u526A\u4E0B","\u526A\u4E0B","\u8907\u88FD(&&C)","\u8907\u88FD","\u8907\u88FD","\u8907\u88FD","\u8CBC\u4E0A(&&P)","\u8CBC\u4E0A","\u8CBC\u4E0A","\u8CBC\u4E0A","\u96A8\u8A9E\u6CD5\u9192\u76EE\u63D0\u793A\u8907\u88FD","\u8907\u88FD\u70BA","\u8907\u88FD\u70BA","\u5171\u7528","\u5171\u7528","\u5171\u7528"],"vs/editor/contrib/codeAction/browser/codeAction":["\u5957\u7528\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u6642\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4"],"vs/editor/contrib/codeAction/browser/codeActionCommands":["\u8981\u57F7\u884C\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u7684\u7A2E\u985E\u3002","\u63A7\u5236\u8981\u5957\u7528\u50B3\u56DE\u52D5\u4F5C\u7684\u6642\u6A5F\u3002","\u4E00\u5F8B\u5957\u7528\u7B2C\u4E00\u500B\u50B3\u56DE\u7684\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u3002","\u5982\u679C\u50B3\u56DE\u7684\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u662F\u552F\u4E00\u52D5\u4F5C\uFF0C\u5247\u52A0\u4EE5\u5957\u7528\u3002","\u4E0D\u8981\u5957\u7528\u50B3\u56DE\u7684\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u3002","\u63A7\u5236\u662F\u5426\u50C5\u61C9\u50B3\u56DE\u504F\u597D\u7684\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u3002","\u5FEB\u901F\u4FEE\u5FA9...","\u6C92\u6709\u53EF\u7528\u7684\u7A0B\u5F0F\u78BC\u64CD\u4F5C",'\u6C92\u6709 "{0}" \u7684\u504F\u597D\u7A0B\u5F0F\u78BC\u52D5\u4F5C','\u6C92\u6709 "{0}" \u53EF\u7528\u7684\u7A0B\u5F0F\u78BC\u52D5\u4F5C',"\u6C92\u6709\u53EF\u7528\u7684\u504F\u597D\u7A0B\u5F0F\u78BC\u52D5\u4F5C","\u6C92\u6709\u53EF\u7528\u7684\u7A0B\u5F0F\u78BC\u64CD\u4F5C","\u91CD\u69CB...","\u6C92\u6709\u9069\u7528\u65BC '{0}' \u7684\u504F\u597D\u91CD\u69CB\u3002",'\u6C92\u6709\u53EF\u7528\u7684 "{0}" \u91CD\u69CB',"\u6C92\u6709\u53EF\u7528\u7684\u504F\u597D\u91CD\u69CB","\u6C92\u6709\u53EF\u7528\u7684\u91CD\u69CB","\u4F86\u6E90\u52D5\u4F5C...","\u6C92\u6709\u9069\u7528\u65BC '{0}' \u7684\u504F\u597D\u4F86\u6E90\u52D5\u4F5C",'\u6C92\u6709 "{0}" \u53EF\u7528\u7684\u4F86\u6E90\u52D5\u4F5C',"\u6C92\u6709\u53EF\u7528\u7684\u504F\u597D\u4F86\u6E90\u52D5\u4F5C","\u6C92\u6709\u53EF\u7528\u7684\u4F86\u6E90\u52D5\u4F5C","\u7D44\u7E54\u532F\u5165","\u6C92\u6709\u4EFB\u4F55\u53EF\u7528\u7684\u7D44\u7E54\u532F\u5165\u52D5\u4F5C","\u5168\u90E8\u4FEE\u6B63","\u6C92\u6709\u5168\u90E8\u4FEE\u6B63\u52D5\u4F5C\u53EF\u7528","\u81EA\u52D5\u4FEE\u6B63...","\u6C92\u6709\u53EF\u7528\u7684\u81EA\u52D5\u4FEE\u6B63"],"vs/editor/contrib/codeAction/browser/codeActionContributions":["\u555F\u7528/\u505C\u7528\u5728 [\u7A0B\u5F0F\u78BC\u52D5\u4F5C] \u529F\u80FD\u8868\u4E2D\u986F\u793A\u7FA4\u7D44\u6A19\u982D\u3002","\u76EE\u524D\u4E0D\u5728\u8A3A\u65B7\u6642\uFF0C\u555F\u7528/\u505C\u7528\u986F\u793A\u884C\u5167\u6700\u8FD1\u7684 [\u5FEB\u901F\u4FEE\u6B63]\u3002"],"vs/editor/contrib/codeAction/browser/codeActionController":["\u5167\u5BB9: {0} \u5728\u884C {1} \u548C\u6B04 {2}\u3002","\u96B1\u85CF\u5DF2\u505C\u7528\u9805\u76EE","\u986F\u793A\u5DF2\u505C\u7528\u9805\u76EE"],"vs/editor/contrib/codeAction/browser/codeActionMenu":["\u66F4\u591A\u52D5\u4F5C...","\u5FEB\u901F\u4FEE\u6B63","\u64F7\u53D6","\u5167\u5D4C","\u91CD\u5BEB","\u79FB\u52D5","\u7BC4\u570D\u9673\u8FF0\u5F0F","\u4F86\u6E90\u52D5\u4F5C"],"vs/editor/contrib/codeAction/browser/lightBulbWidget":["\u57F7\u884C: {0}","\u986F\u793A\u7A0B\u5F0F\u78BC\u52D5\u4F5C\u3002\u504F\u597D\u7684\u5FEB\u901F\u4FEE\u6B63\u53EF\u7528 ({0})","\u986F\u793A\u7A0B\u5F0F\u78BC\u52D5\u4F5C ({0})","\u986F\u793A\u7A0B\u5F0F\u78BC\u52D5\u4F5C"],"vs/editor/contrib/codelens/browser/codelensController":["\u986F\u793A\u76EE\u524D\u884C\u7684 Code Lens \u547D\u4EE4","\u9078\u53D6\u547D\u4EE4"],"vs/editor/contrib/colorPicker/browser/colorPickerWidget":["\u6309\u4E00\u4E0B\u4EE5\u5207\u63DB\u8272\u5F69\u9078\u9805 (rgb/hsl/hex)","\u8981\u95DC\u9589\u984F\u8272\u9078\u64C7\u5668\u7684\u5716\u793A"],"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions":["&&\u986F\u793A\u6216\u805A\u7126\u7368\u7ACB\u7684\u984F\u8272\u9078\u64C7\u5668","\u96B1\u85CF\u984F\u8272\u9078\u64C7\u5668","\u4F7F\u7528\u7368\u7ACB\u7684\u984F\u8272\u9078\u64C7\u5668\u63D2\u5165\u984F\u8272","\u986F\u793A\u6216\u805A\u7126\u7368\u7ACB\u7684\u984F\u8272\u9078\u64C7\u5668"],"vs/editor/contrib/comment/browser/comment":["\u5207\u63DB\u884C\u8A3B\u89E3","\u5207\u63DB\u884C\u8A3B\u89E3(&&T)","\u52A0\u5165\u884C\u8A3B\u89E3","\u79FB\u9664\u884C\u8A3B\u89E3","\u5207\u63DB\u5340\u584A\u8A3B\u89E3","\u5207\u63DB\u5340\u584A\u8A3B\u89E3(&&B)"],"vs/editor/contrib/contextmenu/browser/contextmenu":["\u7E2E\u5716","\u8F49\u8B6F\u5B57\u5143","\u5782\u76F4\u5927\u5C0F","\u6309\u6BD4\u4F8B","\u586B\u6EFF","\u6700\u9069\u5927\u5C0F","\u6ED1\u687F","\u6ED1\u9F20\u79FB\u81F3\u4E0A\u65B9","\u4E00\u5F8B","\u986F\u793A\u7DE8\u8F2F\u5668\u5167\u5BB9\u529F\u80FD\u8868"],"vs/editor/contrib/cursorUndo/browser/cursorUndo":["\u6E38\u6A19\u5FA9\u539F","\u6E38\u6A19\u91CD\u505A"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution":["\u8CBC\u4E0A\u70BA...","\u8981\u5617\u8A66\u5957\u7528\u7684\u8CBC\u4E0A\u7DE8\u8F2F\u7684\u8B58\u5225\u78BC\u3002\u5982\u679C\u672A\u63D0\u4F9B\uFF0C\u7DE8\u8F2F\u5668\u5C07\u986F\u793A\u9078\u64C7\u5668\u3002","\u8CBC\u4E0A\u70BA\u6587\u5B57"],"vs/editor/contrib/dropOrPasteInto/browser/copyPasteController":["\u662F\u5426\u986F\u793A\u8CBC\u4E0A\u5C0F\u5DE5\u5177","\u986F\u793A\u8CBC\u4E0A\u9078\u9805...","\u627E\u4E0D\u5230 '{0}' \u7684\u8CBC\u4E0A\u7DE8\u8F2F","\u6B63\u5728\u57F7\u884C\u8CBC\u4E0A\u8655\u7406\u5E38\u5F0F\u3002\u6309\u4E00\u4E0B\u4EE5\u53D6\u6D88","\u9078\u53D6\u8CBC\u4E0A\u52D5\u4F5C","\u57F7\u884C\u8CBC\u4E0A\u8655\u7406\u5E38\u5F0F"],"vs/editor/contrib/dropOrPasteInto/browser/defaultProviders":["\u5167\u5EFA","\u63D2\u5165\u7D14\u6587\u5B57","\u63D2\u5165 URI","\u63D2\u5165 URI","\u63D2\u5165\u8DEF\u5F91","\u63D2\u5165\u8DEF\u5F91","\u63D2\u5165\u76F8\u5C0D\u8DEF\u5F91","\u63D2\u5165\u76F8\u5C0D\u8DEF\u5F91","\u63D2\u5165 HTML"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution":["\u8A2D\u5B9A\u9810\u8A2D\u5378\u8F09\u63D0\u4F9B\u8005\uFF0C\u4EE5\u7528\u65BC\u6307\u5B9A MIME \u985E\u578B\u7684\u5167\u5BB9\u3002"],"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController":["\u662F\u5426\u986F\u793A\u5378\u9664\u5C0F\u5DE5\u5177","\u986F\u793A\u5378\u9664\u9078\u9805...","\u6B63\u5728\u57F7\u884C\u7F6E\u653E\u8655\u7406\u5E38\u5F0F\u3002\u6309\u4E00\u4E0B\u4EE5\u53D6\u6D88"],"vs/editor/contrib/editorState/browser/keybindingCancellation":["\u7DE8\u8F2F\u5668\u662F\u5426\u57F7\u884C\u53EF\u53D6\u6D88\u7684\u4F5C\u696D\uFF0C\u4F8B\u5982\u300C\u9810\u89BD\u53C3\u8003\u300D"],"vs/editor/contrib/find/browser/findController":["\u6A94\u6848\u592A\u5927\uFF0C\u7121\u6CD5\u57F7\u884C\u53D6\u4EE3\u6240\u6709\u4F5C\u696D\u3002","\u5C0B\u627E","\u5C0B\u627E(&&F)","\u4F7F\u7528\u5F15\u6578\u5C0B\u627E","\u5C0B\u627E\u9078\u53D6\u9805\u76EE","\u5C0B\u627E\u4E0B\u4E00\u500B","\u5C0B\u627E\u4E0A\u4E00\u500B","\u79FB\u81F3\u76F8\u7B26\u9805\u76EE...","\u6C92\u6709\u76F8\u7B26\u9805\u76EE\u3002\u5617\u8A66\u641C\u5C0B\u5176\u4ED6\u9805\u76EE\u3002","\u8F38\u5165\u6578\u5B57\u4EE5\u524D\u5F80\u7279\u5B9A\u76F8\u7B26\u9805\u76EE (\u4ECB\u65BC 1 \u5230 {0})","\u8ACB\u8F38\u5165\u4ECB\u65BC 1 \u548C {0} \u4E4B\u9593\u7684\u6578\u5B57\u3002","\u8ACB\u8F38\u5165\u4ECB\u65BC 1 \u548C {0} \u4E4B\u9593\u7684\u6578\u5B57\u3002","\u5C0B\u627E\u4E0B\u4E00\u500B\u9078\u53D6\u9805\u76EE","\u5C0B\u627E\u4E0A\u4E00\u500B\u9078\u53D6\u9805\u76EE","\u53D6\u4EE3","\u53D6\u4EE3(&&R)"],"vs/editor/contrib/find/browser/findWidget":["\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u4E2D [\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E] \u7684\u5716\u793A\u3002","\u8868\u793A\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u5DF2\u647A\u758A\u7684\u5716\u793A\u3002","\u8868\u793A\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u5DF2\u5C55\u958B\u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u4E2D [\u53D6\u4EE3] \u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u4E2D [\u5168\u90E8\u53D6\u4EE3] \u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u4E2D [\u5C0B\u627E\u4E0A\u4E00\u500B] \u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5C0B\u627E\u5C0F\u5DE5\u5177\u4E2D [\u5C0B\u627E\u4E0B\u4E00\u500B] \u7684\u5716\u793A\u3002","\u5C0B\u627E/\u53D6\u4EE3","\u5C0B\u627E","\u5C0B\u627E","\u4E0A\u4E00\u500B\u76F8\u7B26\u9805\u76EE","\u4E0B\u4E00\u500B\u76F8\u7B26\u9805\u76EE","\u5728\u9078\u53D6\u7BC4\u570D\u4E2D\u5C0B\u627E","\u95DC\u9589","\u53D6\u4EE3","\u53D6\u4EE3","\u53D6\u4EE3","\u5168\u90E8\u53D6\u4EE3","\u5207\u63DB\u53D6\u4EE3","\u50C5\u53CD\u767D\u986F\u793A\u524D {0} \u7B46\u7D50\u679C\uFF0C\u4F46\u6240\u6709\u5C0B\u627E\u4F5C\u696D\u6703\u5728\u5B8C\u6574\u6587\u5B57\u4E0A\u57F7\u884C\u3002","{1} \u7684 {0}","\u67E5\u7121\u7D50\u679C","\u627E\u5230 {0}","\u4EE5 '{1}' \u627E\u5230 {0}","\u4EE5 '{1}' \u627E\u5230 {0}\uFF0C\u4F4D\u65BC {2}","\u5DF2\u4EE5 '{1}' \u627E\u5230 {0}","Ctrl+Enter \u73FE\u5728\u6703\u63D2\u5165\u5206\u884C\u7B26\u865F\uFF0C\u800C\u4E0D\u6703\u5168\u90E8\u53D6\u4EE3\u3002\u60A8\u53EF\u4EE5\u4FEE\u6539 editor.action.replaceAll \u7684\u6309\u9375\u7E6B\u7D50\u95DC\u4FC2\uFF0C\u4EE5\u8986\u5BEB\u6B64\u884C\u70BA\u3002"],"vs/editor/contrib/folding/browser/folding":["\u5C55\u958B","\u4EE5\u905E\u8FF4\u65B9\u5F0F\u5C55\u958B","\u647A\u758A","\u5207\u63DB\u647A\u758A","\u4EE5\u905E\u8FF4\u65B9\u5F0F\u647A\u758A","\u647A\u758A\u5168\u90E8\u5340\u584A\u8A3B\u89E3","\u647A\u758A\u6240\u6709\u5340\u57DF","\u5C55\u958B\u6240\u6709\u5340\u57DF","\u647A\u758A\u6240\u9078\u5340\u57DF\u4EE5\u5916\u7684\u6240\u6709\u5340\u57DF","\u5C55\u958B\u6240\u9078\u5340\u57DF\u4EE5\u5916\u7684\u6240\u6709\u5340\u57DF","\u5168\u90E8\u647A\u758A","\u5168\u90E8\u5C55\u958B","\u79FB\u81F3\u7236\u4EE3\u647A\u758A","\u79FB\u81F3\u4E0A\u4E00\u500B\u647A\u758A\u7BC4\u570D","\u79FB\u81F3\u4E0B\u4E00\u500B\u647A\u758A\u7BC4\u570D","\u5F9E\u9078\u53D6\u7BC4\u570D\u5EFA\u7ACB\u647A\u758A\u7BC4\u570D","\u79FB\u9664\u624B\u52D5\u6298\u758A\u7BC4\u570D","\u647A\u758A\u5C64\u7D1A {0}"],"vs/editor/contrib/folding/browser/foldingDecorations":["\u5DF2\u647A\u758A\u7BC4\u570D\u5F8C\u7684\u80CC\u666F\u8272\u5F69\u3002\u8272\u5F69\u4E0D\u5F97\u8655\u65BC\u4E0D\u900F\u660E\u72C0\u614B\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7DE8\u8F2F\u5668\u88DD\u8A02\u908A\u7684\u647A\u758A\u63A7\u5236\u9805\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u5B57\u7B26\u908A\u754C\u4E2D [\u5C55\u958B\u7684\u7BC4\u570D] \u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5B57\u7B26\u908A\u754C\u4E2D [\u647A\u758A\u7684\u7BC4\u570D] \u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5B57\u7B26\u908A\u754C\u4E2D\u624B\u52D5\u647A\u758A\u7BC4\u570D\u7684\u5716\u793A\u3002","\u7DE8\u8F2F\u5668\u5B57\u7B26\u908A\u754C\u4E2D\u624B\u52D5\u5C55\u958B\u7BC4\u570D\u7684\u5716\u793A\u3002","\u6309\u4E00\u4E0B\u4EE5\u5C55\u958B\u7BC4\u570D\u3002","\u6309\u4E00\u4E0B\u4EE5\u647A\u758A\u7BC4\u570D\u3002"],"vs/editor/contrib/fontZoom/browser/fontZoom":["\u589E\u52A0\u7DE8\u8F2F\u5668\u5B57\u578B\u5927\u5C0F","\u6E1B\u5C11\u7DE8\u8F2F\u5668\u5B57\u578B\u5927\u5C0F","\u91CD\u8A2D\u7DE8\u8F2F\u5668\u5B57\u578B\u5927\u5C0F"],"vs/editor/contrib/format/browser/formatActions":["\u683C\u5F0F\u5316\u6587\u4EF6","\u683C\u5F0F\u5316\u9078\u53D6\u7BC4\u570D"],"vs/editor/contrib/gotoError/browser/gotoError":["\u79FB\u81F3\u4E0B\u4E00\u500B\u554F\u984C (\u932F\u8AA4, \u8B66\u544A, \u8CC7\u8A0A)","[\u524D\u5F80\u4E0B\u4E00\u500B\u6A19\u8A18] \u7684\u5716\u793A\u3002","\u79FB\u81F3\u4E0A\u4E00\u500B\u554F\u984C (\u932F\u8AA4, \u8B66\u544A, \u8CC7\u8A0A)","[\u524D\u5F80\u4E0A\u4E00\u500B\u6A19\u8A18] \u7684\u5716\u793A\u3002","\u79FB\u81F3\u6A94\u6848\u88E1\u9762\u7684\u4E0B\u4E00\u500B\u554F\u984C (\u932F\u8AA4, \u8B66\u544A, \u8CC7\u8A0A)","\u4E0B\u4E00\u500B\u554F\u984C(&&P)","\u79FB\u81F3\u6A94\u6848\u88E1\u9762\u7684\u4E0A\u4E00\u500B\u554F\u984C (\u932F\u8AA4, \u8B66\u544A, \u8CC7\u8A0A)","\u524D\u4E00\u500B\u554F\u984C(&&P)"],"vs/editor/contrib/gotoError/browser/gotoErrorWidget":["\u932F\u8AA4","\u8B66\u544A","\u8CC7\u8A0A","\u63D0\u793A","{0} \u65BC {1}\u3002","{0} \u500B\u554F\u984C (\u5171 {1} \u500B)","{0} \u500B\u554F\u984C (\u5171 {1} \u500B)","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u932F\u8AA4\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u932F\u8AA4\u6A19\u984C\u80CC\u666F\u3002","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u8B66\u544A\u7684\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u8B66\u544A\u6A19\u984C\u80CC\u666F\u3002","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u8CC7\u8A0A\u7684\u8272\u5F69","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u8CC7\u8A0A\u6A19\u984C\u80CC\u666F\u3002","\u7DE8\u8F2F\u5668\u6A19\u8A18\u5C0E\u89BD\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u3002"],"vs/editor/contrib/gotoSymbol/browser/goToCommands":["\u67E5\u770B","\u5B9A\u7FA9","\u627E\u4E0D\u5230 '{0}' \u7684\u5B9A\u7FA9","\u627E\u4E0D\u5230\u4EFB\u4F55\u5B9A\u7FA9","\u79FB\u81F3\u5B9A\u7FA9(&&D)","\u5BA3\u544A","\u627E\u4E0D\u5230 '{0}' \u7684\u5BA3\u544A ","\u627E\u4E0D\u5230\u4EFB\u4F55\u5BA3\u544A","\u524D\u5F80\u5BA3\u544A(&&D)","\u627E\u4E0D\u5230 '{0}' \u7684\u5BA3\u544A ","\u627E\u4E0D\u5230\u4EFB\u4F55\u5BA3\u544A","\u985E\u578B\u5B9A\u7FA9","\u627E\u4E0D\u5230 '{0}' \u7684\u4EFB\u4F55\u985E\u578B\u5B9A\u7FA9","\u627E\u4E0D\u5230\u4EFB\u4F55\u985E\u578B\u5B9A\u7FA9","\u524D\u5F80\u985E\u578B\u5B9A\u7FA9(&&T)","\u5BE6\u4F5C","\u627E\u4E0D\u5230 '{0}' \u7684\u4EFB\u4F55\u5BE6\u4F5C","\u627E\u4E0D\u5230\u4EFB\u4F55\u5BE6\u4F5C","\u524D\u5F80\u5BE6\u4F5C(&&I)",'\u672A\u627E\u5230 "{0}" \u7684\u53C3\u8003',"\u672A\u627E\u5230\u53C3\u8003","\u524D\u5F80\u53C3\u8003(&&R)","\u53C3\u8003","\u53C3\u8003","\u4F4D\u7F6E","'{0}' \u6C92\u6709\u7D50\u679C","\u53C3\u8003","\u79FB\u81F3\u5B9A\u7FA9","\u5728\u4E00\u5074\u958B\u555F\u5B9A\u7FA9","\u7784\u6838\u5B9A\u7FA9","\u79FB\u81F3\u5BA3\u544A","\u9810\u89BD\u5BA3\u544A","\u79FB\u81F3\u985E\u578B\u5B9A\u7FA9","\u9810\u89BD\u985E\u578B\u5B9A\u7FA9","\u524D\u5F80\u5BE6\u4F5C","\u67E5\u770B\u5BE6\u4F5C","\u524D\u5F80\u53C3\u8003","\u9810\u89BD\u53C3\u8003","\u524D\u5F80\u4EFB\u4F55\u7B26\u865F"],"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition":["\u6309\u4E00\u4E0B\u4EE5\u986F\u793A {0} \u9805\u5B9A\u7FA9\u3002"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesController":["\u662F\u5426\u986F\u793A\u53C3\u8003\u7784\u6838\uFF0C\u4F8B\u5982\u300C\u7784\u6838\u53C3\u8003\u300D\u6216\u300C\u7784\u6838\u5B9A\u7FA9\u300D","\u6B63\u5728\u8F09\u5165...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesTree":["{0} \u500B\u53C3\u8003","{0} \u500B\u53C3\u8003","\u53C3\u8003"],"vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget":["\u7121\u6CD5\u9810\u89BD","\u67E5\u7121\u7D50\u679C","\u53C3\u8003"],"vs/editor/contrib/gotoSymbol/browser/referencesModel":["\u5728\u8CC7\u6599\u884C {2} \u884C {1} \u7684 {0} \u4E2D","\u5728\u8CC7\u6599\u884C {3} \u884C {2} \u7684 {1} \u7684 {0} \u4E2D","1 \u500B\u7B26\u865F\u4F4D\u65BC {0}, \u5B8C\u6574\u8DEF\u5F91 {1}","{0} \u500B\u7B26\u865F\u4F4D\u65BC {1}, \u5B8C\u6574\u8DEF\u5F91 {2}","\u627E\u4E0D\u5230\u7D50\u679C","\u5728 {0} \u4E2D\u627E\u5230 1 \u500B\u7B26\u865F","\u5728 {1} \u4E2D\u627E\u5230 {0} \u500B\u7B26\u865F","\u5728 {1} \u500B\u6A94\u6848\u4E2D\u627E\u5230 {0} \u500B\u7B26\u865F"],"vs/editor/contrib/gotoSymbol/browser/symbolNavigation":["\u662F\u5426\u6709\u53EA\u80FD\u900F\u904E\u9375\u76E4\u700F\u89BD\u7684\u7B26\u865F\u4F4D\u7F6E\u3002","{1} \u7684\u7B26\u865F {0}\uFF0C{2} \u70BA\u4E0B\u4E00\u500B","{1} \u7684\u7B26\u865F {0}"],"vs/editor/contrib/hover/browser/hover":["\u986F\u793A\u6216\u805A\u7126\u66AB\u7559","\u6E38\u6A19\u66AB\u7559\u5C07\u4E0D\u6703\u81EA\u52D5\u805A\u7126\u3002","\u53EA\u6709\u5728\u6E38\u6A19\u66AB\u7559\u986F\u793A\u6642\u624D\u6703\u805A\u7126\u3002","\u6E38\u6A19\u66AB\u7559\u51FA\u73FE\u6642\u5C07\u81EA\u52D5\u805A\u7126\u3002","\u986F\u793A\u5B9A\u7FA9\u9810\u89BD\u61F8\u505C","\u5411\u4E0A\u6372\u52D5\u66AB\u7559","\u5411\u4E0B\u6372\u52D5\u66AB\u7559","\u5411\u5DE6\u6372\u52D5\u66AB\u7559","\u5411\u53F3\u6372\u52D5\u66AB\u7559","\u4E0A\u4E00\u9801\u66AB\u7559","\u4E0B\u4E00\u9801\u66AB\u7559","\u79FB\u81F3\u4E0A\u65B9\u66AB\u7559","\u79FB\u81F3\u4E0B\u65B9\u66AB\u7559"],"vs/editor/contrib/hover/browser/markdownHoverParticipant":["\u6B63\u5728\u8F09\u5165...","\u7531\u65BC\u6548\u80FD\u539F\u56E0\uFF0C\u5DF2\u66AB\u505C\u8F49\u8B6F\u3002\u9019\u53EF\u900F\u904E `editor.stopRenderingLineAfter` \u9032\u884C\u8A2D\u5B9A\u3002","\u56E0\u6548\u80FD\u7684\u7DE3\u6545\uFF0C\u5DF2\u8DF3\u904E\u5C07\u9577\u7684\u884C Token \u5316\u3002\u60A8\u53EF\u900F\u904E `editor.maxTokenizationLineLength` \u8A2D\u5B9A\u3002"],"vs/editor/contrib/hover/browser/markerHoverParticipant":["\u6AA2\u8996\u554F\u984C","\u6C92\u6709\u53EF\u7528\u7684\u5FEB\u901F\u4FEE\u6B63","\u6B63\u5728\u6AA2\u67E5\u5FEB\u901F\u4FEE\u6B63...","\u6C92\u6709\u53EF\u7528\u7684\u5FEB\u901F\u4FEE\u6B63","\u5FEB\u901F\u4FEE\u5FA9..."],"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace":["\u4EE5\u4E0A\u4E00\u500B\u503C\u53D6\u4EE3","\u4EE5\u4E0B\u4E00\u500B\u503C\u53D6\u4EE3"],"vs/editor/contrib/indentation/browser/indentation":["\u5C07\u7E2E\u6392\u8F49\u63DB\u6210\u7A7A\u683C","\u5C07\u7E2E\u6392\u8F49\u63DB\u6210\u5B9A\u4F4D\u9EDE","\u5DF2\u8A2D\u5B9A\u7684\u5B9A\u4F4D\u9EDE\u5927\u5C0F","\u9810\u8A2D\u7D22\u5F15\u6A19\u7C64\u5927\u5C0F","\u76EE\u524D\u7684\u7D22\u5F15\u6A19\u7C64\u5927\u5C0F","\u9078\u53D6\u76EE\u524D\u6A94\u6848\u7684\u5B9A\u4F4D\u9EDE\u5927\u5C0F","\u4F7F\u7528 Tab \u9032\u884C\u7E2E\u6392","\u4F7F\u7528\u7A7A\u683C\u9375\u9032\u884C\u7E2E\u6392","\u8B8A\u66F4\u7D22\u5F15\u6A19\u7C64\u986F\u793A\u5927\u5C0F","\u5075\u6E2C\u5167\u5BB9\u4E2D\u7684\u7E2E\u6392","\u91CD\u65B0\u5C07\u884C\u7E2E\u6392","\u91CD\u65B0\u5C07\u9078\u53D6\u7684\u884C\u7E2E\u6392"],"vs/editor/contrib/inlayHints/browser/inlayHintsHover":["\u6309\u5169\u4E0B\u4EE5\u63D2\u5165","cmd + \u6309\u4E00\u4E0B","ctrl + \u6309\u4E00\u4E0B","\u9078\u9805 + \u6309\u4E00\u4E0B","alt + \u6309\u4E00\u4E0B","\u524D\u5F80 [\u5B9A\u7FA9] ({0})\uFF0C\u6309\u4E00\u4E0B\u6ED1\u9F20\u53F3\u9375\u4EE5\u4E86\u89E3\u66F4\u591A","\u79FB\u81F3\u5B9A\u7FA9 ({0})","\u57F7\u884C\u547D\u4EE4"],"vs/editor/contrib/inlineCompletions/browser/commands":["\u986F\u793A\u4E0B\u4E00\u500B\u5167\u5D4C\u5EFA\u8B70","\u986F\u793A\u4E0A\u4E00\u500B\u5167\u5D4C\u5EFA\u8B70","\u89F8\u767C\u5167\u5D4C\u5EFA\u8B70","\u63A5\u53D7\u4E0B\u4E00\u500B\u5167\u5D4C\u5EFA\u8B70\u5B57\u7D44","\u63A5\u53D7\u5B57\u7D44","\u63A5\u53D7\u4E0B\u4E00\u500B\u5167\u5D4C\u5EFA\u8B70\u884C","\u63A5\u53D7\u884C","\u63A5\u53D7\u5167\u5D4C\u5EFA\u8B70","\u63A5\u53D7","\u96B1\u85CF\u5167\u5D4C\u5EFA\u8B70","\u6C38\u9060\u986F\u793A\u5DE5\u5177\u5217"],"vs/editor/contrib/inlineCompletions/browser/hoverParticipant":["\u5EFA\u8B70:"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys":["\u662F\u5426\u986F\u793A\u5167\u5D4C\u5EFA\u8B70","\u5167\u5D4C\u5EFA\u8B70\u662F\u5426\u4EE5\u7A7A\u767D\u5B57\u5143\u958B\u982D","\u5167\u5D4C\u5EFA\u8B70\u7684\u958B\u982D\u662F\u5426\u70BA\u7A7A\u767D\uFF0C\u4E14\u6BD4 Tab \u80FD\u63D2\u5165\u7684\u5B57\u5143\u8981\u5C0F","\u662F\u5426\u61C9\u96B1\u85CF\u76EE\u524D\u5EFA\u8B70\u7684\u5176\u4ED6\u5EFA\u8B70"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController":["\u5728\u53EF\u5B58\u53D6\u6AA2\u8996\u4E2D\u6AA2\u67E5\u6B64\u9805\u76EE ({0})"],"vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget":["[\u986F\u793A\u4E0B\u4E00\u500B\u53C3\u6578\u63D0\u793A] \u7684\u5716\u793A\u3002","[\u986F\u793A\u4E0A\u4E00\u500B\u53C3\u6578\u63D0\u793A] \u7684\u5716\u793A\u3002","{0} ({1})","\u4E0A\u4E00\u6B65","\u4E0B\u4E00\u6B65"],"vs/editor/contrib/lineSelection/browser/lineSelection":["\u5C55\u958B\u7DDA\u689D\u9078\u53D6\u7BC4\u570D"],"vs/editor/contrib/linesOperations/browser/linesOperations":["\u5C07\u884C\u5411\u4E0A\u8907\u88FD","\u5C07\u884C\u5411\u4E0A\u8907\u88FD(&&C)","\u5C07\u884C\u5411\u4E0B\u8907\u88FD","\u5C07\u884C\u5411\u4E0B\u8907\u88FD(&&P)","\u91CD\u8907\u9078\u53D6\u9805\u76EE","\u91CD\u8907\u9078\u53D6\u9805\u76EE(&&D)","\u4E0A\u79FB\u4E00\u884C","\u4E0A\u79FB\u4E00\u884C(&&V)","\u4E0B\u79FB\u4E00\u884C","\u4E0B\u79FB\u4E00\u884C(&&L)","\u905E\u589E\u6392\u5E8F\u884C","\u905E\u6E1B\u6392\u5E8F\u884C","\u522A\u9664\u91CD\u8907\u7684\u884C","\u4FEE\u526A\u5C3E\u7AEF\u7A7A\u767D","\u522A\u9664\u884C","\u7E2E\u6392\u884C","\u51F8\u6392\u884C","\u5728\u4E0A\u65B9\u63D2\u5165\u884C","\u5728\u4E0B\u65B9\u63D2\u5165\u884C","\u5DE6\u908A\u5168\u90E8\u522A\u9664","\u522A\u9664\u6240\u6709\u53F3\u65B9\u9805\u76EE","\u9023\u63A5\u7DDA","\u8F49\u7F6E\u6E38\u6A19\u5468\u570D\u7684\u5B57\u5143\u6578","\u8F49\u63DB\u5230\u5927\u5BEB","\u8F49\u63DB\u5230\u5C0F\u5BEB","\u8F49\u63DB\u70BA\u5B57\u9996\u5927\u5BEB","\u8F49\u63DB\u70BA\u5E95\u7DDA\u9023\u63A5\u5B57","\u8F49\u63DB\u70BA Camel \u6848\u4F8B","\u8F49\u63DB\u6210 Kebab Case"],"vs/editor/contrib/linkedEditing/browser/linkedEditing":["\u958B\u59CB\u9023\u7D50\u7684\u7DE8\u8F2F","\u7576\u7DE8\u8F2F\u5668\u81EA\u52D5\u91CD\u65B0\u547D\u540D\u985E\u578B\u6642\u7684\u80CC\u666F\u8272\u5F69\u3002"],"vs/editor/contrib/links/browser/links":["\u56E0\u70BA\u6B64\u9023\u7D50\u7684\u683C\u5F0F\u4E0D\u6B63\u78BA\uFF0C\u6240\u4EE5\u7121\u6CD5\u958B\u555F: {0}","\u56E0\u70BA\u6B64\u9023\u7D50\u76EE\u6A19\u907A\u5931\uFF0C\u6240\u4EE5\u7121\u6CD5\u958B\u555F\u3002","\u57F7\u884C\u547D\u4EE4","\u8FFD\u8E64\u9023\u7D50","cmd + \u6309\u4E00\u4E0B","ctrl + \u6309\u4E00\u4E0B","\u9078\u9805 + \u6309\u4E00\u4E0B","alt + \u6309\u4E00\u4E0B","\u57F7\u884C\u547D\u4EE4 {0}","\u958B\u555F\u9023\u7D50"],"vs/editor/contrib/message/browser/messageController":["\u7DE8\u8F2F\u5668\u76EE\u524D\u662F\u5426\u6B63\u5728\u986F\u793A\u5167\u5D4C\u8A0A\u606F"],"vs/editor/contrib/multicursor/browser/multicursor":["\u65B0\u589E\u7684\u8CC7\u6599\u6307\u6A19: {0}","\u65B0\u589E\u7684\u8CC7\u6599\u6307\u6A19: {0}","\u5728\u4E0A\u65B9\u52A0\u5165\u6E38\u6A19","\u5728\u4E0A\u65B9\u65B0\u589E\u6E38\u6A19(&&A)","\u5728\u4E0B\u65B9\u52A0\u5165\u6E38\u6A19","\u5728\u4E0B\u65B9\u65B0\u589E\u6E38\u6A19(&&D)","\u5728\u884C\u5C3E\u65B0\u589E\u6E38\u6A19","\u5728\u884C\u5C3E\u65B0\u589E\u6E38\u6A19(&&U)","\u5C07\u6E38\u6A19\u65B0\u589E\u5230\u5E95\u90E8 ","\u5C07\u6E38\u6A19\u65B0\u589E\u5230\u9802\u90E8","\u5C07\u9078\u53D6\u9805\u76EE\u52A0\u5165\u4E0B\u4E00\u500B\u627E\u5230\u7684\u76F8\u7B26\u9805","\u65B0\u589E\u4E0B\u4E00\u500B\u9805\u76EE(&&N)","\u5C07\u9078\u53D6\u9805\u76EE\u52A0\u5165\u524D\u4E00\u500B\u627E\u5230\u7684\u76F8\u7B26\u9805\u4E2D","\u65B0\u589E\u4E0A\u4E00\u500B\u9805\u76EE(&&R)","\u5C07\u6700\u5F8C\u4E00\u500B\u9078\u64C7\u9805\u76EE\u79FB\u81F3\u4E0B\u4E00\u500B\u627E\u5230\u7684\u76F8\u7B26\u9805","\u5C07\u6700\u5F8C\u4E00\u500B\u9078\u64C7\u9805\u76EE\u79FB\u81F3\u524D\u4E00\u500B\u627E\u5230\u7684\u76F8\u7B26\u9805","\u9078\u53D6\u6240\u6709\u627E\u5230\u7684\u76F8\u7B26\u9805\u76EE","\u9078\u53D6\u6240\u6709\u9805\u76EE(&&O)","\u8B8A\u66F4\u6240\u6709\u767C\u751F\u6B21\u6578","\u805A\u7126\u4E0B\u4E00\u500B\u6E38\u6A19","\u805A\u7126\u4E0B\u4E00\u500B\u6E38\u6A19","\u805A\u7126\u4E0A\u4E00\u500B\u6E38\u6A19","\u805A\u7126\u524D\u4E00\u500B\u6E38\u6A19"],"vs/editor/contrib/parameterHints/browser/parameterHints":["\u89F8\u767C\u53C3\u6578\u63D0\u793A"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["[\u986F\u793A\u4E0B\u4E00\u500B\u53C3\u6578\u63D0\u793A] \u7684\u5716\u793A\u3002","[\u986F\u793A\u4E0A\u4E00\u500B\u53C3\u6578\u63D0\u793A] \u7684\u5716\u793A\u3002","{0}\uFF0C\u63D0\u793A","\u53C3\u6578\u63D0\u793A\u4E2D\u4F7F\u7528\u4E2D\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69\u3002"],"vs/editor/contrib/peekView/browser/peekView":["\u76EE\u524D\u7684\u7A0B\u5F0F\u78BC\u7DE8\u8F2F\u5668\u662F\u5426\u5167\u5D4C\u65BC\u7784\u6838\u5167","\u95DC\u9589","\u9810\u89BD\u6AA2\u8996\u6A19\u984C\u5340\u57DF\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u6A19\u984C\u7684\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u6A19\u984C\u8CC7\u8A0A\u7684\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u4E4B\u6846\u7DDA\u8207\u7BAD\u982D\u7684\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u4E2D\u7D50\u679C\u6E05\u55AE\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u7D50\u679C\u5217\u8868\u4E2D\u884C\u7BC0\u9EDE\u7684\u524D\u666F\u8272\u5F69","\u9810\u89BD\u6AA2\u8996\u7D50\u679C\u5217\u8868\u4E2D\u6A94\u6848\u7BC0\u9EDE\u7684\u524D\u666F\u8272\u5F69","\u5728\u9810\u89BD\u6AA2\u8996\u4E4B\u7D50\u679C\u6E05\u55AE\u4E2D\u9078\u53D6\u9805\u76EE\u6642\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5728\u9810\u89BD\u6AA2\u8996\u4E4B\u7D50\u679C\u6E05\u55AE\u4E2D\u9078\u53D6\u9805\u76EE\u6642\u7684\u524D\u666F\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u908A\u6846(\u542B\u884C\u865F\u6216\u5B57\u5F62\u5716\u793A)\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u4E2D\u9ECF\u6027\u6EFE\u52D5\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5728\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u4E2D\u6BD4\u5C0D\u6642\u7684\u53CD\u767D\u986F\u793A\u8272\u5F69\u3002","\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u4E2D\u6BD4\u5C0D\u6642\u7684\u53CD\u767D\u986F\u793A\u8272\u5F69\u3002","\u5728\u9810\u89BD\u6AA2\u8996\u7DE8\u8F2F\u5668\u4E2D\u6BD4\u5C0D\u6642\u7684\u53CD\u767D\u986F\u793A\u908A\u754C\u3002"],"vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess":["\u5148\u958B\u555F\u6587\u5B57\u7DE8\u8F2F\u5668\uFF0C\u524D\u5F80\u67D0\u4E00\u884C\u3002","\u524D\u5F80\u7B2C {0} \u884C\u7684\u7B2C {1} \u500B\u5B57\u5143\u3002","\u524D\u5F80\u7B2C {0} \u884C\u3002","\u76EE\u524D\u884C: {0}\uFF0C\u5B57\u5143: {1}\u3002\u8ACB\u9375\u5165\u4ECB\u65BC 1 \u5230 {2} \u4E4B\u9593\u884C\u865F\uFF0C\u5C0E\u89BD\u81F3\u8A72\u884C\u3002","\u76EE\u524D\u884C: {0}\uFF0C\u5B57\u5143: {1}\u3002\u8ACB\u9375\u5165\u8981\u5C0E\u89BD\u81F3\u7684\u884C\u865F\u3002"],"vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess":["\u82E5\u8981\u524D\u5F80\u7B26\u865F\uFF0C\u8ACB\u5148\u958B\u555F\u5305\u542B\u7B26\u865F\u8CC7\u8A0A\u7684\u6587\u5B57\u7DE8\u8F2F\u5668\u3002","\u4F7F\u7528\u4E2D\u7684\u6587\u5B57\u7DE8\u8F2F\u5668\u4E0D\u63D0\u4F9B\u7B26\u865F\u8CC7\u8A0A\u3002","\u6C92\u6709\u76F8\u7B26\u7684\u7DE8\u8F2F\u5668\u7B26\u865F","\u6C92\u6709\u7DE8\u8F2F\u5668\u7B26\u865F","\u958B\u81F3\u5074\u908A","\u958B\u555F\u5230\u5E95\u90E8","\u7B26\u865F ({0})","\u5C6C\u6027 ({0})","\u65B9\u6CD5 ({0})","\u51FD\u5F0F ({0})","\u5EFA\u69CB\u51FD\u5F0F ({0})","\u8B8A\u6578 ({0})","\u985E\u5225 ({0})","\u7D50\u69CB ({0})","\u4E8B\u4EF6 ({0})","\u904B\u7B97\u5B50 ({0})","\u4ECB\u9762 ({0})","\u547D\u540D\u7A7A\u9593 ({0})","\u5957\u4EF6 ({0})","\u578B\u5225\u53C3\u6578 ({0})","\u6A21\u7D44 ({0})","\u5C6C\u6027 ({0})","\u5217\u8209 ({0})","\u5217\u8209\u6210\u54E1 ({0})","\u5B57\u4E32 ({0})","\u6A94\u6848 ({0})","\u9663\u5217 ({0})","\u6578\u5B57 ({0})","\u5E03\u6797\u503C ({0})","\u7269\u4EF6 ({0})","\u7D22\u5F15\u9375 ({0})","\u6B04\u4F4D ({0})","\u5E38\u6578 ({0})"],"vs/editor/contrib/readOnlyMessage/browser/contribution":["\u7121\u6CD5\u5728\u552F\u8B80\u8F38\u5165\u4E2D\u7DE8\u8F2F","\u7121\u6CD5\u5728\u552F\u8B80\u7DE8\u8F2F\u5668\u4E2D\u7DE8\u8F2F"],"vs/editor/contrib/rename/browser/rename":["\u6C92\u6709\u7D50\u679C\u3002","\u89E3\u6790\u91CD\u65B0\u547D\u540D\u4F4D\u7F6E\u6642\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4","\u6B63\u5728\u5C07 '{0}' \u91CD\u65B0\u547D\u540D\u70BA '{1}'","\u6B63\u5728\u5C07 {0} \u91CD\u65B0\u547D\u540D\u70BA {1}","\u5DF2\u6210\u529F\u5C07 '{0}' \u91CD\u65B0\u547D\u540D\u70BA '{1}'\u3002\u6458\u8981: {2}","\u91CD\u547D\u540D\u7121\u6CD5\u5957\u7528\u7DE8\u8F2F","\u91CD\u65B0\u547D\u540D\u7121\u6CD5\u8A08\u7B97\u7DE8\u8F2F","\u91CD\u65B0\u547D\u540D\u7B26\u865F","\u555F\u7528/\u505C\u7528\u91CD\u65B0\u547D\u540D\u524D\u5148\u9810\u89BD\u8B8A\u66F4\u7684\u529F\u80FD","\u805A\u7126\u4E0B\u4E00\u500B\u91CD\u65B0\u547D\u540D\u5EFA\u8B70","\u805A\u7126\u4E0A\u4E00\u500B\u91CD\u65B0\u547D\u540D\u5EFA\u8B70"],"vs/editor/contrib/rename/browser/renameInputField":["\u662F\u5426\u986F\u793A\u91CD\u65B0\u547D\u540D\u8F38\u5165\u5C0F\u5DE5\u5177","\u662F\u5426\u805A\u7126\u65BC\u91CD\u65B0\u547D\u540D\u8F38\u5165\u5C0F\u5DE5\u5177","\u70BA\u8F38\u5165\u91CD\u65B0\u547D\u540D\u3002\u8ACB\u9375\u5165\u65B0\u540D\u7A31\uFF0C\u7136\u5F8C\u6309 Enter \u4EE5\u63D0\u4EA4\u3002","\u6309 {0} \u9032\u884C\u91CD\u65B0\u547D\u540D\uFF0C\u6309 {1} \u9032\u884C\u9810\u89BD","\u5DF2\u6536\u5230 {0} \u91CD\u65B0\u547D\u540D\u5EFA\u8B70"],"vs/editor/contrib/smartSelect/browser/smartSelect":["\u5C55\u958B\u9078\u53D6\u9805\u76EE","\u5C55\u958B\u9078\u53D6\u7BC4\u570D(&&E)","\u7E2E\u5C0F\u9078\u53D6\u9805\u76EE","\u58D3\u7E2E\u9078\u53D6\u7BC4\u570D(&&S)"],"vs/editor/contrib/snippet/browser/snippetController2":["\u7DE8\u8F2F\u5668\u76EE\u524D\u662F\u5426\u5728\u7A0B\u5F0F\u78BC\u7247\u6BB5\u6A21\u5F0F\u4E2D","\u5728\u7A0B\u5F0F\u78BC\u7247\u6BB5\u6A21\u5F0F\u4E2D\u662F\u5426\u6709\u4E0B\u4E00\u500B\u5B9A\u4F4D\u505C\u99D0\u9EDE","\u5728\u7A0B\u5F0F\u78BC\u7247\u6BB5\u6A21\u5F0F\u4E2D\u662F\u5426\u6709\u4E0A\u4E00\u500B\u5B9A\u4F4D\u505C\u99D0\u9EDE","\u79FB\u81F3\u4E0B\u4E00\u500B\u9810\u7559\u4F4D\u7F6E..."],"vs/editor/contrib/snippet/browser/snippetVariables":["\u661F\u671F\u5929","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D","\u9031\u65E5","\u9031\u4E00","\u9031\u4E8C","\u9031\u4E09","\u9031\u56DB","\u9031\u4E94","\u9031\u516D","\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708","1\u6708","2\u6708","3 \u6708","4\u6708","\u4E94\u6708","6\u6708","7 \u6708","8 \u6708","9 \u6708","10 \u6708","11 \u6708","12 \u6708"],"vs/editor/contrib/stickyScroll/browser/stickyScrollActions":["\u5207\u63DB\u7DE8\u8F2F\u5668\u81EA\u9ECF\u6372\u52D5(&&T)","\u81EA\u9ECF\u6372\u52D5","\u81EA\u9ECF\u6372\u52D5(&&S)","\u7126\u9EDE\u81EA\u9ECF\u6372\u52D5(&&F)","\u5207\u63DB\u7DE8\u8F2F\u5668\u81EA\u9ECF\u6372\u52D5","\u805A\u7126\u81EA\u9ECF\u6372\u52D5","\u9078\u53D6\u4E0B\u4E00\u500B\u81EA\u9ECF\u6372\u52D5\u884C","\u9078\u53D6\u4E0A\u4E00\u500B\u81EA\u9ECF\u6372\u52D5\u884C","\u79FB\u81F3\u805A\u7126\u7684\u81EA\u9ECF\u6372\u52D5\u884C","\u9078\u53D6\u7DE8\u8F2F\u5668"],"vs/editor/contrib/suggest/browser/suggest":["\u662F\u5426\u805A\u7126\u4EFB\u4F55\u5EFA\u8B70","\u662F\u5426\u986F\u793A\u5EFA\u8B70\u8A73\u7D30\u8CC7\u6599","\u662F\u5426\u6709\u591A\u500B\u5EFA\u8B70\u53EF\u4EE5\u6311\u9078","\u63D2\u5165\u76EE\u524D\u7684\u5EFA\u8B70\u6703\u7522\u751F\u8B8A\u66F4\uFF0C\u6216\u5DF2\u9375\u5165\u6240\u6709\u9805\u76EE","\u662F\u5426\u5728\u6309\u4E0B Enter \u6642\u63D2\u5165\u5EFA\u8B70","\u76EE\u524D\u7684\u5EFA\u8B70\u662F\u5426\u6709\u63D2\u5165\u548C\u53D6\u4EE3\u884C\u70BA","\u9810\u8A2D\u884C\u70BA\u662F\u63D2\u5165\u6216\u53D6\u4EE3","\u76EE\u524D\u7684\u5EFA\u8B70\u662F\u5426\u652F\u63F4\u89E3\u6C7A\u66F4\u591A\u8A73\u7D30\u8CC7\u6599"],"vs/editor/contrib/suggest/browser/suggestController":["\u63A5\u53D7 \u2018{0}\u2019 \u9032\u884C\u4E86\u5176\u4ED6 {1} \u9805\u7DE8\u8F2F","\u89F8\u767C\u5EFA\u8B70","\u63D2\u5165","\u63D2\u5165","\u53D6\u4EE3","\u53D6\u4EE3","\u63D2\u5165","\u986F\u793A\u66F4\u5C11","\u986F\u793A\u66F4\u591A","\u91CD\u8A2D\u5EFA\u8B70\u5C0F\u5DE5\u5177\u5927\u5C0F"],"vs/editor/contrib/suggest/browser/suggestWidget":["\u5EFA\u8B70\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u7684\u908A\u754C\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u7684\u524D\u666F\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u6240\u9078\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u6240\u9078\u9805\u76EE\u7684\u5716\u793A\u524D\u666F\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u6240\u9078\u9805\u76EE\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u76F8\u7B26\u9192\u76EE\u63D0\u793A\u7684\u8272\u5F69\u3002","\u7576\u9805\u76EE\u6210\u70BA\u7126\u9EDE\u6642\uFF0C\u76F8\u7B26\u9805\u76EE\u7684\u8272\u5F69\u5728\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u6703\u9192\u76EE\u986F\u793A\u3002","\u5EFA\u8B70\u5C0F\u5DE5\u5177\u72C0\u614B\u7684\u524D\u666F\u8272\u5F69\u3002","\u6B63\u5728\u8F09\u5165...","\u7121\u5EFA\u8B70\u3002","\u5EFA\u8B70","{0} {1}\uFF0C{2}","{0} {1}","{0}\uFF0C{1}","{0}\uFF0C\u6587\u4EF6: {1}"],"vs/editor/contrib/suggest/browser/suggestWidgetDetails":["\u95DC\u9589","\u6B63\u5728\u8F09\u5165..."],"vs/editor/contrib/suggest/browser/suggestWidgetRenderer":["\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D [\u66F4\u591A\u8A73\u7D30\u8CC7\u8A0A] \u7684\u5716\u793A\u3002","\u95B1\u8B80\u66F4\u591A"],"vs/editor/contrib/suggest/browser/suggestWidgetStatus":["{0} ({1})"],"vs/editor/contrib/symbolIcons/browser/symbolIcons":["\u9663\u5217\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5E03\u6797\u503C\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u985E\u5225\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u8272\u5F69\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5E38\u6578\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5EFA\u69CB\u51FD\u5F0F\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5217\u8209\u503C\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5217\u8209\u503C\u6210\u54E1\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u4E8B\u4EF6\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u6B04\u4F4D\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u6A94\u6848\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u8CC7\u6599\u593E\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u51FD\u5F0F\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u4ECB\u9762\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u7D22\u5F15\u9375\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u95DC\u9375\u5B57\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u65B9\u6CD5\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u6A21\u7D44\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u547D\u540D\u7A7A\u9593\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","Null \u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u6578\u5B57\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u7269\u4EF6\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u904B\u7B97\u5B50\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5957\u4EF6\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5C6C\u6027\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u53C3\u8003\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u7A0B\u5F0F\u78BC\u7247\u6BB5\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u5B57\u4E32\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u7D50\u69CB\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u6587\u5B57\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u578B\u5225\u53C3\u6578\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u55AE\u4F4D\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002","\u8B8A\u6578\u7B26\u865F\u7684\u524D\u666F\u8272\u5F69\u3002\u9019\u4E9B\u7B26\u865F\u6703\u51FA\u73FE\u5728\u5927\u7DB1\u3001\u968E\u5C64\u9023\u7D50\u548C\u5EFA\u8B70\u5C0F\u5DE5\u5177\u4E2D\u3002"],"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode":["\u6309 Tab \u73FE\u5728\u6703\u5C07\u7126\u9EDE\u79FB\u81F3\u4E0B\u4E00\u500B\u53EF\u8A2D\u5B9A\u7126\u9EDE\u7684\u5143\u7D20\u3002","\u6309 Tab \u73FE\u5728\u6703\u63D2\u5165\u5B9A\u4F4D\u5B57\u5143\u3002","\u5207\u63DB TAB \u9375\u79FB\u52D5\u7126\u9EDE"],"vs/editor/contrib/tokenization/browser/tokenization":["\u958B\u767C\u4EBA\u54E1: \u5F37\u5236\u91CD\u65B0\u7F6E\u653E"],"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter":["\u5EF6\u4F38\u6A21\u7D44\u7DE8\u8F2F\u5668\u4E2D\u986F\u793A\u542B\u6709\u8B66\u544A\u8A0A\u606F\u7684\u5716\u793A\u3002","\u6B64\u6587\u4EF6\u5305\u542B\u8A31\u591A\u975E\u57FA\u672C ASCII Unicode \u5B57\u5143","\u6B64\u6587\u4EF6\u5305\u542B\u8A31\u591A\u4E0D\u660E\u78BA\u7684 Unicode \u5B57\u5143","\u6B64\u6587\u4EF6\u5305\u542B\u8A31\u591A\u96B1\u85CF\u7684 Unicode \u5B57\u5143","\u8A2D\u5B9A Unicode \u9192\u76EE\u63D0\u793A\u9078\u9805","\u5B57\u5143 {0} \u53EF\u80FD\u8207 ASCII \u5B57\u5143 {1} \u6DF7\u6DC6\uFF0C\u9019\u5728\u539F\u59CB\u7A0B\u5F0F\u78BC\u4E2D\u6BD4\u8F03\u5E38\u898B\u3002","\u5B57\u5143 {0} \u53EF\u80FD\u8207\u5B57\u5143 {1} \u6DF7\u6DC6\uFF0C\u9019\u5728\u539F\u59CB\u7A0B\u5F0F\u78BC\u4E2D\u6BD4\u8F03\u5E38\u898B\u3002","\u5B57\u5143 {0} \u96B1\u85CF\u3002","\u5B57\u5143 {0} \u4E0D\u662F\u57FA\u672C\u7684 ASCII \u5B57\u5143\u3002","\u8ABF\u6574\u8A2D\u5B9A","\u505C\u7528\u8A3B\u89E3\u4E2D\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u8A3B\u89E3\u4E2D\u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u5B57\u4E32\u4E2D\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u5B57\u4E32\u4E2D\u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u4E0D\u660E\u78BA\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u4E0D\u660E\u78BA\u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u96B1\u85CF\u9192\u76EE\u63D0\u793A","\u505C\u7528\u96B1\u85CF\u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A","\u505C\u7528\u975E ASCII \u9192\u76EE\u63D0\u793A","\u505C\u7528\u975E\u57FA\u672C ASCII \u5B57\u5143\u7684\u9192\u76EE\u63D0\u793A","\u986F\u793A\u6392\u9664\u9078\u9805","\u6392\u9664 {0} (\u96B1\u85CF\u5B57\u5143) \u7684\u53CD\u767D\u986F\u793A","\u5C07 {0} \u6392\u9664\u5728\u5DF2\u9192\u76EE\u63D0\u793A","\u5141\u8A31\u5728\u8A9E\u8A00\u300C{0}\u300D\u4E2D\u8F03\u5E38\u7528\u7684 Unicode \u5B57\u5143\u3002"],"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators":["\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143","\u5075\u6E2C\u5230\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143","\u6A94\u6848 '{0}' \u5305\u542B\u4E00\u6216\u591A\u500B\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143\uFF0C\u4F8B\u5982\u884C\u5206\u9694\u7B26\u865F (LS) \u6216\u6BB5\u843D\u5206\u9694\u7B26\u865F (PS)\u3002\r\n\r\n\u5EFA\u8B70\u60A8\u5C07\u5176\u5F9E\u6A94\u6848\u4E2D\u79FB\u9664\u3002\u9019\u53EF\u4EE5\u900F\u904E `editor.unusualLineTerminators` \u9032\u884C\u8A2D\u5B9A\u3002","\u79FB\u9664\u7570\u5E38\u7684\u884C\u7D50\u675F\u5B57\u5143(&&R)","\u5FFD\u7565"],"vs/editor/contrib/wordHighlighter/browser/highlightDecorations":["\u8B80\u53D6\u6B0A\u9650\u671F\u9593 (\u5982\u8B80\u53D6\u8B8A\u6578) \u7B26\u865F\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5BEB\u5165\u6B0A\u9650\u671F\u9593 (\u5982\u5BEB\u5165\u8B8A\u6578) \u7B26\u865F\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7B26\u865F\u6587\u5B57\u51FA\u73FE\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u8B80\u53D6\u5B58\u53D6\u671F\u9593 (\u4F8B\u5982\u8B80\u53D6\u8B8A\u6578\u6642) \u7B26\u865F\u7684\u908A\u6846\u984F\u8272\u3002","\u5BEB\u5165\u5B58\u53D6\u671F\u9593 (\u4F8B\u5982\u5BEB\u5165\u8B8A\u6578\u6642) \u7B26\u865F\u7684\u908A\u6846\u984F\u8272\u3002 ","\u7B26\u865F\u6587\u5B57\u51FA\u73FE\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7B26\u865F\u9192\u76EE\u63D0\u793A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5BEB\u5165\u6B0A\u9650\u7B26\u865F\u9192\u76EE\u63D0\u793A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7B26\u865F\u6587\u5B57\u51FA\u73FE\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002"],"vs/editor/contrib/wordHighlighter/browser/wordHighlighter":["\u79FB\u81F3\u4E0B\u4E00\u500B\u53CD\u767D\u7B26\u865F","\u79FB\u81F3\u4E0A\u4E00\u500B\u53CD\u767D\u7B26\u865F","\u89F8\u767C\u7B26\u865F\u53CD\u767D\u986F\u793A"],"vs/editor/contrib/wordOperations/browser/wordOperations":["\u522A\u9664\u5B57\u7D44"],"vs/platform/accessibilitySignal/browser/accessibilitySignalService":["\u884C\u4E0A\u767C\u751F\u932F\u8AA4","\u932F\u8AA4","\u884C\u4E0A\u7684\u8B66\u544A","\u8B66\u544A","\u884C\u4E0A\u7684\u647A\u758A\u5340\u57DF","\u5DF2\u647A\u758A","\u884C\u4E0A\u7684\u4E2D\u65B7\u9EDE","\u4E2D\u65B7\u9EDE","\u884C\u4E0A\u7684\u5167\u5D4C\u5EFA\u8B70","\u7D42\u7AEF\u6A5F\u5FEB\u901F\u4FEE\u6B63","\u5FEB\u901F\u4FEE\u6B63","\u5728\u4E2D\u65B7\u9EDE\u505C\u6B62\u5075\u932F\u5DE5\u5177","\u4E2D\u65B7\u9EDE","\u884C\u4E0A\u6C92\u6709\u5D4C\u5165\u63D0\u793A","\u7121\u5167\u5D4C\u63D0\u793A","\u5DE5\u4F5C\u5B8C\u6210","\u5DE5\u4F5C\u5B8C\u6210","\u5DE5\u4F5C\u5931\u6557","\u5DE5\u4F5C\u5931\u6557","\u7D42\u7AEF\u6A5F\u547D\u4EE4\u5931\u6557","\u547D\u4EE4\u5931\u6557","\u7D42\u7AEF\u9234\u8072","\u7D42\u7AEF\u9234","Notebook \u5132\u5B58\u683C\u5DF2\u5B8C\u6210","Notebook \u5132\u5B58\u683C\u5DF2\u5B8C\u6210","Notebook \u5132\u5B58\u683C\u5931\u6557","Notebook \u5132\u5B58\u683C\u5931\u6557","\u5DEE\u7570\u884C\u5DF2\u63D2\u5165","\u5DEE\u7570\u884C\u5DF2\u522A\u9664","\u5DEE\u7570\u884C\u5DF2\u4FEE\u6539","\u804A\u5929\u8981\u6C42\u5DF2\u50B3\u9001","\u804A\u5929\u8981\u6C42\u5DF2\u50B3\u9001","\u804A\u5929\u56DE\u61C9\u5DF2\u63A5\u6536","\u804A\u5929\u56DE\u61C9\u64F1\u7F6E\u4E2D","\u804A\u5929\u56DE\u61C9\u64F1\u7F6E\u4E2D","\u6E05\u9664","\u6E05\u9664","\u5132\u5B58","\u5132\u5B58","\u683C\u5F0F","\u683C\u5F0F"],"vs/platform/action/common/actionCommonCategories":["\u6AA2\u8996","\u8AAA\u660E","\u6E2C\u8A66","\u6A94\u6848","\u559C\u597D\u8A2D\u5B9A","\u958B\u767C\u4EBA\u54E1"],"vs/platform/actionWidget/browser/actionList":["{0} \u4EE5\u5957\u7528\uFF0C{1} \u4EE5\u9810\u89BD","{0} \u4EE5\u7533\u8ACB","{0}\uFF0C\u505C\u7528\u539F\u56E0: {1}","\u52D5\u4F5C\u5C0F\u5DE5\u5177"],"vs/platform/actionWidget/browser/actionWidget":["\u52D5\u4F5C\u5217\u4E2D\u5207\u63DB\u52D5\u4F5C\u9805\u76EE\u7684\u80CC\u666F\u8272\u5F69\u3002","\u662F\u5426\u986F\u793A\u52D5\u4F5C\u5C0F\u5DE5\u5177\u6E05\u55AE","\u96B1\u85CF\u52D5\u4F5C\u5C0F\u5DE5\u5177","\u9078\u53D6\u4E0A\u4E00\u500B\u52D5\u4F5C","\u9078\u53D6\u4E0B\u4E00\u500B\u52D5\u4F5C","\u63A5\u53D7\u9078\u53D6\u7684\u52D5\u4F5C","\u9810\u89BD\u9078\u53D6\u7684\u52D5\u4F5C"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})","{0} ({1})",`{0}\r +[{1}] {2}`],"vs/platform/actions/browser/toolbar":["\u96B1\u85CF","\u91CD\u8A2D\u529F\u80FD\u8868"],"vs/platform/actions/common/menuService":["\u96B1\u85CF '{0}'"],"vs/platform/configuration/common/configurationRegistry":["\u9810\u8A2D\u8A9E\u8A00\u7D44\u614B\u8986\u5BEB","\u8A2D\u5B9A\u8981\u91DD\u5C0D {0} \u8A9E\u8A00\u8986\u5BEB\u7684\u8A2D\u5B9A\u3002","\u8A2D\u5B9A\u8981\u91DD\u5C0D\u8A9E\u8A00\u8986\u5BEB\u7684\u7DE8\u8F2F\u5668\u8A2D\u5B9A\u3002","\u9019\u500B\u8A2D\u5B9A\u4E0D\u652F\u63F4\u4EE5\u8A9E\u8A00\u70BA\u6839\u64DA\u7684\u7D44\u614B\u3002","\u8A2D\u5B9A\u8981\u91DD\u5C0D\u8A9E\u8A00\u8986\u5BEB\u7684\u7DE8\u8F2F\u5668\u8A2D\u5B9A\u3002","\u9019\u500B\u8A2D\u5B9A\u4E0D\u652F\u63F4\u4EE5\u8A9E\u8A00\u70BA\u6839\u64DA\u7684\u7D44\u614B\u3002","\u7121\u6CD5\u8A3B\u518A\u7A7A\u767D\u5C6C\u6027","\u7121\u6CD5\u8A3B\u518A '{0}'\u3002\u9019\u7B26\u5408\u7528\u65BC\u63CF\u8FF0\u8A9E\u8A00\u5C08\u7528\u7DE8\u8F2F\u5668\u8A2D\u5B9A\u7684\u5C6C\u6027\u6A21\u5F0F '\\\\[.*\\\\]$'\u3002\u8ACB\u4F7F\u7528 'configurationDefaults' \u8CA2\u737B\u3002","\u7121\u6CD5\u8A3B\u518A '{0}'\u3002\u6B64\u5C6C\u6027\u5DF2\u7D93\u8A3B\u518A\u3002","\u7121\u6CD5\u8A3B\u518A '{0}'\u3002\u5DF2\u5411 {2} \u8A3B\u518A\u95DC\u806F\u7684\u539F\u5247 {1}\u3002"],"vs/platform/contextkey/browser/contextKeyService":["\u50B3\u56DE\u6709\u95DC\u5167\u5BB9\u7D22\u5F15\u9375\u8CC7\u8A0A\u7684\u547D\u4EE4"],"vs/platform/contextkey/common/contextkey":["\u7A7A\u7684\u5167\u5BB9\u7D22\u5F15\u9375\u904B\u7B97\u5F0F","\u60A8\u662F\u5426\u5FD8\u8A18\u64B0\u5BEB\u904B\u7B97\u5F0F? \u60A8\u4E5F\u53EF\u4EE5\u5206\u5225\u653E\u7F6E 'false' \u6216 'true'\uFF0C\u4EE5\u4E00\u5F8B\u8A55\u4F30\u70BA False \u6216 True\u3002","'not' \u5F8C\u70BA 'in'\u3002","\u53F3\u62EC\u5F27 ')'","\u672A\u9810\u671F\u7684\u6B0A\u6756","\u60A8\u662F\u5426\u5FD8\u8A18\u5728\u6B0A\u6756\u4E4B\u524D\u653E\u7F6E && \u6216 ||?","\u904B\u7B97\u5F0F\u672A\u9810\u671F\u7684\u7D50\u5C3E","\u60A8\u662F\u5426\u5FD8\u8A18\u653E\u7F6E\u5167\u5BB9\u91D1\u9470?",`\u9810\u671F: {0}\r +\u6536\u5230: '{1}'\u3002`],"vs/platform/contextkey/common/contextkeys":["\u4F5C\u696D\u7CFB\u7D71\u662F\u5426\u70BA macOS","\u4F5C\u696D\u7CFB\u7D71\u662F\u5426\u70BA Linux","\u4F5C\u696D\u7CFB\u7D71\u662F\u5426\u70BA Windows","\u5E73\u53F0\u662F\u5426\u70BA\u7DB2\u9801\u700F\u89BD\u5668","\u975E\u700F\u89BD\u5668\u5E73\u53F0\u4E0A\u7684\u4F5C\u696D\u7CFB\u7D71\u662F\u5426\u70BA macOS","\u4F5C\u696D\u7CFB\u7D71\u662F\u5426\u70BA iOS","\u5E73\u81FA\u662F\u5426\u70BA\u884C\u52D5\u7DB2\u9801\u700F\u89BD\u5668","VS Code \u7684\u54C1\u8CEA\u985E\u578B","\u9375\u76E4\u7126\u9EDE\u662F\u5426\u4F4D\u65BC\u8F38\u5165\u65B9\u584A\u5167"],"vs/platform/contextkey/common/scanner":["\u60A8\u662F\u6307 '{0}'?","\u60A8\u662F\u6307 {0} \u6216 {1}?","\u60A8\u662F\u6307 {0}\u3001{1} \u6216 {2}?","\u60A8\u662F\u5426\u5FD8\u8A18\u5DE6\u62EC\u5F27\u6216\u53F3\u62EC\u5F27?","\u60A8\u662F\u5426\u5FD8\u8A18\u9038\u51FA '/' (\u659C\u7DDA) \u5B57\u5143? \u5728\u53CD\u659C\u7DDA\u524D\u653E\u5169\u500B\u53CD\u659C\u7DDA\u4EE5\u9038\u51FA\uFF0C\u4F8B\u5982 '\\\\/'\u3002"],"vs/platform/history/browser/contextScopedHistoryWidget":["\u662F\u5426\u986F\u793A\u5EFA\u8B70"],"vs/platform/keybinding/common/abstractKeybindingService":["\u5DF2\u6309\u4E0B ({0})\u3002\u7B49\u5F85\u7B2C\u4E8C\u500B\u5957\u7D22\u9375...","({0}) \u5DF2\u6309\u4E0B\u3002\u6B63\u5728\u7B49\u5F85\u4E0B\u4E00\u500B\u5957\u7D22\u9375...","\u6309\u9375\u7D44\u5408 ({0}, {1}) \u4E0D\u662F\u547D\u4EE4\u3002","\u6309\u9375\u7D44\u5408 ({0}, {1}) \u4E0D\u662F\u547D\u4EE4\u3002"],"vs/platform/list/browser/listService":["\u5DE5\u4F5C\u53F0","\u5C0D\u61C9Windows\u548CLinux\u7684'Control'\u8207\u5C0D\u61C9 macOS \u7684'Command'\u3002","\u5C0D\u61C9Windows\u548CLinux\u7684'Alt'\u8207\u5C0D\u61C9macOS\u7684'Option'\u3002","\u900F\u904E\u6ED1\u9F20\u591A\u9078\uFF0C\u7528\u65BC\u5728\u6A39\u72C0\u76EE\u9304\u8207\u6E05\u55AE\u4E2D\u65B0\u589E\u9805\u76EE\u7684\u8F14\u52A9\u6309\u9375 (\u4F8B\u5982\u5728\u7E3D\u7BA1\u4E2D\u958B\u555F\u7DE8\u8F2F\u5668 \u53CA SCM \u6AA2\u8996)\u3002'\u5728\u5074\u908A\u958B\u555F' \u6ED1\u9F20\u624B\u52E2 (\u82E5\u652F\u63F4) \u5C07\u6703\u9069\u61C9\u4EE5\u907F\u514D\u548C\u591A\u9078\u8F14\u52A9\u6309\u9375\u885D\u7A81\u3002","\u63A7\u5236\u5982\u4F55\u4F7F\u7528\u6ED1\u9F20 (\u5982\u652F\u63F4\u6B64\u7528\u6CD5) \u958B\u555F\u6A39\u72C0\u76EE\u9304\u8207\u6E05\u55AE\u4E2D\u7684\u9805\u76EE\u3002\u82E5\u4E0D\u9069\u7528\uFF0C\u67D0\u4E9B\u6A39\u72C0\u76EE\u9304\u8207\u6E05\u55AE\u53EF\u80FD\u6703\u9078\u64C7\u5FFD\u7565\u6B64\u8A2D\u5B9A\u3002","\u63A7\u5236\u5728\u5DE5\u4F5C\u53F0\u4E2D\uFF0C\u6E05\u55AE\u8207\u6A39\u72C0\u7D50\u69CB\u662F\u5426\u652F\u63F4\u6C34\u5E73\u6372\u52D5\u3002\u8B66\u544A: \u958B\u555F\u6B64\u8A2D\u5B9A\u5C07\u6703\u5F71\u97FF\u6548\u80FD\u3002","\u63A7\u5236\u6309\u4E00\u4E0B\u6372\u8EF8\u662F\u5426\u9010\u9801\u6372\u52D5\u3002","\u63A7\u5236\u6A39\u72C0\u7D50\u69CB\u7E2E\u6392 (\u50CF\u7D20)\u3002","\u63A7\u5236\u6A39\u7CFB\u662F\u5426\u61C9\u8F49\u8B6F\u7E2E\u6392\u8F14\u52A9\u7DDA\u3002","\u63A7\u5236\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u662F\u5426\u5177\u6709\u5E73\u6ED1\u6372\u52D5\u3002","\u8981\u7528\u65BC\u6ED1\u9F20\u6EFE\u8F2A\u6372\u52D5\u4E8B\u4EF6 `deltaX` \u548C `deltaY` \u7684\u4E58\u6578\u3002","\u6309\u4E0B `Alt` \u6642\u7684\u6372\u52D5\u901F\u5EA6\u4E58\u6578\u3002","\u641C\u5C0B\u6642\u6703\u9192\u76EE\u63D0\u793A\u5143\u7D20\u3002\u9032\u4E00\u6B65\u7684\u5411\u4E0A\u548C\u5411\u4E0B\u700F\u89BD\u53EA\u6703\u5468\u904A\u5DF2\u9192\u76EE\u63D0\u793A\u7684\u5143\u7D20\u3002","\u641C\u5C0B\u6642\u7BE9\u9078\u5143\u7D20\u3002","\u63A7\u5236 Workbench \u4E2D\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u7684\u9810\u8A2D\u5C0B\u627E\u6A21\u5F0F\u3002","\u6BD4\u5C0D\u6309\u9375\u8F38\u5165\u7684\u7C21\u6613\u6309\u9375\u700F\u89BD\u7126\u9EDE\u5143\u7D20\u3002\u50C5\u6BD4\u5C0D\u524D\u7F6E\u8A5E\u3002","\u9192\u76EE\u63D0\u793A\u9375\u76E4\u700F\u89BD\u6703\u9192\u76EE\u63D0\u793A\u7B26\u5408\u9375\u76E4\u8F38\u5165\u7684\u5143\u7D20\u3002\u9032\u4E00\u6B65\u5411\u4E0A\u6216\u5411\u4E0B\u700F\u89BD\u53EA\u6703\u5468\u904A\u9192\u76EE\u63D0\u793A\u7684\u5143\u7D20\u3002","\u7BE9\u9078\u9375\u76E4\u700F\u89BD\u6703\u7BE9\u6389\u4E26\u96B1\u85CF\u4E0D\u7B26\u5408\u9375\u76E4\u8F38\u5165\u7684\u6240\u6709\u5143\u7D20\u3002","\u63A7\u5236 Workbench \u4E2D\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u7684\u9375\u76E4\u700F\u89BD\u6A23\u5F0F\u3002\u53EF\u4EE5\u662F\u7C21\u6613\u7684\u3001\u9192\u76EE\u63D0\u793A\u548C\u7BE9\u9078\u3002","\u8ACB\u6539\u70BA\u4F7F\u7528 'workbench.list.defaultFindMode' \u548C 'workbench.list.typeNavigationMode'\u3002","\u641C\u5C0B\u6642\u4F7F\u7528\u6A21\u7CCA\u6BD4\u5C0D\u3002","\u641C\u5C0B\u6642\u4F7F\u7528\u9023\u7E8C\u6BD4\u5C0D\u3002","\u63A7\u5236\u5728\u5DE5\u4F5C\u53F0\u4E2D\u641C\u5C0B\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u6642\u6240\u4F7F\u7528\u7684\u6BD4\u5C0D\u985E\u578B\u3002","\u63A7\u5236\u7576\u6309\u4E0B\u8CC7\u6599\u593E\u540D\u7A31\u6642\uFF0C\u6A39\u72C0\u76EE\u9304\u8CC7\u6599\u593E\u7684\u5C55\u958B\u65B9\u5F0F\u3002\u8ACB\u6CE8\u610F\uFF0C\u82E5\u4E0D\u9069\u7528\uFF0C\u67D0\u4E9B\u6A39\u72C0\u76EE\u9304\u548C\u6E05\u55AE\u53EF\u80FD\u6703\u9078\u64C7\u5FFD\u7565\u6B64\u8A2D\u5B9A\u3002","\u63A7\u5236\u662F\u5426\u8981\u5728\u6A39\u72C0\u4E2D\u555F\u52D5\u9ECF\u6027\u6372\u52D5\u3002","\u63A7\u5236\u555F\u7528 `#workbench.tree.enableStickyScroll#` \u6642\uFF0C\u6A39\u72C0\u4E2D\u986F\u793A\u7684\u9ECF\u6027\u5143\u7D20\u6578\u76EE\u3002","\u63A7\u5236\u5DE5\u4F5C\u53F0\u4E2D\u6E05\u55AE\u548C\u6A39\u72C0\u76EE\u9304\u7684\u985E\u578B\u700F\u89BD\u904B\u4F5C\u65B9\u5F0F\u3002\u8A2D\u5B9A\u70BA 'trigger' \u6642\uFF0C\u985E\u578B\u700F\u89BD\u6703\u5728\u57F7\u884C 'list.triggerTypeNavigation' \u547D\u4EE4\u6642\u96A8\u5373\u958B\u59CB\u3002"],"vs/platform/markers/common/markers":["\u932F\u8AA4","\u8B66\u544A","\u8CC7\u8A0A"],"vs/platform/quickinput/browser/commandsQuickAccess":["\u6700\u8FD1\u4F7F\u7528\u7684","\u985E\u4F3C\u7684\u547D\u4EE4","\u7D93\u5E38\u4F7F\u7528","\u5176\u4ED6\u547D\u4EE4","\u985E\u4F3C\u7684\u547D\u4EE4","{0}, {1}","\u547D\u4EE4 '{0}' \u9020\u6210\u932F\u8AA4"],"vs/platform/quickinput/browser/helpQuickAccess":["{0}, {1}"],"vs/platform/quickinput/browser/quickInput":["\u4E0A\u4E00\u9801","\u6309 'Enter' \u9375\u78BA\u8A8D\u60A8\u7684\u8F38\u5165\u6216\u6309 'Esc' \u9375\u53D6\u6D88","{0}/{1}","\u8F38\u5165\u4EE5\u7E2E\u5C0F\u7D50\u679C\u7BC4\u570D\u3002"],"vs/platform/quickinput/browser/quickInputController":["\u5207\u63DB\u6240\u6709\u6838\u53D6\u65B9\u584A","{0} \u500B\u7D50\u679C","\u5DF2\u9078\u64C7 {0}","\u78BA\u5B9A","\u81EA\u8A02","\u80CC\u9762 ({0})","\u8FD4\u56DE"],"vs/platform/quickinput/browser/quickInputList":["\u5FEB\u901F\u8F38\u5165"],"vs/platform/quickinput/browser/quickInputUtils":["\u6309\u4E00\u4E0B\u4EE5\u57F7\u884C\u547D\u4EE4 \u2018{0}\u2019"],"vs/platform/theme/common/colorRegistry":["\u6574\u9AD4\u7684\u524D\u666F\u8272\u5F69\u3002\u50C5\u7576\u672A\u88AB\u4EFB\u4F55\u5143\u4EF6\u8986\u758A\u6642\uFF0C\u624D\u6703\u4F7F\u7528\u6B64\u8272\u5F69\u3002","\u5DF2\u505C\u7528\u5143\u7D20\u7684\u6574\u9AD4\u524D\u666F\u3002\u53EA\u6709\u5728\u5143\u4EF6\u672A\u8986\u84CB\u6642\uFF0C\u624D\u80FD\u4F7F\u7528\u9019\u500B\u8272\u5F69\u3002","\u6574\u9AD4\u932F\u8AA4\u8A0A\u606F\u7684\u524D\u666F\u8272\u5F69\u3002\u50C5\u7576\u672A\u88AB\u4EFB\u4F55\u5143\u4EF6\u8986\u84CB\u6642\uFF0C\u624D\u6703\u4F7F\u7528\u6B64\u8272\u5F69\u3002","\u63D0\u4F9B\u9644\u52A0\u8A0A\u606F\u7684\u524D\u666F\u984F\u8272,\u4F8B\u5982\u6A19\u7C64","\u5DE5\u4F5C\u53F0\u4E2D\u5716\u793A\u7684\u9810\u8A2D\u8272\u5F69\u3002","\u7126\u9EDE\u9805\u76EE\u7684\u6574\u9AD4\u6846\u7DDA\u8272\u5F69\u3002\u53EA\u5728\u6C92\u6709\u4EFB\u4F55\u5143\u4EF6\u8986\u5BEB\u6B64\u8272\u5F69\u6642\uFF0C\u624D\u6703\u52A0\u4EE5\u4F7F\u7528\u3002","\u9805\u76EE\u5468\u570D\u7684\u984D\u5916\u6846\u7DDA\uFF0C\u53EF\u5C07\u9805\u76EE\u5F9E\u5176\u4ED6\u9805\u76EE\u4E2D\u5340\u9694\u51FA\u4F86\u4EE5\u63D0\u9AD8\u5C0D\u6BD4\u3002","\u4F7F\u7528\u4E2D\u9805\u76EE\u5468\u570D\u7684\u984D\u5916\u908A\u754C\uFF0C\u53EF\u5C07\u9805\u76EE\u5F9E\u5176\u4ED6\u9805\u76EE\u4E2D\u5340\u9694\u51FA\u4F86\u4EE5\u63D0\u9AD8\u5C0D\u6BD4\u3002","\u4F5C\u696D\u5340\u57DF\u9078\u53D6\u7684\u80CC\u666F\u984F\u8272(\u4F8B\u5982\u8F38\u5165\u6216\u6587\u5B57\u5340\u57DF)\u3002\u8ACB\u6CE8\u610F\uFF0C\u9019\u4E0D\u9069\u7528\u65BC\u7DE8\u8F2F\u5668\u4E2D\u7684\u9078\u53D6\u3002","\u6587\u5B57\u5206\u9694\u7B26\u865F\u7684\u984F\u8272\u3002","\u5167\u6587\u9023\u7D50\u7684\u524D\u666F\u8272\u5F69","\u7576\u6ED1\u9F20\u9EDE\u64CA\u6216\u61F8\u505C\u6642\uFF0C\u6587\u5B57\u4E2D\u9023\u7D50\u7684\u524D\u666F\u8272\u5F69\u3002","\u63D0\u793A\u53CA\u5EFA\u8B70\u6587\u5B57\u7684\u524D\u666F\u8272\u5F69\u3002","\u9810\u5148\u683C\u5F0F\u5316\u6587\u5B57\u5340\u6BB5\u7684\u80CC\u666F\u8272\u5F69\u3002","\u6587\u5167\u5F15\u7528\u5340\u584A\u80CC\u666F\u8272\u5F69\u3002","\u5F15\u7528\u6587\u5B57\u7684\u6846\u7DDA\u984F\u8272\u3002","\u6587\u5B57\u5340\u584A\u7684\u80CC\u666F\u984F\u8272\u3002","\u5C0F\u5DE5\u5177\u7684\u9670\u5F71\u8272\u5F69\uFF0C\u4F8B\u5982\u7DE8\u8F2F\u5668\u4E2D\u7684\u5C0B\u627E/\u53D6\u4EE3\u3002","\u5C0F\u5DE5\u5177\u7684\u6846\u7DDA\u8272\u5F69\uFF0C\u4F8B\u5982\u7DE8\u8F2F\u5668\u4E2D\u7684\u5C0B\u627E/\u53D6\u4EE3\u3002","\u8F38\u5165\u65B9\u584A\u7684\u80CC\u666F\u3002","\u8F38\u5165\u65B9\u584A\u7684\u524D\u666F\u3002","\u8F38\u5165\u65B9\u584A\u7684\u6846\u7DDA\u3002","\u8F38\u5165\u6B04\u4F4D\u4E2D\u53EF\u4F7F\u7528\u4E4B\u9805\u76EE\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u5728\u8F38\u5165\u6B04\u4F4D\u4E2D\u6240\u555F\u52D5\u9078\u9805\u7684\u80CC\u666F\u8272\u5F69\u3002","\u8F38\u5165\u6B04\u4F4D\u4E2D\u9078\u9805\u7684\u80CC\u666F\u66AB\u7559\u8272\u5F69\u3002","\u5728\u8F38\u5165\u6B04\u4F4D\u4E2D\u6240\u555F\u52D5\u9078\u9805\u7684\u524D\u666F\u8272\u5F69\u3002","\u6587\u5B57\u8F38\u5165\u66FF\u4EE3\u5B57\u7B26\u7684\u524D\u666F\u984F\u8272\u3002","\u8CC7\u8A0A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u80CC\u666F\u8272\u5F69\u3002","\u8CC7\u8A0A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u524D\u666F\u8272\u5F69\u3002","\u8CC7\u8A0A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u908A\u754C\u8272\u5F69\u3002","\u8B66\u544A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u80CC\u666F\u8272\u5F69\u3002","\u8B66\u544A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u524D\u666F\u8272\u5F69\u3002","\u8B66\u544A\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u908A\u754C\u8272\u5F69\u3002","\u932F\u8AA4\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u80CC\u666F\u8272\u5F69\u3002","\u932F\u8AA4\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u524D\u666F\u8272\u5F69\u3002","\u932F\u8AA4\u56B4\u91CD\u6027\u7684\u8F38\u5165\u9A57\u8B49\u908A\u754C\u8272\u5F69\u3002","\u4E0B\u62C9\u5F0F\u6E05\u55AE\u7684\u80CC\u666F\u3002","\u4E0B\u62C9\u5F0F\u6E05\u55AE\u7684\u80CC\u666F\u3002","\u4E0B\u62C9\u5F0F\u6E05\u55AE\u7684\u524D\u666F\u3002","\u4E0B\u62C9\u5F0F\u6E05\u55AE\u7684\u6846\u7DDA\u3002","\u6309\u9215\u524D\u666F\u8272\u5F69\u3002","\u5206\u9694\u7DDA\u8272\u5F69\u6309\u9215\u3002","\u6309\u9215\u80CC\u666F\u8272\u5F69\u3002","\u66AB\u7559\u6642\u7684\u6309\u9215\u80CC\u666F\u8272\u5F69\u3002","\u6309\u9215\u6846\u7DDA\u8272\u5F69\u3002","\u6B21\u8981\u6309\u9215\u524D\u666F\u8272\u5F69\u3002","\u6B21\u8981\u6309\u9215\u80CC\u666F\u8272\u5F69\u3002","\u6ED1\u9F20\u66AB\u7559\u6642\u7684\u6B21\u8981\u6309\u9215\u80CC\u666F\u8272\u5F69\u3002","\u6A19\u8A18\u7684\u80CC\u666F\u984F\u8272\u3002\u6A19\u8A18\u70BA\u5C0F\u578B\u7684\u8A0A\u606F\u6A19\u7C64,\u4F8B\u5982\u641C\u5C0B\u7D50\u679C\u7684\u6578\u91CF\u3002","\u6A19\u8A18\u7684\u524D\u666F\u984F\u8272\u3002\u6A19\u8A18\u70BA\u5C0F\u578B\u7684\u8A0A\u606F\u6A19\u7C64,\u4F8B\u5982\u641C\u5C0B\u7D50\u679C\u7684\u6578\u91CF\u3002","\u6307\u51FA\u5728\u6372\u52D5\u8A72\u6AA2\u8996\u7684\u6372\u8EF8\u9670\u5F71\u3002","\u6372\u8EF8\u6ED1\u687F\u7684\u80CC\u666F\u984F\u8272\u3002","\u52D5\u614B\u986F\u793A\u6642\u6372\u8EF8\u6ED1\u687F\u7684\u80CC\u666F\u984F\u8272\u3002","\u7576\u9EDE\u64CA\u6642\u6372\u8EF8\u6ED1\u687F\u7684\u80CC\u666F\u984F\u8272\u3002","\u9577\u6642\u9593\u904B\u884C\u9032\u5EA6\u689D\u7684\u80CC\u666F\u8272\u5F69.","\u7DE8\u8F2F\u5668\u4E2D\u932F\u8AA4\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7DE8\u8F2F\u5668\u5167\u932F\u8AA4\u63D0\u793A\u7DDA\u7684\u524D\u666F\u8272\u5F69.","\u5982\u679C\u8A2D\u5B9A\uFF0C\u7DE8\u8F2F\u5668\u4E2D\u7684\u932F\u8AA4\u6703\u986F\u793A\u96D9\u5E95\u7DDA\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u8B66\u544A\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7DE8\u8F2F\u5668\u5167\u8B66\u544A\u63D0\u793A\u7DDA\u7684\u524D\u666F\u8272\u5F69.","\u5982\u679C\u8A2D\u5B9A\uFF0C\u7DE8\u8F2F\u5668\u4E2D\u7684\u8B66\u544A\u6703\u986F\u793A\u96D9\u5E95\u7DDA\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u8CC7\u8A0A\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7DE8\u8F2F\u5668\u5167\u8CC7\u8A0A\u63D0\u793A\u7DDA\u7684\u524D\u666F\u8272\u5F69","\u5982\u679C\u8A2D\u5B9A\uFF0C\u7DE8\u8F2F\u5668\u4E2D\u7684\u63D0\u793A\u6703\u986F\u793A\u96D9\u5E95\u7DDA\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u5167\u63D0\u793A\u8A0A\u606F\u7684\u63D0\u793A\u7DDA\u524D\u666F\u8272\u5F69","\u5982\u679C\u8A2D\u5B9A\uFF0C\u7DE8\u8F2F\u5668\u4E2D\u7684\u63D0\u793A\u6703\u986F\u793A\u96D9\u5E95\u7DDA\u8272\u5F69\u3002","\u4F7F\u7528\u4E2D\u98FE\u5E36\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u7684\u9810\u8A2D\u524D\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u9ECF\u6027\u6EFE\u52D5\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5728\u7DE8\u8F2F\u5668\u66AB\u7559\u6642\u6642\uFF0C\u9ECF\u6027\u6EFE\u52D5\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u4E2D\u81EA\u9ECF\u6372\u52D5\u7684\u908A\u754C\u8272\u5F69"," \u7DE8\u8F2F\u5668\u4E2D\u81EA\u9ECF\u6372\u52D5\u7684\u9670\u5F71\u8272\u5F69","\u7DE8\u8F2F\u5668\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u8272\u5F69\uFF0C\u4F8B\u5982\u5C0B\u627E/\u53D6\u4EE3\u3002","\u7DE8\u8F2F\u5668\u5C0F\u5DE5\u5177 (\u4F8B\u5982\u5C0B\u627E/\u53D6\u4EE3) \u7684\u524D\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u5C0F\u5DE5\u5177\u7684\u908A\u754C\u8272\u5F69\u3002\u5C0F\u5DE5\u5177\u9078\u64C7\u64C1\u6709\u908A\u754C\u6216\u8272\u5F69\u672A\u88AB\u5C0F\u5DE5\u5177\u8986\u5BEB\u6642\uFF0C\u624D\u6703\u4F7F\u7528\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u5C0F\u5DE5\u5177\u4E4B\u8ABF\u6574\u5927\u5C0F\u5217\u7684\u908A\u754C\u8272\u5F69\u3002\u53EA\u5728\u5C0F\u5DE5\u5177\u9078\u64C7\u5177\u6709\u8ABF\u6574\u5927\u5C0F\u908A\u754C\u4E14\u672A\u8986\u5BEB\u8A72\u8272\u5F69\u6642\uFF0C\u624D\u4F7F\u7528\u8A72\u8272\u5F69\u3002","\u5FEB\u901F\u9078\u64C7\u5668\u80CC\u666F\u8272\u5F69\u3002\u8A72\u5FEB\u901F\u9078\u64C7\u5668\u5C0F\u5DE5\u5177\u662F\u985E\u4F3C\u547D\u4EE4\u9078\u64C7\u5340\u7684\u9078\u64C7\u5668\u5BB9\u5668\u3002","\u5FEB\u901F\u9078\u64C7\u5668\u524D\u666F\u8272\u5F69\u3002\u5FEB\u901F\u9078\u64C7\u5668\u5C0F\u5DE5\u5177\u662F\u985E\u4F3C\u547D\u4EE4\u9078\u64C7\u5340\u7B49\u9078\u64C7\u5668\u7684\u5BB9\u5668\u3002","\u5FEB\u901F\u9078\u64C7\u5668\u6A19\u984C\u80CC\u666F\u8272\u5F69\u3002\u5FEB\u901F\u9078\u64C7\u5668\u5C0F\u5DE5\u5177\u662F\u985E\u4F3C\u547D\u4EE4\u9078\u64C7\u5340\u7684\u9078\u64C7\u5668\u5BB9\u5668\u3002","\u5206\u7D44\u6A19\u7C64\u7684\u5FEB\u901F\u9078\u64C7\u5668\u8272\u5F69\u3002","\u5206\u7D44\u908A\u754C\u7684\u5FEB\u901F\u9078\u64C7\u5668\u8272\u5F69\u3002","\u91D1\u9470\u7D81\u5B9A\u6A19\u7C64\u80CC\u666F\u8272\u5F69\u3002\u6309\u9375\u7D81\u5B9A\u6A19\u7C64\u7528\u4F86\u4EE3\u8868\u9375\u76E4\u5FEB\u901F\u9375\u3002","\u91D1\u9470\u7D81\u5B9A\u6A19\u7C64\u524D\u666F\u8272\u5F69\u3002\u6309\u9375\u7D81\u5B9A\u6A19\u7C64\u7528\u4F86\u4EE3\u8868\u9375\u76E4\u5FEB\u901F\u9375\u3002","\u91D1\u9470\u7D81\u5B9A\u6A19\u7C64\u908A\u6846\u8272\u5F69\u3002\u6309\u9375\u7D81\u5B9A\u6A19\u7C64\u7528\u4F86\u4EE3\u8868\u9375\u76E4\u5FEB\u901F\u9375\u3002","\u91D1\u9470\u7D81\u5B9A\u6A19\u7C64\u908A\u6846\u5E95\u90E8\u8272\u5F69\u3002\u6309\u9375\u7D81\u5B9A\u6A19\u7C64\u7528\u4F86\u4EE3\u8868\u9375\u76E4\u5FEB\u901F\u9375\u3002","\u7DE8\u8F2F\u5668\u9078\u53D6\u7BC4\u570D\u7684\u8272\u5F69\u3002","\u70BA\u9078\u53D6\u7684\u6587\u5B57\u984F\u8272\u9AD8\u5C0D\u6BD4\u5316","\u975E\u4F7F\u7528\u4E2D\u7DE8\u8F2F\u5668\u5167\u7684\u9078\u53D6\u9805\u76EE\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u8207\u9078\u53D6\u9805\u76EE\u5167\u5BB9\u76F8\u540C\u4E4B\u5340\u57DF\u7684\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u9078\u53D6\u6642\uFF0C\u5167\u5BB9\u76F8\u540C\u4E4B\u5340\u57DF\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7B26\u5408\u76EE\u524D\u641C\u5C0B\u7684\u8272\u5F69\u3002","\u5176\u4ED6\u641C\u5C0B\u76F8\u7B26\u9805\u76EE\u7684\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u9650\u5236\u641C\u5C0B\u4E4B\u7BC4\u570D\u7684\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7B26\u5408\u76EE\u524D\u641C\u5C0B\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7B26\u5408\u5176\u4ED6\u641C\u5C0B\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u9650\u5236\u641C\u5C0B\u4E4B\u7BC4\u570D\u7684\u6846\u7DDA\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u641C\u5C0B\u7DE8\u8F2F\u5668\u67E5\u8A62\u7B26\u5408\u7684\u8272\u5F69\u3002","\u641C\u7D22\u7DE8\u8F2F\u5668\u67E5\u8A62\u7B26\u5408\u7684\u908A\u6846\u8272\u5F69\u3002","\u641C\u5C0B Viewlet \u5B8C\u6210\u8A0A\u606F\u4E2D\u6587\u5B57\u7684\u8272\u5F69\u3002","\u5728\u986F\u793A\u52D5\u614B\u986F\u793A\u7684\u6587\u5B57\u4E0B\u9192\u76EE\u63D0\u793A\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7DE8\u8F2F\u5668\u52D5\u614B\u986F\u793A\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u52D5\u614B\u986F\u793A\u7684\u524D\u666F\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u52D5\u614B\u986F\u793A\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u66AB\u7559\u72C0\u614B\u5217\u7684\u80CC\u666F\u8272\u5F69\u3002","\u4F7F\u7528\u4E2D\u4E4B\u9023\u7D50\u7684\u8272\u5F69\u3002","\u5167\u5D4C\u63D0\u793A\u7684\u524D\u666F\u8272\u5F69","\u5167\u5D4C\u63D0\u793A\u7684\u80CC\u666F\u8272\u5F69","\u985E\u578B\u5167\u5D4C\u63D0\u793A\u7684\u524D\u666F\u8272\u5F69","\u985E\u578B\u5167\u5D4C\u63D0\u793A\u7684\u80CC\u666F\u8272\u5F69","\u53C3\u6578\u5167\u5D4C\u63D0\u793A\u7684\u524D\u666F\u8272\u5F69","\u53C3\u6578\u5167\u5D4C\u63D0\u793A\u7684\u80CC\u666F\u8272\u5F69","\u7528\u65BC\u71C8\u6CE1\u52D5\u4F5C\u5716\u793A\u7684\u8272\u5F69\u3002","\u7528\u65BC\u71C8\u6CE1\u81EA\u52D5\u4FEE\u6B63\u52D5\u4F5C\u5716\u793A\u7684\u8272\u5F69\u3002","\u71C8\u6CE1 AI \u5716\u793A\u4F7F\u7528\u7684\u8272\u5F69\u3002","\u5DF2\u63D2\u5165\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5DF2\u79FB\u9664\u6587\u5B57\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5DF2\u63D2\u5165\u7A0B\u5F0F\u884C\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5DF2\u79FB\u9664\u7A0B\u5F0F\u884C\u7684\u80CC\u666F\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u63D2\u5165\u7A0B\u5F0F\u884C\u6240\u5728\u908A\u754C\u7684\u80CC\u666F\u8272\u5F69\u3002","\u79FB\u9664\u7A0B\u5F0F\u884C\u6240\u5728\u908A\u754C\u7684\u80CC\u666F\u8272\u5F69\u3002","\u63D2\u5165\u5167\u5BB9\u7684\u5DEE\u7570\u6982\u89C0\u5C3A\u898F\u524D\u666F\u3002","\u79FB\u9664\u5167\u5BB9\u7684\u5DEE\u7570\u6982\u89C0\u5C3A\u898F\u524D\u666F\u3002","\u63D2\u5165\u7684\u6587\u5B57\u5916\u6846\u8272\u5F69\u3002","\u79FB\u9664\u7684\u6587\u5B57\u5916\u6846\u8272\u5F69\u3002","\u5169\u500B\u6587\u5B57\u7DE8\u8F2F\u5668\u4E4B\u9593\u7684\u6846\u7DDA\u8272\u5F69\u3002","Diff \u7DE8\u8F2F\u5668\u7684\u659C\u7D0B\u586B\u6EFF\u8272\u5F69\u3002\u659C\u7D0B\u586B\u6EFF\u7528\u65BC\u4E26\u6392 Diff \u6AA2\u8996\u3002","Diff \u7DE8\u8F2F\u5668\u4E2D\u672A\u8B8A\u66F4\u5340\u584A\u7684\u80CC\u666F\u8272\u5F69\u3002","Diff \u7DE8\u8F2F\u5668\u4E2D\u672A\u8B8A\u66F4\u5340\u584A\u7684\u524D\u666F\u8272\u5F69\u3002","Diff \u7DE8\u8F2F\u5668\u4E2D\u672A\u8B8A\u66F4\u7A0B\u5F0F\u78BC\u7684\u80CC\u666F\u8272\u5F69\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u80CC\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u524D\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u5916\u6846\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u4E26\u5DF2\u9078\u53D6\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u5916\u6846\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u5177\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u80CC\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u524D\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u5716\u793A\u524D\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u975E\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u80CC\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u524D\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u975E\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u6240\u9078\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u5716\u793A\u524D\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u70BA\u975E\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u80CC\u666F\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u7576\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u70BA\u975E\u4F7F\u7528\u4E2D\u72C0\u614B\u6642\uFF0C\u7126\u9EDE\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u5916\u6846\u8272\u5F69\u3002\u4F7F\u7528\u4E2D\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u6709\u9375\u76E4\u7126\u9EDE\uFF0C\u975E\u4F7F\u7528\u4E2D\u8005\u5247\u6C92\u6709\u3002","\u4F7F\u7528\u6ED1\u9F20\u66AB\u7559\u5728\u9805\u76EE\u6642\u7684\u6E05\u55AE/\u6A39\u72C0\u80CC\u666F\u3002","\u6ED1\u9F20\u66AB\u7559\u5728\u9805\u76EE\u6642\u7684\u6E05\u55AE/\u6A39\u72C0\u524D\u666F\u3002","\u4F7F\u7528\u6ED1\u9F20\u5C07\u9805\u76EE\u79FB\u5230\u5176\u4ED6\u9805\u76EE\u4E0A\u6642\u7684\u6E05\u55AE/\u6A39\u72C0\u62D6\u653E\u80CC\u666F\u3002","\u4F7F\u7528\u6ED1\u9F20\u79FB\u52D5\u9805\u76EE\u6642\u7684\u6E05\u55AE/\u6A39\u72C0\u76EE\u9304\u62D6\u653E\u908A\u754C\u8272\u5F69\u3002","\u5728\u6E05\u55AE/\u6A39\u72C0\u5167\u641C\u5C0B\u6642\uFF0C\u76F8\u7B26\u9192\u76EE\u63D0\u793A\u7684\u6E05\u55AE/\u6A39\u72C0\u524D\u666F\u8272\u5F69\u3002","\u5728\u6E05\u55AE/\u6A39\u72C0\u5167\u641C\u5C0B\u6642\uFF0C\u76F8\u7B26\u9805\u76EE\u7684\u6E05\u55AE/\u6A39\u72C0\u7D50\u69CB\u524D\u666F\u8272\u5F69\u6703\u91DD\u5C0D\u4E3B\u52D5\u7126\u9EDE\u9805\u76EE\u9032\u884C\u5F37\u8ABF\u986F\u793A\u3002","\u5217\u8868/\u6A39\u72C0 \u7121\u6548\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69\uFF0C\u4F8B\u5982\u5728\u700F\u89BD\u8996\u7A97\u7121\u6CD5\u89E3\u6790\u7684\u6839\u76EE\u9304","\u5305\u542B\u932F\u8AA4\u6E05\u55AE\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69","\u5305\u542B\u8B66\u544A\u6E05\u55AE\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69","\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u4E2D\u985E\u578B\u7BE9\u9078\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u8272\u5F69\u3002","\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u4E2D\u985E\u578B\u7BE9\u9078\u5C0F\u5DE5\u5177\u7684\u5927\u7DB1\u8272\u5F69\u3002","\u5728\u6C92\u6709\u76F8\u7B26\u9805\u76EE\u6642\uFF0C\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u4E2D\u985E\u578B\u7BE9\u9078\u5C0F\u5DE5\u5177\u7684\u5927\u7DB1\u8272\u5F69\u3002","\u6E05\u55AE\u548C\u6A39\u72C0\u7D50\u69CB\u4E2D\u985E\u578B\u7BE9\u9078\u5C0F\u5DE5\u5177\u7684\u9670\u5F71\u8272\u5F69\u3002","\u5DF2\u7BE9\u9078\u76F8\u7B26\u9805\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5DF2\u7BE9\u9078\u76F8\u7B26\u9805\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u6A39\u72C0\u7B46\u89F8\u8272\u5F69\u3002","\u975E\u4F7F\u7528\u4E2D\u7E2E\u6392\u8F14\u52A9\u7DDA\u7684\u6A39\u72C0\u7B46\u89F8\u8272\u5F69\u3002","\u8CC7\u6599\u884C\u4E4B\u9593\u7684\u8CC7\u6599\u8868\u908A\u754C\u8272\u5F69\u3002","\u5947\u6578\u8CC7\u6599\u8868\u8CC7\u6599\u5217\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5DF2\u53D6\u6D88\u5F37\u8ABF\u7684\u6E05\u55AE/\u6A39\u72C0\u7D50\u69CB\u524D\u666F\u8272\u5F69\u3002","\u6838\u53D6\u65B9\u584A\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u8272\u5F69\u3002","\u9078\u53D6\u5176\u6240\u8655\u5143\u7D20\u6642\uFF0C\u6838\u53D6\u65B9\u584A\u5C0F\u5DE5\u5177\u7684\u80CC\u666F\u8272\u5F69\u3002","\u6838\u53D6\u65B9\u584A\u5C0F\u5DE5\u5177\u7684\u524D\u666F\u8272\u5F69\u3002","\u6838\u53D6\u65B9\u584A\u5C0F\u5DE5\u5177\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u9078\u53D6\u5176\u6240\u8655\u5143\u7D20\u6642\uFF0C\u6838\u53D6\u65B9\u584A\u5C0F\u5DE5\u5177\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u8ACB\u6539\u7528 quickInputList.focusBackground","\u7126\u9EDE\u9805\u76EE\u7684\u5FEB\u901F\u9078\u64C7\u5668\u524D\u666F\u8272\u5F69\u3002","\u7126\u9EDE\u9805\u76EE\u7684\u5FEB\u901F\u9078\u64C7\u5668\u5716\u793A\u524D\u666F\u8272\u5F69\u3002","\u7126\u9EDE\u9805\u76EE\u7684\u5FEB\u901F\u9078\u64C7\u5668\u80CC\u666F\u8272\u5F69\u3002","\u529F\u80FD\u8868\u7684\u908A\u6846\u8272\u5F69\u3002","\u529F\u80FD\u8868\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69\u3002","\u529F\u80FD\u8868\u9805\u76EE\u7684\u80CC\u666F\u8272\u5F69\u3002","\u529F\u80FD\u8868\u4E2D\u6240\u9078\u529F\u80FD\u8868\u9805\u76EE\u7684\u524D\u666F\u8272\u5F69\u3002","\u529F\u80FD\u8868\u4E2D\u6240\u9078\u529F\u80FD\u8868\u9805\u76EE\u7684\u80CC\u666F\u8272\u5F69\u3002","\u529F\u80FD\u8868\u4E2D\u6240\u9078\u529F\u80FD\u8868\u9805\u76EE\u7684\u6846\u7DDA\u8272\u5F69\u3002","\u529F\u80FD\u8868\u4E2D\u5206\u9694\u7DDA\u529F\u80FD\u8868\u9805\u76EE\u7684\u8272\u5F69\u3002","\u4F7F\u7528\u6ED1\u9F20\u5C07\u6E38\u6A19\u505C\u7559\u5728\u52D5\u4F5C\u4E0A\u65B9\u6642\u7684\u5DE5\u5177\u5217\u80CC\u666F","\u4F7F\u7528\u6ED1\u9F20\u5C07\u6E38\u6A19\u505C\u7559\u5728\u52D5\u4F5C\u4E0A\u65B9\u6642\u7684\u5DE5\u5177\u5217\u5916\u6846","\u5C07\u6ED1\u9F20\u79FB\u5230\u52D5\u4F5C\u4E0A\u65B9\u6642\u7684\u5DE5\u5177\u5217\u80CC\u666F","\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5B9A\u4F4D\u505C\u99D0\u9EDE\u7684\u53CD\u767D\u986F\u793A\u80CC\u666F\u8272\u5F69\u3002","\u7A0B\u5F0F\u78BC\u7247\u6BB5\u5B9A\u4F4D\u505C\u99D0\u9EDE\u7684\u53CD\u767D\u986F\u793A\u908A\u754C\u8272\u5F69\u3002","\u7A0B\u5F0F\u78BC\u7247\u6BB5\u6700\u7D42\u5B9A\u4F4D\u505C\u99D0\u9EDE\u7684\u53CD\u767D\u986F\u793A\u80CC\u666F\u8272\u5F69\u3002","\u7A0B\u5F0F\u78BC\u7247\u6BB5\u6700\u7D42\u5B9A\u4F4D\u505C\u99D0\u9EDE\u7684\u9192\u76EE\u63D0\u793A\u6846\u7DDA\u8272\u5F69\u3002","\u7126\u9EDE\u968E\u5C64\u9023\u7D50\u9805\u76EE\u7684\u8272\u5F69\u3002","\u968E\u5C64\u9023\u7D50\u7684\u80CC\u666F\u8272\u3002","\u7126\u9EDE\u968E\u5C64\u9023\u7D50\u9805\u76EE\u7684\u8272\u5F69\u3002","\u6240\u9078\u968E\u5C64\u9023\u7D50\u9805\u76EE\u7684\u8272\u5F69\u3002","\u968E\u5C64\u9023\u7D50\u9805\u76EE\u9078\u64C7\u5668\u7684\u80CC\u666F\u8272\u5F69\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u76EE\u524D\u7684\u6A19\u982D\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u76EE\u524D\u5167\u5BB9\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u50B3\u5165\u6A19\u982D\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u50B3\u5165\u5167\u5BB9\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u4E00\u822C\u4E0A\u968E\u6A19\u982D\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u4E00\u822C\u4E0A\u968E\u5167\u5BB9\u80CC\u666F\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u6A19\u982D\u53CA\u5206\u9694\u5668\u7684\u908A\u754C\u8272\u5F69\u3002","\u76EE\u524D\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u7684\u6982\u89C0\u5C3A\u898F\u524D\u666F\u3002","\u50B3\u5165\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u7684\u6982\u89C0\u5C3A\u898F\u524D\u666F\u3002","\u5167\u5D4C\u5408\u4F75\u885D\u7A81\u4E2D\u7684\u5171\u540C\u4E0A\u968E\u6982\u89C0\u5C3A\u898F\u524D\u666F\u3002","\u5C0B\u627E\u76F8\u7B26\u9805\u76EE\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u8272\u5F69\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u9078\u53D6\u9805\u76EE\u9192\u76EE\u63D0\u793A\u7684\u6982\u89C0\u5C3A\u898F\u6A19\u8A18\u3002\u5176\u4E0D\u5F97\u70BA\u4E0D\u900F\u660E\u8272\u5F69\uFF0C\u4EE5\u514D\u96B1\u85CF\u5E95\u5C64\u88DD\u98FE\u3002","\u7528\u65BC\u5C0B\u627E\u76F8\u7B26\u9805\u76EE\u7684\u7E2E\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u91CD\u8907\u7DE8\u8F2F\u5668\u9078\u53D6\u9805\u76EE\u7684\u7E2E\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u7DE8\u8F2F\u5668\u9078\u53D6\u7BC4\u570D\u7684\u8FF7\u4F60\u5730\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u8CC7\u8A0A\u7684\u7E2E\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u8B66\u544A\u7684\u7E2E\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u932F\u8AA4\u7684\u7E2E\u5716\u6A19\u8A18\u8272\u5F69\u3002","\u7E2E\u5716\u80CC\u666F\u8272\u5F69\u3002",'\u5728\u7E2E\u5716\u4E2D\u5448\u73FE\u7684\u524D\u666F\u5143\u7D20\u4E0D\u900F\u660E\u5EA6\u3002\u4F8B\u5982\uFF0C"#000000c0" \u6703\u4EE5\u4E0D\u900F\u660E\u5EA6 75% \u8F49\u8B6F\u5143\u7D20\u3002',"\u7E2E\u5716\u6ED1\u687F\u80CC\u666F\u8272\u5F69\u3002","\u66AB\u7559\u6642\u7684\u7E2E\u5716\u6ED1\u687F\u80CC\u666F\u8272\u5F69\u3002","\u6309\u4E00\u4E0B\u6642\u7684\u7E2E\u5716\u6ED1\u687F\u80CC\u666F\u8272\u5F69\u3002","\u7528\u65BC\u554F\u984C\u932F\u8AA4\u5716\u793A\u7684\u8272\u5F69\u3002","\u7528\u65BC\u554F\u984C\u8B66\u544A\u5716\u793A\u7684\u8272\u5F69\u3002","\u7528\u65BC\u554F\u984C\u8CC7\u8A0A\u5716\u793A\u7684\u8272\u5F69\u3002","\u5716\u8868\u4E2D\u4F7F\u7528\u7684\u524D\u666F\u8272\u5F69\u3002","\u7528\u65BC\u5716\u8868\u4E2D\u6C34\u5E73\u7DDA\u7684\u8272\u5F69\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u7D05\u8272\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u85CD\u8272\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u9EC3\u8272\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u6A59\u8272\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u7DA0\u8272\u3002","\u5716\u8868\u8996\u89BA\u6548\u679C\u4E2D\u6240\u4F7F\u7528\u7684\u7D2B\u8272\u3002"],"vs/platform/theme/common/iconRegistry":["\u8981\u4F7F\u7528\u7684\u5B57\u578B\u8B58\u5225\u78BC\u3002\u5982\u672A\u8A2D\u5B9A\uFF0C\u5C31\u6703\u4F7F\u7528\u6700\u5148\u5B9A\u7FA9\u7684\u5B57\u578B\u3002","\u8207\u5716\u793A\u5B9A\u7FA9\u5EFA\u7ACB\u95DC\u806F\u7684\u5B57\u578B\u5B57\u5143\u3002","\u5C0F\u5DE5\u5177\u4E2D\u95DC\u9589\u52D5\u4F5C\u7684\u5716\u793A\u3002","\u79FB\u81F3\u4E0A\u4E00\u500B\u7DE8\u8F2F\u5668\u4F4D\u7F6E\u7684\u5716\u793A\u3002","\u79FB\u81F3\u4E0B\u4E00\u500B\u7DE8\u8F2F\u5668\u4F4D\u7F6E\u7684\u5716\u793A\u3002"],"vs/platform/undoRedo/common/undoRedoService":["\u5DF2\u5728\u78C1\u789F\u4E0A\u95DC\u9589\u4E26\u4FEE\u6539\u4EE5\u4E0B\u6A94\u6848: {0}\u3002","\u4E0B\u5217\u6A94\u6848\u5DF2\u4F7F\u7528\u4E0D\u76F8\u5BB9\u7684\u65B9\u5F0F\u4FEE\u6539: {0}\u3002","\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'\u3002{1}","\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'\u3002{1}","\u56E0\u70BA\u5DF2\u5C0D {1} \u9032\u884C\u8B8A\u66F4\uFF0C\u6240\u4EE5\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'","\u56E0\u70BA {1} \u4E2D\u5DF2\u7D93\u6709\u6B63\u5728\u57F7\u884C\u7684\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u70BA\u6240\u6709\u6A94\u6848\u5FA9\u539F '{0}'","\u56E0\u70BA\u540C\u6642\u767C\u751F\u5176\u4ED6\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u70BA\u6240\u6709\u6A94\u6848\u5FA9\u539F '{0}'","\u8981\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}' \u55CE?","\u5728 {0} \u500B\u6A94\u6848\u4E2D\u5FA9\u539F(&&U)","\u5FA9\u539F\u6B64\u6A94\u6848(&&F)","\u56E0\u70BA\u5DF2\u7D93\u6709\u6B63\u5728\u57F7\u884C\u7684\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u5FA9\u539F '{0}'\u3002","\u8981\u5FA9\u539F '{0}' \u55CE?","\u662F(&&Y)","\u5426","\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'\u3002{1}","\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'\u3002{1}","\u56E0\u70BA\u5DF2\u5C0D {1} \u9032\u884C\u8B8A\u66F4\uFF0C\u6240\u4EE5\u7121\u6CD5\u5FA9\u539F\u6240\u6709\u6A94\u6848\u7684 '{0}'","\u56E0\u70BA {1} \u4E2D\u5DF2\u7D93\u6709\u6B63\u5728\u57F7\u884C\u7684\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u70BA\u6240\u6709\u6A94\u6848\u91CD\u505A '{0}'","\u56E0\u70BA\u540C\u6642\u767C\u751F\u5176\u4ED6\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u70BA\u6240\u6709\u6A94\u6848\u91CD\u505A '{0}'","\u56E0\u70BA\u5DF2\u7D93\u6709\u6B63\u5728\u57F7\u884C\u7684\u5FA9\u539F\u6216\u91CD\u505A\u4F5C\u696D\uFF0C\u6240\u4EE5\u7121\u6CD5\u91CD\u505A '{0}'\u3002"],"vs/platform/workspace/common/workspace":["Code \u5DE5\u4F5C\u5340"]}); + +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-tw.js.map \ No newline at end of file diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssMode.js b/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssMode.js new file mode 100644 index 0000000..6e69a76 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssMode.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/cssMode", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var tn=Object.create;var Y=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,an=Object.prototype.hasOwnProperty;var un=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var dn=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),cn=(n,t)=>{for(var i in t)Y(n,i,{get:t[i],enumerable:!0})},J=(n,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of on(t))!an.call(n,e)&&e!==i&&Y(n,e,{get:()=>t[e],enumerable:!(r=rn(t,e))||r.enumerable});return n},pe=(n,t,i)=>(J(n,t,"default"),i&&J(i,t,"default")),he=(n,t,i)=>(i=n!=null?tn(sn(n)):{},J(t||!n||!n.__esModule?Y(i,"default",{value:n,enumerable:!0}):i,n)),ln=n=>J(Y({},"__esModule",{value:!0}),n);var ve=dn((Wn,me)=>{var gn=he(un("vs/editor/editor.api"));me.exports=gn});var Sn={};cn(Sn,{CompletionAdapter:()=>H,DefinitionAdapter:()=>O,DiagnosticsAdapter:()=>K,DocumentColorAdapter:()=>$,DocumentFormattingEditProvider:()=>X,DocumentHighlightAdapter:()=>j,DocumentLinkAdapter:()=>le,DocumentRangeFormattingEditProvider:()=>B,DocumentSymbolAdapter:()=>z,FoldingRangeAdapter:()=>q,HoverAdapter:()=>U,ReferenceAdapter:()=>N,RenameAdapter:()=>V,SelectionRangeAdapter:()=>Q,WorkerManager:()=>E,fromPosition:()=>_,fromRange:()=>ge,setupMode:()=>Rn,toRange:()=>T,toTextEdit:()=>W});var d={};pe(d,he(ve()));var fn=2*60*1e3,E=class{constructor(t){this._defaults=t,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>fn&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...t){let i;return this._getClient().then(r=>{i=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(t)}).then(r=>i)}};var ye;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647})(ye||(ye={}));var ee;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647})(ee||(ee={}));var x;(function(n){function t(r,e){return r===Number.MAX_VALUE&&(r=ee.MAX_VALUE),e===Number.MAX_VALUE&&(e=ee.MAX_VALUE),{line:r,character:e}}n.create=t;function i(r){var e=r;return a.objectLiteral(e)&&a.uinteger(e.line)&&a.uinteger(e.character)}n.is=i})(x||(x={}));var v;(function(n){function t(r,e,o,s){if(a.uinteger(r)&&a.uinteger(e)&&a.uinteger(o)&&a.uinteger(s))return{start:x.create(r,e),end:x.create(o,s)};if(x.is(r)&&x.is(e))return{start:r,end:e};throw new Error("Range#create called with invalid arguments["+r+", "+e+", "+o+", "+s+"]")}n.create=t;function i(r){var e=r;return a.objectLiteral(e)&&x.is(e.start)&&x.is(e.end)}n.is=i})(v||(v={}));var se;(function(n){function t(r,e){return{uri:r,range:e}}n.create=t;function i(r){var e=r;return a.defined(e)&&v.is(e.range)&&(a.string(e.uri)||a.undefined(e.uri))}n.is=i})(se||(se={}));var Te;(function(n){function t(r,e,o,s){return{targetUri:r,targetRange:e,targetSelectionRange:o,originSelectionRange:s}}n.create=t;function i(r){var e=r;return a.defined(e)&&v.is(e.targetRange)&&a.string(e.targetUri)&&(v.is(e.targetSelectionRange)||a.undefined(e.targetSelectionRange))&&(v.is(e.originSelectionRange)||a.undefined(e.originSelectionRange))}n.is=i})(Te||(Te={}));var ae;(function(n){function t(r,e,o,s){return{red:r,green:e,blue:o,alpha:s}}n.create=t;function i(r){var e=r;return a.numberRange(e.red,0,1)&&a.numberRange(e.green,0,1)&&a.numberRange(e.blue,0,1)&&a.numberRange(e.alpha,0,1)}n.is=i})(ae||(ae={}));var xe;(function(n){function t(r,e){return{range:r,color:e}}n.create=t;function i(r){var e=r;return v.is(e.range)&&ae.is(e.color)}n.is=i})(xe||(xe={}));var ke;(function(n){function t(r,e,o){return{label:r,textEdit:e,additionalTextEdits:o}}n.create=t;function i(r){var e=r;return a.string(e.label)&&(a.undefined(e.textEdit)||C.is(e))&&(a.undefined(e.additionalTextEdits)||a.typedArray(e.additionalTextEdits,C.is))}n.is=i})(ke||(ke={}));var S;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(S||(S={}));var Ie;(function(n){function t(r,e,o,s,u){var l={startLine:r,endLine:e};return a.defined(o)&&(l.startCharacter=o),a.defined(s)&&(l.endCharacter=s),a.defined(u)&&(l.kind=u),l}n.create=t;function i(r){var e=r;return a.uinteger(e.startLine)&&a.uinteger(e.startLine)&&(a.undefined(e.startCharacter)||a.uinteger(e.startCharacter))&&(a.undefined(e.endCharacter)||a.uinteger(e.endCharacter))&&(a.undefined(e.kind)||a.string(e.kind))}n.is=i})(Ie||(Ie={}));var ue;(function(n){function t(r,e){return{location:r,message:e}}n.create=t;function i(r){var e=r;return a.defined(e)&&se.is(e.location)&&a.string(e.message)}n.is=i})(ue||(ue={}));var b;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(b||(b={}));var Ce;(function(n){n.Unnecessary=1,n.Deprecated=2})(Ce||(Ce={}));var _e;(function(n){function t(i){var r=i;return r!=null&&a.string(r.href)}n.is=t})(_e||(_e={}));var ne;(function(n){function t(r,e,o,s,u,l){var f={range:r,message:e};return a.defined(o)&&(f.severity=o),a.defined(s)&&(f.code=s),a.defined(u)&&(f.source=u),a.defined(l)&&(f.relatedInformation=l),f}n.create=t;function i(r){var e,o=r;return a.defined(o)&&v.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((e=o.codeDescription)===null||e===void 0?void 0:e.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,ue.is))}n.is=i})(ne||(ne={}));var D;(function(n){function t(r,e){for(var o=[],s=2;s0&&(u.arguments=o),u}n.create=t;function i(r){var e=r;return a.defined(e)&&a.string(e.title)&&a.string(e.command)}n.is=i})(D||(D={}));var C;(function(n){function t(o,s){return{range:o,newText:s}}n.replace=t;function i(o,s){return{range:{start:o,end:o},newText:s}}n.insert=i;function r(o){return{range:o,newText:""}}n.del=r;function e(o){var s=o;return a.objectLiteral(s)&&a.string(s.newText)&&v.is(s.range)}n.is=e})(C||(C={}));var R;(function(n){function t(r,e,o){var s={label:r};return e!==void 0&&(s.needsConfirmation=e),o!==void 0&&(s.description=o),s}n.create=t;function i(r){var e=r;return e!==void 0&&a.objectLiteral(e)&&a.string(e.label)&&(a.boolean(e.needsConfirmation)||e.needsConfirmation===void 0)&&(a.string(e.description)||e.description===void 0)}n.is=i})(R||(R={}));var y;(function(n){function t(i){var r=i;return typeof r=="string"}n.is=t})(y||(y={}));var I;(function(n){function t(o,s,u){return{range:o,newText:s,annotationId:u}}n.replace=t;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}n.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}n.del=r;function e(o){var s=o;return C.is(s)&&(R.is(s.annotationId)||y.is(s.annotationId))}n.is=e})(I||(I={}));var te;(function(n){function t(r,e){return{textDocument:r,edits:e}}n.create=t;function i(r){var e=r;return a.defined(e)&&re.is(e.textDocument)&&Array.isArray(e.edits)}n.is=i})(te||(te={}));var L;(function(n){function t(r,e,o){var s={kind:"create",uri:r};return e!==void 0&&(e.overwrite!==void 0||e.ignoreIfExists!==void 0)&&(s.options=e),o!==void 0&&(s.annotationId=o),s}n.create=t;function i(r){var e=r;return e&&e.kind==="create"&&a.string(e.uri)&&(e.options===void 0||(e.options.overwrite===void 0||a.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||a.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||y.is(e.annotationId))}n.is=i})(L||(L={}));var F;(function(n){function t(r,e,o,s){var u={kind:"rename",oldUri:r,newUri:e};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}n.create=t;function i(r){var e=r;return e&&e.kind==="rename"&&a.string(e.oldUri)&&a.string(e.newUri)&&(e.options===void 0||(e.options.overwrite===void 0||a.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||a.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||y.is(e.annotationId))}n.is=i})(F||(F={}));var M;(function(n){function t(r,e,o){var s={kind:"delete",uri:r};return e!==void 0&&(e.recursive!==void 0||e.ignoreIfNotExists!==void 0)&&(s.options=e),o!==void 0&&(s.annotationId=o),s}n.create=t;function i(r){var e=r;return e&&e.kind==="delete"&&a.string(e.uri)&&(e.options===void 0||(e.options.recursive===void 0||a.boolean(e.options.recursive))&&(e.options.ignoreIfNotExists===void 0||a.boolean(e.options.ignoreIfNotExists)))&&(e.annotationId===void 0||y.is(e.annotationId))}n.is=i})(M||(M={}));var de;(function(n){function t(i){var r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(e){return a.string(e.kind)?L.is(e)||F.is(e)||M.is(e):te.is(e)}))}n.is=t})(de||(de={}));var Z=function(){function n(t,i){this.edits=t,this.changeAnnotations=i}return n.prototype.insert=function(t,i,r){var e,o;if(r===void 0?e=C.insert(t,i):y.is(r)?(o=r,e=I.insert(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),e=I.insert(t,i,o)),this.edits.push(e),o!==void 0)return o},n.prototype.replace=function(t,i,r){var e,o;if(r===void 0?e=C.replace(t,i):y.is(r)?(o=r,e=I.replace(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),e=I.replace(t,i,o)),this.edits.push(e),o!==void 0)return o},n.prototype.delete=function(t,i){var r,e;if(i===void 0?r=C.del(t):y.is(i)?(e=i,r=I.del(t,i)):(this.assertChangeAnnotations(this.changeAnnotations),e=this.changeAnnotations.manage(i),r=I.del(t,e)),this.edits.push(r),e!==void 0)return e},n.prototype.add=function(t){this.edits.push(t)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(t){if(t===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),be=function(){function n(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(t,i){var r;if(y.is(t)?r=t:(r=this.nextId(),i=t),this._annotations[r]!==void 0)throw new Error("Id "+r+" is already in use.");if(i===void 0)throw new Error("No annotation provided for id "+r);return this._annotations[r]=i,this._size++,r},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}(),Kn=function(){function n(t){var i=this;this._textEditChanges=Object.create(null),t!==void 0?(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new be(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(function(r){if(te.is(r)){var e=new Z(r.edits,i._changeAnnotations);i._textEditChanges[r.textDocument.uri]=e}})):t.changes&&Object.keys(t.changes).forEach(function(r){var e=new Z(t.changes[r]);i._textEditChanges[r]=e})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(t){if(re.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i={uri:t.uri,version:t.version},r=this._textEditChanges[i.uri];if(!r){var e=[],o={textDocument:i,edits:e};this._workspaceEdit.documentChanges.push(o),r=new Z(e,this._changeAnnotations),this._textEditChanges[i.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[t];if(!r){var e=[];this._workspaceEdit.changes[t]=e,r=new Z(e),this._textEditChanges[t]=r}return r}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new be,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;R.is(i)||y.is(i)?e=i:r=i;var o,s;if(e===void 0?o=L.create(t,r):(s=y.is(e)?e:this._changeAnnotations.manage(e),o=L.create(t,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n.prototype.renameFile=function(t,i,r,e){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var o;R.is(r)||y.is(r)?o=r:e=r;var s,u;if(o===void 0?s=F.create(t,i,e):(u=y.is(o)?o:this._changeAnnotations.manage(o),s=F.create(t,i,e,u)),this._workspaceEdit.documentChanges.push(s),u!==void 0)return u},n.prototype.deleteFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;R.is(i)||y.is(i)?e=i:r=i;var o,s;if(e===void 0?o=M.create(t,r):(s=y.is(e)?e:this._changeAnnotations.manage(e),o=M.create(t,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n}();var we;(function(n){function t(r){return{uri:r}}n.create=t;function i(r){var e=r;return a.defined(e)&&a.string(e.uri)}n.is=i})(we||(we={}));var Ee;(function(n){function t(r,e){return{uri:r,version:e}}n.create=t;function i(r){var e=r;return a.defined(e)&&a.string(e.uri)&&a.integer(e.version)}n.is=i})(Ee||(Ee={}));var re;(function(n){function t(r,e){return{uri:r,version:e}}n.create=t;function i(r){var e=r;return a.defined(e)&&a.string(e.uri)&&(e.version===null||a.integer(e.version))}n.is=i})(re||(re={}));var Re;(function(n){function t(r,e,o,s){return{uri:r,languageId:e,version:o,text:s}}n.create=t;function i(r){var e=r;return a.defined(e)&&a.string(e.uri)&&a.string(e.languageId)&&a.integer(e.version)&&a.string(e.text)}n.is=i})(Re||(Re={}));var A;(function(n){n.PlainText="plaintext",n.Markdown="markdown"})(A||(A={}));(function(n){function t(i){var r=i;return r===n.PlainText||r===n.Markdown}n.is=t})(A||(A={}));var ce;(function(n){function t(i){var r=i;return a.objectLiteral(i)&&A.is(r.kind)&&a.string(r.value)}n.is=t})(ce||(ce={}));var p;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(p||(p={}));var ie;(function(n){n.PlainText=1,n.Snippet=2})(ie||(ie={}));var Se;(function(n){n.Deprecated=1})(Se||(Se={}));var Pe;(function(n){function t(r,e,o){return{newText:r,insert:e,replace:o}}n.create=t;function i(r){var e=r;return e&&a.string(e.newText)&&v.is(e.insert)&&v.is(e.replace)}n.is=i})(Pe||(Pe={}));var We;(function(n){n.asIs=1,n.adjustIndentation=2})(We||(We={}));var De;(function(n){function t(i){return{label:i}}n.create=t})(De||(De={}));var Le;(function(n){function t(i,r){return{items:i||[],isIncomplete:!!r}}n.create=t})(Le||(Le={}));var oe;(function(n){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=t;function i(r){var e=r;return a.string(e)||a.objectLiteral(e)&&a.string(e.language)&&a.string(e.value)}n.is=i})(oe||(oe={}));var Fe;(function(n){function t(i){var r=i;return!!r&&a.objectLiteral(r)&&(ce.is(r.contents)||oe.is(r.contents)||a.typedArray(r.contents,oe.is))&&(i.range===void 0||v.is(i.range))}n.is=t})(Fe||(Fe={}));var Me;(function(n){function t(i,r){return r?{label:i,documentation:r}:{label:i}}n.create=t})(Me||(Me={}));var Ae;(function(n){function t(i,r){for(var e=[],o=2;o=0;g--){var m=l[g],k=o.offsetAt(m.range.start),c=o.offsetAt(m.range.end);if(c<=f)u=u.substring(0,k)+m.newText+u.substring(c,u.length);else throw new Error("Overlapping edit");f=k}return u}n.applyEdits=r;function e(o,s){if(o.length<=1)return o;var u=o.length/2|0,l=o.slice(0,u),f=o.slice(u);e(l,s),e(f,s);for(var g=0,m=0,k=0;g0&&t.push(i.length),this._lineOffsets=t}return this._lineOffsets},n.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var i=this.getLineOffsets(),r=0,e=i.length;if(e===0)return x.create(0,t);for(;rt?e=o:r=o+1}var s=r-1;return x.create(s,t-i[s])},n.prototype.offsetAt=function(t){var i=this.getLineOffsets();if(t.line>=i.length)return this._content.length;if(t.line<0)return 0;var r=i[t.line],e=t.line+1"u"}n.undefined=r;function e(c){return c===!0||c===!1}n.boolean=e;function o(c){return t.call(c)==="[object String]"}n.string=o;function s(c){return t.call(c)==="[object Number]"}n.number=s;function u(c,w,G){return t.call(c)==="[object Number]"&&w<=c&&c<=G}n.numberRange=u;function l(c){return t.call(c)==="[object Number]"&&-2147483648<=c&&c<=2147483647}n.integer=l;function f(c){return t.call(c)==="[object Number]"&&0<=c&&c<=2147483647}n.uinteger=f;function g(c){return t.call(c)==="[object Function]"}n.func=g;function m(c){return c!==null&&typeof c=="object"}n.objectLiteral=m;function k(c,w){return Array.isArray(c)&&c.every(w)}n.typedArray=k})(a||(a={}));var K=class{constructor(t,i,r){this._languageId=t;this._worker=i;this._disposables=[];this._listener=Object.create(null);let e=s=>{let u=s.getLanguageId();if(u!==this._languageId)return;let l;this._listener[s.uri.toString()]=s.onDidChangeContent(()=>{window.clearTimeout(l),l=window.setTimeout(()=>this._doValidate(s.uri,u),500)}),this._doValidate(s.uri,u)},o=s=>{d.editor.setModelMarkers(s,this._languageId,[]);let u=s.uri.toString(),l=this._listener[u];l&&(l.dispose(),delete this._listener[u])};this._disposables.push(d.editor.onDidCreateModel(e)),this._disposables.push(d.editor.onWillDisposeModel(o)),this._disposables.push(d.editor.onDidChangeModelLanguage(s=>{o(s.model),e(s.model)})),this._disposables.push(r(s=>{d.editor.getModels().forEach(u=>{u.getLanguageId()===this._languageId&&(o(u),e(u))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(o);for(let s in this._listener)this._listener[s].dispose()}}),d.editor.getModels().forEach(e)}dispose(){this._disposables.forEach(t=>t&&t.dispose()),this._disposables.length=0}_doValidate(t,i){this._worker(t).then(r=>r.doValidation(t.toString())).then(r=>{let e=r.map(s=>vn(t,s)),o=d.editor.getModel(t);o&&o.getLanguageId()===i&&d.editor.setModelMarkers(o,i,e)}).then(void 0,r=>{console.error(r)})}};function mn(n){switch(n){case b.Error:return d.MarkerSeverity.Error;case b.Warning:return d.MarkerSeverity.Warning;case b.Information:return d.MarkerSeverity.Info;case b.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function vn(n,t){let i=typeof t.code=="number"?String(t.code):t.code;return{severity:mn(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:i,source:t.source}}var H=class{constructor(t,i){this._worker=t;this._triggerCharacters=i}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(t,i,r,e){let o=t.uri;return this._worker(o).then(s=>s.doComplete(o.toString(),_(i))).then(s=>{if(!s)return;let u=t.getWordUntilPosition(i),l=new d.Range(i.lineNumber,u.startColumn,i.lineNumber,u.endColumn),f=s.items.map(g=>{let m={label:g.label,insertText:g.insertText||g.label,sortText:g.sortText,filterText:g.filterText,documentation:g.documentation,detail:g.detail,command:xn(g.command),range:l,kind:Tn(g.kind)};return g.textEdit&&(yn(g.textEdit)?m.range={insert:T(g.textEdit.insert),replace:T(g.textEdit.replace)}:m.range=T(g.textEdit.range),m.insertText=g.textEdit.newText),g.additionalTextEdits&&(m.additionalTextEdits=g.additionalTextEdits.map(W)),g.insertTextFormat===ie.Snippet&&(m.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),m});return{isIncomplete:s.isIncomplete,suggestions:f}})}};function _(n){if(n)return{character:n.column-1,line:n.lineNumber-1}}function ge(n){if(n)return{start:{line:n.startLineNumber-1,character:n.startColumn-1},end:{line:n.endLineNumber-1,character:n.endColumn-1}}}function T(n){if(n)return new d.Range(n.start.line+1,n.start.character+1,n.end.line+1,n.end.character+1)}function yn(n){return typeof n.insert<"u"&&typeof n.replace<"u"}function Tn(n){let t=d.languages.CompletionItemKind;switch(n){case p.Text:return t.Text;case p.Method:return t.Method;case p.Function:return t.Function;case p.Constructor:return t.Constructor;case p.Field:return t.Field;case p.Variable:return t.Variable;case p.Class:return t.Class;case p.Interface:return t.Interface;case p.Module:return t.Module;case p.Property:return t.Property;case p.Unit:return t.Unit;case p.Value:return t.Value;case p.Enum:return t.Enum;case p.Keyword:return t.Keyword;case p.Snippet:return t.Snippet;case p.Color:return t.Color;case p.File:return t.File;case p.Reference:return t.Reference}return t.Property}function W(n){if(n)return{range:T(n.range),text:n.newText}}function xn(n){return n&&n.command==="editor.action.triggerSuggest"?{id:n.command,title:n.title,arguments:n.arguments}:void 0}var U=class{constructor(t){this._worker=t}provideHover(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.doHover(e.toString(),_(i))).then(o=>{if(o)return{range:T(o.range),contents:In(o.contents)}})}};function kn(n){return n&&typeof n=="object"&&typeof n.kind=="string"}function Qe(n){return typeof n=="string"?{value:n}:kn(n)?n.kind==="plaintext"?{value:n.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:n.value}:{value:"```"+n.language+` +`+n.value+"\n```\n"}}function In(n){if(n)return Array.isArray(n)?n.map(Qe):[Qe(n)]}var j=class{constructor(t){this._worker=t}provideDocumentHighlights(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.findDocumentHighlights(e.toString(),_(i))).then(o=>{if(o)return o.map(s=>({range:T(s.range),kind:Cn(s.kind)}))})}};function Cn(n){switch(n){case P.Read:return d.languages.DocumentHighlightKind.Read;case P.Write:return d.languages.DocumentHighlightKind.Write;case P.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var O=class{constructor(t){this._worker=t}provideDefinition(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.findDefinition(e.toString(),_(i))).then(o=>{if(o)return[Ge(o)]})}};function Ge(n){return{uri:d.Uri.parse(n.uri),range:T(n.range)}}var N=class{constructor(t){this._worker=t}provideReferences(t,i,r,e){let o=t.uri;return this._worker(o).then(s=>s.findReferences(o.toString(),_(i))).then(s=>{if(s)return s.map(Ge)})}},V=class{constructor(t){this._worker=t}provideRenameEdits(t,i,r,e){let o=t.uri;return this._worker(o).then(s=>s.doRename(o.toString(),_(i),r)).then(s=>_n(s))}};function _n(n){if(!n||!n.changes)return;let t=[];for(let i in n.changes){let r=d.Uri.parse(i);for(let e of n.changes[i])t.push({resource:r,versionId:void 0,textEdit:{range:T(e.range),text:e.newText}})}return{edits:t}}var z=class{constructor(t){this._worker=t}provideDocumentSymbols(t,i){let r=t.uri;return this._worker(r).then(e=>e.findDocumentSymbols(r.toString())).then(e=>{if(e)return e.map(o=>bn(o)?Je(o):{name:o.name,detail:"",containerName:o.containerName,kind:Ye(o.kind),range:T(o.location.range),selectionRange:T(o.location.range),tags:[]})})}};function bn(n){return"children"in n}function Je(n){return{name:n.name,detail:n.detail??"",kind:Ye(n.kind),range:T(n.range),selectionRange:T(n.selectionRange),tags:n.tags??[],children:(n.children??[]).map(t=>Je(t))}}function Ye(n){let t=d.languages.SymbolKind;switch(n){case h.File:return t.File;case h.Module:return t.Module;case h.Namespace:return t.Namespace;case h.Package:return t.Package;case h.Class:return t.Class;case h.Method:return t.Method;case h.Property:return t.Property;case h.Field:return t.Field;case h.Constructor:return t.Constructor;case h.Enum:return t.Enum;case h.Interface:return t.Interface;case h.Function:return t.Function;case h.Variable:return t.Variable;case h.Constant:return t.Constant;case h.String:return t.String;case h.Number:return t.Number;case h.Boolean:return t.Boolean;case h.Array:return t.Array}return t.Function}var le=class{constructor(t){this._worker=t}provideLinks(t,i){let r=t.uri;return this._worker(r).then(e=>e.findDocumentLinks(r.toString())).then(e=>{if(e)return{links:e.map(o=>({range:T(o.range),url:o.target}))}})}},X=class{constructor(t){this._worker=t}provideDocumentFormattingEdits(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.format(e.toString(),null,Ze(i)).then(s=>{if(!(!s||s.length===0))return s.map(W)}))}},B=class{constructor(t){this._worker=t;this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(t,i,r,e){let o=t.uri;return this._worker(o).then(s=>s.format(o.toString(),ge(i),Ze(r)).then(u=>{if(!(!u||u.length===0))return u.map(W)}))}};function Ze(n){return{tabSize:n.tabSize,insertSpaces:n.insertSpaces}}var $=class{constructor(t){this._worker=t}provideDocumentColors(t,i){let r=t.uri;return this._worker(r).then(e=>e.findDocumentColors(r.toString())).then(e=>{if(e)return e.map(o=>({color:o.color,range:T(o.range)}))})}provideColorPresentations(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.getColorPresentations(e.toString(),i.color,ge(i.range))).then(o=>{if(o)return o.map(s=>{let u={label:s.label};return s.textEdit&&(u.textEdit=W(s.textEdit)),s.additionalTextEdits&&(u.additionalTextEdits=s.additionalTextEdits.map(W)),u})})}},q=class{constructor(t){this._worker=t}provideFoldingRanges(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.getFoldingRanges(e.toString(),i)).then(o=>{if(o)return o.map(s=>{let u={start:s.startLine+1,end:s.endLine+1};return typeof s.kind<"u"&&(u.kind=wn(s.kind)),u})})}};function wn(n){switch(n){case S.Comment:return d.languages.FoldingRangeKind.Comment;case S.Imports:return d.languages.FoldingRangeKind.Imports;case S.Region:return d.languages.FoldingRangeKind.Region}}var Q=class{constructor(t){this._worker=t}provideSelectionRanges(t,i,r){let e=t.uri;return this._worker(e).then(o=>o.getSelectionRanges(e.toString(),i.map(_))).then(o=>{if(o)return o.map(s=>{let u=[];for(;s;)u.push({range:T(s.range)}),s=s.parent;return u})})}};function Rn(n){let t=[],i=[],r=new E(n);t.push(r);let e=(...s)=>r.getLanguageServiceWorker(...s);function o(){let{languageId:s,modeConfiguration:u}=n;nn(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new H(e,["/","-",":"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new U(e))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new j(e))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new O(e))),u.references&&i.push(d.languages.registerReferenceProvider(s,new N(e))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new z(e))),u.rename&&i.push(d.languages.registerRenameProvider(s,new V(e))),u.colors&&i.push(d.languages.registerColorProvider(s,new $(e))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new q(e))),u.diagnostics&&i.push(new K(s,e,n.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new Q(e))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new X(e))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new B(e)))}return o(),t.push(en(i)),en(t)}function en(n){return{dispose:()=>nn(n)}}function nn(n){for(;n.length;)n.pop().dispose()}return ln(Sn);})(); +return moduleExports; +}); diff --git a/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssWorker.js b/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssWorker.js new file mode 100644 index 0000000..e632e96 --- /dev/null +++ b/agentsociety/frontend/public/monaco-editor/min/vs/language/css/cssWorker.js @@ -0,0 +1,78 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/cssWorker", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var $n=Object.defineProperty;var ds=Object.getOwnPropertyDescriptor;var hs=Object.getOwnPropertyNames;var ps=Object.prototype.hasOwnProperty;var us=(n,e)=>{for(var t in e)$n(n,t,{get:e[t],enumerable:!0})},ms=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of hs(e))!ps.call(n,i)&&i!==t&&$n(n,i,{get:()=>e[i],enumerable:!(r=ds(e,i))||r.enumerable});return n};var fs=n=>ms($n({},"__esModule",{value:!0}),n);var sl={};us(sl,{CSSWorker:()=>Vn,create:()=>ol});var d;(function(n){n[n.Ident=0]="Ident",n[n.AtKeyword=1]="AtKeyword",n[n.String=2]="String",n[n.BadString=3]="BadString",n[n.UnquotedString=4]="UnquotedString",n[n.Hash=5]="Hash",n[n.Num=6]="Num",n[n.Percentage=7]="Percentage",n[n.Dimension=8]="Dimension",n[n.UnicodeRange=9]="UnicodeRange",n[n.CDO=10]="CDO",n[n.CDC=11]="CDC",n[n.Colon=12]="Colon",n[n.SemiColon=13]="SemiColon",n[n.CurlyL=14]="CurlyL",n[n.CurlyR=15]="CurlyR",n[n.ParenthesisL=16]="ParenthesisL",n[n.ParenthesisR=17]="ParenthesisR",n[n.BracketL=18]="BracketL",n[n.BracketR=19]="BracketR",n[n.Whitespace=20]="Whitespace",n[n.Includes=21]="Includes",n[n.Dashmatch=22]="Dashmatch",n[n.SubstringOperator=23]="SubstringOperator",n[n.PrefixOperator=24]="PrefixOperator",n[n.SuffixOperator=25]="SuffixOperator",n[n.Delim=26]="Delim",n[n.EMS=27]="EMS",n[n.EXS=28]="EXS",n[n.Length=29]="Length",n[n.Angle=30]="Angle",n[n.Time=31]="Time",n[n.Freq=32]="Freq",n[n.Exclamation=33]="Exclamation",n[n.Resolution=34]="Resolution",n[n.Comma=35]="Comma",n[n.Charset=36]="Charset",n[n.EscapedJavaScript=37]="EscapedJavaScript",n[n.BadEscapedJavaScript=38]="BadEscapedJavaScript",n[n.Comment=39]="Comment",n[n.SingleLineComment=40]="SingleLineComment",n[n.EOF=41]="EOF",n[n.CustomToken=42]="CustomToken"})(d||(d={}));var Kr=function(){function n(e){this.source=e,this.len=e.length,this.position=0}return n.prototype.substring=function(e,t){return t===void 0&&(t=this.position),this.source.substring(e,t)},n.prototype.eos=function(){return this.len<=this.position},n.prototype.pos=function(){return this.position},n.prototype.goBackTo=function(e){this.position=e},n.prototype.goBack=function(e){this.position-=e},n.prototype.advance=function(e){this.position+=e},n.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},n.prototype.peekChar=function(e){return e===void 0&&(e=0),this.source.charCodeAt(this.position+e)||0},n.prototype.lookbackChar=function(e){return e===void 0&&(e=0),this.source.charCodeAt(this.position-e)||0},n.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)?(this.position++,!0):!1},n.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t=St&&t<=kt?(this.stream.advance(e+1),this.stream.advanceWhileChar(function(r){return r>=St&&r<=kt||e===0&&r===ti}),!0):!1},n.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case at:case _t:case st:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===at&&this.stream.advanceIfChar(st)&&e.push(` +`),!0}return!1},n.prototype._escape=function(e,t){var r=this.stream.peekChar();if(r===Kn){this.stream.advance(1),r=this.stream.peekChar();for(var i=0;i<6&&(r>=St&&r<=kt||r>=tn&&r<=Gr||r>=nn&&r<=Jr);)this.stream.advance(1),r=this.stream.peekChar(),i++;if(i>0){try{var o=parseInt(this.stream.substring(this.stream.pos()-i),16);o&&e.push(String.fromCharCode(o))}catch{}return r===Gn||r===Hn?this.stream.advance(1):this._newline([]),!0}if(r!==at&&r!==_t&&r!==st)return this.stream.advance(1),e.push(String.fromCharCode(r)),!0;if(t)return this._newline(e)}return!1},n.prototype._stringChar=function(e,t){var r=this.stream.peekChar();return r!==0&&r!==e&&r!==Kn&&r!==at&&r!==_t&&r!==st?(this.stream.advance(1),t.push(String.fromCharCode(r)),!0):!1},n.prototype._string=function(e){if(this.stream.peekChar()===ei||this.stream.peekChar()===Zr){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),d.String):d.BadString}return null},n.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return t!==0&&t!==Kn&&t!==ei&&t!==Zr&&t!==ri&&t!==ii&&t!==Gn&&t!==Hn&&t!==st&&t!==_t&&t!==at?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1},n.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},n.prototype._whitespace=function(){var e=this.stream.advanceWhileChar(function(t){return t===Gn||t===Hn||t===st||t===_t||t===at});return e>0},n.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},n.prototype.ident=function(e){var t=this.stream.pos(),r=this._minus(e);if(r){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},n.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return t===Yr||t>=tn&&t<=Hr||t>=nn&&t<=Xr||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1},n.prototype._minus=function(e){var t=this.stream.peekChar();return t===Ye?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1},n.prototype._identChar=function(e){var t=this.stream.peekChar();return t===Yr||t===Ye||t>=tn&&t<=Hr||t>=nn&&t<=Xr||t>=St&&t<=kt||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1},n.prototype._unicodeRange=function(){if(this.stream.advanceIfChar(Ts)){var e=function(i){return i>=St&&i<=kt||i>=tn&&i<=Gr||i>=nn&&i<=Jr},t=this.stream.advanceWhileChar(e)+this.stream.advanceWhileChar(function(i){return i===Ms});if(t>=1&&t<=6)if(this.stream.advanceIfChar(Ye)){var r=this.stream.advanceWhileChar(e);if(r>=1&&r<=6)return!0}else return!0}return!1},n}();function q(n,e){if(n.length0?n.lastIndexOf(e)===t:t===0?n===e:!1}function oi(n,e,t){t===void 0&&(t=4);var r=Math.abs(n.length-e.length);if(r>t)return 0;var i=[],o=[],s,a;for(s=0;s0;)(e&1)===1&&(t+=n),n+=n,e=e>>>1;return t}var E=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),u;(function(n){n[n.Undefined=0]="Undefined",n[n.Identifier=1]="Identifier",n[n.Stylesheet=2]="Stylesheet",n[n.Ruleset=3]="Ruleset",n[n.Selector=4]="Selector",n[n.SimpleSelector=5]="SimpleSelector",n[n.SelectorInterpolation=6]="SelectorInterpolation",n[n.SelectorCombinator=7]="SelectorCombinator",n[n.SelectorCombinatorParent=8]="SelectorCombinatorParent",n[n.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",n[n.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",n[n.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",n[n.Page=12]="Page",n[n.PageBoxMarginBox=13]="PageBoxMarginBox",n[n.ClassSelector=14]="ClassSelector",n[n.IdentifierSelector=15]="IdentifierSelector",n[n.ElementNameSelector=16]="ElementNameSelector",n[n.PseudoSelector=17]="PseudoSelector",n[n.AttributeSelector=18]="AttributeSelector",n[n.Declaration=19]="Declaration",n[n.Declarations=20]="Declarations",n[n.Property=21]="Property",n[n.Expression=22]="Expression",n[n.BinaryExpression=23]="BinaryExpression",n[n.Term=24]="Term",n[n.Operator=25]="Operator",n[n.Value=26]="Value",n[n.StringLiteral=27]="StringLiteral",n[n.URILiteral=28]="URILiteral",n[n.EscapedValue=29]="EscapedValue",n[n.Function=30]="Function",n[n.NumericValue=31]="NumericValue",n[n.HexColorValue=32]="HexColorValue",n[n.RatioValue=33]="RatioValue",n[n.MixinDeclaration=34]="MixinDeclaration",n[n.MixinReference=35]="MixinReference",n[n.VariableName=36]="VariableName",n[n.VariableDeclaration=37]="VariableDeclaration",n[n.Prio=38]="Prio",n[n.Interpolation=39]="Interpolation",n[n.NestedProperties=40]="NestedProperties",n[n.ExtendsReference=41]="ExtendsReference",n[n.SelectorPlaceholder=42]="SelectorPlaceholder",n[n.Debug=43]="Debug",n[n.If=44]="If",n[n.Else=45]="Else",n[n.For=46]="For",n[n.Each=47]="Each",n[n.While=48]="While",n[n.MixinContentReference=49]="MixinContentReference",n[n.MixinContentDeclaration=50]="MixinContentDeclaration",n[n.Media=51]="Media",n[n.Keyframe=52]="Keyframe",n[n.FontFace=53]="FontFace",n[n.Import=54]="Import",n[n.Namespace=55]="Namespace",n[n.Invocation=56]="Invocation",n[n.FunctionDeclaration=57]="FunctionDeclaration",n[n.ReturnStatement=58]="ReturnStatement",n[n.MediaQuery=59]="MediaQuery",n[n.MediaCondition=60]="MediaCondition",n[n.MediaFeature=61]="MediaFeature",n[n.FunctionParameter=62]="FunctionParameter",n[n.FunctionArgument=63]="FunctionArgument",n[n.KeyframeSelector=64]="KeyframeSelector",n[n.ViewPort=65]="ViewPort",n[n.Document=66]="Document",n[n.AtApplyRule=67]="AtApplyRule",n[n.CustomPropertyDeclaration=68]="CustomPropertyDeclaration",n[n.CustomPropertySet=69]="CustomPropertySet",n[n.ListEntry=70]="ListEntry",n[n.Supports=71]="Supports",n[n.SupportsCondition=72]="SupportsCondition",n[n.NamespacePrefix=73]="NamespacePrefix",n[n.GridLine=74]="GridLine",n[n.Plugin=75]="Plugin",n[n.UnknownAtRule=76]="UnknownAtRule",n[n.Use=77]="Use",n[n.ModuleConfiguration=78]="ModuleConfiguration",n[n.Forward=79]="Forward",n[n.ForwardVisibility=80]="ForwardVisibility",n[n.Module=81]="Module",n[n.UnicodeRange=82]="UnicodeRange"})(u||(u={}));var A;(function(n){n[n.Mixin=0]="Mixin",n[n.Rule=1]="Rule",n[n.Variable=2]="Variable",n[n.Function=3]="Function",n[n.Keyframe=4]="Keyframe",n[n.Unknown=5]="Unknown",n[n.Module=6]="Module",n[n.Forward=7]="Forward",n[n.ForwardVisibility=8]="ForwardVisibility"})(A||(A={}));function on(n,e){var t=null;return!n||en.end?null:(n.accept(function(r){return r.offset===-1&&r.length===-1?!0:r.offset<=e&&r.end>=e?(t?r.length<=t.length&&(t=r):t=r,!0):!1}),t)}function lt(n,e){for(var t=on(n,e),r=[];t;)r.unshift(t),t=t.parent;return r}function ai(n){var e=n.findParent(u.Declaration),t=e&&e.getValue();return t&&t.encloses(n)?e:null}var F=function(){function n(e,t,r){e===void 0&&(e=-1),t===void 0&&(t=-1),this.parent=null,this.offset=e,this.length=t,r&&(this.nodeType=r)}return Object.defineProperty(n.prototype,"end",{get:function(){return this.offset+this.length},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this.nodeType||u.Undefined},set:function(e){this.nodeType=e},enumerable:!1,configurable:!0}),n.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return"unknown"}},n.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},n.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},n.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},n.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},n.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,r=this.children;t=0&&e.parent.children.splice(r,1)}e.parent=this;var i=this.children;return i||(i=this.children=[]),t!==-1?i.splice(t,0,e):i.push(e),e},n.prototype.attachTo=function(e,t){return t===void 0&&(t=-1),e&&e.adoptChild(this,t),this},n.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},n.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},n.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some(function(t){return t.getRule()===e})},n.prototype.isErroneous=function(e){return e===void 0&&(e=!1),this.issues&&this.issues.length>0?!0:e&&Array.isArray(this.children)&&this.children.some(function(t){return t.isErroneous(!0)})},n.prototype.setNode=function(e,t,r){return r===void 0&&(r=-1),t?(t.attachTo(this,r),this[e]=t,!0):!1},n.prototype.addChild=function(e){return e?(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0):!1},n.prototype.updateOffsetAndLength=function(e){(e.offsetthis.end||this.length===-1)&&(this.length=t-this.offset)},n.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},n.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},n.prototype.getChild=function(e){return this.children&&e=0;r--)if(t=this.children[r],t.offset<=e)return t}return null},n.prototype.findChildAtOffset=function(e,t){var r=this.findFirstChildBeforeOffset(e);return r&&r.end>=e?t&&r.findChildAtOffset(e,!0)||r:null},n.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},n.prototype.getParent=function(){for(var e=this.parent;e instanceof ee;)e=e.parent;return e},n.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},n.prototype.findAParent=function(){for(var e=[],t=0;t{let o=i[0];return typeof e[o]<"u"?e[o]:r}),t}function js(n,e,...t){return Us(e,t)}function H(n){return js}var U=H(),j=function(){function n(e,t){this.id=e,this.message=t}return n}();var f={NumberExpected:new j("css-numberexpected",U("expected.number","number expected")),ConditionExpected:new j("css-conditionexpected",U("expected.condt","condition expected")),RuleOrSelectorExpected:new j("css-ruleorselectorexpected",U("expected.ruleorselector","at-rule or selector expected")),DotExpected:new j("css-dotexpected",U("expected.dot","dot expected")),ColonExpected:new j("css-colonexpected",U("expected.colon","colon expected")),SemiColonExpected:new j("css-semicolonexpected",U("expected.semicolon","semi-colon expected")),TermExpected:new j("css-termexpected",U("expected.term","term expected")),ExpressionExpected:new j("css-expressionexpected",U("expected.expression","expression expected")),OperatorExpected:new j("css-operatorexpected",U("expected.operator","operator expected")),IdentifierExpected:new j("css-identifierexpected",U("expected.ident","identifier expected")),PercentageExpected:new j("css-percentageexpected",U("expected.percentage","percentage expected")),URIOrStringExpected:new j("css-uriorstringexpected",U("expected.uriorstring","uri or string expected")),URIExpected:new j("css-uriexpected",U("expected.uri","URI expected")),VariableNameExpected:new j("css-varnameexpected",U("expected.varname","variable name expected")),VariableValueExpected:new j("css-varvalueexpected",U("expected.varvalue","variable value expected")),PropertyValueExpected:new j("css-propertyvalueexpected",U("expected.propvalue","property value expected")),LeftCurlyExpected:new j("css-lcurlyexpected",U("expected.lcurly","{ expected")),RightCurlyExpected:new j("css-rcurlyexpected",U("expected.rcurly","} expected")),LeftSquareBracketExpected:new j("css-rbracketexpected",U("expected.lsquare","[ expected")),RightSquareBracketExpected:new j("css-lbracketexpected",U("expected.rsquare","] expected")),LeftParenthesisExpected:new j("css-lparentexpected",U("expected.lparen","( expected")),RightParenthesisExpected:new j("css-rparentexpected",U("expected.rparent",") expected")),CommaExpected:new j("css-commaexpected",U("expected.comma","comma expected")),PageDirectiveOrDeclarationExpected:new j("css-pagedirordeclexpected",U("expected.pagedirordecl","page directive or declaraton expected")),UnknownAtRule:new j("css-unknownatrule",U("unknown.atrule","at-rule unknown")),UnknownKeyword:new j("css-unknownkeyword",U("unknown.keyword","unknown keyword")),SelectorExpected:new j("css-selectorexpected",U("expected.selector","selector expected")),StringLiteralExpected:new j("css-stringliteralexpected",U("expected.stringliteral","string literal expected")),WhitespaceExpected:new j("css-whitespaceexpected",U("expected.whitespace","whitespace expected")),MediaQueryExpected:new j("css-mediaqueryexpected",U("expected.mediaquery","media query expected")),IdentifierOrWildcardExpected:new j("css-idorwildcardexpected",U("expected.idorwildcard","identifier or wildcard expected")),WildcardExpected:new j("css-wildcardexpected",U("expected.wildcard","wildcard expected")),IdentifierOrVariableExpected:new j("css-idorvarexpected",U("expected.idorvar","identifier or variable expected"))};var Oi;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647})(Oi||(Oi={}));var gn;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647})(gn||(gn={}));var Q;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=gn.MAX_VALUE),i===Number.MAX_VALUE&&(i=gn.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){var i=r;return v.objectLiteral(i)&&v.uinteger(i.line)&&v.uinteger(i.character)}n.is=t})(Q||(Q={}));var W;(function(n){function e(r,i,o,s){if(v.uinteger(r)&&v.uinteger(i)&&v.uinteger(o)&&v.uinteger(s))return{start:Q.create(r,i),end:Q.create(o,s)};if(Q.is(r)&&Q.is(i))return{start:r,end:i};throw new Error("Range#create called with invalid arguments["+r+", "+i+", "+o+", "+s+"]")}n.create=e;function t(r){var i=r;return v.objectLiteral(i)&&Q.is(i.start)&&Q.is(i.end)}n.is=t})(W||(W={}));var tt;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){var i=r;return v.defined(i)&&W.is(i.range)&&(v.string(i.uri)||v.undefined(i.uri))}n.is=t})(tt||(tt={}));var Wi;(function(n){function e(r,i,o,s){return{targetUri:r,targetRange:i,targetSelectionRange:o,originSelectionRange:s}}n.create=e;function t(r){var i=r;return v.defined(i)&&W.is(i.targetRange)&&v.string(i.targetUri)&&(W.is(i.targetSelectionRange)||v.undefined(i.targetSelectionRange))&&(W.is(i.originSelectionRange)||v.undefined(i.originSelectionRange))}n.is=t})(Wi||(Wi={}));var bn;(function(n){function e(r,i,o,s){return{red:r,green:i,blue:o,alpha:s}}n.create=e;function t(r){var i=r;return v.numberRange(i.red,0,1)&&v.numberRange(i.green,0,1)&&v.numberRange(i.blue,0,1)&&v.numberRange(i.alpha,0,1)}n.is=t})(bn||(bn={}));var er;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){var i=r;return W.is(i.range)&&bn.is(i.color)}n.is=t})(er||(er={}));var tr;(function(n){function e(r,i,o){return{label:r,textEdit:i,additionalTextEdits:o}}n.create=e;function t(r){var i=r;return v.string(i.label)&&(v.undefined(i.textEdit)||T.is(i))&&(v.undefined(i.additionalTextEdits)||v.typedArray(i.additionalTextEdits,T.is))}n.is=t})(tr||(tr={}));var nr;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(nr||(nr={}));var rr;(function(n){function e(r,i,o,s,a){var l={startLine:r,endLine:i};return v.defined(o)&&(l.startCharacter=o),v.defined(s)&&(l.endCharacter=s),v.defined(a)&&(l.kind=a),l}n.create=e;function t(r){var i=r;return v.uinteger(i.startLine)&&v.uinteger(i.startLine)&&(v.undefined(i.startCharacter)||v.uinteger(i.startCharacter))&&(v.undefined(i.endCharacter)||v.uinteger(i.endCharacter))&&(v.undefined(i.kind)||v.string(i.kind))}n.is=t})(rr||(rr={}));var ir;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){var i=r;return v.defined(i)&&tt.is(i.location)&&v.string(i.message)}n.is=t})(ir||(ir={}));var mt;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(mt||(mt={}));var Li;(function(n){n.Unnecessary=1,n.Deprecated=2})(Li||(Li={}));var Ui;(function(n){function e(t){var r=t;return r!=null&&v.string(r.href)}n.is=e})(Ui||(Ui={}));var It;(function(n){function e(r,i,o,s,a,l){var c={range:r,message:i};return v.defined(o)&&(c.severity=o),v.defined(s)&&(c.code=s),v.defined(a)&&(c.source=a),v.defined(l)&&(c.relatedInformation=l),c}n.create=e;function t(r){var i,o=r;return v.defined(o)&&W.is(o.range)&&v.string(o.message)&&(v.number(o.severity)||v.undefined(o.severity))&&(v.integer(o.code)||v.string(o.code)||v.undefined(o.code))&&(v.undefined(o.codeDescription)||v.string((i=o.codeDescription)===null||i===void 0?void 0:i.href))&&(v.string(o.source)||v.undefined(o.source))&&(v.undefined(o.relatedInformation)||v.typedArray(o.relatedInformation,ir.is))}n.is=t})(It||(It={}));var Ge;(function(n){function e(r,i){for(var o=[],s=2;s0&&(a.arguments=o),a}n.create=e;function t(r){var i=r;return v.defined(i)&&v.string(i.title)&&v.string(i.command)}n.is=t})(Ge||(Ge={}));var T;(function(n){function e(o,s){return{range:o,newText:s}}n.replace=e;function t(o,s){return{range:{start:o,end:o},newText:s}}n.insert=t;function r(o){return{range:o,newText:""}}n.del=r;function i(o){var s=o;return v.objectLiteral(s)&&v.string(s.newText)&&W.is(s.range)}n.is=i})(T||(T={}));var ut;(function(n){function e(r,i,o){var s={label:r};return i!==void 0&&(s.needsConfirmation=i),o!==void 0&&(s.description=o),s}n.create=e;function t(r){var i=r;return i!==void 0&&v.objectLiteral(i)&&v.string(i.label)&&(v.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(v.string(i.description)||i.description===void 0)}n.is=t})(ut||(ut={}));var le;(function(n){function e(t){var r=t;return typeof r=="string"}n.is=e})(le||(le={}));var Ke;(function(n){function e(o,s,a){return{range:o,newText:s,annotationId:a}}n.replace=e;function t(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}n.insert=t;function r(o,s){return{range:o,newText:"",annotationId:s}}n.del=r;function i(o){var s=o;return T.is(s)&&(ut.is(s.annotationId)||le.is(s.annotationId))}n.is=i})(Ke||(Ke={}));var nt;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){var i=r;return v.defined(i)&&yn.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(nt||(nt={}));var Mt;(function(n){function e(r,i,o){var s={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(r){var i=r;return i&&i.kind==="create"&&v.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||v.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||v.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||le.is(i.annotationId))}n.is=t})(Mt||(Mt={}));var Tt;(function(n){function e(r,i,o,s){var a={kind:"rename",oldUri:r,newUri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){var i=r;return i&&i.kind==="rename"&&v.string(i.oldUri)&&v.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||v.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||v.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||le.is(i.annotationId))}n.is=t})(Tt||(Tt={}));var Pt;(function(n){function e(r,i,o){var s={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(r){var i=r;return i&&i.kind==="delete"&&v.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||v.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||v.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||le.is(i.annotationId))}n.is=t})(Pt||(Pt={}));var vn;(function(n){function e(t){var r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(i){return v.string(i.kind)?Mt.is(i)||Tt.is(i)||Pt.is(i):nt.is(i)}))}n.is=e})(vn||(vn={}));var fn=function(){function n(e,t){this.edits=e,this.changeAnnotations=t}return n.prototype.insert=function(e,t,r){var i,o;if(r===void 0?i=T.insert(e,t):le.is(r)?(o=r,i=Ke.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),i=Ke.insert(e,t,o)),this.edits.push(i),o!==void 0)return o},n.prototype.replace=function(e,t,r){var i,o;if(r===void 0?i=T.replace(e,t):le.is(r)?(o=r,i=Ke.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),i=Ke.replace(e,t,o)),this.edits.push(i),o!==void 0)return o},n.prototype.delete=function(e,t){var r,i;if(t===void 0?r=T.del(e):le.is(t)?(i=t,r=Ke.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(t),r=Ke.del(e,i)),this.edits.push(r),i!==void 0)return i},n.prototype.add=function(e){this.edits.push(e)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),ji=function(){function n(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(e,t){var r;if(le.is(e)?r=e:(r=this.nextId(),t=e),this._annotations[r]!==void 0)throw new Error("Id "+r+" is already in use.");if(t===void 0)throw new Error("No annotation provided for id "+r);return this._annotations[r]=t,this._size++,r},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}(),pl=function(){function n(e){var t=this;this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new ji(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(function(r){if(nt.is(r)){var i=new fn(r.edits,t._changeAnnotations);t._textEditChanges[r.textDocument.uri]=i}})):e.changes&&Object.keys(e.changes).forEach(function(r){var i=new fn(e.changes[r]);t._textEditChanges[r]=i})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(e){if(yn.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version},r=this._textEditChanges[t.uri];if(!r){var i=[],o={textDocument:t,edits:i};this._workspaceEdit.documentChanges.push(o),r=new fn(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[e];if(!r){var i=[];this._workspaceEdit.changes[e]=i,r=new fn(i),this._textEditChanges[e]=r}return r}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ji,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i;ut.is(t)||le.is(t)?i=t:r=t;var o,s;if(i===void 0?o=Mt.create(e,r):(s=le.is(i)?i:this._changeAnnotations.manage(i),o=Mt.create(e,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n.prototype.renameFile=function(e,t,r,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var o;ut.is(r)||le.is(r)?o=r:i=r;var s,a;if(o===void 0?s=Tt.create(e,t,i):(a=le.is(o)?o:this._changeAnnotations.manage(o),s=Tt.create(e,t,i,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},n.prototype.deleteFile=function(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i;ut.is(t)||le.is(t)?i=t:r=t;var o,s;if(i===void 0?o=Pt.create(e,r):(s=le.is(i)?i:this._changeAnnotations.manage(i),o=Pt.create(e,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n}();var Vi;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){var i=r;return v.defined(i)&&v.string(i.uri)}n.is=t})(Vi||(Vi={}));var At;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){var i=r;return v.defined(i)&&v.string(i.uri)&&v.integer(i.version)}n.is=t})(At||(At={}));var yn;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){var i=r;return v.defined(i)&&v.string(i.uri)&&(i.version===null||v.integer(i.version))}n.is=t})(yn||(yn={}));var Bi;(function(n){function e(r,i,o,s){return{uri:r,languageId:i,version:o,text:s}}n.create=e;function t(r){var i=r;return v.defined(i)&&v.string(i.uri)&&v.string(i.languageId)&&v.integer(i.version)&&v.string(i.text)}n.is=t})(Bi||(Bi={}));var ce;(function(n){n.PlainText="plaintext",n.Markdown="markdown"})(ce||(ce={}));(function(n){function e(t){var r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(ce||(ce={}));var wn;(function(n){function e(t){var r=t;return v.objectLiteral(t)&&ce.is(r.kind)&&v.string(r.value)}n.is=e})(wn||(wn={}));var R;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(R||(R={}));var re;(function(n){n.PlainText=1,n.Snippet=2})(re||(re={}));var Ne;(function(n){n.Deprecated=1})(Ne||(Ne={}));var $i;(function(n){function e(r,i,o){return{newText:r,insert:i,replace:o}}n.create=e;function t(r){var i=r;return i&&v.string(i.newText)&&W.is(i.insert)&&W.is(i.replace)}n.is=t})($i||($i={}));var qi;(function(n){n.asIs=1,n.adjustIndentation=2})(qi||(qi={}));var or;(function(n){function e(t){return{label:t}}n.create=e})(or||(or={}));var sr;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(sr||(sr={}));var Nt;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){var i=r;return v.string(i)||v.objectLiteral(i)&&v.string(i.language)&&v.string(i.value)}n.is=t})(Nt||(Nt={}));var ar;(function(n){function e(t){var r=t;return!!r&&v.objectLiteral(r)&&(wn.is(r.contents)||Nt.is(r.contents)||v.typedArray(r.contents,Nt.is))&&(t.range===void 0||W.is(t.range))}n.is=e})(ar||(ar={}));var Ki;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(Ki||(Ki={}));var Gi;(function(n){function e(t,r){for(var i=[],o=2;o=0;h--){var p=l[h],m=o.offsetAt(p.range.start),g=o.offsetAt(p.range.end);if(g<=c)a=a.substring(0,m)+p.newText+a.substring(g,a.length);else throw new Error("Overlapping edit");c=m}return a}n.applyEdits=r;function i(o,s){if(o.length<=1)return o;var a=o.length/2|0,l=o.slice(0,a),c=o.slice(a);i(l,s),i(c,s);for(var h=0,p=0,m=0;h0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},n.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return Q.create(0,e);for(;re?i=o:r=o+1}var s=r-1;return Q.create(s,e-t[s])},n.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var r=t[e.line],i=e.line+1"u"}n.undefined=r;function i(g){return g===!0||g===!1}n.boolean=i;function o(g){return e.call(g)==="[object String]"}n.string=o;function s(g){return e.call(g)==="[object Number]"}n.number=s;function a(g,w,x){return e.call(g)==="[object Number]"&&w<=g&&g<=x}n.numberRange=a;function l(g){return e.call(g)==="[object Number]"&&-2147483648<=g&&g<=2147483647}n.integer=l;function c(g){return e.call(g)==="[object Number]"&&0<=g&&g<=2147483647}n.uinteger=c;function h(g){return e.call(g)==="[object Function]"}n.func=h;function p(g){return g!==null&&typeof g=="object"}n.objectLiteral=p;function m(g,w){return Array.isArray(g)&&g.every(w)}n.typedArray=m})(v||(v={}));var xn=class n{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(let r of e)if(n.isIncremental(r)){let i=Zi(r.range),o=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,o)+r.text+this._content.substring(s,this._content.length);let a=Math.max(i.start.line,0),l=Math.max(i.end.line,0),c=this._lineOffsets,h=Qi(r.text,!1,o);if(l-a===h.length)for(let m=0,g=h.length;me?i=s:r=s+1}let o=r-1;return{line:o,character:e-t[o]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1{let m=h.range.start.line-p.range.start.line;return m===0?h.range.start.character-p.range.start.character:m}),l=0,c=[];for(let h of a){let p=i.offsetAt(h.range.start);if(pl&&c.push(s.substring(l,p)),h.newText.length&&c.push(h.newText),l=i.offsetAt(h.range.end)}return c.push(s.substr(l)),c.join("")}n.applyEdits=r})(Lt||(Lt={}));function ur(n,e){if(n.length<=1)return n;let t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);ur(r,e),ur(i,e);let o=0,s=0,a=0;for(;ot.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Bs(n){let e=Zi(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var eo;(function(n){n.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[ce.Markdown,ce.PlainText]}},hover:{contentFormat:[ce.Markdown,ce.PlainText]}}}})(eo||(eo={}));var rt;(function(n){n[n.Unknown=0]="Unknown",n[n.File=1]="File",n[n.Directory=2]="Directory",n[n.SymbolicLink=64]="SymbolicLink"})(rt||(rt={}));var to={E:"Edge",FF:"Firefox",S:"Safari",C:"Chrome",IE:"IE",O:"Opera"};function no(n){switch(n){case"experimental":return`\u26A0\uFE0F Property is experimental. Be cautious when using it.\uFE0F + +`;case"nonstandard":return`\u{1F6A8}\uFE0F Property is nonstandard. Avoid using it. + +`;case"obsolete":return`\u{1F6A8}\uFE0F\uFE0F\uFE0F Property is obsolete. Avoid using it. + +`;default:return""}}function ze(n,e,t){var r;if(e?r={kind:"markdown",value:qs(n,t)}:r={kind:"plaintext",value:$s(n,t)},r.value!=="")return r}function Sn(n){return n=n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&"),n.replace(//g,">")}function $s(n,e){if(!n.description||n.description==="")return"";if(typeof n.description!="string")return n.description.value;var t="";if(e?.documentation!==!1){n.status&&(t+=no(n.status)),t+=n.description;var r=ro(n.browsers);r&&(t+=` +(`+r+")"),"syntax"in n&&(t+=` + +Syntax: `.concat(n.syntax))}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` + +`),t+=n.references.map(function(i){return"".concat(i.name,": ").concat(i.url)}).join(" | ")),t}function qs(n,e){if(!n.description||n.description==="")return"";var t="";if(e?.documentation!==!1){n.status&&(t+=no(n.status)),typeof n.description=="string"?t+=Sn(n.description):t+=n.description.kind===ce.Markdown?n.description.value:Sn(n.description.value);var r=ro(n.browsers);r&&(t+=` + +(`+Sn(r)+")"),"syntax"in n&&n.syntax&&(t+=` + +Syntax: `.concat(Sn(n.syntax)))}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` + +`),t+=n.references.map(function(i){return"[".concat(i.name,"](").concat(i.url,")")}).join(" | ")),t}function ro(n){return n===void 0&&(n=[]),n.length===0?null:n.map(function(e){var t="",r=e.match(/([A-Z]+)(\d+)?/),i=r[1],o=r[2];return i in to&&(t+=to[i]),o&&(t+=" "+o),t}).join(", ")}var Ut=H(),ao=[{func:"rgb($red, $green, $blue)",desc:Ut("css.builtin.rgb","Creates a Color from red, green, and blue values.")},{func:"rgba($red, $green, $blue, $alpha)",desc:Ut("css.builtin.rgba","Creates a Color from red, green, blue, and alpha values.")},{func:"hsl($hue, $saturation, $lightness)",desc:Ut("css.builtin.hsl","Creates a Color from hue, saturation, and lightness values.")},{func:"hsla($hue, $saturation, $lightness, $alpha)",desc:Ut("css.builtin.hsla","Creates a Color from hue, saturation, lightness, and alpha values.")},{func:"hwb($hue $white $black)",desc:Ut("css.builtin.hwb","Creates a Color from hue, white and black.")}],jt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},mr={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."};function Je(n,e){var t=n.getText(),r=t.match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(r){r[2]&&(e=100);var i=parseFloat(r[1])/e;if(i>=0&&i<=1)return i}throw new Error}function io(n){var e=n.getText(),t=e.match(/^([-+]?[0-9]*\.?[0-9]+)(deg|rad|grad|turn)?$/);if(t)switch(t[2]){case"deg":return parseFloat(e)%360;case"rad":return parseFloat(e)*180/Math.PI%360;case"grad":return parseFloat(e)*.9%360;case"turn":return parseFloat(e)*360%360;default:if(typeof t[2]>"u")return parseFloat(e)%360}throw new Error}function lo(n){var e=n.getName();return e?/^(rgb|rgba|hsl|hsla|hwb)$/gi.test(e):!1}var oo=48,Ks=57,Gs=65;var kn=97,Hs=102;function J(n){return n=kn&&n<=Hs?n-kn+10:0)}function so(n){if(n[0]!=="#")return null;switch(n.length){case 4:return{red:J(n.charCodeAt(1))*17/255,green:J(n.charCodeAt(2))*17/255,blue:J(n.charCodeAt(3))*17/255,alpha:1};case 5:return{red:J(n.charCodeAt(1))*17/255,green:J(n.charCodeAt(2))*17/255,blue:J(n.charCodeAt(3))*17/255,alpha:J(n.charCodeAt(4))*17/255};case 7:return{red:(J(n.charCodeAt(1))*16+J(n.charCodeAt(2)))/255,green:(J(n.charCodeAt(3))*16+J(n.charCodeAt(4)))/255,blue:(J(n.charCodeAt(5))*16+J(n.charCodeAt(6)))/255,alpha:1};case 9:return{red:(J(n.charCodeAt(1))*16+J(n.charCodeAt(2)))/255,green:(J(n.charCodeAt(3))*16+J(n.charCodeAt(4)))/255,blue:(J(n.charCodeAt(5))*16+J(n.charCodeAt(6)))/255,alpha:(J(n.charCodeAt(7))*16+J(n.charCodeAt(8)))/255}}return null}function co(n,e,t,r){if(r===void 0&&(r=1),n=n/60,e===0)return{red:t,green:t,blue:t,alpha:r};var i=function(a,l,c){for(;c<0;)c+=6;for(;c>=6;)c-=6;return c<1?(l-a)*c+a:c<3?l:c<4?(l-a)*(4-c)+a:a},o=t<=.5?t*(e+1):t+e-t*e,s=t*2-o;return{red:i(s,o,n+2),green:i(s,o,n),blue:i(s,o,n-2),alpha:r}}function fr(n){var e=n.red,t=n.green,r=n.blue,i=n.alpha,o=Math.max(e,t,r),s=Math.min(e,t,r),a=0,l=0,c=(s+o)/2,h=o-s;if(h>0){switch(l=Math.min(c<=.5?h/(2*c):h/(2-2*c),1),o){case e:a=(t-r)/h+(t=1){var i=e/(e+t);return{red:i,green:i,blue:i,alpha:r}}var o=co(n,1,.5,r),s=o.red;s*=1-e-t,s+=e;var a=o.green;a*=1-e-t,a+=e;var l=o.blue;return l*=1-e-t,l+=e,{red:s,green:a,blue:l,alpha:r}}function ho(n){var e=fr(n),t=Math.min(n.red,n.green,n.blue),r=1-Math.max(n.red,n.green,n.blue);return{h:e.h,w:t,b:r,a:e.a}}function po(n){if(n.type===u.HexColorValue){var e=n.getText();return so(e)}else if(n.type===u.Function){var t=n,r=t.getName(),i=t.getArguments().getChildren();if(i.length===1){var o=i[0].getChildren();if(o.length===1&&o[0].type===u.Expression&&(i=o[0].getChildren(),i.length===3)){var s=i[2];if(s instanceof ht){var a=s.getLeft(),l=s.getRight(),c=s.getOperator();a&&l&&c&&c.matches("/")&&(i=[i[0],i[1],a,l])}}}if(!r||i.length<3||i.length>4)return null;try{var h=i.length===4?Je(i[3],1):1;if(r==="rgb"||r==="rgba")return{red:Je(i[0],255),green:Je(i[1],255),blue:Je(i[2],255),alpha:h};if(r==="hsl"||r==="hsla"){var p=io(i[0]),m=Je(i[1],100),g=Je(i[2],100);return co(p,m,g,h)}else if(r==="hwb"){var p=io(i[0]),w=Je(i[1],100),x=Je(i[2],100);return Js(p,w,x,h)}}catch{return null}}else if(n.type===u.Identifier){if(n.parent&&n.parent.type!==u.Term)return null;var y=n.parent;if(y&&y.parent&&y.parent.type===u.BinaryExpression){var D=y.parent;if(D.parent&&D.parent.type===u.ListEntry&&D.parent.key===D)return null}var M=n.getText().toLowerCase();if(M==="none")return null;var z=jt[M];if(z)return so(z)}return null}var gr={bottom:"Computes to \u2018100%\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to \u201850%\u2019 (\u2018left 50%\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \u201850%\u2019 (\u2018top 50%\u2019) for the vertical position if it is.",left:"Computes to \u20180%\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to \u2018100%\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to \u20180%\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},br={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to \u2018repeat no-repeat\u2019.","repeat-y":"Computes to \u2018no-repeat repeat\u2019.",round:"Repeated as often as will fit within the background positioning area. If it doesn\u2019t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},vr={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as \u2018none\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},uo=["medium","thick","thin"],yr={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},wr={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},xr={initial:"Represents the value specified as the property\u2019s initial value.",inherit:"Represents the computed value of the property on the element\u2019s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},Sr={"var()":"Evaluates the value of a custom variable.","calc()":"Evaluates an mathematical expression. The following operators can be used: + - * /."},kr={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position."},Cr={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \u201Cstart\u201D or \u201Cend\u201D.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},_r={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},Cn={length:["em","rem","ex","px","cm","mm","in","pt","pc","ch","vw","vh","vmin","vmax"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},mo=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],fo=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],go=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"];function Vt(n){return Object.keys(n).map(function(e){return n[e]})}function he(n){return typeof n<"u"}var bo=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;re.offset?o-e.offset:0}return e},n.prototype.markError=function(e,t,r,i){this.token!==this.lastErrorToken&&(e.addIssue(new mn(e,t,ne.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(r||i)&&this.resync(r,i)},n.prototype.parseStylesheet=function(e){var t=e.version,r=e.getText(),i=function(o,s){if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return r.substr(o,s)};return this.internalParse(r,this._parseStylesheet,i)},n.prototype.internalParse=function(e,t,r){this.scanner.setSource(e),this.token=this.scanner.scan();var i=t.bind(this)();return i&&(r?i.textProvider=r:i.textProvider=function(o,s){return e.substr(o,s)}),i},n.prototype._parseStylesheet=function(){for(var e=this.create(ci);e.addChild(this._parseStylesheetStart()););var t=!1;do{var r=!1;do{r=!1;var i=this._parseStylesheetStatement();for(i&&(e.addChild(i),r=!0,t=!1,!this.peek(d.EOF)&&this._needsSemicolonAfter(i)&&!this.accept(d.SemiColon)&&this.markError(e,f.SemiColonExpected));this.accept(d.SemiColon)||this.accept(d.CDO)||this.accept(d.CDC);)r=!0,t=!1}while(r);if(this.peek(d.EOF))break;t||(this.peek(d.AtKeyword)?this.markError(e,f.UnknownAtRule):this.markError(e,f.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(d.EOF));return this.finish(e)},n.prototype._parseStylesheetStart=function(){return this._parseCharset()},n.prototype._parseStylesheetStatement=function(e){return e===void 0&&(e=!1),this.peek(d.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},n.prototype._parseStylesheetAtStatement=function(e){return e===void 0&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},n.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(d.Comma)&&this._parseSelector(e););if(this.accept(d.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},n.prototype._parseRuleset=function(e){e===void 0&&(e=!1);var t=this.create(Te),r=t.getSelectors();if(!r.addChild(this._parseSelector(e)))return null;for(;this.accept(d.Comma);)if(!r.addChild(this._parseSelector(e)))return this.finish(t,f.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},n.prototype._parseRuleSetDeclarationAtStatement=function(){return this._parseUnknownAtRule()},n.prototype._parseRuleSetDeclaration=function(){return this.peek(d.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this._parseDeclaration()},n.prototype._needsSemicolonAfter=function(e){switch(e.type){case u.Keyframe:case u.ViewPort:case u.Media:case u.Ruleset:case u.Namespace:case u.If:case u.For:case u.Each:case u.While:case u.MixinDeclaration:case u.FunctionDeclaration:case u.MixinContentDeclaration:return!1;case u.ExtendsReference:case u.MixinContentReference:case u.ReturnStatement:case u.MediaQuery:case u.Debug:case u.Import:case u.AtApplyRule:case u.CustomPropertyDeclaration:return!0;case u.VariableDeclaration:return e.needsSemicolon;case u.MixinReference:return!e.getContent();case u.Declaration:return!e.getNestedProperties()}return!1},n.prototype._parseDeclarations=function(e){var t=this.create(Ft);if(!this.accept(d.CurlyL))return null;for(var r=e();t.addChild(r)&&!this.peek(d.CurlyR);){if(this._needsSemicolonAfter(r)&&!this.accept(d.SemiColon))return this.finish(t,f.SemiColonExpected,[d.SemiColon,d.CurlyR]);for(r&&this.prevToken&&this.prevToken.type===d.SemiColon&&(r.semicolonPosition=this.prevToken.offset);this.accept(d.SemiColon););r=e()}return this.accept(d.CurlyR)?this.finish(t):this.finish(t,f.RightCurlyExpected,[d.CurlyR,d.SemiColon])},n.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,f.LeftCurlyExpected,[d.CurlyR,d.SemiColon])},n.prototype._parseSelector=function(e){var t=this.create(Ee),r=!1;for(e&&(r=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)r=!0,t.addChild(this._parseCombinator());return r?this.finish(t):null},n.prototype._parseDeclaration=function(e){var t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;var r=this.create(ae);return r.setProperty(this._parseProperty())?this.accept(d.Colon)?(this.prevToken&&(r.colonPosition=this.prevToken.offset),r.setValue(this._parseExpr())?(r.addChild(this._parsePrio()),this.peek(d.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)):this.finish(r,f.PropertyValueExpected)):this.finish(r,f.ColonExpected,[d.Colon],e||[d.SemiColon]):null},n.prototype._tryParseCustomPropertyDeclaration=function(e){if(!this.peekRegExp(d.Ident,/^--/))return null;var t=this.create(hi);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(d.Colon))return this.finish(t,f.ColonExpected,[d.Colon]);this.prevToken&&(t.colonPosition=this.prevToken.offset);var r=this.mark();if(this.peek(d.CurlyL)){var i=this.create(di),o=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(i.setDeclarations(o)&&!o.isErroneous(!0)&&(i.addChild(this._parsePrio()),this.peek(d.SemiColon)))return this.finish(i),t.setPropertySet(i),t.semicolonPosition=this.token.offset,this.finish(t);this.restoreAtMark(r)}var s=this._parseExpr();return s&&!s.isErroneous(!0)&&(this._parsePrio(),this.peekOne.apply(this,bo(bo([],e||[],!1),[d.SemiColon,d.EOF],!1)))?(t.setValue(s),this.peek(d.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):(this.restoreAtMark(r),t.addChild(this._parseCustomPropertyValue(e)),t.addChild(this._parsePrio()),he(t.colonPosition)&&this.token.offset===t.colonPosition+1?this.finish(t,f.PropertyValueExpected):this.finish(t))},n.prototype._parseCustomPropertyValue=function(e){var t=this;e===void 0&&(e=[d.CurlyR]);var r=this.create(F),i=function(){return s===0&&a===0&&l===0},o=function(){return e.indexOf(t.token.type)!==-1},s=0,a=0,l=0;e:for(;;){switch(this.token.type){case d.SemiColon:if(i())break e;break;case d.Exclamation:if(i())break e;break;case d.CurlyL:s++;break;case d.CurlyR:if(s--,s<0){if(o()&&a===0&&l===0)break e;return this.finish(r,f.LeftCurlyExpected)}break;case d.ParenthesisL:a++;break;case d.ParenthesisR:if(a--,a<0){if(o()&&l===0&&s===0)break e;return this.finish(r,f.LeftParenthesisExpected)}break;case d.BracketL:l++;break;case d.BracketR:if(l--,l<0)return this.finish(r,f.LeftSquareBracketExpected);break;case d.BadString:break e;case d.EOF:var c=f.RightCurlyExpected;return l>0?c=f.RightSquareBracketExpected:a>0&&(c=f.RightParenthesisExpected),this.finish(r,c)}this.consumeToken()}return this.finish(r)},n.prototype._tryToParseDeclaration=function(e){var t=this.mark();return this._parseProperty()&&this.accept(d.Colon)?(this.restoreAtMark(t),this._parseDeclaration(e)):(this.restoreAtMark(t),null)},n.prototype._parseProperty=function(){var e=this.create(ct),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},n.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},n.prototype._parseCharset=function(){if(!this.peek(d.Charset))return null;var e=this.create(F);return this.consumeToken(),this.accept(d.String)?this.accept(d.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected):this.finish(e,f.IdentifierExpected)},n.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(dt);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,f.URIOrStringExpected):(!this.peek(d.SemiColon)&&!this.peek(d.EOF)&&e.setMedialist(this._parseMediaQueryList()),this.finish(e))},n.prototype._parseNamespace=function(){if(!this.peekKeyword("@namespace"))return null;var e=this.create(Si);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&(e.addChild(this._parseIdent()),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))?this.finish(e,f.URIExpected,[d.SemiColon]):this.accept(d.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected)},n.prototype._parseFontFace=function(){if(!this.peekKeyword("@font-face"))return null;var e=this.create(an);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},n.prototype._parseViewPort=function(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;var e=this.create(bi);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},n.prototype._parseKeyframe=function(){if(!this.peekRegExp(d.AtKeyword,this.keyframeRegex))return null;var e=this.create(ln),t=this.create(F);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,f.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,f.IdentifierExpected,[d.CurlyR])},n.prototype._parseKeyframeIdent=function(){return this._parseIdent([A.Keyframe])},n.prototype._parseKeyframeSelector=function(){var e=this.create(Qn);if(!e.addChild(this._parseIdent())&&!this.accept(d.Percentage))return null;for(;this.accept(d.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(d.Percentage))return this.finish(e,f.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},n.prototype._tryParseKeyframeSelector=function(){var e=this.create(Qn),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(d.Percentage))return null;for(;this.accept(d.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(d.Percentage))return this.restoreAtMark(t),null;return this.peek(d.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},n.prototype._parseSupports=function(e){if(e===void 0&&(e=!1),!this.peekKeyword("@supports"))return null;var t=this.create(Et);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},n.prototype._parseSupportsDeclaration=function(e){return e===void 0&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},n.prototype._parseSupportsCondition=function(){var e=this.create(Ze);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(d.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},n.prototype._parseSupportsConditionInParens=function(){var e=this.create(Ze);if(this.accept(d.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),!e.addChild(this._tryToParseDeclaration([d.ParenthesisR]))&&!this._parseSupportsCondition()?this.finish(e,f.ConditionExpected):this.accept(d.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,f.RightParenthesisExpected,[d.ParenthesisR],[]);if(this.peek(d.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(d.ParenthesisL)){for(var r=1;this.token.type!==d.EOF&&r!==0;)this.token.type===d.ParenthesisL?r++:this.token.type===d.ParenthesisR&&r--,this.consumeToken();return this.finish(e)}else this.restoreAtMark(t)}return this.finish(e,f.LeftParenthesisExpected,[],[d.ParenthesisL])},n.prototype._parseMediaDeclaration=function(e){return e===void 0&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},n.prototype._parseMedia=function(e){if(e===void 0&&(e=!1),!this.peekKeyword("@media"))return null;var t=this.create(cn);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,f.MediaQueryExpected)},n.prototype._parseMediaQueryList=function(){var e=this.create(dn);if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);for(;this.accept(d.Comma);)if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);return this.finish(e)},n.prototype._parseMediaQuery=function(){var e=this.create(hn),t=this.mark();if(this.acceptIdent("not"),this.peek(d.ParenthesisL))this.restoreAtMark(t),e.addChild(this._parseMediaCondition());else{if(this.acceptIdent("only"),!e.addChild(this._parseIdent()))return null;this.acceptIdent("and")&&e.addChild(this._parseMediaCondition())}return this.finish(e)},n.prototype._parseRatio=function(){var e=this.mark(),t=this.create(Ri);return this._parseNumeric()?this.acceptDelim("/")?this._parseNumeric()?this.finish(t):this.finish(t,f.NumberExpected):(this.restoreAtMark(e),null):null},n.prototype._parseMediaCondition=function(){var e=this.create(Ci);this.acceptIdent("not");for(var t=!0;t;){if(!this.accept(d.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[],[d.CurlyL]);if(this.peek(d.ParenthesisL)||this.peekIdent("not")?e.addChild(this._parseMediaCondition()):e.addChild(this._parseMediaFeature()),!this.accept(d.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[d.CurlyL]);t=this.acceptIdent("and")||this.acceptIdent("or")}return this.finish(e)},n.prototype._parseMediaFeature=function(){var e=this,t=[d.ParenthesisR],r=this.create(_i),i=function(){return e.acceptDelim("<")||e.acceptDelim(">")?(e.hasWhitespace()||e.acceptDelim("="),!0):!!e.acceptDelim("=")};if(r.addChild(this._parseMediaFeatureName())){if(this.accept(d.Colon)){if(!r.addChild(this._parseMediaFeatureValue()))return this.finish(r,f.TermExpected,[],t)}else if(i()){if(!r.addChild(this._parseMediaFeatureValue()))return this.finish(r,f.TermExpected,[],t);if(i()&&!r.addChild(this._parseMediaFeatureValue()))return this.finish(r,f.TermExpected,[],t)}}else if(r.addChild(this._parseMediaFeatureValue())){if(!i())return this.finish(r,f.OperatorExpected,[],t);if(!r.addChild(this._parseMediaFeatureName()))return this.finish(r,f.IdentifierExpected,[],t);if(i()&&!r.addChild(this._parseMediaFeatureValue()))return this.finish(r,f.TermExpected,[],t)}else return this.finish(r,f.IdentifierExpected,[],t);return this.finish(r)},n.prototype._parseMediaFeatureName=function(){return this._parseIdent()},n.prototype._parseMediaFeatureValue=function(){return this._parseRatio()||this._parseTermExpression()},n.prototype._parseMedium=function(){var e=this.create(F);return e.addChild(this._parseIdent())?this.finish(e):null},n.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},n.prototype._parsePage=function(){if(!this.peekKeyword("@page"))return null;var e=this.create(Fi);if(this.consumeToken(),e.addChild(this._parsePageSelector())){for(;this.accept(d.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,f.IdentifierExpected)}return this._parseBody(e,this._parsePageDeclaration.bind(this))},n.prototype._parsePageMarginBox=function(){if(!this.peek(d.AtKeyword))return null;var e=this.create(Ei);return this.acceptOneKeyword(go)||this.markError(e,f.UnknownAtRule,[],[d.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},n.prototype._parsePageSelector=function(){if(!this.peek(d.Ident)&&!this.peek(d.Colon))return null;var e=this.create(F);return e.addChild(this._parseIdent()),this.accept(d.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)},n.prototype._parseDocument=function(){if(!this.peekKeyword("@-moz-document"))return null;var e=this.create(ki);return this.consumeToken(),this.resync([],[d.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},n.prototype._parseUnknownAtRule=function(){if(!this.peek(d.AtKeyword))return null;var e=this.create(un);e.addChild(this._parseUnknownAtRuleName());var t=function(){return i===0&&o===0&&s===0},r=0,i=0,o=0,s=0;e:for(;;){switch(this.token.type){case d.SemiColon:if(t())break e;break;case d.EOF:return i>0?this.finish(e,f.RightCurlyExpected):s>0?this.finish(e,f.RightSquareBracketExpected):o>0?this.finish(e,f.RightParenthesisExpected):this.finish(e);case d.CurlyL:r++,i++;break;case d.CurlyR:if(i--,r>0&&i===0){if(this.consumeToken(),s>0)return this.finish(e,f.RightSquareBracketExpected);if(o>0)return this.finish(e,f.RightParenthesisExpected);break e}if(i<0){if(o===0&&s===0)break e;return this.finish(e,f.LeftCurlyExpected)}break;case d.ParenthesisL:o++;break;case d.ParenthesisR:if(o--,o<0)return this.finish(e,f.LeftParenthesisExpected);break;case d.BracketL:s++;break;case d.BracketR:if(s--,s<0)return this.finish(e,f.LeftSquareBracketExpected);break}this.consumeToken()}return e},n.prototype._parseUnknownAtRuleName=function(){var e=this.create(F);return this.accept(d.AtKeyword)?this.finish(e):e},n.prototype._parseOperator=function(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(d.Dashmatch)||this.peek(d.Includes)||this.peek(d.SubstringOperator)||this.peek(d.PrefixOperator)||this.peek(d.SuffixOperator)||this.peekDelim("=")){var e=this.createNode(u.Operator);return this.consumeToken(),this.finish(e)}else return null},n.prototype._parseUnaryOperator=function(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;var e=this.create(F);return this.consumeToken(),this.finish(e)},n.prototype._parseCombinator=function(){if(this.peekDelim(">")){var e=this.create(F);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=u.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=u.SelectorCombinatorParent,this.finish(e)}else if(this.peekDelim("+")){var e=this.create(F);return this.consumeToken(),e.type=u.SelectorCombinatorSibling,this.finish(e)}else if(this.peekDelim("~")){var e=this.create(F);return this.consumeToken(),e.type=u.SelectorCombinatorAllSiblings,this.finish(e)}else if(this.peekDelim("/")){var e=this.create(F);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=u.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},n.prototype._parseSimpleSelector=function(){var e=this.create(De),t=0;for(e.addChild(this._parseElementName())&&t++;(t===0||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},n.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},n.prototype._parseSelectorIdent=function(){return this._parseIdent()},n.prototype._parseHash=function(){if(!this.peek(d.Hash)&&!this.peekDelim("#"))return null;var e=this.createNode(u.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,f.IdentifierExpected)}else this.consumeToken();return this.finish(e)},n.prototype._parseClass=function(){if(!this.peekDelim("."))return null;var e=this.createNode(u.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)},n.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(u.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),!t.addChild(this._parseSelectorIdent())&&!this.acceptDelim("*")?(this.restoreAtMark(e),null):this.finish(t)},n.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(u.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)},n.prototype._parseAttrib=function(){if(!this.peek(d.BracketL))return null;var e=this.create(zi);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i"),this.acceptIdent("s")),this.accept(d.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)):this.finish(e,f.IdentifierExpected)},n.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(d.ParenthesisL)){var r=function(){var i=e.create(F);if(!i.addChild(e._parseSelector(!1)))return null;for(;e.accept(d.Comma)&&i.addChild(e._parseSelector(!1)););return e.peek(d.ParenthesisR)?e.finish(i):null};if(t.addChild(this.try(r)||this._parseBinaryExpr()),!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected)}return this.finish(t)}return null},n.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(d.Colon))return null;var e=this.mark(),t=this.createNode(u.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(d.Colon),this.hasWhitespace()||!t.addChild(this._parseIdent())?this.finish(t,f.IdentifierExpected):this.finish(t))},n.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},n.prototype._parsePrio=function(){if(!this.peek(d.Exclamation))return null;var e=this.createNode(u.Prio);return this.accept(d.Exclamation)&&this.acceptIdent("important")?this.finish(e):null},n.prototype._parseExpr=function(e){e===void 0&&(e=!1);var t=this.create(pn);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(d.Comma)){if(e)return this.finish(t);this.consumeToken()}else if(!this.hasWhitespace())break;if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},n.prototype._parseUnicodeRange=function(){if(!this.peekIdent("u"))return null;var e=this.create(li);return this.acceptUnicodeRange()?this.finish(e):null},n.prototype._parseNamedLine=function(){if(!this.peek(d.BracketL))return null;var e=this.createNode(u.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(d.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)},n.prototype._parseBinaryExpr=function(e,t){var r=this.create(ht);if(!r.setLeft(e||this._parseTerm()))return null;if(!r.setOperator(t||this._parseOperator()))return this.finish(r);if(!r.setRight(this._parseTerm()))return this.finish(r,f.TermExpected);r=this.finish(r);var i=this._parseOperator();return i&&(r=this._parseBinaryExpr(r,i)),this.finish(r)},n.prototype._parseTerm=function(){var e=this.create(Di);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null},n.prototype._parseTermExpression=function(){return this._parseURILiteral()||this._parseUnicodeRange()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()},n.prototype._parseOperation=function(){if(!this.peek(d.ParenthesisL))return null;var e=this.create(F);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(d.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)},n.prototype._parseNumeric=function(){if(this.peek(d.Num)||this.peek(d.Percentage)||this.peek(d.Resolution)||this.peek(d.Length)||this.peek(d.EMS)||this.peek(d.EXS)||this.peek(d.Angle)||this.peek(d.Time)||this.peek(d.Dimension)||this.peek(d.Freq)){var e=this.create(zt);return this.consumeToken(),this.finish(e)}return null},n.prototype._parseStringLiteral=function(){if(!this.peek(d.String)&&!this.peek(d.BadString))return null;var e=this.createNode(u.StringLiteral);return this.consumeToken(),this.finish(e)},n.prototype._parseURILiteral=function(){if(!this.peekRegExp(d.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(u.URILiteral);return this.accept(d.Ident),this.hasWhitespace()||!this.peek(d.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(d.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected))},n.prototype._parseURLArgument=function(){var e=this.create(F);return!this.accept(d.String)&&!this.accept(d.BadString)&&!this.acceptUnquotedString()?null:this.finish(e)},n.prototype._parseIdent=function(e){if(!this.peek(d.Ident))return null;var t=this.create(te);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(d.Ident,/^--/),this.consumeToken(),this.finish(t)},n.prototype._parseFunction=function(){var e=this.mark(),t=this.create(Pe);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(d.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,f.ExpressionExpected);return this.accept(d.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)},n.prototype._parseFunctionIdentifier=function(){if(!this.peek(d.Ident))return null;var e=this.create(te);if(e.referenceTypes=[A.Function],this.acceptIdent("progid")){if(this.accept(d.Colon))for(;this.accept(d.Ident)&&this.acceptDelim("."););return this.finish(e)}return this.consumeToken(),this.finish(e)},n.prototype._parseFunctionArgument=function(){var e=this.create(we);return e.setValue(this._parseExpr(!0))?this.finish(e):null},n.prototype._parseHexColor=function(){if(this.peekRegExp(d.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(Dt);return this.consumeToken(),this.finish(e)}else return null},n}();function yo(n,e){var t=0,r=n.length;if(r===0)return 0;for(;te+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},n.prototype.findInScope=function(e,t){t===void 0&&(t=0);var r=e+t,i=yo(this.children,function(s){return s.offset>r});if(i===0)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},n.prototype.addSymbol=function(e){this.symbols.push(e)},n.prototype.getSymbol=function(e,t){for(var r=0;r{"use strict";var n={470:r=>{function i(a){if(typeof a!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(a))}function o(a,l){for(var c,h="",p=0,m=-1,g=0,w=0;w<=a.length;++w){if(w2){var x=h.lastIndexOf("/");if(x!==h.length-1){x===-1?(h="",p=0):p=(h=h.slice(0,x)).length-1-h.lastIndexOf("/"),m=w,g=0;continue}}else if(h.length===2||h.length===1){h="",p=0,m=w,g=0;continue}}l&&(h.length>0?h+="/..":h="..",p=2)}else h.length>0?h+="/"+a.slice(m+1,w):h=a.slice(m+1,w),p=w-m-1;m=w,g=0}else c===46&&g!==-1?++g:g=-1}return h}var s={resolve:function(){for(var a,l="",c=!1,h=arguments.length-1;h>=-1&&!c;h--){var p;h>=0?p=arguments[h]:(a===void 0&&(a=process.cwd()),p=a),i(p),p.length!==0&&(l=p+"/"+l,c=p.charCodeAt(0)===47)}return l=o(l,!c),c?l.length>0?"/"+l:"/":l.length>0?l:"."},normalize:function(a){if(i(a),a.length===0)return".";var l=a.charCodeAt(0)===47,c=a.charCodeAt(a.length-1)===47;return(a=o(a,!l)).length!==0||l||(a="."),a.length>0&&c&&(a+="/"),l?"/"+a:a},isAbsolute:function(a){return i(a),a.length>0&&a.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var a,l=0;l0&&(a===void 0?a=c:a+="/"+c)}return a===void 0?".":s.normalize(a)},relative:function(a,l){if(i(a),i(l),a===l||(a=s.resolve(a))===(l=s.resolve(l)))return"";for(var c=1;cw){if(l.charCodeAt(m+y)===47)return l.slice(m+y+1);if(y===0)return l.slice(m+y)}else p>w&&(a.charCodeAt(c+y)===47?x=y:y===0&&(x=0));break}var D=a.charCodeAt(c+y);if(D!==l.charCodeAt(m+y))break;D===47&&(x=y)}var M="";for(y=c+x+1;y<=h;++y)y!==h&&a.charCodeAt(y)!==47||(M.length===0?M+="..":M+="/..");return M.length>0?M+l.slice(m+x):(m+=x,l.charCodeAt(m)===47&&++m,l.slice(m))},_makeLong:function(a){return a},dirname:function(a){if(i(a),a.length===0)return".";for(var l=a.charCodeAt(0),c=l===47,h=-1,p=!0,m=a.length-1;m>=1;--m)if((l=a.charCodeAt(m))===47){if(!p){h=m;break}}else p=!1;return h===-1?c?"/":".":c&&h===1?"//":a.slice(0,h)},basename:function(a,l){if(l!==void 0&&typeof l!="string")throw new TypeError('"ext" argument must be a string');i(a);var c,h=0,p=-1,m=!0;if(l!==void 0&&l.length>0&&l.length<=a.length){if(l.length===a.length&&l===a)return"";var g=l.length-1,w=-1;for(c=a.length-1;c>=0;--c){var x=a.charCodeAt(c);if(x===47){if(!m){h=c+1;break}}else w===-1&&(m=!1,w=c+1),g>=0&&(x===l.charCodeAt(g)?--g==-1&&(p=c):(g=-1,p=w))}return h===p?p=w:p===-1&&(p=a.length),a.slice(h,p)}for(c=a.length-1;c>=0;--c)if(a.charCodeAt(c)===47){if(!m){h=c+1;break}}else p===-1&&(m=!1,p=c+1);return p===-1?"":a.slice(h,p)},extname:function(a){i(a);for(var l=-1,c=0,h=-1,p=!0,m=0,g=a.length-1;g>=0;--g){var w=a.charCodeAt(g);if(w!==47)h===-1&&(p=!1,h=g+1),w===46?l===-1?l=g:m!==1&&(m=1):l!==-1&&(m=-1);else if(!p){c=g+1;break}}return l===-1||h===-1||m===0||m===1&&l===h-1&&l===c+1?"":a.slice(l,h)},format:function(a){if(a===null||typeof a!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof a);return function(l,c){var h=c.dir||c.root,p=c.base||(c.name||"")+(c.ext||"");return h?h===c.root?h+p:h+"/"+p:p}(0,a)},parse:function(a){i(a);var l={root:"",dir:"",base:"",ext:"",name:""};if(a.length===0)return l;var c,h=a.charCodeAt(0),p=h===47;p?(l.root="/",c=1):c=0;for(var m=-1,g=0,w=-1,x=!0,y=a.length-1,D=0;y>=c;--y)if((h=a.charCodeAt(y))!==47)w===-1&&(x=!1,w=y+1),h===46?m===-1?m=y:D!==1&&(D=1):m!==-1&&(D=-1);else if(!x){g=y+1;break}return m===-1||w===-1||D===0||D===1&&m===w-1&&m===g+1?w!==-1&&(l.base=l.name=g===0&&p?a.slice(1,w):a.slice(g,w)):(g===0&&p?(l.name=a.slice(1,m),l.base=a.slice(1,w)):(l.name=a.slice(g,m),l.base=a.slice(g,w)),l.ext=a.slice(m,w)),g>0?l.dir=a.slice(0,g-1):p&&(l.dir="/"),l},sep:"/",delimiter:":",win32:null,posix:null};s.posix=s,r.exports=s},447:(r,i,o)=>{var s;if(o.r(i),o.d(i,{URI:()=>M,Utils:()=>pe}),typeof process=="object")s=process.platform==="win32";else if(typeof navigator=="object"){var a=navigator.userAgent;s=a.indexOf("Windows")>=0}var l,c,h=(l=function(C,b){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(k,_){k.__proto__=_}||function(k,_){for(var N in _)Object.prototype.hasOwnProperty.call(_,N)&&(k[N]=_[N])})(C,b)},function(C,b){if(typeof b!="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");function k(){this.constructor=C}l(C,b),C.prototype=b===null?Object.create(b):(k.prototype=b.prototype,new k)}),p=/^\w[\w\d+.-]*$/,m=/^\//,g=/^\/\//;function w(C,b){if(!C.scheme&&b)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(C.authority,'", path: "').concat(C.path,'", query: "').concat(C.query,'", fragment: "').concat(C.fragment,'"}'));if(C.scheme&&!p.test(C.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(C.path){if(C.authority){if(!m.test(C.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(g.test(C.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}var x="",y="/",D=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,M=function(){function C(b,k,_,N,O,B){B===void 0&&(B=!1),typeof b=="object"?(this.scheme=b.scheme||x,this.authority=b.authority||x,this.path=b.path||x,this.query=b.query||x,this.fragment=b.fragment||x):(this.scheme=function(Ce,se){return Ce||se?Ce:"file"}(b,B),this.authority=k||x,this.path=function(Ce,se){switch(Ce){case"https":case"http":case"file":se?se[0]!==y&&(se=y+se):se=y}return se}(this.scheme,_||x),this.query=N||x,this.fragment=O||x,w(this,B))}return C.isUri=function(b){return b instanceof C||!!b&&typeof b.authority=="string"&&typeof b.fragment=="string"&&typeof b.path=="string"&&typeof b.query=="string"&&typeof b.scheme=="string"&&typeof b.fsPath=="string"&&typeof b.with=="function"&&typeof b.toString=="function"},Object.defineProperty(C.prototype,"fsPath",{get:function(){return oe(this,!1)},enumerable:!1,configurable:!0}),C.prototype.with=function(b){if(!b)return this;var k=b.scheme,_=b.authority,N=b.path,O=b.query,B=b.fragment;return k===void 0?k=this.scheme:k===null&&(k=x),_===void 0?_=this.authority:_===null&&(_=x),N===void 0?N=this.path:N===null&&(N=x),O===void 0?O=this.query:O===null&&(O=x),B===void 0?B=this.fragment:B===null&&(B=x),k===this.scheme&&_===this.authority&&N===this.path&&O===this.query&&B===this.fragment?this:new P(k,_,N,O,B)},C.parse=function(b,k){k===void 0&&(k=!1);var _=D.exec(b);return _?new P(_[2]||x,ke(_[4]||x),ke(_[5]||x),ke(_[7]||x),ke(_[9]||x),k):new P(x,x,x,x,x)},C.file=function(b){var k=x;if(s&&(b=b.replace(/\\/g,y)),b[0]===y&&b[1]===y){var _=b.indexOf(y,2);_===-1?(k=b.substring(2),b=y):(k=b.substring(2,_),b=b.substring(_)||y)}return new P("file",k,b,x,x)},C.from=function(b){var k=new P(b.scheme,b.authority,b.path,b.query,b.fragment);return w(k,!0),k},C.prototype.toString=function(b){return b===void 0&&(b=!1),me(this,b)},C.prototype.toJSON=function(){return this},C.revive=function(b){if(b){if(b instanceof C)return b;var k=new P(b);return k._formatted=b.external,k._fsPath=b._sep===z?b.fsPath:null,k}return b},C}(),z=s?1:void 0,P=function(C){function b(){var k=C!==null&&C.apply(this,arguments)||this;return k._formatted=null,k._fsPath=null,k}return h(b,C),Object.defineProperty(b.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=oe(this,!1)),this._fsPath},enumerable:!1,configurable:!0}),b.prototype.toString=function(k){return k===void 0&&(k=!1),k?me(this,!0):(this._formatted||(this._formatted=me(this,!1)),this._formatted)},b.prototype.toJSON=function(){var k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=z),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k},b}(M),L=((c={})[58]="%3A",c[47]="%2F",c[63]="%3F",c[35]="%23",c[91]="%5B",c[93]="%5D",c[64]="%40",c[33]="%21",c[36]="%24",c[38]="%26",c[39]="%27",c[40]="%28",c[41]="%29",c[42]="%2A",c[43]="%2B",c[44]="%2C",c[59]="%3B",c[61]="%3D",c[32]="%20",c);function $(C,b){for(var k=void 0,_=-1,N=0;N=97&&O<=122||O>=65&&O<=90||O>=48&&O<=57||O===45||O===46||O===95||O===126||b&&O===47)_!==-1&&(k+=encodeURIComponent(C.substring(_,N)),_=-1),k!==void 0&&(k+=C.charAt(N));else{k===void 0&&(k=C.substr(0,N));var B=L[O];B!==void 0?(_!==-1&&(k+=encodeURIComponent(C.substring(_,N)),_=-1),k+=B):_===-1&&(_=N)}}return _!==-1&&(k+=encodeURIComponent(C.substring(_))),k!==void 0?k:C}function ue(C){for(var b=void 0,k=0;k1&&C.scheme==="file"?"//".concat(C.authority).concat(C.path):C.path.charCodeAt(0)===47&&(C.path.charCodeAt(1)>=65&&C.path.charCodeAt(1)<=90||C.path.charCodeAt(1)>=97&&C.path.charCodeAt(1)<=122)&&C.path.charCodeAt(2)===58?b?C.path.substr(1):C.path[1].toLowerCase()+C.path.substr(2):C.path,s&&(k=k.replace(/\//g,"\\")),k}function me(C,b){var k=b?ue:$,_="",N=C.scheme,O=C.authority,B=C.path,Ce=C.query,se=C.fragment;if(N&&(_+=N,_+=":"),(O||N==="file")&&(_+=y,_+=y),O){var ge=O.indexOf("@");if(ge!==-1){var Xe=O.substr(0,ge);O=O.substr(ge+1),(ge=Xe.indexOf(":"))===-1?_+=k(Xe,!1):(_+=k(Xe.substr(0,ge),!1),_+=":",_+=k(Xe.substr(ge+1),!1)),_+="@"}(ge=(O=O.toLowerCase()).indexOf(":"))===-1?_+=k(O,!1):(_+=k(O.substr(0,ge),!1),_+=O.substr(ge))}if(B){if(B.length>=3&&B.charCodeAt(0)===47&&B.charCodeAt(2)===58)(Me=B.charCodeAt(1))>=65&&Me<=90&&(B="/".concat(String.fromCharCode(Me+32),":").concat(B.substr(3)));else if(B.length>=2&&B.charCodeAt(1)===58){var Me;(Me=B.charCodeAt(0))>=65&&Me<=90&&(B="".concat(String.fromCharCode(Me+32),":").concat(B.substr(2)))}_+=k(B,!0)}return Ce&&(_+="?",_+=k(Ce,!1)),se&&(_+="#",_+=b?se:$(se,!1)),_}function ve(C){try{return decodeURIComponent(C)}catch{return C.length>3?C.substr(0,3)+ve(C.substr(3)):C}}var ye=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ke(C){return C.match(ye)?C.replace(ye,function(b){return ve(b)}):C}var pe,G=o(470),Ie=function(C,b,k){if(k||arguments.length===2)for(var _,N=0,O=b.length;N{for(var o in i)t.o(i,o)&&!t.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:i[o]})},t.o=(r,i)=>Object.prototype.hasOwnProperty.call(r,i),t.r=r=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t(447)})();var{URI:qt,Utils:En}=xo;var ea=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;r0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]=0;s--){var a=this.nodePath[s];if(a instanceof ct)this.getCompletionsForDeclarationProperty(a.getParent(),o);else if(a instanceof pn)a.parent instanceof Rt?this.getVariableProposals(null,o):this.getCompletionsForExpression(a,o);else if(a instanceof De){var l=a.findAParent(u.ExtendsReference,u.Ruleset);if(l)if(l.type===u.ExtendsReference)this.getCompletionsForExtendsReference(l,a,o);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),o)}}else if(a instanceof we)this.getCompletionsForFunctionArgument(a,a.getParent(),o);else if(a instanceof Ft)this.getCompletionsForDeclarations(a,o);else if(a instanceof $e)this.getCompletionsForVariableDeclaration(a,o);else if(a instanceof Te)this.getCompletionsForRuleSet(a,o);else if(a instanceof Rt)this.getCompletionsForInterpolation(a,o);else if(a instanceof Qe)this.getCompletionsForFunctionDeclaration(a,o);else if(a instanceof et)this.getCompletionsForMixinReference(a,o);else if(a instanceof Pe)this.getCompletionsForFunctionArgument(null,a,o);else if(a instanceof Et)this.getCompletionsForSupports(a,o);else if(a instanceof Ze)this.getCompletionsForSupportsCondition(a,o);else if(a instanceof qe)this.getCompletionsForExtendsReference(a,null,o);else if(a.type===u.URILiteral)this.getCompletionForUriLiteralValue(a,o);else if(a.parent===null)this.getCompletionForTopLevel(o);else if(a.type===u.StringLiteral&&this.isImportPathParent(a.parent.type))this.getCompletionForImportPath(a,o);else continue;if(o.items.length>0||this.offset>a.offset)return this.finalize(o)}return this.getCompletionsForStylesheet(o),o.items.length===0&&this.variablePrefix&&this.currentWord.indexOf(this.variablePrefix)===0&&this.getVariableProposals(null,o),this.finalize(o)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},n.prototype.isImportPathParent=function(e){return e===u.Import},n.prototype.finalize=function(e){return e},n.prototype.findInNodePath=function(){for(var e=[],t=0;t=0;r--){var i=this.nodePath[r];if(e.indexOf(i.type)!==-1)return i}return null},n.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},n.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,o=this.isCompletePropertyWithSemicolonEnabled,s=this.cssDataManager.getProperties();return s.forEach(function(a){var l,c,h=!1;e?(l=r.getCompletionRange(e.getProperty()),c=a.name,he(e.colonPosition)||(c+=": ",h=!0)):(l=r.getCompletionRange(null),c=a.name+": ",h=!0),!e&&o&&(c+="$0;"),e&&!e.semicolonPosition&&o&&r.offset>=r.textDocument.offsetAt(l.end)&&(c+="$0;");var p={label:a.name,documentation:ze(a,r.doesSupportMarkdown()),tags:Gt(a)?[Ne.Deprecated]:[],textEdit:T.replace(l,c),insertTextFormat:re.Snippet,kind:R.Property};a.restrictions||(h=!1),i&&h&&(p.command=_o);var m=typeof a.relevance=="number"?Math.min(Math.max(a.relevance,0),99):50,g=(255-m).toString(16),w=q(a.name,"-")?Re.VendorPrefixed:Re.Normal;p.sortText=w+"_"+g,t.items.push(p)}),this.completionParticipants.forEach(function(a){a.onCssProperty&&a.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})}),t},Object.defineProperty(n.prototype,"isTriggerPropertyValueCompletionEnabled",{get:function(){var e,t;return(t=(e=this.documentSettings)===null||e===void 0?void 0:e.triggerPropertyValueCompletion)!==null&&t!==void 0?t:!0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isCompletePropertyWithSemicolonEnabled",{get:function(){var e,t;return(t=(e=this.documentSettings)===null||e===void 0?void 0:e.completePropertyWithSemicolon)!==null&&t!==void 0?t:!0},enumerable:!1,configurable:!0}),n.prototype.getCompletionsForDeclarationValue=function(e,t){for(var r=this,i=e.getFullPropertyName(),o=this.cssDataManager.getProperty(i),s=e.getValue()||null;s&&s.hasChildren();)s=s.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach(function(w){w.onCssPropertyValue&&w.onCssPropertyValue({propertyName:i,propertyValue:r.currentWord,range:r.getCompletionRange(s)})}),o){if(o.restrictions)for(var a=0,l=o.restrictions;a=e.offset+2&&this.getVariableProposals(null,t),t},n.prototype.getVariableProposals=function(e,t){for(var r=this.getSymbolContext().findSymbolsAtOffset(this.offset,A.Variable),i=0,o=r;i0){var o=this.currentWord.match(/^-?\d[\.\d+]*/);o&&(i=o[0],r.isIncomplete=i.length===this.currentWord.length)}else this.currentWord.length===0&&(r.isIncomplete=!0);if(t&&t.parent&&t.parent.type===u.Term&&(t=t.getParent()),e.restrictions)for(var s=0,a=e.restrictions;s=r.end;if(i)return this.getCompletionForTopLevel(t);var o=!r||this.offset<=r.offset;return o?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},n.prototype.getCompletionsForSelector=function(e,t,r){var i=this,o=this.findInNodePath(u.PseudoSelector,u.IdentifierSelector,u.ClassSelector,u.ElementNameSelector);!o&&this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord,this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord),this.defaultReplaceRange=W.create(Q.create(this.position.line,this.position.character-this.currentWord.length),this.position));var s=this.cssDataManager.getPseudoClasses();s.forEach(function(y){var D=bt(y.name),M={label:y.name,textEdit:T.replace(i.getCompletionRange(o),D),documentation:ze(y,i.doesSupportMarkdown()),tags:Gt(y)?[Ne.Deprecated]:[],kind:R.Function,insertTextFormat:y.name!==D?We:void 0};q(y.name,":-")&&(M.sortText=Re.VendorPrefixed),r.items.push(M)});var a=this.cssDataManager.getPseudoElements();if(a.forEach(function(y){var D=bt(y.name),M={label:y.name,textEdit:T.replace(i.getCompletionRange(o),D),documentation:ze(y,i.doesSupportMarkdown()),tags:Gt(y)?[Ne.Deprecated]:[],kind:R.Function,insertTextFormat:y.name!==D?We:void 0};q(y.name,"::-")&&(M.sortText=Re.VendorPrefixed),r.items.push(M)}),!t){for(var l=0,c=mo;l0){var D=w.substr(y.offset,y.length);return D.charAt(0)==="."&&!g[D]&&(g[D]=!0,r.items.push({label:D,textEdit:T.replace(i.getCompletionRange(o),D),kind:R.Keyword})),!1}return!0}),e&&e.isNested()){var x=e.getSelectors().findFirstChildBeforeOffset(this.offset);x&&e.getSelectors().getChildren().indexOf(x)===0&&this.getPropertyProposals(null,r)}return r},n.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var r=e.findFirstChildBeforeOffset(this.offset);if(!r)return this.getCompletionsForDeclarationProperty(null,t);if(r instanceof sn){var i=r;if(!he(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(he(i.semicolonPosition)&&i.semicolonPositione.colonPosition&&this.getVariableProposals(e.getValue(),t),t},n.prototype.getCompletionsForExpression=function(e,t){var r=e.getParent();if(r instanceof we)return this.getCompletionsForFunctionArgument(r,r.getParent(),t),t;var i=e.findParent(u.Declaration);if(!i)return this.getTermProposals(void 0,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof zt||o instanceof te?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},n.prototype.getCompletionsForFunctionArgument=function(e,t,r){var i=t.getIdentifier();return i&&i.matches("var")&&(!t.getArguments().hasChildren()||t.getArguments().getChild(0)===e)&&this.getVariableProposalsForCSSVarFunction(r),r},n.prototype.getCompletionsForFunctionDeclaration=function(e,t){var r=e.getDeclarations();return r&&this.offset>r.offset&&this.offsete.lParent&&(!he(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},n.prototype.getCompletionsForSupports=function(e,t){var r=e.getDeclarations(),i=!r||this.offset<=r.offset;if(i){var o=e.findFirstChildBeforeOffset(this.offset);return o instanceof Ze?this.getCompletionsForSupportsCondition(o,t):t}return this.getCompletionForTopLevel(t)},n.prototype.getCompletionsForExtendsReference=function(e,t,r){return r},n.prototype.getCompletionForUriLiteralValue=function(e,t){var r,i,o;if(e.hasChildren()){var a=e.getChild(0);r=a.getText(),i=this.position,o=this.getCompletionRange(a)}else{r="",i=this.position;var s=this.textDocument.positionAt(e.offset+4);o=W.create(s,s)}return this.completionParticipants.forEach(function(l){l.onCssURILiteralValue&&l.onCssURILiteralValue({uriValue:r,position:i,range:o})}),t},n.prototype.getCompletionForImportPath=function(e,t){var r=this;return this.completionParticipants.forEach(function(i){i.onCssImportPath&&i.onCssImportPath({pathValue:e.getText(),position:r.position,range:r.getCompletionRange(e)})}),t},n.prototype.hasCharacterAtPosition=function(e,t){var r=this.textDocument.getText();return e>=0&&e=0&&` +\r":{[()]},*>+`.indexOf(r.charAt(t))===-1;)t--;return r.substring(t+1,e)}function Fo(n){return n.toLowerCase()in jt||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)}var zo=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),pa=H(),Rr=function(){function n(){this.parent=null,this.children=null,this.attributes=null}return n.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,r=this.attributes;t"),this.writeLine(t,i.join(""))},n}(),Le;(function(n){function e(r,i){return i+t(r)+i}n.ensure=e;function t(r){var i=r.match(/^['"](.*)["']$/);return i?i[1]:r}n.remove=t})(Le||(Le={}));var Do=function(){function n(){this.id=0,this.attr=0,this.tag=0}return n}();function Ro(n,e){for(var t=new Rr,r=0,i=n.getChildren();r1){var c=e.cloneWithParent();t.addChild(c.findRoot()),t=c}t.append(s[l])}}break;case u.SelectorPlaceholder:if(o.matches("@at-root"))return t;case u.ElementNameSelector:var h=o.getText();t.addAttr("name",h==="*"?"element":be(h));break;case u.ClassSelector:t.addAttr("class",be(o.getText().substring(1)));break;case u.IdentifierSelector:t.addAttr("id",be(o.getText().substring(1)));break;case u.MixinDeclaration:t.addAttr("class",o.getName());break;case u.PseudoSelector:t.addAttr(be(o.getText()),"");break;case u.AttributeSelector:var p=o,m=p.getIdentifier();if(m){var g=p.getValue(),w=p.getOperator(),x=void 0;if(g&&w)switch(be(w.getText())){case"|=":x="".concat(Le.remove(be(g.getText())),"-\u2026");break;case"^=":x="".concat(Le.remove(be(g.getText())),"\u2026");break;case"$=":x="\u2026".concat(Le.remove(be(g.getText())));break;case"~=":x=" \u2026 ".concat(Le.remove(be(g.getText()))," \u2026 ");break;case"*=":x="\u2026".concat(Le.remove(be(g.getText())),"\u2026");break;default:x=Le.remove(be(g.getText()));break}t.addAttr(be(m.getText()),x)}break}}return t}function be(n){var e=new Fe;e.setSource(n);var t=e.scanUnquotedString();return t?t.text:n}var Io=function(){function n(e){this.cssDataManager=e}return n.prototype.selectorToMarkedString=function(e){var t=fa(e);if(t){var r=new Eo('"').print(t);return r.push(this.selectorToSpecificityMarkedString(e)),r}else return[]},n.prototype.simpleSelectorToMarkedString=function(e){var t=Ro(e),r=new Eo('"').print(t);return r.push(this.selectorToSpecificityMarkedString(e)),r},n.prototype.isPseudoElementIdentifier=function(e){var t=e.match(/^::?([\w-]+)/);return t?!!this.cssDataManager.getPseudoElement("::"+t[1]):!1},n.prototype.selectorToSpecificityMarkedString=function(e){var t=this,r=function(o){var s=new Do;e:for(var a=0,l=o.getChildren();a0){for(var p=new Do,m=0,g=c.getChildren();mp.id){p=z;continue}else if(z.idp.attr){p=z;continue}else if(z.attrp.tag){p=z;continue}}}s.id+=p.id,s.attr+=p.attr,s.tag+=p.tag;continue e}s.attr++;break}if(c.getChildren().length>0){var z=r(c);s.id+=z.id,s.attr+=z.attr,s.tag+=z.tag}}return s},i=r(e);return pa("specificity","[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})",i.id,i.attr,i.tag)},n}();var ua=function(){function n(e){this.prev=null,this.element=e}return n.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof yt)&&e.getChildren().some(function(h){return h.hasChildren()&&h.getChild(0).type===u.SelectorCombinator})){var r=this.element.findRoot();r.parent instanceof yt&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i=0;s--){var a=t[s].getSelectors().getChild(0);a&&o.processSelector(a)}return o.processSelector(n),e}var In=function(){function n(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new Io(t)}return n.prototype.configure=function(e){this.defaultSettings=e},n.prototype.doHover=function(e,t,r,i){i===void 0&&(i=this.defaultSettings);function o(y){return W.create(e.positionAt(y.offset),e.positionAt(y.end))}for(var s=e.offsetAt(t),a=lt(r,s),l=null,c=0;c0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]=o.length/2&&s.push({property:D.name,score:M})}),s.sort(function(D,M){return M.score-D.score||D.property.localeCompare(M.property)});for(var a=3,l=0,c=s;l=0;l--){var c=a[l];if(c instanceof ae){var h=c.getProperty();if(h&&h.offset===o&&h.end===s){this.getFixesForUnknownProperty(e,h,r,i);return}}}},n}();var Uo=function(){function n(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e}return n}();function Yt(n,e,t,r){var i=n[e];i.value=t,t&&(Fr(i.properties,r)||i.properties.push(r))}function xa(n,e,t){Yt(n,"top",e,t),Yt(n,"right",e,t),Yt(n,"bottom",e,t),Yt(n,"left",e,t)}function ie(n,e,t,r){e==="top"||e==="right"||e==="bottom"||e==="left"?Yt(n,e,t,r):xa(n,t,r)}function Ir(n,e,t){switch(e.length){case 1:ie(n,void 0,e[0],t);break;case 2:ie(n,"top",e[0],t),ie(n,"bottom",e[0],t),ie(n,"right",e[1],t),ie(n,"left",e[1],t);break;case 3:ie(n,"top",e[0],t),ie(n,"right",e[1],t),ie(n,"left",e[1],t),ie(n,"bottom",e[2],t);break;case 4:ie(n,"top",e[0],t),ie(n,"right",e[1],t),ie(n,"bottom",e[2],t),ie(n,"left",e[3],t);break}}function Mr(n,e){for(var t=0,r=e;t"u"))switch(i.fullPropertyName){case"box-sizing":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case"width":e.width=i;break;case"height":e.height=i;break;default:var s=i.fullPropertyName.split("-");switch(s[0]){case"border":switch(s[1]){case void 0:case"top":case"right":case"bottom":case"left":switch(s[2]){case void 0:ie(e,s[1],ka(o),i);break;case"width":ie(e,s[1],Qt(o,!1),i);break;case"style":ie(e,s[1],Tn(o,!0),i);break}break;case"width":Ir(e,Lo(o.getChildren(),!1),i);break;case"style":Ir(e,Sa(o.getChildren(),!0),i);break}break;case"padding":s.length===1?Ir(e,Lo(o.getChildren(),!0),i):ie(e,s[1],Qt(o,!0),i);break}break}}return e}var Ue=H(),jo=function(){function n(){this.data={}}return n.prototype.add=function(e,t,r){var i=this.data[e];i||(i={nodes:[],names:[]},this.data[e]=i),i.names.push(t),r&&i.nodes.push(r)},n}(),Vo=function(){function n(e,t,r){var i=this;this.cssDataManager=r,this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new jo,this.validProperties={};var o=t.getSetting(Oo.ValidProperties);Array.isArray(o)&&o.forEach(function(s){if(typeof s=="string"){var a=s.trim().toLowerCase();a.length&&(i.validProperties[a]=!0)}})}return n.entries=function(e,t,r,i,o){var s=new n(t,r,i);return e.acceptVisitor(s),s.completeValidations(),s.getEntries(o)},n.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},n.prototype.fetch=function(e,t){for(var r=[],i=0,o=e;i0)for(var x=this.fetch(r,"float"),y=0;y0)for(var x=this.fetch(r,"vertical-align"),y=0;y1)for(var $=0;$")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){var t=this.createNode(u.Operator);return this.consumeToken(),this.finish(t)}return n.prototype._parseOperator.call(this)},e.prototype._parseUnaryOperator=function(){if(this.peekIdent("not")){var t=this.create(F);return this.consumeToken(),this.finish(t)}return n.prototype._parseUnaryOperator.call(this)},e.prototype._parseRuleSetDeclaration=function(){return this.peek(d.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||n.prototype._parseRuleSetDeclarationAtStatement.call(this):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||n.prototype._parseRuleSetDeclaration.call(this)},e.prototype._parseDeclaration=function(t){var r=this._tryParseCustomPropertyDeclaration(t);if(r)return r;var i=this.create(ae);if(!i.setProperty(this._parseProperty()))return null;if(!this.accept(d.Colon))return this.finish(i,f.ColonExpected,[d.Colon],t||[d.SemiColon]);this.prevToken&&(i.colonPosition=this.prevToken.offset);var o=!1;if(i.setValue(this._parseExpr())&&(o=!0,i.addChild(this._parsePrio())),this.peek(d.CurlyL))i.setNestedProperties(this._parseNestedProperties());else if(!o)return this.finish(i,f.PropertyValueExpected);return this.peek(d.SemiColon)&&(i.semicolonPosition=this.token.offset),this.finish(i)},e.prototype._parseNestedProperties=function(){var t=this.create(Yn);return this._parseBody(t,this._parseDeclaration.bind(this))},e.prototype._parseExtends=function(){if(this.peekKeyword("@extend")){var t=this.create(qe);if(this.consumeToken(),!t.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(t,f.SelectorExpected);for(;this.accept(d.Comma);)t.getSelectors().addChild(this._parseSimpleSelector());return this.accept(d.Exclamation)&&!this.acceptIdent("optional")?this.finish(t,f.UnknownKeyword):this.finish(t)}return null},e.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||n.prototype._parseSimpleSelectorBody.call(this)},e.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var t=this.createNode(u.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(d.Num)||this.accept(d.Dimension)||t.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(t)}return null},e.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim("%")){var t=this.createNode(u.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(t)}else if(this.peekKeyword("@at-root")){var t=this.createNode(u.SelectorPlaceholder);return this.consumeToken(),this.finish(t)}return null},e.prototype._parseElementName=function(){var t=this.mark(),r=n.prototype._parseElementName.call(this);return r&&!this.hasWhitespace()&&this.peek(d.ParenthesisL)?(this.restoreAtMark(t),null):r},e.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||n.prototype._tryParsePseudoIdentifier.call(this)},e.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;var t=this.createNode(u.Debug);return this.consumeToken(),t.addChild(this._parseExpr()),this.finish(t)},e.prototype._parseControlStatement=function(t){return t===void 0&&(t=this._parseRuleSetDeclaration.bind(this)),this.peek(d.AtKeyword)?this._parseIfStatement(t)||this._parseForStatement(t)||this._parseEachStatement(t)||this._parseWhileStatement(t):null},e.prototype._parseIfStatement=function(t){return this.peekKeyword("@if")?this._internalParseIfStatement(t):null},e.prototype._internalParseIfStatement=function(t){var r=this.create(pi);if(this.consumeToken(),!r.setExpression(this._parseExpr(!0)))return this.finish(r,f.ExpressionExpected);if(this._parseBody(r,t),this.acceptKeyword("@else")){if(this.peekIdent("if"))r.setElseClause(this._internalParseIfStatement(t));else if(this.peek(d.CurlyL)){var i=this.create(gi);this._parseBody(i,t),r.setElseClause(i)}}return this.finish(r)},e.prototype._parseForStatement=function(t){if(!this.peekKeyword("@for"))return null;var r=this.create(ui);return this.consumeToken(),r.setVariable(this._parseVariable())?this.acceptIdent("from")?r.addChild(this._parseBinaryExpr())?!this.acceptIdent("to")&&!this.acceptIdent("through")?this.finish(r,On.ThroughOrToExpected,[d.CurlyR]):r.addChild(this._parseBinaryExpr())?this._parseBody(r,t):this.finish(r,f.ExpressionExpected,[d.CurlyR]):this.finish(r,f.ExpressionExpected,[d.CurlyR]):this.finish(r,On.FromExpected,[d.CurlyR]):this.finish(r,f.VariableNameExpected,[d.CurlyR])},e.prototype._parseEachStatement=function(t){if(!this.peekKeyword("@each"))return null;var r=this.create(mi);this.consumeToken();var i=r.getVariables();if(!i.addChild(this._parseVariable()))return this.finish(r,f.VariableNameExpected,[d.CurlyR]);for(;this.accept(d.Comma);)if(!i.addChild(this._parseVariable()))return this.finish(r,f.VariableNameExpected,[d.CurlyR]);return this.finish(i),this.acceptIdent("in")?r.addChild(this._parseExpr())?this._parseBody(r,t):this.finish(r,f.ExpressionExpected,[d.CurlyR]):this.finish(r,On.InExpected,[d.CurlyR])},e.prototype._parseWhileStatement=function(t){if(!this.peekKeyword("@while"))return null;var r=this.create(fi);return this.consumeToken(),r.addChild(this._parseBinaryExpr())?this._parseBody(r,t):this.finish(r,f.ExpressionExpected,[d.CurlyR])},e.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},e.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword("@function"))return null;var t=this.create(Qe);if(this.consumeToken(),!t.setIdentifier(this._parseIdent([A.Function])))return this.finish(t,f.IdentifierExpected,[d.CurlyR]);if(!this.accept(d.ParenthesisL))return this.finish(t,f.LeftParenthesisExpected,[d.CurlyR]);if(t.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(t,f.VariableNameExpected)}return this.accept(d.ParenthesisR)?this._parseBody(t,this._parseFunctionBodyDeclaration.bind(this)):this.finish(t,f.RightParenthesisExpected,[d.CurlyR])},e.prototype._parseReturnStatement=function(){if(!this.peekKeyword("@return"))return null;var t=this.createNode(u.ReturnStatement);return this.consumeToken(),t.addChild(this._parseExpr())?this.finish(t):this.finish(t,f.ExpressionExpected)},e.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword("@mixin"))return null;var t=this.create(Ae);if(this.consumeToken(),!t.setIdentifier(this._parseIdent([A.Mixin])))return this.finish(t,f.IdentifierExpected,[d.CurlyR]);if(this.accept(d.ParenthesisL)){if(t.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(t,f.VariableNameExpected)}if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected,[d.CurlyR])}return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseParameterDeclaration=function(){var t=this.create(Be);return t.setIdentifier(this._parseVariable())?(this.accept(en),this.accept(d.Colon)&&!t.setDefaultValue(this._parseExpr(!0))?this.finish(t,f.VariableValueExpected,[],[d.Comma,d.ParenthesisR]):this.finish(t)):null},e.prototype._parseMixinContent=function(){if(!this.peekKeyword("@content"))return null;var t=this.create(Ii);if(this.consumeToken(),this.accept(d.ParenthesisL)){if(t.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getArguments().addChild(this._parseFunctionArgument()))return this.finish(t,f.ExpressionExpected)}if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected)}return this.finish(t)},e.prototype._parseMixinReference=function(){if(!this.peekKeyword("@include"))return null;var t=this.create(et);this.consumeToken();var r=this._parseIdent([A.Mixin]);if(!t.setIdentifier(r))return this.finish(t,f.IdentifierExpected,[d.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){var i=this._parseIdent([A.Mixin]);if(!i)return this.finish(t,f.IdentifierExpected,[d.CurlyR]);var o=this.create(Zn);r.referenceTypes=[A.Module],o.setIdentifier(r),t.setIdentifier(i),t.addChild(o)}if(this.accept(d.ParenthesisL)){if(t.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getArguments().addChild(this._parseFunctionArgument()))return this.finish(t,f.ExpressionExpected)}if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(d.CurlyL))&&t.setContent(this._parseMixinContentDeclaration()),this.finish(t)},e.prototype._parseMixinContentDeclaration=function(){var t=this.create(Mi);if(this.acceptIdent("using")){if(!this.accept(d.ParenthesisL))return this.finish(t,f.LeftParenthesisExpected,[d.CurlyL]);if(t.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(t,f.VariableNameExpected)}if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected,[d.CurlyL])}return this.peek(d.CurlyL)&&this._parseBody(t,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(t)},e.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},e.prototype._parseFunctionArgument=function(){var t=this.create(we),r=this.mark(),i=this._parseVariable();if(i)if(this.accept(d.Colon))t.setIdentifier(i);else{if(this.accept(en))return t.setValue(i),this.finish(t);this.restoreAtMark(r)}return t.setValue(this._parseExpr(!0))?(this.accept(en),t.addChild(this._parsePrio()),this.finish(t)):t.setValue(this._tryParsePrio())?this.finish(t):null},e.prototype._parseURLArgument=function(){var t=this.mark(),r=n.prototype._parseURLArgument.call(this);if(!r||!this.peek(d.ParenthesisR)){this.restoreAtMark(t);var i=this.create(F);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return r},e.prototype._parseOperation=function(){if(!this.peek(d.ParenthesisL))return null;var t=this.create(F);for(this.consumeToken();t.addChild(this._parseListElement());)this.accept(d.Comma);return this.accept(d.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)},e.prototype._parseListElement=function(){var t=this.create(Ti),r=this._parseBinaryExpr();if(!r)return null;if(this.accept(d.Colon)){if(t.setKey(r),!t.setValue(this._parseBinaryExpr()))return this.finish(t,f.ExpressionExpected)}else t.setValue(r);return this.finish(t)},e.prototype._parseUse=function(){if(!this.peekKeyword("@use"))return null;var t=this.create(vi);if(this.consumeToken(),!t.addChild(this._parseStringLiteral()))return this.finish(t,f.StringLiteralExpected);if(!this.peek(d.SemiColon)&&!this.peek(d.EOF)){if(!this.peekRegExp(d.Ident,/as|with/))return this.finish(t,f.UnknownKeyword);if(this.acceptIdent("as")&&!t.setIdentifier(this._parseIdent([A.Module]))&&!this.acceptDelim("*"))return this.finish(t,f.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(d.ParenthesisL))return this.finish(t,f.LeftParenthesisExpected,[d.ParenthesisR]);if(!t.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(t,f.VariableNameExpected);for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(t,f.VariableNameExpected);if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected)}}return!this.accept(d.SemiColon)&&!this.accept(d.EOF)?this.finish(t,f.SemiColonExpected):this.finish(t)},e.prototype._parseModuleConfigDeclaration=function(){var t=this.create(yi);return t.setIdentifier(this._parseVariable())?!this.accept(d.Colon)||!t.setValue(this._parseExpr(!0))?this.finish(t,f.VariableValueExpected,[],[d.Comma,d.ParenthesisR]):this.accept(d.Exclamation)&&(this.hasWhitespace()||!this.acceptIdent("default"))?this.finish(t,f.UnknownKeyword):this.finish(t):null},e.prototype._parseForward=function(){if(!this.peekKeyword("@forward"))return null;var t=this.create(wi);if(this.consumeToken(),!t.addChild(this._parseStringLiteral()))return this.finish(t,f.StringLiteralExpected);if(this.acceptIdent("with")){if(!this.accept(d.ParenthesisL))return this.finish(t,f.LeftParenthesisExpected,[d.ParenthesisR]);if(!t.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(t,f.VariableNameExpected);for(;this.accept(d.Comma)&&!this.peek(d.ParenthesisR);)if(!t.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(t,f.VariableNameExpected);if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected)}if(!this.peek(d.SemiColon)&&!this.peek(d.EOF)){if(!this.peekRegExp(d.Ident,/as|hide|show/))return this.finish(t,f.UnknownKeyword);if(this.acceptIdent("as")){var r=this._parseIdent([A.Forward]);if(!t.setIdentifier(r))return this.finish(t,f.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(t,f.WildcardExpected)}if((this.peekIdent("hide")||this.peekIdent("show"))&&!t.addChild(this._parseForwardVisibility()))return this.finish(t,f.IdentifierOrVariableExpected)}return!this.accept(d.SemiColon)&&!this.accept(d.EOF)?this.finish(t,f.SemiColonExpected):this.finish(t)},e.prototype._parseForwardVisibility=function(){var t=this.create(xi);for(t.setIdentifier(this._parseIdent());t.addChild(this._parseVariable()||this._parseIdent());)this.accept(d.Comma);return t.getChildren().length>1?t:null},e.prototype._parseSupportsCondition=function(){return this._parseInterpolation()||n.prototype._parseSupportsCondition.call(this)},e}(gt);var Na=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),S=H(),Ko=function(n){Na(e,n);function e(t,r){var i=n.call(this,"$",t,r)||this;return qo(e.scssModuleLoaders),qo(e.scssModuleBuiltIns),i}return e.prototype.isImportPathParent=function(t){return t===u.Forward||t===u.Use||n.prototype.isImportPathParent.call(this,t)},e.prototype.getCompletionForImportPath=function(t,r){var i=t.getParent().type;if(i===u.Forward||i===u.Use)for(var o=0,s=e.scssModuleBuiltIns;o0){var t=typeof e.documentation=="string"?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+=` + +`,t.value+=e.references.map(function(r){return"[".concat(r.name,"](").concat(r.url,")")}).join(" | "),e.documentation=t}})}var Oa=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),Go=47,Wa=10,La=13,Ua=12,jr=96,Vr=46,ja=d.CustomToken,Wn=ja++,Ln=function(n){Oa(e,n);function e(){return n!==null&&n.apply(this,arguments)||this}return e.prototype.scanNext=function(t){var r=this.escapedJavaScript();return r!==null?this.finishToken(t,r):this.stream.advanceIfChars([Vr,Vr,Vr])?this.finishToken(t,Wn):n.prototype.scanNext.call(this,t)},e.prototype.comment=function(){return n.prototype.comment.call(this)?!0:!this.inURL&&this.stream.advanceIfChars([Go,Go])?(this.stream.advanceWhileChar(function(t){switch(t){case Wa:case La:case Ua:return!1;default:return!0}}),!0):!1},e.prototype.escapedJavaScript=function(){var t=this.stream.peekChar();return t===jr?(this.stream.advance(1),this.stream.advanceWhileChar(function(r){return r!==jr}),this.stream.advanceIfChar(jr)?d.EscapedJavaScript:d.BadEscapedJavaScript):null},e}(Fe);var Ba=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),Ho=function(n){Ba(e,n);function e(){return n.call(this,new Ln)||this}return e.prototype._parseStylesheetStatement=function(t){return t===void 0&&(t=!1),this.peek(d.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||n.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},e.prototype._parseImport=function(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;var t=this.create(dt);if(this.consumeToken(),this.accept(d.ParenthesisL)){if(!this.accept(d.Ident))return this.finish(t,f.IdentifierExpected,[d.SemiColon]);do if(!this.accept(d.Comma))break;while(this.accept(d.Ident));if(!this.accept(d.ParenthesisR))return this.finish(t,f.RightParenthesisExpected,[d.SemiColon])}return!t.addChild(this._parseURILiteral())&&!t.addChild(this._parseStringLiteral())?this.finish(t,f.URIOrStringExpected,[d.SemiColon]):(!this.peek(d.SemiColon)&&!this.peek(d.EOF)&&t.setMedialist(this._parseMediaQueryList()),this.finish(t))},e.prototype._parsePlugin=function(){if(!this.peekKeyword("@plugin"))return null;var t=this.createNode(u.Plugin);return this.consumeToken(),t.addChild(this._parseStringLiteral())?this.accept(d.SemiColon)?this.finish(t):this.finish(t,f.SemiColonExpected):this.finish(t,f.StringLiteralExpected)},e.prototype._parseMediaQuery=function(){var t=n.prototype._parseMediaQuery.call(this);if(!t){var r=this.create(hn);return r.addChild(this._parseVariable())?this.finish(r):null}return t},e.prototype._parseMediaDeclaration=function(t){return t===void 0&&(t=!1),this._tryParseRuleset(t)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(t)},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},e.prototype._parseVariableDeclaration=function(t){t===void 0&&(t=[]);var r=this.create($e),i=this.mark();if(!r.setVariable(this._parseVariable(!0)))return null;if(this.accept(d.Colon)){if(this.prevToken&&(r.colonPosition=this.prevToken.offset),r.setValue(this._parseDetachedRuleSet()))r.needsSemicolon=!1;else if(!r.setValue(this._parseExpr()))return this.finish(r,f.VariableValueExpected,[],t);r.addChild(this._parsePrio())}else return this.restoreAtMark(i),null;return this.peek(d.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)},e.prototype._parseDetachedRuleSet=function(){var t=this.mark();if(this.peekDelim("#")||this.peekDelim("."))if(this.consumeToken(),!this.hasWhitespace()&&this.accept(d.ParenthesisL)){var r=this.create(Ae);if(r.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(d.Comma)||this.accept(d.SemiColon))&&!this.peek(d.ParenthesisR);)r.getParameters().addChild(this._parseMixinParameter())||this.markError(r,f.IdentifierExpected,[],[d.ParenthesisR]);if(!this.accept(d.ParenthesisR))return this.restoreAtMark(t),null}else return this.restoreAtMark(t),null;if(!this.peek(d.CurlyL))return null;var i=this.create(K);return this._parseBody(i,this._parseDetachedRuleSetBody.bind(this)),this.finish(i)},e.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},e.prototype._addLookupChildren=function(t){if(!t.addChild(this._parseLookupValue()))return!1;for(var r=!1;this.peek(d.BracketL)&&(r=!0),!!t.addChild(this._parseLookupValue());)r=!1;return!r},e.prototype._parseLookupValue=function(){var t=this.create(F),r=this.mark();return this.accept(d.BracketL)?(t.addChild(this._parseVariable(!1,!0))||t.addChild(this._parsePropertyIdentifier()))&&this.accept(d.BracketR)||this.accept(d.BracketR)?t:(this.restoreAtMark(r),null):(this.restoreAtMark(r),null)},e.prototype._parseVariable=function(t,r){t===void 0&&(t=!1),r===void 0&&(r=!1);var i=!t&&this.peekDelim("$");if(!this.peekDelim("@")&&!i&&!this.peek(d.AtKeyword))return null;for(var o=this.create(pt),s=this.mark();this.acceptDelim("@")||!t&&this.acceptDelim("$");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return!this.accept(d.AtKeyword)&&!this.accept(d.Ident)?(this.restoreAtMark(s),null):!r&&this.peek(d.BracketL)&&!this._addLookupChildren(o)?(this.restoreAtMark(s),null):o},e.prototype._parseTermExpression=function(){return this._parseVariable()||this._parseEscaped()||n.prototype._parseTermExpression.call(this)||this._tryParseMixinReference(!1)},e.prototype._parseEscaped=function(){if(this.peek(d.EscapedJavaScript)||this.peek(d.BadEscapedJavaScript)){var t=this.createNode(u.EscapedValue);return this.consumeToken(),this.finish(t)}if(this.peekDelim("~")){var t=this.createNode(u.EscapedValue);return this.consumeToken(),this.accept(d.String)||this.accept(d.EscapedJavaScript)?this.finish(t):this.finish(t,f.TermExpected)}return null},e.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||n.prototype._parseOperator.call(this)},e.prototype._parseGuardOperator=function(){if(this.peekDelim(">")){var t=this.createNode(u.Operator);return this.consumeToken(),this.acceptDelim("="),t}else if(this.peekDelim("=")){var t=this.createNode(u.Operator);return this.consumeToken(),this.acceptDelim("<"),t}else if(this.peekDelim("<")){var t=this.createNode(u.Operator);return this.consumeToken(),this.acceptDelim("="),t}return null},e.prototype._parseRuleSetDeclaration=function(){return this.peek(d.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||n.prototype._parseRuleSetDeclarationAtStatement.call(this):this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||n.prototype._parseRuleSetDeclaration.call(this)},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([A.Keyframe])||this._parseVariable()},e.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||n.prototype._parseKeyframeSelector.call(this)},e.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||n.prototype._parseSimpleSelectorBody.call(this)},e.prototype._parseSelector=function(t){var r=this.create(Ee),i=!1;for(t&&(i=r.addChild(this._parseCombinator()));r.addChild(this._parseSimpleSelector());){i=!0;var o=this.mark();if(r.addChild(this._parseGuard())&&this.peek(d.CurlyL))break;this.restoreAtMark(o),r.addChild(this._parseCombinator())}return i?this.finish(r):null},e.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var t=this.createNode(u.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(d.Num)||this.accept(d.Dimension)||t.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(t)}return null},e.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var t=this.createNode(u.SelectorInterpolation),r=this._acceptInterpolatedIdent(t);return r?this.finish(t):null},e.prototype._parsePropertyIdentifier=function(t){t===void 0&&(t=!1);var r=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,r))return null;var i=this.mark(),o=this.create(te);o.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");var s=!1;return t?o.isCustomProperty?s=o.addChild(this._parseIdent()):s=o.addChild(this._parseRegexp(r)):o.isCustomProperty?s=this._acceptInterpolatedIdent(o):s=this._acceptInterpolatedIdent(o,r),s?(!t&&!this.hasWhitespace()&&(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(o)):(this.restoreAtMark(i),null)},e.prototype.peekInterpolatedIdent=function(){return this.peek(d.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")},e.prototype._acceptInterpolatedIdent=function(t,r){for(var i=this,o=!1,s=function(){var l=i.mark();return i.acceptDelim("-")&&(i.hasWhitespace()||i.acceptDelim("-"),i.hasWhitespace())?(i.restoreAtMark(l),null):i._parseInterpolation()},a=r?function(){return i.acceptRegexp(r)}:function(){return i.accept(d.Ident)};(a()||t.addChild(this._parseInterpolation()||this.try(s)))&&(o=!0,!this.hasWhitespace()););return o},e.prototype._parseInterpolation=function(){var t=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){var r=this.createNode(u.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(d.CurlyL)?(this.restoreAtMark(t),null):r.addChild(this._parseIdent())?this.accept(d.CurlyR)?this.finish(r):this.finish(r,f.RightCurlyExpected):this.finish(r,f.IdentifierExpected)}return null},e.prototype._tryParseMixinDeclaration=function(){var t=this.mark(),r=this.create(Ae);if(!r.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(d.ParenthesisL))return this.restoreAtMark(t),null;if(r.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(d.Comma)||this.accept(d.SemiColon))&&!this.peek(d.ParenthesisR);)r.getParameters().addChild(this._parseMixinParameter())||this.markError(r,f.IdentifierExpected,[],[d.ParenthesisR]);return this.accept(d.ParenthesisR)?(r.setGuard(this._parseGuard()),this.peek(d.CurlyL)?this._parseBody(r,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(t),null)):(this.restoreAtMark(t),null)},e.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},e.prototype._parseMixinDeclarationIdentifier=function(){var t;if(this.peekDelim("#")||this.peekDelim(".")){if(t=this.create(te),this.consumeToken(),this.hasWhitespace()||!t.addChild(this._parseIdent()))return null}else if(this.peek(d.Hash))t=this.create(te),this.consumeToken();else return null;return t.referenceTypes=[A.Mixin],this.finish(t)},e.prototype._parsePseudo=function(){if(!this.peek(d.Colon))return null;var t=this.mark(),r=this.create(qe);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(r):(this.restoreAtMark(t),n.prototype._parsePseudo.call(this))},e.prototype._parseExtend=function(){if(!this.peekDelim("&"))return null;var t=this.mark(),r=this.create(qe);return this.consumeToken(),this.hasWhitespace()||!this.accept(d.Colon)||!this.acceptIdent("extend")?(this.restoreAtMark(t),null):this._completeExtends(r)},e.prototype._completeExtends=function(t){if(!this.accept(d.ParenthesisL))return this.finish(t,f.LeftParenthesisExpected);var r=t.getSelectors();if(!r.addChild(this._parseSelector(!0)))return this.finish(t,f.SelectorExpected);for(;this.accept(d.Comma);)if(!r.addChild(this._parseSelector(!0)))return this.finish(t,f.SelectorExpected);return this.accept(d.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)},e.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(d.AtKeyword))return null;var t=this.mark(),r=this.create(et);return r.addChild(this._parseVariable(!0))&&(this.hasWhitespace()||!this.accept(d.ParenthesisL))?(this.restoreAtMark(t),null):this.accept(d.ParenthesisR)?this.finish(r):this.finish(r,f.RightParenthesisExpected)},e.prototype._tryParseMixinReference=function(t){t===void 0&&(t=!0);for(var r=this.mark(),i=this.create(et),o=this._parseMixinDeclarationIdentifier();o;){this.acceptDelim(">");var s=this._parseMixinDeclarationIdentifier();if(s)i.getNamespaces().addChild(o),o=s;else break}if(!i.setIdentifier(o))return this.restoreAtMark(r),null;var a=!1;if(this.accept(d.ParenthesisL)){if(a=!0,i.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(d.Comma)||this.accept(d.SemiColon))&&!this.peek(d.ParenthesisR);)if(!i.getArguments().addChild(this._parseMixinArgument()))return this.finish(i,f.ExpressionExpected)}if(!this.accept(d.ParenthesisR))return this.finish(i,f.RightParenthesisExpected);o.referenceTypes=[A.Mixin]}else o.referenceTypes=[A.Mixin,A.Rule];return this.peek(d.BracketL)?t||this._addLookupChildren(i):i.addChild(this._parsePrio()),!a&&!this.peek(d.SemiColon)&&!this.peek(d.CurlyR)&&!this.peek(d.EOF)?(this.restoreAtMark(r),null):this.finish(i)},e.prototype._parseMixinArgument=function(){var t=this.create(we),r=this.mark(),i=this._parseVariable();return i&&(this.accept(d.Colon)?t.setIdentifier(i):this.restoreAtMark(r)),t.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(t):(this.restoreAtMark(r),null)},e.prototype._parseMixinParameter=function(){var t=this.create(Be);if(this.peekKeyword("@rest")){var r=this.create(F);return this.consumeToken(),this.accept(Wn)?(t.setIdentifier(this.finish(r)),this.finish(t)):this.finish(t,f.DotExpected,[],[d.Comma,d.ParenthesisR])}if(this.peek(Wn)){var i=this.create(F);return this.consumeToken(),t.setIdentifier(this.finish(i)),this.finish(t)}var o=!1;return t.setIdentifier(this._parseVariable())&&(this.accept(d.Colon),o=!0),!t.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))&&!o?null:this.finish(t)},e.prototype._parseGuard=function(){if(!this.peekIdent("when"))return null;var t=this.create(Pi);if(this.consumeToken(),t.isNegated=this.acceptIdent("not"),!t.getConditions().addChild(this._parseGuardCondition()))return this.finish(t,f.ConditionExpected);for(;this.acceptIdent("and")||this.accept(d.Comma);)if(!t.getConditions().addChild(this._parseGuardCondition()))return this.finish(t,f.ConditionExpected);return this.finish(t)},e.prototype._parseGuardCondition=function(){if(!this.peek(d.ParenthesisL))return null;var t=this.create(Ai);return this.consumeToken(),t.addChild(this._parseExpr()),this.accept(d.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)},e.prototype._parseFunction=function(){var t=this.mark(),r=this.create(Pe);if(!r.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(d.ParenthesisL))return this.restoreAtMark(t),null;if(r.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(d.Comma)||this.accept(d.SemiColon))&&!this.peek(d.ParenthesisR);)if(!r.getArguments().addChild(this._parseMixinArgument()))return this.finish(r,f.ExpressionExpected)}return this.accept(d.ParenthesisR)?this.finish(r):this.finish(r,f.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(this.peekDelim("%")){var t=this.create(te);return t.referenceTypes=[A.Function],this.consumeToken(),this.finish(t)}return n.prototype._parseFunctionIdentifier.call(this)},e.prototype._parseURLArgument=function(){var t=this.mark(),r=n.prototype._parseURLArgument.call(this);if(!r||!this.peek(d.ParenthesisR)){this.restoreAtMark(t);var i=this.create(F);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return r},e}(gt);var $a=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),I=H(),Jo=function(n){$a(e,n);function e(t,r){return n.call(this,"@",t,r)||this}return e.prototype.createFunctionProposals=function(t,r,i,o){for(var s=0,a=t;s 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:I("less.builtin.round","rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:I("less.builtin.sqrt","calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:I("less.builtin.sin","sine function"),example:"sin(number);"},{name:"tan",description:I("less.builtin.tan","tangent function"),example:"tan(number);"},{name:"atan",description:I("less.builtin.atan","arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:I("less.builtin.pi","returns pi"),example:"pi();"},{name:"pow",description:I("less.builtin.pow","first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:I("less.builtin.mod","first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:I("less.builtin.min","returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:I("less.builtin.max","returns the lowest of one or more values"),example:"max(@x, @y);"}],e.colorProposals=[{name:"argb",example:"argb(@color);",description:I("less.builtin.argb","creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:I("less.builtin.hsl","creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:I("less.builtin.hsla","creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:I("less.builtin.hsv","creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:I("less.builtin.hsva","creates a color")},{name:"hue",example:"hue(@color);",description:I("less.builtin.hue","returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:I("less.builtin.saturation","returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:I("less.builtin.lightness","returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:I("less.builtin.hsvhue","returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:I("less.builtin.hsvsaturation","returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:I("less.builtin.hsvvalue","returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:I("less.builtin.red","returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:I("less.builtin.green","returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:I("less.builtin.blue","returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:I("less.builtin.alpha","returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:I("less.builtin.luma","returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:I("less.builtin.saturate","return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:I("less.builtin.desaturate","return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:I("less.builtin.lighten","return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:I("less.builtin.darken","return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:I("less.builtin.fadein","return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:I("less.builtin.fadeout","return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:I("less.builtin.fade","return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:I("less.builtin.spin","return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:I("less.builtin.mix","return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:I("less.builtin.greyscale","returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:I("less.builtin.contrast","return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}],e}(vt);function Yo(n,e){var t=qa(n);return Ka(t,e)}function qa(n){function e(p){return n.positionAt(p.offset).line}function t(p){return n.positionAt(p.offset+p.len).line}function r(){switch(n.languageId){case"scss":return new Nn;case"less":return new Ln;default:return new Fe}}function i(p,m){var g=e(p),w=t(p);return g!==w?{startLine:g,endLine:w,kind:m}:null}var o=[],s=[],a=r();a.ignoreComment=!1,a.setSource(n.getText());for(var l=a.scan(),c=null,h=function(){switch(l.type){case d.CurlyL:case xt:{s.push({line:e(l),type:"brace",isStart:!0});break}case d.CurlyR:{if(s.length!==0){var p=Xo(s,"brace");if(!p)break;var m=t(l);p.type==="brace"&&(c&&t(c)!==m&&m--,p.line!==m&&o.push({startLine:p.line,endLine:m,kind:void 0}))}break}case d.Comment:{var g=function(D){return D==="#region"?{line:e(l),type:"comment",isStart:!0}:{line:t(l),type:"comment",isStart:!1}},w=function(D){var M=D.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//);if(M)return g(M[1]);if(n.languageId==="scss"||n.languageId==="less"){var z=D.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/);if(z)return g(z[1])}return null},x=w(l);if(x)if(x.isStart)s.push(x);else{var p=Xo(s,"comment");if(!p)break;p.type==="comment"&&p.line!==x.line&&o.push({startLine:p.line,endLine:x.line,kind:"region"})}else{var y=i(l,"comment");y&&o.push(y)}break}}c=l,l=a.scan()};l.type!==d.EOF;)h();return o}function Xo(n,e){if(n.length===0)return null;for(var t=n.length-1;t>=0;t--)if(n[t].type===e&&n[t].isStart)return n.splice(t,1)[0];return null}function Ka(n,e){var t=e&&e.rangeLimit||Number.MAX_VALUE,r=n.sort(function(s,a){var l=s.startLine-a.startLine;return l===0&&(l=s.endLine-a.endLine),l}),i=[],o=-1;return r.forEach(function(s){s.startLine=0;c--)if(this.__items[c].match(l))return!0;return!1},o.prototype.set_indent=function(l,c){this.is_empty()&&(this.__indent_count=l||0,this.__alignment_count=c||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},o.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},o.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},o.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var l=this.__parent.current_line;return l.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),l.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),l.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,l.__items[0]===" "&&(l.__items.splice(0,1),l.__character_count-=1),!0}return!1},o.prototype.is_empty=function(){return this.__items.length===0},o.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},o.prototype.push=function(l){this.__items.push(l);var c=l.lastIndexOf(` +`);c!==-1?this.__character_count=l.length-c:this.__character_count+=l.length},o.prototype.pop=function(){var l=null;return this.is_empty()||(l=this.__items.pop(),this.__character_count-=l.length),l},o.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},o.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},o.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},o.prototype.toString=function(){var l="";return this.is_empty()?this.__parent.indent_empty_lines&&(l=this.__parent.get_indent_string(this.__indent_count)):(l=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),l+=this.__items.join("")),l};function s(l,c){this.__cache=[""],this.__indent_size=l.indent_size,this.__indent_string=l.indent_char,l.indent_with_tabs||(this.__indent_string=new Array(l.indent_size+1).join(l.indent_char)),c=c||"",l.indent_level>0&&(c=new Array(l.indent_level+1).join(this.__indent_string)),this.__base_string=c,this.__base_string_length=c.length}s.prototype.get_indent_size=function(l,c){var h=this.__base_string_length;return c=c||0,l<0&&(h=0),h+=l*this.__indent_size,h+=c,h},s.prototype.get_indent_string=function(l,c){var h=this.__base_string;return c=c||0,l<0&&(l=0,h=""),c+=l*this.__indent_size,this.__ensure_cache(c),h+=this.__cache[c],h},s.prototype.__ensure_cache=function(l){for(;l>=this.__cache.length;)this.__add_column()},s.prototype.__add_column=function(){var l=this.__cache.length,c=0,h="";this.__indent_size&&l>=this.__indent_size&&(c=Math.floor(l/this.__indent_size),l-=c*this.__indent_size,h=new Array(c+1).join(this.__indent_string)),l&&(h+=new Array(l+1).join(" ")),this.__cache.push(h)};function a(l,c){this.__indent_cache=new s(l,c),this.raw=!1,this._end_with_newline=l.end_with_newline,this.indent_size=l.indent_size,this.wrap_line_length=l.wrap_line_length,this.indent_empty_lines=l.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new o(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(l,c){return this.__indent_cache.get_indent_string(l,c)},a.prototype.get_indent_size=function(l,c){return this.__indent_cache.get_indent_size(l,c)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(l){return this.is_empty()||!l&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(l){this.trim(!0);var c=this.current_line.pop();c&&(c[c.length-1]===` +`&&(c=c.replace(/\n+$/g,"")),this.current_line.push(c)),this._end_with_newline&&this.__add_outputline();var h=this.__lines.join(` +`);return l!==` +`&&(h=h.replace(/[\n]/g,l)),h},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(l,c){return l=l||0,c=c||0,this.next_line.set_indent(l,c),this.__lines.length>1?(this.current_line.set_indent(l,c),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(l){for(var c=0;c1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(l,c){for(var h=this.__lines.length-2;h>=0;){var p=this.__lines[h];if(p.is_empty())break;if(p.item(0).indexOf(l)!==0&&p.item(-1)!==c){this.__lines.splice(h+1,0,new o(this)),this.previous_line=this.__lines[this.__lines.length-2];break}h--}},i.exports.Output=a},,,,function(i){function o(l,c){this.raw_options=s(l,c),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs",this.indent_char===" "),this.indent_with_tabs&&(this.indent_char=" ",this.indent_size===1&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","django","erb","handlebars","php","smarty"],["auto"])}o.prototype._get_array=function(l,c){var h=this.raw_options[l],p=c||[];return typeof h=="object"?h!==null&&typeof h.concat=="function"&&(p=h.concat()):typeof h=="string"&&(p=h.split(/[^a-zA-Z0-9_\/\-]+/)),p},o.prototype._get_boolean=function(l,c){var h=this.raw_options[l],p=h===void 0?!!c:!!h;return p},o.prototype._get_characters=function(l,c){var h=this.raw_options[l],p=c||"";return typeof h=="string"&&(p=h.replace(/\\r/,"\r").replace(/\\n/,` +`).replace(/\\t/," ")),p},o.prototype._get_number=function(l,c){var h=this.raw_options[l];c=parseInt(c,10),isNaN(c)&&(c=0);var p=parseInt(h,10);return isNaN(p)&&(p=c),p},o.prototype._get_selection=function(l,c,h){var p=this._get_selection_list(l,c,h);if(p.length!==1)throw new Error("Invalid Option Value: The option '"+l+`' can only be one of the following values: +`+c+` +You passed in: '`+this.raw_options[l]+"'");return p[0]},o.prototype._get_selection_list=function(l,c,h){if(!c||c.length===0)throw new Error("Selection list cannot be empty.");if(h=h||[c[0]],!this._is_valid_selection(h,c))throw new Error("Invalid Default Value!");var p=this._get_array(l,h);if(!this._is_valid_selection(p,c))throw new Error("Invalid Option Value: The option '"+l+`' can contain only the following values: +`+c+` +You passed in: '`+this.raw_options[l]+"'");return p},o.prototype._is_valid_selection=function(l,c){return l.length&&c.length&&!l.some(function(h){return c.indexOf(h)===-1})};function s(l,c){var h={};l=a(l);var p;for(p in l)p!==c&&(h[p]=l[p]);if(c&&l[c])for(p in l[c])h[p]=l[c][p];return h}function a(l){var c={},h;for(h in l){var p=h.replace(/-/g,"_");c[p]=l[h]}return c}i.exports.Options=o,i.exports.normalizeOpts=a,i.exports.mergeOpts=s},,function(i){var o=RegExp.prototype.hasOwnProperty("sticky");function s(a){this.__input=a||"",this.__input_length=this.__input.length,this.__position=0}s.prototype.restart=function(){this.__position=0},s.prototype.back=function(){this.__position>0&&(this.__position-=1)},s.prototype.hasNext=function(){return this.__position=0&&a=0&&l=a.length&&this.__input.substring(l-a.length,l).toLowerCase()===a},i.exports.InputScanner=s},,,,,function(i){function o(s,a){s=typeof s=="string"?s:s.source,a=typeof a=="string"?a:a.source,this.__directives_block_pattern=new RegExp(s+/ beautify( \w+[:]\w+)+ /.source+a,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(s+/\sbeautify\signore:end\s/.source+a,"g")}o.prototype.get_directives=function(s){if(!s.match(this.__directives_block_pattern))return null;var a={};this.__directive_pattern.lastIndex=0;for(var l=this.__directive_pattern.exec(s);l;)a[l[1]]=l[2],l=this.__directive_pattern.exec(s);return a},o.prototype.readIgnored=function(s){return s.readUntilAfter(this.__directives_end_ignore_pattern)},i.exports.Directives=o},,function(i,o,s){var a=s(16).Beautifier,l=s(17).Options;function c(h,p){var m=new a(h,p);return m.beautify()}i.exports=c,i.exports.defaultOptions=function(){return new l}},function(i,o,s){var a=s(17).Options,l=s(2).Output,c=s(8).InputScanner,h=s(13).Directives,p=new h(/\/\*/,/\*\//),m=/\r\n|[\r\n]/,g=/\r\n|[\r\n]/g,w=/\s/,x=/(?:\s|\n)+/g,y=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,D=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function M(z,P){this._source_text=z||"",this._options=new a(P),this._ch=null,this._input=null,this.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0},this.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0}}M.prototype.eatString=function(z){var P="";for(this._ch=this._input.next();this._ch;){if(P+=this._ch,this._ch==="\\")P+=this._input.next();else if(z.indexOf(this._ch)!==-1||this._ch===` +`)break;this._ch=this._input.next()}return P},M.prototype.eatWhitespace=function(z){for(var P=w.test(this._input.peek()),L=0;w.test(this._input.peek());)this._ch=this._input.next(),z&&this._ch===` +`&&(L===0||L0&&this._indentLevel--},M.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var z=this._source_text,P=this._options.eol;P==="auto"&&(P=` +`,z&&m.test(z||"")&&(P=z.match(m)[0])),z=z.replace(g,` +`);var L=z.match(/^[\t ]*/)[0];this._output=new l(this._options,L),this._input=new c(z),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var $=0,ue=!1,oe=!1,me=!1,ve=!1,ye=!1,ke=this._ch,pe,G,Ie;pe=this._input.read(x),G=pe!=="",Ie=ke,this._ch=this._input.next(),this._ch==="\\"&&this._input.hasNext()&&(this._ch+=this._input.next()),ke=this._ch,this._ch;)if(this._ch==="/"&&this._input.peek()==="*"){this._output.add_new_line(),this._input.back();var fe=this._input.read(y),C=p.get_directives(fe);C&&C.ignore==="start"&&(fe+=p.readIgnored(this._input)),this.print_string(fe),this.eatWhitespace(!0),this._output.add_new_line()}else if(this._ch==="/"&&this._input.peek()==="/")this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(D)),this.eatWhitespace(!0);else if(this._ch==="@")if(this.preserveSingleSpace(G),this._input.peek()==="{")this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var b=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);b.match(/[ :]$/)&&(b=this.eatString(": ").replace(/\s$/,""),this.print_string(b),this._output.space_before_token=!0),b=b.replace(/\s$/,""),b==="extend"?ve=!0:b==="import"&&(ye=!0),b in this.NESTED_AT_RULE?(this._nestedLevel+=1,b in this.CONDITIONAL_GROUP_RULE&&(me=!0)):!ue&&$===0&&b.indexOf(":")!==-1&&(oe=!0,this.indent())}else this._ch==="#"&&this._input.peek()==="{"?(this.preserveSingleSpace(G),this.print_string(this._ch+this.eatString("}"))):this._ch==="{"?(oe&&(oe=!1,this.outdent()),me?(me=!1,ue=this._indentLevel>=this._nestedLevel):ue=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&ue&&this._output.previous_line&&this._output.previous_line.item(-1)!=="{"&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,this._options.brace_style==="expand"?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line()):this._ch==="}"?(this.outdent(),this._output.add_new_line(),Ie==="{"&&this._output.trim(!0),ye=!1,ve=!1,oe&&(this.outdent(),oe=!1),this.print_string(this._ch),ue=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&this._input.peek()!=="}"&&this._output.add_new_line(!0)):this._ch===":"?(ue||me)&&!(this._input.lookBack("&")||this.foundNestedPseudoClass())&&!this._input.lookBack("(")&&!ve&&$===0?(this.print_string(":"),oe||(oe=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):(this._input.lookBack(" ")&&(this._output.space_before_token=!0),this._input.peek()===":"?(this._ch=this._input.next(),this.print_string("::")):this.print_string(":")):this._ch==='"'||this._ch==="'"?(this.preserveSingleSpace(G),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):this._ch===";"?$===0?(oe&&(this.outdent(),oe=!1),ve=!1,ye=!1,this.print_string(this._ch),this.eatWhitespace(!0),this._input.peek()!=="/"&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):this._ch==="("?this._input.lookBack("url")?(this.print_string(this._ch),this.eatWhitespace(),$++,this.indent(),this._ch=this._input.next(),this._ch===")"||this._ch==='"'||this._ch==="'"?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(")")),$&&($--,this.outdent()))):(this.preserveSingleSpace(G),this.print_string(this._ch),this.eatWhitespace(),$++,this.indent()):this._ch===")"?($&&($--,this.outdent()),this.print_string(this._ch)):this._ch===","?(this.print_string(this._ch),this.eatWhitespace(!0),this._options.selector_separator_newline&&!oe&&$===0&&!ye&&!ve?this._output.add_new_line():this._output.space_before_token=!0):(this._ch===">"||this._ch==="+"||this._ch==="~")&&!oe&&$===0?this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&w.test(this._ch)&&(this._ch="")):this._ch==="]"?this.print_string(this._ch):this._ch==="["?(this.preserveSingleSpace(G),this.print_string(this._ch)):this._ch==="="?(this.eatWhitespace(),this.print_string("="),w.test(this._ch)&&(this._ch="")):this._ch==="!"&&!this._input.lookBack("\\")?(this.print_string(" "),this.print_string(this._ch)):(this.preserveSingleSpace(G),this.print_string(this._ch));var k=this._output.get_code(P);return k},i.exports.Beautifier=M},function(i,o,s){var a=s(6).Options;function l(c){a.call(this,c,"css"),this.selector_separator_newline=this._get_boolean("selector_separator_newline",!0),this.newline_between_rules=this._get_boolean("newline_between_rules",!0);var h=this._get_boolean("space_around_selector_separator");this.space_around_combinator=this._get_boolean("space_around_combinator")||h;var p=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_style="collapse";for(var m=0;m0&&ns(r,c-1);)c--;c===0||ts(r,c-1)?l=c:c0){var x=t.insertSpaces?Xn(" ",a*o):Xn(" ",o);w=w.split(` +`).join(` +`+x),e.start.character===0&&(w=x+w)}return[{range:e,newText:w}]}function es(n){return n.replace(/^\s+/,"")}var Ga=123,Ha=125;function Ja(n,e){for(;e>=0;){var t=n.charCodeAt(e);if(t===Ga)return!0;if(t===Ha)return!1;e--}return!1}function Ve(n,e,t){if(n&&n.hasOwnProperty(e)){var r=n[e];if(r!==null)return r}return t}function Xa(n,e,t){for(var r=e,i=0,o=t.tabSize||4;r && ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],syntax:"normal | | | ? ",relevance:62,description:"Aligns a flex container\u2019s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",values:[{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"normal | stretch | | [ ? ]",relevance:85,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"},{name:"legacy"}],syntax:"normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]",relevance:53,description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | | ? [ | left | right ]",relevance:53,description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",values:[{name:"auto",description:"Computes to the value of 'align-items' on the element\u2019s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"auto | normal | stretch | | ? ",relevance:72,description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"#",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",syntax:"